找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3173|回復(fù): 1
收起左側(cè)

電子時(shí)鐘程序(單片機(jī)和7279)

[復(fù)制鏈接]
ID:215127 發(fā)表于 2017-6-27 14:38 | 顯示全部樓層 |閱讀模式
利用單片機(jī)和7279芯片實(shí)現(xiàn)①時(shí)鐘②鬧鐘③定時(shí)器④萬年歷

單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #include "led.h"
  3. #include "delay.h"
  4. #include "7279.h"
  5. #include "key.h"

  6. u16 count=0; //時(shí)間計(jì)數(shù)

  7. u8 hour=12;                        //時(shí)
  8. u8 min=0;                                //分
  9. u8 sec=0;                                //秒
  10. u8 al_hour=25;        //鬧鐘時(shí)
  11. u8 al_min=0;                //鬧鐘分
  12. u8 al_sec=0;                //鬧鐘秒
  13. u8 mb_hour=0;                //秒表時(shí)
  14. u8 mb_min=0;                //秒表分
  15. u8 mb_sec=0;                //秒表秒

  16. u8 num[8];          //存放顯示碼
  17. u8 A_FLAG=0;        //鬧鐘響鈴標(biāo)志
  18. u8 MB_PAUSE=0;//秒表暫停標(biāo)志
  19. u8 MB_ON=0;                //秒表開啟標(biāo)志
  20. u8 key_num=0;        //功能鍵按下次數(shù)

  21. sbit key_int=P3^2;//外部中斷0

  22. void Init(void);

  23. /************************************************
  24. *功能:主程序
  25. ************************************************/
  26. void main()
  27. {
  28.         Init();        //初始化
  29.        
  30.         while(1)
  31.         {
  32.                 if(sec==60)  { min+=1; sec=0;}        //分加1
  33.                 if(min==60)  { hour+=1; min=0;} //時(shí)加1
  34.                 if(hour==24) { hour=0;}
  35.                
  36.                 if(mb_sec==60)  { mb_min+=1; mb_sec=0;}        //分加1
  37.                 if(mb_min==60)  { mb_hour+=1; mb_min=0;} //時(shí)加1
  38.                 if(mb_hour==24) { mb_hour=0;}
  39.                
  40.                 //計(jì)時(shí)到設(shè)定的鬧鐘時(shí)間,置標(biāo)志
  41.                 if(hour==al_hour&&min==al_min&&sec==al_sec) A_FLAG=1;       
  42.                                                                                                                                                                                        
  43.                 GetValue(num,key_num); //取對(duì)應(yīng)的不同模式的顯示碼,
  44.                 Display(num);                                         //LED數(shù)碼動(dòng)態(tài)顯示時(shí)間
  45.                
  46.                 DingDing();         //鬧鐘響鈴
  47.         }
  48. }


  49. /******************************************
  50. *功能:初始化程序
  51. ******************************************/
  52. void Init(void)
  53. {
  54.         Bee=1;                                                                //關(guān)閉蜂鳴器
  55.         sent_byte(CMD_RESET);        //復(fù)位7279
  56.        
  57.         TMOD&=0xF0;        //清定時(shí)器0工作方式
  58.         TMOD|=0x02;        //方式2,8位自動(dòng)裝填
  59.         TH0=0x06;                //次數(shù)250次,計(jì)數(shù)約271.267us
  60.         TL0=0x06;                //
  61.        
  62.         IP=0x01;                //中斷優(yōu)先級(jí)
  63.         IT0=1;                        //外部中斷0邊沿觸發(fā)
  64.         EA=1;                                //總中斷
  65.         ET0=1;                        //T0中斷
  66.         EX0=1;                        //外部中斷0
  67.         TR0=1;                        //打開定時(shí)器;       
  68.        
  69.         key_int=1;        //外部中斷0引腳拉高(不是必要的)
  70.         num[2]=num[5]=0x0a;        //時(shí)間分隔,編碼0
  71. }

  72. /******************************************
  73. *功能:定時(shí)器0中斷服務(wù)程序
  74. ******************************************/
  75. void TO_time() interrupt 1
  76. {
  77.         count++;
  78.         if(count==3686)
  79.         {
  80.                 sec++;        //時(shí)間秒加1
  81.           if(MB_PAUSE) mb_sec++;                        //秒表秒加1
  82.     count=0;
  83.         }
  84. }

  85. /******************************************
  86. *功能:外部中斷0服務(wù)程序
  87. ******************************************/
  88. void Int_0() interrupt 0       
  89. {
  90.         u8 key_id;        //按鍵值
  91.        
  92. ……………………

  93. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
7279.zip (54.81 KB, 下載次數(shù): 25)


回復(fù)

使用道具 舉報(bào)

ID:289013 發(fā)表于 2021-4-28 18:42 | 顯示全部樓層
有沒有仿真圖?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表