实验二 查表指令实现流水灯控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 查表指令实现流水灯控制
一、实验目的
1、熟悉Keil uVision2软件的使用;
2、掌握流水灯控制;
3、掌握延时程序的编制;
二、实验设备及仪器
Keil μVision2软件;单片机开发板;PC 机一台
三、实验原理及内容
1、LED 流水灯模块电路原理图,如图2.1所示。
U7+5V 图2.1 LED 流水灯模块原理图 (1)74HC573为8位三态输出锁存器,各引脚功能: D0~D7为输入端(接到P0口); Q0~Q7为输出端(驱动LED 灯DS2~DS9); LE 输入数据锁存控制端,高电平有效(当LE=1时,锁存数据);
OE 输出使能端,低电平有效; 只要锁存器按照一定规律输出低电平,就能使LED 灯按一定的规律点亮。
(2)P0口控制流水灯模块、数码管及点阵。对应的锁存器控制端: P1.2 流水灯(74HC573锁存器U7)
P1.0 数码管的段(74HC573锁存器U8)
P1.1 点阵列、数码管的位(74HC573锁存器U9)
P1.3 点阵行(74HC573锁存器U4)
2、训练内容一:用查表指令分别实现如下流水灯方案:(1)LED灯由右到左逐步熄灭
参考程序:
ORG 00H
MAIN:
CLR P1.1 ;数码管位、点阵列控制位关闭
CLR P1.3 ;点阵行控制位
SETB P1.2 ;led灯控制
MOV DPTR,#TAB1;首地址
MOV R0,#8 ;移位次数
MOV R1,#0
MOV P0,#0
LCALL DELAY ;延时
LOOP:MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
INC R1
DJNZ R0,LOOP
LJMP MAIN
DELAY:MOV R2,#0
D1:MOV R3,#0
D2:NOP
DJNZ R3,D2
DJNZ R2,D1
RET
TAB1:DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH END
(2)LED灯由右到左逐步点亮
(3)LED 灯由两边向中间靠拢
(4)LED 灯由中间向两边分离
(5)LED 等先由两边向中间靠拢,再由中间向两边分离
2、训练内容二:点阵模块静态显示
对应的行为高电平控制,对应的列为低电平控制。在很短的时间内依次点亮多个发光二极管,就可以看到显示的数字、字母及其他图形符号。 点亮左上角1盏灯的参考程序:
ORG 00H
MAIN:
SETB p1.0;数码管段控制
SETB P1.2;LED 灯控制位
MOV P0,#0FFH;关闭LED 灯
CLR P1.2 ;关闭LED 灯控制位
MOV P0,#0 ;关闭数码管
CLR P1.0 ;关闭数码管控制位
第1脚
第1脚
第1行第8脚
第1列
SETB P1.3;点阵行,高电平有效
MOV P0,#01H
CLR P1.3
SETB P1.1;点阵列,低电平有效、数码管位MOV P0,#0FEH
CLR P1.1
END