单片机C语言程序设计:TIMER0与TIMER1控制条形LED
/* 名称:TIMER0 与 TIMER1 控制条形 LED
说明:定时器 T0 定时控制上一组条形 LED,滚动速度较快
定时器 T1 定时控制下一组条形 LED,滚动速度较慢
*/
#includereg51.h>
#includeintrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar tc0=0,tc1=0;
//主程序
void main()
{
P0=0xfe;
P2=0xfe;
TMOD=0x11; //定时器 0、定时器1 均工作于方式 1
TH0=(65536-15000)/256; //定时器 0:15ms
TL0=(65536-15000)%256;
TH1=(65536-50000)/256; //定时器 1:50ms
TL1=(65536-50000)%256;
IE=0x8a;
TR0=1; //启动定时器
TR1=1;
while(1);
//T0 中断函数
void Time0() interrupt 1
{
TH0=(65536-15000)/256; //恢复定时器0初值
TL0=(65536-15000)%256;
if(++tc0==10) //150ms 转换状态
{
tc0=0;
P0=_crol_(P0,1);
}
}
//T1 中断函数
void Time1() interrupt 3
{
TH0=(65536-50000)/256; //恢复定时器 1 初值
TL0=(65536-50000)%256;
if(++tc1==10) //500ms 转换状态
{
tc1=0;
P2=_crol_(P2,1);
}
}
评论