单片机流水灯实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一单片机流水灯实验
一、实验目的
1、熟练掌握实验箱的使用方法和注意事项。
2、了解简单单片机应用系统的设计方法。
3、掌握应用KEIL软件编辑、编译源汇编程序的操作方法。
4、掌握应用仿真器的操作方法。
二、实验内容
在实验箱上实现8个发光LED“流水”的现象,并通过编写程序控制流水现象。
三、实验器材
PC机一台, 仿真器一台, 实验箱一台, 导线若干。
四、实验说明
当AT89C51的P1口有低电平输出时,相应的发光二极管就会点亮。
应用这一原理我们可以容易的点亮一个数码管,例如令P1口输出0111 1111时D1就会点亮。
若再把0111 1111向右循环一位,利用P1口输出,就会点亮D2。
在发光二极管两次点亮的间隔中加延时程序,让每次点亮停留一段时间,像这样人眼就可以看到“流水”的现象。
五、实验原理图
单片机的P1口为准双向口,每一位均可独立定义为输入或输出,若要将P1口的某一位所对应的灯熄灭,则需要向该端口写“0”。
电路图如下:
图3-1 接线图
六、实验步骤
1.按照实验一中的建立工程的步骤,建立本实验内容相应的工程;
2.单片机的P1口接8个发光二极管L0~L7;
3.运用调试工具,调试软件,观察现象;
4.调试计算延时子程序DELAY定时时间。
七、参考程序。
#include<reg51.h>
#include<intrins.h>
int temp;
void delay()
{
int i,j;
for(i=0;i<200;i++)
for(j=0;j<110;j++);
}
void main()
{
temp=0x01;
P1=temp;
delay();
while(1)
{
temp=_crol_(temp,1);
P1=temp;
delay();
}
}
八、实验现象
当程序监测无误后,通过translate,build生成hex文件,并将文件烧入单片机中,点击全速运行,会发现P1口连接的LED灯轮流闪烁。