单片机定时器中断程序,C语言程序设计

如题所述

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar keyval;
uchar led1=0xfe,led2=0x55,led3=0x0f;
sbit key=P1^0;
void t0isr() interrupt 1
{
TH0=(65536-60000)/256;
TL0=(65536-60000)%256;
switch(keyval)
{
case 1:
P0=led1;
led1=_crol_(led1,1)
break;
case 2:
P0=led2;
led2=~led2;
break;
case 3:
P0=led3;
led3=~led3;
break;
default:break;
}
}
main()
{
TMOD=0x01;
TH0=(65536-60000)/256;
TL0=(65536-60000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(key==0)
{
while(key==0);
keyval++;
keyval%=4;
}
}
}追问

我想做一个程序,按下K1键启动模式1:红灯亮5秒后灭,延迟1秒,绿灯亮5秒灭,延时1秒再到红灯亮。。。如此循环,此模式工作10分钟停止
按K2键启动模式2:绿灯亮1分钟后灭
(用定时器T0工作方式1)

温馨提示:答案为网友推荐,仅供参考
相似回答