[qy002千赢国际类] 【一个小小的个人经验分享】【六】PCF8591+AT24C02的使用

[复制链接]
1117|5
 楼主 | 2019-3-2 12:08 | 显示全部楼层 |阅读模式
>写在前面的话:对于蓝桥杯的题目,涉及到AD转换(PCF8591),时钟(DS1302),温度读取(DS18B20),掉电存储(AT24C20)方面的东西都是要用到通讯协议的,但是实质上并不难,因为比赛官方会给参赛者提供相关的底层驱动程序,参赛者要做的,仅仅是实现其功能,或是利用时序发送指令,读写数据罢了。总的来说,这一部分并不是蓝桥杯qy002千赢国际比赛的难点,仅仅要求熟练使用即可。

【一】掉电存储
这次我仍然使用一种老掉牙的方法来实现掉电存储的效果:数码管每过1S  加一   ,关闭电源之后再开机,数码管的计数会从之前掉电时数字的计数继续加一。   
由于这款qy002千赢国际其实不用AT24C02也可以实现掉电存储,所以本人就自作主张的把IAP功能也写入了,经过试验是可以使用的,使用的时候只需要把这个  #define USE_IAP        0   0  改成  1就行了 ,当然,具体用哪种方法就要看题目怎么说了。。。。

话不多说,直接呈上代码:
  1. #include<stc15f2k60s2.h>
  2. #include<CT107D.h>
  3. #include<display.h>
  4. #include<eeprom.h>
  5. #include<IIC.h>
  6. #define USE_IAP                        0
  7. unsigned char timer;
  8. unsigned char time_counter;
  9. bit swtichSmg;
  10. void init_timer(){
  11.         TMOD=0x00;
  12.         TH0=0xdc;
  13.         TL0=0x00;
  14.         EA=1;
  15.         ET0=1;
  16.         TR0=1;
  17. }
  18. void main(){
  19.        
  20.         init_buzz();
  21. #if USE_IAP
  22.         timer=read_byte(0x2333);
  23. #else
  24.         timer=IIC_readbyte(0x01);
  25. #endif
  26.         init_timer();
  27.         while(1){
  28.                 if(time_counter==100){
  29.                         time_counter=0;
  30.                         timer++;
  31. #if        USE_IAP
  32.                         del_byte(0x2333); if(IAP_CONTR&0x10==0x10)IAP_CONTR&=0xef;
  33.                         write_byte(0x2333,timer);
  34. #else
  35.                         IIC_writebyte(0x01,timer);
  36. #endif
  37.                         if(timer>=60){
  38.                                 timer=0;
  39.                         }
  40.                 }
  41.                
  42.         }
  43. }
  44. void timer_ser() interrupt 1{
  45.         time_counter++;
  46.         swtichSmg=~swtichSmg;
  47.         display_sec(timer,swtichSmg);
  48. }
复制代码


另外还有一个小问题,就是上电的时候数码管会闪烁(乱闪)个  0.5 s左右,不影响正常使用,如果有可以解决的大神来解决一下~

掉电存储.zip (49.48 KB, 下载次数: 10)

评论

aa260 2019-3-16 14:44 回复TA
嗯哼,不错 
 楼主 | 2019-3-2 12:10 | 显示全部楼层
代码还是个人编写风格比较严重的了,希望能够理解~
使用道具 评论回复
| 2019-3-14 19:13 | 显示全部楼层
学习。。。。。
使用道具 评论回复
| 2019-3-16 15:54 | 显示全部楼层
学到了,借鉴
使用道具 评论回复
| 2019-3-18 18:27 | 显示全部楼层
很不错哦,感谢分享
使用道具 评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册
本版积分规则
我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /5 下一条

快速回复 返回顶部 返回列表