pic单片机EEPROM怎么编写程序?

pic单片机EEPROM怎么编写程序?,第1张

你的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==1

delay(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芯片。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11200928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存