给个参考程序:
#include <reg51.h>
int count = 0;
sbit output = P3^0;
sbit led0 = P1^0;
sbit led1 = P1^1;
sbit led2 = P1^2;
sbit led3 = P1^3;
sbit led4 = P1^4;
sbit led5 = P1^5;
sbit led6 = P1^6;
sbit led7 = P1^7;
void initialize()
{
/*TMOD|=0X02;
TH0=0x10;//1us-0x9c;20us-0x3c;
TL0=0x10;
TR0=1;//也可以到用时才启动
ET0=1;
EA = 1;*/
ET0 = 1;//定时器中断打开
TMOD = 0x01;//定时器工作方式 01-16位
TR0 = 1;//启动定时器0
TH0 = 0x38;//0x3800-50ms;//
TL0 = 0x00;//
EA = 1;
}
int main (void)
{
initialize();
while(1)
{
char e0,e1,e2,e3,e4,e5,e6,e7;
if(count == 2){led0=!led0;e0=e0+1;count=0;}
if(e0 == 2) {led1=!led1;e1=e1+1;e0=0;}
if(e1 == 2) {led2=!led2;e2=e2+1;e1=0;}
if(e2 == 2) {led3=!led3;e3=e3+1;e2=0;}
if(e3 == 2) {led4=!led4;e4=e4+1;e3=0;}
if(e4 == 2) {led5=!led5;e5=e5+1;e4=0;}
if(e5 == 2) {led6=!led6;e6=e6+1;e5=0;}
if(e6 == 2) {led7=!led7;e7=e7+1;e6=0;}
}
}
void timer0() interrupt 1
{
TH0 = 0x38;//0xFF;//
TL0 = 0x00;//
count++;//计数
output=!output;
}
|