标题:
16个LED的灭着移动(c语言定时器T0)
[打印本页]
作者:
daniu
时间:
2014-12-27 19:08
标题:
16个LED的灭着移动(c语言定时器T0)
;张培 QQ:
;本程序实现16个LED的灭着移动 */
#include <reg51.h>
#define uchar unsigned char
#define unit unsigned int
bit BT0;//定义20MS时间标志位
main()
{
unit a,b,timecount;
TMOD=0X01;//T0工作方式1
TH0=0X0B1;
TL0=0X0E0;
TR0=1;//开启T0
EA=1;//开启总中断
ET0=1;//开启T0中断
timecount=25;
a=0xfe;
while (1)
{
P2=a;
if (BT0==1)
{ BT0=0;
if (timecount==0)//如果时间到0.5S往下执行,否则timecount--
{
timecount=25;
a=a<<1;
a=a|0x01;
P2=a;
if (P2==0Xff)//如果P2=FF把A的高八位给B
{ b=a;
b=b/256;
P3=b;
if (P3==0xff)//如果P3=FF,把A赋FE返回
{a=0xfe;}
}
}
else
{timecount--;}
}
}
}
void T0SER(void) interrupt 1 using 1//T0重新赋初植
{
TH0=0X0B1;
TL0=0X0E0;
BT0=1;
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1