省了24C02了。
制作出来的实物图如下:
单片机源程序如下:
- #include <STC12C5A60S2.h>
- #include <intrins.h>
- #include<4LED_YIN.H>//数码管驱动显示程序
- #include<EEPROM.H>//STC12系列内部EEPROM
- sbit k1=P1^4;//设置键
- [size=36.9444px]sbit k2=P1^5;// 加键
- [size=36.9444px]sbit k3=P1^6;// 减键
- unsigned char menu=0,cou,HH,HL,LH,LL;//HH为温度上限高8位HL为温度上限低8位
- //LH为温度下限高8位LL为温度下限低8位
- unsigned int L,H;//H为温度上限,L为温度下限
- /************************************************************************/
- void delay1ms (unsigned int a){ // 1ms延时程序
- unsigned int i;
- while( --a != 0){
- for(i = 0; i < 629; i++);//STC15单片机在外部晶振为12MHz时i值上限为629
- }
- }
- /*****************************************************************************/
- void disp(unsigned int t){//数码管显示
- unsigned int i;
- [size=36.9444px] i= t/1000;//第一位数码管显示温度十位
- [size=36.9444px] diplay_data (4,disdata); //可以不显示
- [size=36.9444px] i= t%1000/100;//第一位数码管显示温度十位
- diplay_data (3,disdata);
- i=t%100/10;//第二位数码管显示温度个位
- diplay_data (2,disdata);//0x80为个位数后面的小数点
- [size=36.9444px]//diplay_data (2,disdata+0x80);//0x80为个位数后面的小数点
-
- i=t%10;//第三位数码管显示温度小数位
- diplay_data (1,disdata);
-
- }
- /**********************************************************************************************/
- /**********************************************************************************************/
- void main (void){
- unsigned char i;
- delay1ms(300); //延时待系统稳定
- init();//IO工作方式初始化
-
-
- HH = IapReadByte(0x00);//开机时从EEPROM中读取H高8位参数
- HL = IapReadByte(0x01);//开机时从EEPROM中读取H的低8位参数
- H=HH*256+HL;//读出温度上限值
-
-
- LH = IapReadByte(0x02);//开机时从EEPROM中读取L高8位参数
- LL = IapReadByte(0x03);//开机时从EEPROM中读取L的低8位参数
- L=LH*256+LL;//读出温度下限值
-
-
-
- while(1){//主循环
-
- for(i=60;i>0;i--)//回显示温度,多显几次稳定
- {
- disp(H);//显示H的值
- }
-
- [size=36.9444px] H++;if(H>9999)H=0;//让数据自加1
-
- LL=L;
- LH=(L>>8);
- HL=H;
- HH=(H>>8);
- IapEraseSector(0x00); //擦除整个扇区
- IapProgramByte(0x00,HH );//将 新的温度上限值高8位写入 EEPROM
- IapProgramByte(0x01, HL);//将 新的温度上限值低8位写入 EEPROM
- IapProgramByte(0x02,LH );//将 新的温度下限值高8位写入 EEPROM
- IapProgramByte(0x03, LL);//将 新的温度下限值低8位写入 EEPROM
-
-
-
- }
- }
复制代码
全部资料51hei下载地址:
数码管STC12内EEPROM保存秒钟OK.zip
(63.97 KB, 下载次数: 127)
|