久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4973|回復: 5
收起左側

數碼管顯示時鐘可設置斷電記憶(定時器中斷+矩陣鍵盤+數碼管掃描+24c02)

[復制鏈接]
ID:405183 發表于 2018-11-13 21:57 | 顯示全部樓層 |閱讀模式
數碼管顯示時鐘,用矩陣鍵盤來設置時間,斷電時的時間會存儲在EEPROM中,來電時恢復斷電時刻的時間

單片機源程序如下:
  1. /*實驗效果每加一秒鐘顯示會跳動,并在8位數碼管上以時間的形式顯示*/
  2. /*使用矩陣鍵盤的S1、S2、S3按鍵分別對秒、分、時進行設置加1操作。*/
  3. /*設備斷電時EEPROM記憶斷電時刻的時間,重新上電時設備顯示斷電時刻的時間開始走時*/
  4. /********注意事項:往EEPROM 24c2寫入數據時與下一次寫數據時適當延時2ms左右*****/
  5. /****************不然寫入數據的速度跟不上程序執行時間以至于數據寫不進24c02中**/
  6. #include<reg51.h>
  7. #include"init.h"
  8. #include"key.h"
  9. #include"i2c.h"
  10. #include"delay.h"
  11. //sbit K1=P3^0;
  12. //sbit K2=P3^1;
  13. unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  14. unsigned char disp[8]={0x3f,0x3f,0x40,0x3f,0x3f,0x40,0x3f,0x3f};
  15. unsigned char hour=12,minit=0,second=0, Time=0;
  16. bit write=0,KeyState;
  17. main()
  18. {
  19.         unsigned char keyvalue;

  20.         hour=At24c02Read(0x02);                //讀出24c02地址0保存的數據賦于小時中
  21.         minit=At24c02Read(0x01);        //讀出24c02地址1保存的數據賦于分中
  22.         second=At24c02Read(0x00);        //讀出24c02地址2保存的數據賦于秒中
  23.         Timer1configuration();
  24.     Timer0configuration();
  25.        
  26.     Int0Configuration();
  27.                   
  28.     while(1)
  29.     {       
  30.                 keyvalue=readkey();

  31.                 if(TR0==0)
  32.             {

  33.                         if(KeyState==1)  //按鍵狀態為1時代表有按鍵按下
  34.                         {
  35.                                  if(keyvalue==1)        // 按鍵1按下時
  36.                                 {
  37.                                        
  38.                                         second++;  //秒加1
  39.                                         write=1;   //向24c02寫數據允許
  40.                                         if(second==60)
  41.                                         second=0;
  42.                                 }
  43.                                 else if(keyvalue==2)// 按鍵2按下時
  44.                                    {
  45.                                         minit++; // 分加1
  46.                                         write=1;//向24c02寫數據允許
  47.                                         if(minit==60)
  48.                                         minit=0;
  49.                                 }
  50.        
  51.                                 if(keyvalue==3)          // 按鍵3按下時
  52.                                 {
  53.                                         hour++;         // 小時加1
  54.                                         write=1;//向24c02寫數據允許
  55.                                         if(hour==24)
  56.                                         hour=0;

  57.                                 }
  58.                                 KeyState=0;               //清除按鍵按下狀態標志
  59.                     }       
  60.                
  61.             }         
  62.         disp[7]=DIG_CODE[hour/10];
  63.             disp[6]=DIG_CODE[hour%10];
  64.             disp[4]=DIG_CODE[minit/10];
  65.             disp[3]=DIG_CODE[minit%10];
  66.             disp[1]=DIG_CODE[second/10];
  67.             disp[0]=DIG_CODE[second%10];
  68.                 if(write==1)  //當write為1時向24c02寫入數據
  69.                 {
  70.                         write=0;//清除寫保護標記
  71.                         At24c02Write(0x02,hour);         //在24c02的地址0中寫入數據"小時"
  72.                         Delay1ms(2);/*作適當的延時,程序運行太快以至于數據還沒有寫入24c02就開始執行下一條語句*/       
  73.                         At24c02Write(0x01,minit);    //在24c02的地址1中寫入數據"分"
  74.                         Delay1ms(2);/*作適當的延時,程序運行太快以至于數據還沒有寫入24c02就開始執行下一條語句*/       
  75.                         At24c02Write(0x00,second);   //在24c02的地址2中寫入數據"秒"       
  76.                        
  77.                 }
  78.               
  79.     }          
  80. }
復制代碼

所有資料51hei提供下載:
時鐘斷電記憶 矩陣鍵盤設置時間.zip (57.47 KB, 下載次數: 72)
回復

使用道具 舉報

ID:1 發表于 2018-11-14 04:05 | 顯示全部樓層
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

ID:73182 發表于 2018-11-14 09:04 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:650142 發表于 2019-11-26 19:07 | 顯示全部樓層
可是這個代碼少了兩個庫函數的編輯,沒有庫是用不了的
回復

使用道具 舉報

ID:660143 發表于 2019-12-9 23:09 | 顯示全部樓層
這個代碼有原理圖么?
回復

使用道具 舉報

ID:660143 發表于 2019-12-9 23:09 | 顯示全部樓層
JUNJUNlin 發表于 2019-11-26 19:07
可是這個代碼少了兩個庫函數的編輯,沒有庫是用不了的

大佬,要用哪兩個函數庫?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产v日韩v亚洲 | 精品国产一区二区国模嫣然 | 欧美精品1区2区3区 精品国产欧美一区二区 | 亚洲字幕在线观看 | 欧美日韩亚洲视频 | 综合久久久 | 久久婷婷国产麻豆91 | 成人精品福利 | 日韩精品免费在线观看 | 欧美中文字幕 | 91精品国产综合久久久久久蜜臀 | 色综合色综合色综合 | 日日碰狠狠躁久久躁96avv | 99re国产视频 | 丁香婷婷综合激情五月色 | 日本 欧美 三级 高清 视频 | 在线观看成年视频 | 欧美午夜精品理论片a级按摩 | 亚洲精品国产偷自在线观看 | 美女人人操 | 羞视频在线观看 | 国产91成人 | 欧美日韩高清 | www.久久.com | 超碰成人在线观看 | 亚洲区一区二 | 天堂久久一区 | 新疆少妇videos高潮 | 欧美日韩理论 | 欧美一区2区三区3区公司 | 欧美日韩中文字幕在线 | 日韩精品一区二区三区在线观看 | 亚洲免费视频一区二区 | 亚洲最大av网站 | 日本天堂一区二区 | 亚洲成人免费 | 欧美性一区二区三区 | 91婷婷韩国欧美一区二区 | 欧美a∨ | 欧美一级毛片免费观看 | 在线高清免费观看视频 |