求AT89c52闪烁灯的c语言编程 带注释

求AT89c52闪烁灯的c语言编程
带注释

第1个回答  2015-12-06
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delayms(uint time) //毫秒级延时函数,实际延时时间视系统晶振频率
{
uchar number;
while(time--)
{
for(number=0;number<100;number++) ;
}
}
void main()
{
uchar status = 0xfe ;//定义一个变量,初始值为1111 1110
uchar temp ; //这个变量保存移位的次数
P1 = 0xff ; //关闭输出,假设你的LED接在P1口 用的低电平驱动的
while(1)
{
for(temp=0;temp<=7;temp++) //这个循环体实现8个灯依次点亮一次
{
P1 = status ; //点亮1个LED
delayms(1000) ; //延时1秒
status<<=1 ; //状态左移一位,实现下一个灯点亮
}
P1 = 0xff ; //全部点亮
delayms(1000) ; //延时1秒
P1 = 0x00 ; //全部熄灭
delayms(1000) ; //延时1秒
status = 0xfe ; //复位status值
}
}本回答被提问者和网友采纳