省了24C02了。
制作出來的實物圖如下:
20181214_032208.jpg (329.55 KB, 下載次數: 46)
下載附件
2018-12-14 03:34 上傳
20181214_032219.jpg (355.49 KB, 下載次數: 54)
下載附件
2018-12-14 03:34 上傳
單片機源程序如下:
- #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)
2018-12-14 03:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|