// 任务4 制作跑马灯 不带参数
#include <reg51.h> //1 将特殊功能寄存器定义文件reg51.h包含至程序中
#define uchar unsigned char //2 宏定义:uchar代表unsigned char
#define ulong unsigned long //3 宏定义:ulong代表unsigned long
#define ledport P2
void delay(void);
void led8blink(char n); //8盏小灯
void pmd(void);
void main(void) //4 main函数数
{
led8blink(2);
while(1)
{
pmd();
}
}
void pmd()
{
uchar k=0xfe; //5 定义变量m:m用来保存显示控制数据,初值为0xfe
ulong i;
int count=8; //6 定义无符号长整型变量i
while(count) //7 while循环,条件表达式为1,永远为真,死循环
{ //8 while循环体开始
P2=k; //9 P1口输出当前显示控制数据
k=(k<<1)|(k>>7); //10 显示数据m向左循环移1位,为下次显示输出作准备
for(i=0;i<6000;i++);
count--; //11 for循环实现1s延时,循环体为空语句
}
} //13 main函数结束
void led8blink(char n)
{
char i;
for(i=0;i<2*n;i++)
{
ledport=~ledport; //状态取反
delay(); //延时
}
}
void delay(void) //delay子函数,返回值为空
{ unsigned long i; //定义长整形变量i
for(i=0;i<12500;i++); //for循环,循环体为空,耗时
} //delay函数结束