51单片机8个灯每两个一起亮灯的c语言程序

如题所述

//假设晶振12MHZ,P1控制LED低电平亮
#include "reg51.h"
unsigned int YSJS=0;
unsigned int P1BUF=0X03;
void main(void)
{
TMOD |= 0X10; //定时器1工作于方式1,16位定时器
TH1 = 0XFF; //定时器1定时时间=500uS
TL1 = 0X06;
ET1 = 1; //使能定时器1中断
EA =1; //开总中断
P1 = P1BUF;

while(1)
{
}
}

void TIMER1(void) interrupt 3 //定时器1中断函数使用默认寄存器组
{
TH1 = 0XFF; //定时器1定时时间=500us
TL1 = 0X06;

YSJS++;
if(YSJS==2000) //500uS*2000=1000000us=1s
{
P1 = P1BUF;
YSJS = 0
P1BUF = P1BUF<<2;
IF(P1BUF==0)P1BUF=0X03;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-13
P0=0x03;// 点亮2个灯00000011
while(1)
{
delay_ms(200);//延时
P0<<=2;;// 点亮另外2个灯
if(P0==0xc0)
{
delay_ms(200);//
P0=0x03;
}
}
相似回答