找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3231|回复: 3
收起左侧

用STC12单片机内部EEPROM保存9999秒倒计时设计

  [复制链接]
ID:358930 发表于 2018-12-14 03:36 | 显示全部楼层 |阅读模式
省了24C02了。

制作出来的实物图如下:
20181214_032208.jpg 20181214_032219.jpg

单片机源程序如下:

  1. #include <STC12C5A60S2.h>
  2. #include <intrins.h>
  3. #include<4LED_YIN.H>//数码管驱动显示程序
  4. #include<EEPROM.H>//STC12系列内部EEPROM

  5. sbit k1=P1^4;//设置键
  6. [size=36.9444px]sbit k2=P1^5;//        加键
  7. [size=36.9444px]sbit k3=P1^6;//         减键

  8. unsigned char menu=0,cou,HH,HL,LH,LL;//HH为温度上限高8位HL为温度上限低8位
  9. //LH为温度下限高8位LL为温度下限低8位

  10. unsigned int L,H;//H为温度上限,L为温度下限

  11. /************************************************************************/
  12. void delay1ms (unsigned int a){ // 1ms延时程序
  13.         unsigned int i;
  14.         while( --a != 0){
  15.                 for(i = 0; i < 629; i++);//STC15单片机在外部晶振为12MHz时i值上限为629  
  16.         }                                                      
  17. }
  18. /*****************************************************************************/
  19. void disp(unsigned int t){//数码管显示
  20. unsigned int i;
  21. [size=36.9444px] i=        t/1000;//第一位数码管显示温度十位
  22. [size=36.9444px] diplay_data (4,disdata); //可以不显示                          
  23. [size=36.9444px] i=        t%1000/100;//第一位数码管显示温度十位
  24. diplay_data (3,disdata);
  25. i=t%100/10;//第二位数码管显示温度个位
  26. diplay_data (2,disdata);//0x80为个位数后面的小数点
  27. [size=36.9444px]//diplay_data (2,disdata+0x80);//0x80为个位数后面的小数点         
  28.          
  29. i=t%10;//第三位数码管显示温度小数位
  30. diplay_data (1,disdata);
  31.          
  32. }

  33. /**********************************************************************************************/
  34. /**********************************************************************************************/
  35. void main (void){
  36.         unsigned char i;
  37.         delay1ms(300); //延时待系统稳定
  38.         init();//IO工作方式初始化
  39.       
  40.       

  41.         HH = IapReadByte(0x00);//开机时从EEPROM中读取H高8位参数
  42.         HL = IapReadByte(0x01);//开机时从EEPROM中读取H的低8位参数
  43.         H=HH*256+HL;//读出温度上限值
  44.       
  45.       
  46.         LH = IapReadByte(0x02);//开机时从EEPROM中读取L高8位参数
  47.         LL = IapReadByte(0x03);//开机时从EEPROM中读取L的低8位参数
  48.         L=LH*256+LL;//读出温度下限值
  49.       
  50.          
  51.       
  52.         while(1){//主循环
  53.                                     
  54.                            for(i=60;i>0;i--)//回显示温度,多显几次稳定
  55.                                         {
  56.                             disp(H);//显示H的值
  57.                                         }
  58.                                        
  59. [size=36.9444px]                H++;if(H>9999)H=0;//让数据自加1      
  60.                                        
  61.                                          LL=L;
  62.                                         LH=(L>>8);
  63.                                         HL=H;
  64.                                         HH=(H>>8);
  65.                                         IapEraseSector(0x00); //擦除整个扇区                              
  66.                                         IapProgramByte(0x00,HH );//将 新的温度上限值高8位写入 EEPROM
  67.                                         IapProgramByte(0x01, HL);//将 新的温度上限值低8位写入 EEPROM                                       
  68.                                         IapProgramByte(0x02,LH );//将 新的温度下限值高8位写入 EEPROM
  69.                                         IapProgramByte(0x03, LL);//将 新的温度下限值低8位写入 EEPROM                        
  70.                                        
  71.                                        
  72.                                        
  73.                         }      
  74.                    }
复制代码

全部资料51hei下载地址:
数码管STC12内EEPROM保存秒钟OK.zip (63.97 KB, 下载次数: 125)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:202754 发表于 2018-12-28 10:18 | 显示全部楼层
正好需要学习EEPROM的内容,学习
回复

使用道具 举报

ID:502775 发表于 2019-4-17 16:23 | 显示全部楼层
这个EEPROM.H是怎么回事?
回复

使用道具 举报

ID:646787 发表于 2019-12-12 09:28 来自手机 | 显示全部楼层
需要,不希望又是不沾边的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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