/*********************《 流水灯程序 》******************************
说明:此程序基于开发板HC151_1.5V开发的源程序,其它开发板只需修改引脚即可
跳线帽JP3: 短接2-3脚
端口J10:与对应的单片机I/O口相接,本程序为J10与P0口短接
晶振12.0MHz
描述: 该程序实现LED的流水灯显示。
本例中是调用的 intrins.h 中的函数实现的循环移位。
——晖创电子制作——
*************************************************** —www.schuitron.com—*/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
/********************************************************************
* 名称 : Delay()
* 功能 : 延时,延时时间为 10ms * n
* 输入 : n
* 输出 : 无
***********************************************************************/
void Delay(uint n)
{
uint i,j;
for(i=0; i<n; i++)
for(j=0; j<1827; j++)
;
}
/********************************************************************
* 名称 : Main()
* 功能 : 实现灯的闪烁
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Main(void)
{
uchar i;
P0 = 0xFF;
while(1)
{
P0 = 0x7f;//P0.7亮亮
for(i=0; i<7; i++)//移位7次
{
P0 = _cror_(P0, 1);//_crol_()这个函数在intrins.h中定义了,用于循环右移
Delay(15);
}
P0 = 0xfe;
for(i=0; i<7; i++)
{
P0 = _crol_(P0, 1); //用于循环左移
Delay(15);
}
}
}