实验五 LED小灯实验
- 格式:doc
- 大小:118.50 KB
- 文档页数:4
实验五 LED流水灯实验
实验报告内容及格式
1.实验目的
2.实验设备
3.实验原理及环境
4.实验内容
只做文字叙述,程序部分放在程序清单中。
5.程序清单
本实验使用的完整程序。
如果使用了本实验或前面实验中完全相同的子程序,可不列写,只做注明即可。
6.实验步骤
7.实验总结
主要包括对实验结果、调试过程、错误及产生的原因的分析,以及本次实验的重要收获等。
此项为实验成绩评定的重要依据。
实验目的:
掌握PROTEUS软件的使用方法
利用PROTEUS软件画出单片机控制跑马灯的电路原理图,然后编程实现发光二极管依次点亮,间隔1s.
学会将程序下载到单片机的使用方法。
实验设备:
SC5204开发板、安装有KEIL、PROTEUS仿真软件的计算机一台
实验原理及环境:
1. 实验板上有8个LED灯,通过74HC573芯片与单片机的P0口相连接,当输出口为0 时,发光二级管点亮;输出位为1时,发光二极管熄灭。
2. 8D锁存器74HC573芯片特点:
(1)三态总线驱动输出
(2)置数全并行存取
(3)缓冲控制输入
(4)使能输入有改善抗扰度的滞后作用
74HC573引脚图:
3.SC5204实验板原理图
实验内容:
1.用keil软件编写一个8位LED流水灯程序。
该程序的要求如下:
(1)自己设计点亮顺序。
(2)每个灯亮的时间为1秒。
2.生成.Hex工程文件
3.用proteus仿真软件仿真出上述原理图,然后装载.HEX文件进行调试
4.用STC-ISP软件将程序下载在SC5204实验板上,验证实验结果。
预习要求:
理解实验原理,熟悉实验环境。
编写实现本实验要求的程序,并生成*.asm文件,将这个文件放在U盘上备用。
实验步骤:
1.建立一个工程,将在预习中做好的实验内容键入,并生成*.asm文件,加入工程中。
2.用proteus仿真软件画出原理图。
3.将*.asm文件编译后与仿真图连接,运行,调试。
4.如果运行结果不正常,可以用设断点、单步运行的方法查找错误所在,修改后重新编
译。
5.与单片机硬件连接,运行。
重要提示:
1.实验板必须断电后才能进行接线操作。
2.指令中的“,:;”是西文字符,切不可使用中文符号;数字“0”与字符“O”不可混淆。
3.软件延时可以用循环程序实现,单片机的时钟为12MHz,每条指令的执行时间可以从教材的附表中查出。
4.程序的起始地址必须为0000H(以后各实验均同)。
5.对程序修改后必须退出硬件连接,进行编译后再重新进行硬件连接才能生效。
参考仿真图:
图2.1实验仿真图
这个实验实现一个小灯的移动,最直接的方法就是对位进行操作,比如CLR P0.5就能点亮该引脚控制的那个小灯。
不直接对位操作也可以实现对位的操作的,这种方式更好一些因为八个小灯每次都在你控制之中。
可以尝试做出各种移动方式,比如多个一起移动或两头同时相向移动遇到之后又返回去等等很多花样。
多做多想多实践,这是唯一学好单片机或者某种技术的比较可靠的途径。
参考程序:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: SETB P1.1
MOV P0,#0xFF
CLR P1.1 ;这一段三个语句是关闭数码管
SETB P1.3
MOV P0,#0x00
CLR P1.3 ;关闭点阵
SETB P1.2 ;使能控制LED小灯的锁存器
CLR C
MOV R0,#01H ;用于实现小灯移动的一个变量
ChongZhuang: MOV R3,#14 ;R3用于判断小灯是否已移到最边缘的那一个XUNHUAN:MOV A,R0
CPL A ;小灯是低电平点亮,所以取反后就只点亮一个
MOV P0,A
ACALL YANSHI
MOV A,R3
SUBB A,#8 ;判断是否移到了最边缘的那一个小灯
JNC LEFT ;否,则继续该方向移动。
是,则转移至LEFT进行反方向移动
MOV A,R0
RR A
MOV R0,A ;对R0进行不带进位循环右移,即实现小灯的移动
AJMP AGAIN
LEFT: MOV A,R0
RL A
MOV R0,A
AGAIN: DEC R3
MOV A,R3
CLR C
JZ ChongZhuang ;判断R3是否为零,是,则重新装数
AJMP XUNHUAN ;反复循环
YANSHI: ;非精确延时子程序
MOV R4,#5
YS0: MOV R2,#0FFH
YS1: MOV R1,#0FFH
YS2: DJNZ R1,YS2
DJNZ R2,YS1
DJNZ R4,YS0
RET
END。