在你的C文件里引用EEPROM函数的头文件,eeprom_routines.h
然后在程序中使用
voideeprom_write(unsignedcharaddr,unsignedcharvalue)
unsignedchareeprom_read(unsignedcharaddr)
这两个函数了。
这两个函数一个读一个写。比如你想写0x10到地址为0x55的EEPROM,
就写:eeprom_write(0x55,0x10)
同理,如果想读取0x55地址处的值,
就写:ee_value=eeprom_read(0x55)
如果编译时编译器提示找不到eeprom_routines.h,可以在
X:\ProgramFiles\HI-TECHSoftware\PICC\9.81\include 目录下找,然后复制到自己项目文件夹下。
对了,我用的是MPLabIDE,编译器使用的是PICC。
RC0==1delay(1500)
RC0==0
delay(1500)
改为
RC0=1
delay(1500)
RC0=0
delay(1500)
这是你的整个程序不完整,也就是灯的亮与灭的时间太短,只有纳秒级别的原因。1、正确的构成一个完整的执行程序是,开始---->RE0=1 灯亮---延时一段时间熄灭,或者所检测到一个按键输入熄灭,让RE0=0--->然后再延时一段时间---->又进入开始。
2、而目前你的这两个短句,如果采用步进执行step by step,也就是用仿真器,每次只执行一个命令,你可以看到灯的亮与灭。如果你是采用从开始到只执行到你的这一步的时候,只能看到你的灯的灭掉,因为你的re0=1只亮了一个指令周期就马上灭了。
3、如果你是构成了循环执行,也就是开始——>灯亮1个指令周期——>灯灭一个指令周期——>又回到开始循环,灯亮的时间和熄灭的时间相等,你的灯在不停的亮与灭,中间没有任何延时,由于灯闪烁的频率是几MHz的频率,而眼睛看起来只有亮。
4、当你多写一个熄灭的指令,让RE0=0有两个指令周期,这样灯熄没的时间比亮的时间多了一倍,而亮的时间太短,所以看起来几乎没有点亮一样。如果你有20--100MHz带宽的示波器检测RE0口,你是能够清楚看到这个脉冲波形的。
长期以来我写PIC芯片。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)