/***********************************************************
* 作者:好心情
* 日期:2007-10-11
* EDN51试验版流水灯仿真,使用proteus进行仿真验证
***********************************************************/
#include <at89x51.h> //头文件,声明51内部的各寄存器
#define uint unsigned int //声明一下方便使用
#define uchar unsigned char
void delay(); //延时函数声明,因为此函数定义在main的后面,所以必须先声明
void main()
{
uchar i;
// 声明一个数组,用来保存花样
uint huay1[9]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; // 单灯花样
uint huay2[4]={0xe7,0xdb,0xbd,0x7e}; // 双灯花样
while(1) //死循环
{
for(i = 0;i<9;i++) // 从P10开始逐个熄灭
{
P1 = huay1;
delay();
}
for(i = 9;i>0;i--) // 从P17开始逐个点亮
{
P1 = huay1[i-1];
delay();
}
for(i = 4;i>0;i--) // 从两边开始向中间点亮
{
P1 = huay2[i-1];
delay();
}
for(i = 0;i<4;i++) // 从P17开始逐个点亮
{
P1 = huay2;
delay();
}
/*不知道按下面的写法为什么会出问题
for(i = 8;i>=0;i--) // 从P17开始逐个点亮
{
P1 = huay1;
delay();
}
*/
}
}
void delay() //延时函数
{
uint i;
for(i = 0;i<=25535;i++); //两各for循环的内容均为空,不执行任何操作
for(i = 0;i<=25535;i++);
for(i = 0;i<=25535;i++);
}
文章评论(0条评论)
登录后参与讨论