【51单片机开始第一灯亮间隔1位流水,2个外部中断按键控制流水方向和中间4灯亮】2022-12-20
缘由单片机摁键控制led-嵌入式-CSDN问答
//缘由https://ask.csdn.net/questions/7865351?spm=1005.2025.3001.5141
#include "reg52.h"
bit k0=0,k1=0;
unsigned char Js=0;
void ZhongDuanSheZhi()
{TH0+=(65536-10000)/256;/*定时器赋初值,定时10ms触发中断,自动补偿方式*/TL0+=(65536-10000)%256; /*11.0592MHz/12=921600Hz就是1秒921600次机器周期*/TMOD=0X01;TR0=1; ET0=1; //开启定时器EA=1; //全局中断开关IT1=IT0=EX0=EX1=1;
}
void ZhongDuan() interrupt 1
{++Js;TH0+=(65536-(9216+674))/256;/*定时器赋初值,定时10ms触发中断,自动补偿方式*/TL0+=(65536-(9216+674))%256; /*11.0592MHz/12=921600Hz就是1秒921600次机器周期*/
}
void EX0_ISP()interrupt 0
{k0=~k0;
}
void EX1_ISP()interrupt 2
{k1=~k1;
}
void main()
{unsigned char Ys=0;ZhongDuanSheZhi();P2=0;while(1){if(k1)P2=60;else{if(Js==100){Js=0;if(k0){if(P2==0)P2=1;else P2*=4;}else{if(P2==0)P2=128;else P2/=4;}}}}
}