5011214402-徐升阳-花样流水灯实验报告

发布时间:2018-07-01 18:05:44


一:实验目的

1.熟悉AT89C51单片机的引脚结构。

2.根据所学c语言编写代码实现LED灯的流水功能。

3.利用keil生成hex文件后验证功能。

二:实验原理

设计要求以发光二极管作为发光器件,用单片机自动控制,对8LED灯设计至少2种流水灯显示方式,每隔1秒变换一次显示花样,计时通过一个程序显示。

AT89C51单片机内部包括微处理器、存储器(存放程序指令或数据的ROMRAM等)、输入/输出口(I/O口)及其他功能部件如定时/计数器、中断系统等。它们通过地址总线、数据总线和控制总线连接起来。

要实现流水灯功能,只要将发光二极管Led1Led8依次点亮、熄灭,8LED灯便会一亮一暗的做流水灯状,设计花样时可依此类推。此外还应注意的是人眼的视觉暂留效应以及单片机执行每条指令的时间很短,所以控制二极管亮/灭的时候应延时一段时间,否则将无法以肉眼观察到“流水”等花样效果。

实验过程

1)实现流水灯一次点亮

程序编写

#include

void Delay1ms(unsigned int count )

{

unsigned int i, j;

for(i=0;i

for(j=0;j<100;j++);

}

main()

{

unsigned char LEDIndex = 0;

while(1)

{

P1=~(0x01<

LEDIndex=(LEDIndex+1)%8;

Delay1ms(1000);

}

}

2)实现流水灯一次打开并常亮

程序编写

#include

void Delay1ms(unsigned int count)

{

unsigned int i,j;

for(i=0;i

for(j=0;j<100;j++);

}

main()

{

unsigned char LEDIndex=0;

bit LEDDirection=1;

while(1)

{

if(LEDDirection)

P1=-(0x02<

else

P1=-(0x80>>LEDIndex);

if(LEDIndex==7)

LEDDirection=!LEDDirection;

LEDIndex=(LEDIndex+1)%8;

Delay1ms(1000);

}

总结

通过这次实验,我大开眼界,在实验过程中我受易非浅:它让我深刻体会到实验前的理论知识准备,也就是要事前了解将要做的实验的有关质料,如:实验要求,实验内容,实验步骤,最重要的是要记录什么数据和怎样做数据处理,等等。虽然做实验时,指导老师会讲解一下实验步骤和怎样记录数据,但是如果自己没有一些基础知识,那时是很难作得下去的,惟有胡乱按老师指使做,其实自己也不知道做什么。在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则,在老师讲解时就会听不懂,这将使你在做实验时的难度加大,浪费做实验的宝贵时间.如果你不清楚,在做实验时才去摸索,这将使你极大地浪费时间,使你事倍功半.做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做.做实验时,老师还会根据自己的亲身体会,将一些课本上没有的知识教给我们,拓宽我们的眼界,使我们认识到这门课程在生活中的应用是那么的广泛.

5011214402-徐升阳-花样流水灯实验报告

相关推荐