標(biāo)題: 八位數(shù)碼管時(shí)鐘 利用單片機(jī)INT0,INT1兩個(gè)引腳的中斷程序 [打印本頁]

作者: dashisong    時(shí)間: 2018-1-17 20:33
標(biāo)題: 八位數(shù)碼管時(shí)鐘 利用單片機(jī)INT0,INT1兩個(gè)引腳的中斷程序
八位數(shù)碼管時(shí)鐘。利用 INT0,INT1兩個(gè)引腳的中斷程序
  1. #include<reg51.h>
  2. sbit led=P1^0;
  3. sbit led1=P1^1;
  4. sbit led2=P1^2;
  5. sbit led3=P1^3;
  6. sbit led4=P1^4;
  7. sbit led5=P1^5;
  8. sbit led6=P1^6;
  9. sbit led7=P1^7;
  10. unsigned char t[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  11. unsigned int h,m,s;
  12. void ys()
  13. {
  14.         int k;
  15.         for(k=125;k>0;k--);

  16. }
  17. void js()
  18. {
  19.         s++;
  20.         if(s==60)
  21.         {
  22.                 s=0;
  23.                 m++;
  24.                 if(m==60)
  25.                 {
  26.                         m=0;
  27.                         h++;
  28.                         if(h==24)
  29.                         {
  30.                                 h=0;
  31.                         }
  32.                 }
  33.         }
  34. }
  35. void xs()
  36. {
  37.         led=1;
  38.         P2=t[h/10];
  39.         ys();
  40.         led=0;
  41.       
  42.         led1=1;
  43.         P2=t[h%10];
  44.         ys();
  45.         led1=0;
  46.       
  47.         led2=1;
  48.         P2=0xbf;
  49.         ys();
  50.         led2=0;
  51.       
  52.         led3=1;
  53.         P2=t[m/10];
  54.         ys();
  55.         led3=0;
  56.       
  57.         led4=1;
  58.         P2=t[m%10];
  59.         ys();
  60.         led4=0;
  61.       
  62.         led5=1;
  63.         P2=0xbf;
  64.         ys();
  65.         led5=0;
  66.       
  67.         led6=1;
  68.         P2=t[s/10];
  69.         ys();
  70.         led6=0;
  71.       
  72.         led7=1;
  73.         P2=t[s%10];
  74.         ys();
  75.         led7=0;
  76.       
  77. }

  78. void main()
  79. {
  80.         EX0=1;
  81.         EX1=1;
  82.         EA=1;
  83.         while(1)
  84.         {
  85.                 xs();
  86.                 js();
  87.         }
  88. }

  89. void w() interrupt 0
  90. {
  91.         while(INT0==0);
  92.         h=0;m=0;s=0;

  93. }

  94. void w1() interrupt 2
  95. {
  96.         while(INT1==0);
  97.         h--;if(h==0) h=24;

  98. }
復(fù)制代碼








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