《PIC16系列单片机C程序设计与proteus仿真》学习之6、7看门狗定时器(WDT)及EEPPROM的读写.doc

《PIC16系列单片机C程序设计与proteus仿真》学习之6、7看门狗定时器(WDT)及EEPPROM的读写.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《PIC16系列单片机C程序设计与proteus仿真》学习之6、7看门狗定时器(WDT)及EEPPROM的读写

学习之6---看门狗定时器(WDT) //PIC.H中定义了宏 #define CLRWDT() asm(clrwdt)因此在PICC的c语言中可以直接使用CLRWDT()对WDT清0 //若单片机WDT使能,在适当位置加入CLRWDT(),程序进入正常运行时,每隔一定时间均会执行CLRWDT()语句对WDT清0,芯片不会复位 //如果程序陷入死循环,不会执行到CLRWDT()语句,则超出所设定的时间后,WDT溢出使芯片复位,从头(000H)开始执行,单片机恢复正常运行 //PIC16F单片机,看门狗定时器的启用只能在芯片的烧写时确定,即无法用软件来开启或关闭WDT,但在PIC16f88X中可以。 //PIC16单片机的WDT基本溢出时间为18MS,由RC充放电时间确定,在-40~85度之间变化时,WDT基本溢出时间在7-33ms变化 #includepic.h __CONFIG(0X3F3D);//开启WTD void DELAY(unsigned int); #define LED1 RB1 main(void) { TRISB=0 OPTION=0 //WDT的分频比为1:8,最大复位时间为18*8=144ms if(TO==0)// 若写成T0,则编译出错。。。 { LED1=1; //看门狗定时器溢出,仿真时溢出TO不会清零 } else LED1=0; while(1) { DELAY(100);//模拟一个运行100ms的子程序 CLRWDT(); DELAY(200);//模拟一个运行200ms的子程序,此时会产生溢出(200ms144ms) CLRWDT(); }; } void DELAY(unsigned int n) { unsigned int j; char k; for(j=0;jn;j++) for(k=246;k0;k--) NOP(); } 学习之7--EEPROM的读写 EEPROM特点:掉电时保持不变,F877A的EEPROM参数是保证1 000 000次擦除,数据保存40年 PICC中定义了读/写EEPROM的宏 EERPOM_WRITE(addr,value); EEPROM_READ(addr); //PICC中系统已经为我们定义了读/写EEPROM的宏 //宏EEPROM_WRITE写入EEPROM,只是启动写入过程,写完要几MS,当读/写EEPROM时,程序会自动检测是否还在写,若是,则等待 //C程序编写不涉及EECON1,EECON2 #includepic.h __CONFIG(0X3F39); __EEPROM_DATA(89,34,48,210,53,192,7,57);//初始化EEPROM,分别写入单元0~7 main(void) { char aa; aa=EEPROM_READ(3);//读EEPROM单元3的内容 EEPROM_WRITE(9,0X9A);//将0X9A写入EERPOM的单元9 aa=EEPROM_READ(9);//读EEPROM单元9的内容 while(1); } 2

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档