標(biāo)題: 51單片機(jī)制作一個定時鬧鐘程序 [打印本頁]

作者: 12eds    時間: 2020-5-23 22:36
標(biāo)題: 51單片機(jī)制作一個定時鬧鐘程序
這里是源碼部分
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit we=P2^7;
  5. sbit du=P2^6;
  6. uchar code table[]={0x3f,0x06,0x5B,0x4F,0x66,
  7.                0x6D,0x7D,0x07,0x7F,0x6F,
  8.                0x77,0x7C,0x39,0x5E,0x79,
  9.                0x71,0x76,0x38,0x37,0x3E,
  10.                0x73,0x5C,0x40,0x00,};
  11. uchar num=0,aa,s,g,m,f,h;
  12. void delay(uchar x);
  13. void main()
  14. {   
  15.     TMOD=0x01;    //設(shè)置內(nèi)部中斷0,1的工作方式為方式1   
  16.     EA=1;          //開總中斷
  17.     ET0=1;        //允許中斷   
  18.     TR0=1;          //開中斷0         
  19.     TH0=0x4c;
  20.     TL0=0x00;
  21.     while(1)
  22.     {   
  23.             du = 1;
  24.             P0 = 0;
  25.             du = 0;

  26.             we = 1;
  27.             P0 = 0x3e;
  28.             we = 0;

  29.             du = 1;
  30.             P0 = table[s];      //十位
  31.             du = 0;

  32.             delay(10);

  33.             du = 1;
  34.             P0 = 0;
  35.             du = 0;

  36.             we = 1;
  37.             P0 = 0x3d;
  38.             we = 0;


  39.             du = 1;
  40.             P0 = table[g];         //個位
  41.             du = 0;
  42.             delay(10);

  43.             du = 1;
  44.             P0 = 0;
  45.             du = 0;

  46.             we = 1;
  47.             P0 = 0x1f; //顯示分鐘
  48.             we = 0;

  49.             du = 1;
  50.             P0 = table[m];
  51.             du = 0;

  52.             delay(10);

  53.             du = 1;
  54.             P0 = 0;
  55.             du = 0;

  56.             we = 1;
  57.             P0 = 0x2f;
  58.             we = 0;

  59.             du = 1;
  60.             P0 = table[h];      
  61.             du = 0;

  62.             delay(10);

  63.         if(aa == 20)   
  64.         {            
  65.             aa = 0;
  66.             if(num == 59)
  67.             {
  68.                 num = 0;
  69.                 f++;
  70.             }
  71.             else
  72.                 num++;
  73.             s = num/10;
  74.             g = num%10;
  75.             m = f%10;
  76.             h = f/10;               
  77.         }
  78.         if(h == 6)
  79.         f = 0;
  80.     }
  81. }
  82. void timer0() interrupt 1 //內(nèi)部中斷0
  83. {
  84.     TH0=0x4c;
  85.     TL0=0x00;
  86.     aa++;
  87. }
  88. void delay(uchar x)
  89. {
  90.     uchar y,z;
  91.     for(y=x;y>0;y--)
  92.         for(z=120;z>0;z--)

  93. }
復(fù)制代碼


作者: admin    時間: 2020-5-24 19:24
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)




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