找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 4196|回復(fù): 0
收起左側(cè)

單片機60秒倒計時程序+Proteus仿真,初學(xué)者編寫

[復(fù)制鏈接]
ID:350993 發(fā)表于 2019-7-1 09:18 | 顯示全部樓層 |閱讀模式
初學(xué)者,嘗試做一個60S的倒計時。實驗圖如下; 單片機上傳.png


這個程序是60S倒計時,達到0時,重新賦初值為60,繼續(xù)進行減計時,循環(huán)往復(fù)。
單片機源程序如下:
  1. //60S倒計時程序
  2. #include<reg52.h>
  3. #define uchar unsigned char  
  4. #define uint unsigned int
  5. uchar temp,bai,shi,ge,num;
  6. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  7. void delay(uint z);
  8. void main()
  9. {  
  10.         temp=60;  
  11.         num=0;
  12.         P1=0x00;  
  13.         TMOD=0x01;  
  14.         TH0=(65536-55536)/256;   
  15.         TL0=(65536-55536)%256;
  16.         EA=1;  ET0=1;  TR0=1;  
  17.         while(1)
  18.         {
  19.                 shi = temp/10;
  20.                 ge = temp%10;
  21.                 P1 = 0xFD;
  22.                 P2 = table[shi];
  23.                 P1 = 0xFD;
  24.                 delay(5);
  25.                 P1 = 0xFE;
  26.                 P2 = table[ge];
  27.                 delay(5);               
  28.         }
  29. }
  30. //定時器0外部中斷方式
  31. void time_0() interrupt 1
  32. {
  33.         TH0=(65536-55536)/256;   
  34.         TL0=(65536-55536)%256;
  35.         num ++;
  36.         if(num == 18)
  37.         {
  38.                 temp --;
  39.                 num = 0;
  40.                 if(temp == -1)
  41.                 {
  42.                         temp = 60;
  43.                 }
  44.         }
  45. }
  46. //延時程序
  47. void delay(uint z)
  48. {
  49.         uint x,y;
  50.         for(x=z;x>0;x--)
  51.         for(y=110;y>0;y--);
  52. }
復(fù)制代碼
全部資料51hei下載地址:
60S程序+仿真.zip (87.35 KB, 下載次數(shù): 55)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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