实验六 查询式键盘实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六查询式键盘实验
一、实验目的
掌握查询式键盘的接口和编程方法。
二、实验内容
本实验提供了4个按键的小键盘,如果有键按下,则相应输出为低电平,否则输出为高电平。MCU判断有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。
编写一个程序,能读出键盘操作的编号,并在数码显示器上显示。
三、实验电路
本实验所需电路请参见系统原理图的第一部分和独立式键盘电路。
四、实验程序参考框图
(a)主程序框图
(b)键盘扫描子程序框图
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV 30H,#0aH
MOV 31H,#0aH
MOV 32H,#0aH
MOV 33H,#0aH
MOV 34H,#0aH
MOV 35H,#0aH
MOV 36H,#0aH
MOV 37H,#0aH
MOV 50h,#0H
Loop: CALL DISPLAY
CALL KEY
MOV 50h,A
AJMP Loop KEY: MOV P3,#0FFH
MOV A,P3
Orl a,#0f0h
CJNE A, #0FFH, K00
AJMP KEY
K00: ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV A,P3
Orl a,#0f0h
CJNE A,#0FFH,K01
AJMP KEY
K01: cjne a,#0feh,k02
MOV 50h,,#0bh
Sjmp k05
K02: cjne a,#0fdh,k03
MOV 50h,,#0ch
Sjmp k05
K03: cjne a,#0fbh,k04
MOV 50h,,#0dh
Sjmp k05
K04: cjne a,#07h,k05
MOV 50h,,#0eh
Sjmp k05
K05: MOV 30H,50h
MOV 31H, 50h
MOV 32H, 50h
MOV 33H,50H
MOV 34H,50H
MOV 35H,50H
MOV 36H,50H
MOV 37H,50h
MOV A,P3
Orl a,#0f0h
CJNE A,#0FFH,K05
ACALL DELAY
RET DISPLAY:MOV R0,#30H
MOV R2,#07H
MOV R3,#00H
NEXT:MOV A,@R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
INC R0
MOV A,R3
RL A
RL A
MOV P2,A
INC R3
ACALL DELAY
MOV P0,#00H
ACALL DELAY
DJNZ R2,NEXT
RET
DELAY: MOV 7FH,#5
DELAY1: MOV 7EH,#250
DJNZ 7EH,$
DJNZ 7FH,DELAY1
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
DB 6fH,40H,76H,73H,71H,79H,38H,5eh,31H
END
END五、思考题
1、A/D转换程序有三种编制方式:中断方式、查询方式、延时方式,实验中使用了查
询方式,请用另两种方式编制程序。
2、P0口是数据/地址复用的端口,请说明实验中ADC0809的模拟通道选择开关在利用
P0口的数据口或地址地位口时,程序指令和硬件连线的关系。
六、电路图
七、实验总结与体会