单片机中断实验2(按下松开后开始)

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar Led[] = {0xfa,0xf5,0xaf,0x5f,0xaa,0x55,0x00,0xff};
uchar temp;
uchar k;
void main(){
 uchar i;
 k = 0;
 temp = 0;
 TMOD = 0x01;
//计数模式为1时间为65535,0x10是256
 TH0 = (65535-50000)/256;
 TL0 = (65535-50000)%256;
 EA = 1;//总中断
 EX0 = 1;//外部中断
 while(1){
  if(temp == 1){
    for(i=0;i<8;i++){
     P1 = Led[i];
     while(k<20);//20*50ms
     k=0;
    }
  }
 }
}
void wbdd()interrupt 0{
 while(IE0 == 1);//松开后退出循环
 temp = 1;
 ET0 = 1;//定时器溢出中断
 TR0 = 1;//开始计时
}
void int0() interrupt 1{
 TH0 = (65535-50000)/256;//高8位初始化时间
 TL0 = (65535-50000)%256;//低8位初始化时间
 k++;
}
 
 
 
posted @ 2023-09-29 22:25  ~墨白  阅读(76)  评论(0)    收藏  举报