亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

中斷可調數碼管程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2010年09月06日   【字體:

  按K1數碼管加一,按K2數碼管減一,按K3打開和停止中斷,按K4清零,此程序在自己制作的學習板(資料: http://www.denmoz.com/mcu/1019.html)上正常運行.


#include"reg51.h"
#define uchar unsigned char 
uchar code smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar shi,ge,num,numt0;

void delayms(uchar aa)
  {
   uchar i,j;
   for(i=aa;i>0;i--)
   for(j=110;j>0;j--);
   }

 sbit K1=P3^0;
 sbit K2=P3^1;
 sbit K3=P3^2;
 sbit K4=P3^3;

 sbit wx1=P1^0;
 sbit wx2=P1^1;

void display(num)
  {
  shi=num/10;
  ge=num%10;

  wx1=1;
  P2=smg[shi];
  delayms(10);
  wx1=0;

  wx2=1;
  P2=smg[ge];
  delayms(10);
  wx2=0;
  }

void init()
  {
   TMOD=0x01;
   TH0=(65536-45872)/256;
   TL0=(65536-45872)%256;
   EA=1;
   ET0=1;
   }


void Kscan()
   {
  if(!K1)
 {
   delayms(10);
     if(!K1)
    {
      num++;
        if(num==60) num=0;          
            while(!K1);
          }
           }
  if(!K2)
 {
   delayms(10);
      if(!K2)
       {
         if(num==0) num=60;
           num--;
             while(!K2);
              }
               }

   if(!K3)
 {
   delayms(10);
    if(!K3)
    {
     while(!K3);
      TR0=~TR0;
   }
  }

   if(!K4)
 {
   delayms(10);
 if(!K4)
 {
      num=0;
   while(!K4);
   }
  }
 }

void main()
 {
     init();
   while(1)
     {
       Kscan();
        display(num);
       }
      }


void T0_timer() interrupt 1
  {
   TH0=(65536-45872)/256;
   TL0=(65536-45872)%256;
   numt0++;
   if(numt0==20)
   {
   numt0=0;
   num++;
   if(num==60)
   num=0;
   }
   }
關閉窗口

相關文章