流水灯实验
一、实验目的
学会使用控制I/O端口,控制P0口8位LED流水灯点亮。
二、实验内容
编写并调试一个模仿流水灯的程序,此实验的自由度比较大,用户可以随便编写一个从P0口输出的程序。
三、实验原理及说明
此实验为纯软件实验,程序比较简单,只要把流水点亮P0口8位LED的控制码赋给一个数组,再依次引用数组元素,并送给P0口显示即可。
四、实验设备
PC机
五、实验方法
1.在Proteus ISIS工作环境中绘制好图1流水灯仿真电路图。

图1 流水灯仿真电路图
2..在keil软件中编写下列程序。
#include<reg51.h> //包含单片机寄存器的头文件
/****************************************
函数功能:延时约60ms (3*100*200=60000μs)
****************************************/
void delay60ms(void)
{
unsigned char m,n;
for(m=0;m<100;m++)
for(n=0;n<200;n++)
;
}
/****************************************
函数功能:主函数
****************************************/
void main(void)
{
unsigned char i;
unsigned char code Tab[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定义无符号字符型数组
while(1)
{
for(i=0;i<8;i++)
{
P0=Tab[i];//依次引用数组元素,并将其送P0口显示
delay60ms();//调用延时函数
}
}
}
3.程序经Keil软件编译通过后,就可以利用Proteus软件进行仿真了。