標題: 基于C51單片機中斷系統(tǒng)做兩位電子秒表70秒倒計時例子 [打印本頁]

作者: 盧OK    時間: 2020-11-27 23:20
標題: 基于C51單片機中斷系統(tǒng)做兩位電子秒表70秒倒計時例子
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg51.h>


  2. char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};      //共陰極LED字模


  3. sbit P3_0=P3^0;                                                          //定義位變量
  4. sbit P3_1=P3^1;

  5. unsigned char  x,y,num=70,n=0;          //宏定義 num為秒表時間設(shè)置函數(shù)


  6. void delay(unsigned int time)
  7. {                                          //延時1ms函數(shù)
  8.      unsigned int j=0;
  9.         for(;time>0;time--)
  10.       for(j=0;j<125;j++);
  11. }
  12. void key() interrupt 1
  13. {                                                                                                 //中斷函數(shù)               
  14.      TL0 = 0xB0;                                                        //初值重裝
  15.      TH0 = 0x3C;
  16.      n++;                                                               //計時
  17.      if(n==20)                                                          //1s到了
  18.         {
  19.                 n=0;                                                    //每秒重置一次
  20.                 if(num==0)  num=70;                                    //每70s循環(huán)
  21.                 x=num/10;                                               //LED顯示十位
  22.                 y=num%10;                                               //LED顯示個位
  23.                 num--;                                                  //每定時1s,倒計時減一秒
  24.         }
  25. }
  26. void main()
  27. {
  28.     TMOD = 0x01;                                                        //T0工作在方式1
  29.     TL0 = 0xB0;                                                         //50ms
  30.     TH0 = 0x3C;
  31.     ET0 = 1;                                                            //開定時器0中斷允許位
  32.     EA = 1;                                                             //開總中斷
  33.     TR0 = 1;                                                            //開定時器0
  34.     while(1)
  35.         {                                                                           //數(shù)碼管的動態(tài)顯示
  36.         P3_1 = 1;                                                       //數(shù)碼管的個位顯示
  37.         P2 = led_mod[x];
  38.         P3_0 = 0;
  39.         delay(5);

  40.         P3_0 = 1;                                                       //數(shù)碼管的十位顯示
  41.         P2 = led_mod[y];
  42.         P3_1 = 0;  
  43.         delay(5);
  44.                 }
  45. }
復(fù)制代碼

所有資料51hei提供下載:
基于C51中斷系統(tǒng)做兩位電子秒表例子.rar (32.25 KB, 下載次數(shù): 34)



作者: 杜少卿    時間: 2020-11-28 18:23
good





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1