555单片机实验五
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五散转
一、实验目的
熟悉使用MCS51指令,掌握汇编语言的设计和调试方法;理解并能运用散转指令。
二、实验内容
编写程序,根据接收到的键值,作不同的处理。
三、程序框图
散转程序流程框图
四、实验步骤
1、连线说明:
3、使用各种手段调试程序
3、结果显示在G5区的数码管上
五、程序清单
;调用GetKey返回键值,根据键值执行相应的程序
;0号键显示3;1号键显示2,......,3号键显示0
EXTRN CODE(GetKeyB, Display8)
buffer DATA 30H ;内部RAM30H-37H为缓冲区ORG 0000H
LJMP STAR
ORG 0100H
STAR: MOV SP,#60H
STAR1: MOV A,#1 ;按一下键,就返回
MOV R0,#buffer ;键值存放在内部RAM 30H
LCALL GetKeyB
CJNE A,#4,$+3
JC STAR2
CLR A ;大于3,作0处理STAR2: RL A
MOV DPTR,#Tab_1
JMP @A+DPTR
Tab_1: SJMP Key0
SJMP Key1
SJMP Key2
SJMP Key3
Key0: MOV A,#3
SJMP Key
Key1: MOV A,#2
SJMP Key
Key2: MOV A,#1
SJMP Key
Key3: MOV A,#0
SJMP Key
Key: MOV R7,#8
MOV R0,#buffer
Key_1: MOV @R0,A
INC R0
DJNZ R7,Key_1
MOV R0,#buffer
LCALL Display8
Delay: MOV R5,#4
Delay1: MOV R6,#0
Delay2: MOV R7,#0
DJNZ R7,$
DJNZ R6,Delay2
DJNZ R5,Delay1
LJMP STAR1
END
六、思考题
程序中为什么要把输入的值作乘以2处理?