找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機60分鐘100秒倒計時Proteus仿真程序

[復(fù)制鏈接]
ID:304996 發(fā)表于 2020-3-30 23:01 | 顯示全部樓層 |閱讀模式
60分鐘100秒倒計時,數(shù)碼管實現(xiàn)。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. uchar u,j,sum,qian,bai,shi,ge;
  5. char fen,miao;
  6. uchar code table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  7. uchar code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};

  8. sbit wei1=P2^3;
  9. sbit wei2=P2^2;
  10. sbit wei3=P2^1;
  11. sbit wei4=P2^0;



  12. sbit k5=P1^4;                   // 復(fù)位
  13. sbit k6=P1^5;                  //暫停或繼續(xù)



  14. sbit duan=P3^2;

  15.   void delay(uint z)
  16. {
  17.         uint x,y;
  18.         for(x=z;x>0;x--)
  19.                 for(y=110;y>0;y--);
  20. }
  21. void dsq();//定時器

  22. void anjian()                                        //按鍵子函數(shù)
  23. {
  24.   if(k6==0)                                        //開始、復(fù)位
  25.         {                                                       
  26.              delay(10);
  27.          if(k6==0)
  28.          {
  29.                 EA=!EA;
  30.                                           
  31.              }
  32.              while(!k6);
  33.                  delay(10);
  34.                  while(!k6);
  35.          }



  36.           if(k5==0)                                  
  37.          {
  38.              delay(10);
  39.                   if(k5==0)
  40.                  {
  41.                            fen=60;
  42.                            miao=99;   
  43.                  }
  44.              while(!k5);
  45.                  delay(10);
  46.                  while(!k5);
  47.          }


  48. }
  49. void display()                                                           //顯示子程序
  50. {
  51.             wei1=0;
  52.                         duan=1;
  53.                         P0=table[ge];
  54.                         duan=0;
  55.                         delay(3);
  56.                         wei1=1;
  57.                
  58.                         wei2=0;
  59.                         duan=1;
  60.                         P0=table[shi];
  61.                         duan=0;
  62.                         delay(3);
  63.                         wei2=1;

  64.                         wei3=0;
  65.                         duan=1;
  66.                         P0=table1[bai];
  67.                         duan=0;
  68.                         delay(3);
  69.                         wei3=1;

  70.                         wei4=0;
  71.                         duan=1;
  72.                         P0=table[qian];
  73.                         duan=0;
  74.                         delay(3);
  75.                         wei4=1;

  76.                                            
  77. }
  78. void main()
  79. {
  80.     dsq();
  81.     fen=60;
  82.           miao=0;
  83.        

  84.         while(1)
  85.         {
  86.                    anjian();
  87.                  display();
  88.                  if(u==20)
  89.         {
  90.                 u=0;
  91.                 qian=fen/10;
  92.                 bai=fen%10;
  93.                 shi=miao/10;
  94.                 ge=miao%10;
  95.                 miao--;
  96.                
  97.         }
  98.                 if(miao==-1)
  99.                 {
  100.                         miao=99;
  101.                         fen--;
  102.                 }
  103.                 if(fen==-1)
  104.                 {
  105.                 fen=60;
  106.                 miao=0;
  107.                 }
  108.                
  109.                
  110.         }               
  111. }



  112. void T0_time() interrupt 1
  113. {
  114.      TH0=(65536-50000)/256;
  115.          TL0=(65536-50000)%256;
  116.          u++;
  117.          
  118. }
  119. void dsq()//定時器
  120. {
  121.         TMOD=0X11;
  122.         TH0=(65535-50000)/256;
  123.         TL0=(65535-50000)%256;
  124.         EA=1;
  125.         ET0=1;
  126.         TR0=1;
  127. }       
復(fù)制代碼

所有資料51hei提供下載:
60分鐘100秒倒計時仿真.rar (119.61 KB, 下載次數(shù): 71)


回復(fù)

使用道具 舉報

ID:732530 發(fā)表于 2020-5-2 16:49 | 顯示全部樓層
為啥74HC573的輸出電平?jīng)]變化
回復(fù)

使用道具 舉報

ID:732530 發(fā)表于 2020-5-2 17:00 | 顯示全部樓層
為什么573的輸出引腳的電平?jīng)]有變化啊
回復(fù)

使用道具 舉報

ID:784816 發(fā)表于 2020-6-20 11:12 | 顯示全部樓層
573輸出引腳沒有變化
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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