/*单片机流水灯c程序*/
/*本程序中流水灯为共阳极*/
#include <reg51.h>
#include <intrins.h>//51c语言中的头文件:是将第一个参数循环左移n位
#define uchar unsigned char
#define uint unsigned int
//最初算的时候,是按照xms*111(如1*111=111us=0.111ms可是还要加上判断周期,减减周期,是最终的时间按达到1ms)
void delay(uint xms)
{
uint i,j; //(仿真过的),此程序延时x‘ms’
for (i=xms;i>0;i--) //这个延时时间是按照12M的晶振来推算出来的,此时一个机器周期是1us
for(j=111;j>0;j--)
;
}
void main()
{
unsigned char LED;
LED=0xfe; //不能直接把0xfe付给P0口,因为如果直接付给的话,PO口就是一个固定的值,没法进行位的移动
P0=LED;
while(1)
{
delay(500); //延时500ms
LED=_crol_(LED,1);//循环左移1位,点亮一个LED
P0=LED;
}
}