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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1658|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)做的帶數(shù)碼顯示定時(shí)器源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:280154 發(fā)表于 2018-1-27 11:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
可調(diào)延時(shí)關(guān)斷時(shí)間
單片機(jī)源程序如下:
  1. /*****************************************************************************************************************************
  2.    1.開(kāi)機(jī),外接觸摸開(kāi)關(guān)K1為高電平,定時(shí)器正常倒計(jì)時(shí),繼電器吸合接通LED點(diǎn)亮,如中途無(wú)操作,定時(shí)40分鐘后斷開(kāi)繼電器, LED熄滅。
  3.    2.如果開(kāi)機(jī)正常倒計(jì)時(shí)過(guò)程中,用戶不需要LED點(diǎn)亮,則按下觸摸開(kāi)關(guān)K1,K1為低電平,定時(shí)器停止工作并恢復(fù)初始定時(shí)狀態(tài),繼電器斷開(kāi)
  4.      等待下次K1出現(xiàn)高電平時(shí),再正常倒計(jì)時(shí)工作。
  5. *******************************************************************************************************************************/

  6. #include<reg52.h>

  7. unsigned int time;   //中斷次數(shù)變量            
  8. unsigned char second10, second1,minute10,minute1;  //定義十分、個(gè)分、十秒、個(gè)秒
  9. unsigned char min=40,sec=59;  //設(shè)置倒計(jì)時(shí)時(shí)間

  10. sbit jdq=P1^4;         //繼電器為P1.4口
  11. sbit fmq=P1^3;         //蜂鳴器為P1.3口
  12. sbit K0=P3^2;        //定義外中斷INT0為P3.2口
  13. sbit min10=P1^0;
  14. sbit min1=P1^1;

  15.                                                           

  16. unsigned char code duanma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};  //數(shù)碼管0至9段碼


  17. //unsigned char code wiema[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};  //8位共陽(yáng)數(shù)碼管        0x7f為最右側(cè)的數(shù)碼管

  18. /********************************************
  19. 延時(shí)子程序0.25MS
  20. ******************************************/
  21. void delay(unsigned int i)      
  22. {
  23. unsigned char j;
  24. while(i--)
  25. {
  26.    for(j=25;j>0;j--);
  27. }
  28. }

  29. /***********************************************
  30.    數(shù)碼管顯示子程序
  31. **********************************************/
  32. void display(minute10,minute1,second10, second1)      
  33. {

  34. min10=1;
  35. min1=1;
  36. P0=duanma[minute10];
  37. min10=0;
  38. delay(6);

  39. min10=1;
  40. min1=1;
  41. P0=duanma[minute1];
  42. min1=0;
  43. delay(6);

  44. }



  45. /****************************************************
  46.           蜂鳴器發(fā)聲函數(shù),每1次大約響1秒
  47. ****************************************************/
  48. void beep(unsigned char a)        //
  49. {
  50. unsigned int b;
  51. while(a--)
  52.   {
  53.   for(b=0;b<1000;b++)
  54.   {
  55. fmq=0;
  56. delay(1);
  57. fmq=1;
  58. delay(1);

  59. }
  60. }
  61. }

  62. /**********************************************/
  63. main()
  64. {
  65. TMOD=0x01;     //T0工作模式是方式1
  66. TH0=0x49;      //定義初始值為50ms   此初值用11.0592MHZ晶振,實(shí)測(cè)40分鐘誤差3秒
  67. TL0=0x44;

  68. EA=1;                    //開(kāi)總中斷
  69. ET0=1;                        //允許定時(shí)器T0中斷
  70. TR0=1;         //開(kāi)啟T0計(jì)時(shí)

  71. EX0=1;
  72. IT0=1;
  73. delay(800);

  74. while(1)
  75.      {

  76.    if(K0==1)
  77.    {
  78. TR0=1;
  79. jdq=0;
  80. if(K0==1&&min==0)
  81.   {TR0=0;min=0;sec=0;jdq=1;
  82.   }
  83.    }
  84. display(min/10,min%10,sec/10,sec%10);

  85.      }
  86. }

  87. /****************************************************/
  88. void int0() interrupt 0         //外中斷0
  89. {
  90. if(K0==0)
  91. {
  92. delay(500);
  93. if(K0==0)
  94. {

  95. TR0=0;
  96. jdq=1;
  97. beep(1);
  98. min=40;sec=59;
  99. }
  100. }
  101. }

  102. /*********************************************/
  103. void timer0() interrupt 1          //T0中斷
  104. {

  105. TH0=0x49;
  106. TL0=0x44;

  107. time++;
  108. if(time==20)            //50ms*20=1秒
  109. {
  110.    time=0;
  111.    sec--;
  112. if(sec==0)
  113. {
  114.   sec=59;
  115. ……………………

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

所有資料51hei提供下載:
yskz.rar (1.36 KB, 下載次數(shù): 18)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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