任务七:独立式按键显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任务七:独立式按键控制实验
此任务为4个独立按键,一旦按键被按下,则显示相应的数字,同时蜂鸣器滴一声。(1)电路图
主程序流程图
(3)程序
ORG 00H
LJMP MAIN
ORG 30H
MAIN: MOV P2,#0FFH ;初始化
MOV P0,#0FFH
MOV P1,#0FFH
LOOP: MOV A,P1 ;输入P1口的状态,
CPL A ;取反,无建按下,P1.4~1.7为“0”
ANL A,#0F0H ;屏蔽无用的低四位
JZ LOOP ;A为“0”转移
LCALL DELAY; 延时10MS
MOV A,P1 ;再判断
CPL A
ANL A,#0F0H
JZ LOOP
JB ACC.4,KEY1 ;这一位为“1”转移
JB ACC.5,KEY2
JB ACC.6,KEY3
JB ACC.7,KEY4
LJMP LOOP
KEY1: MOV P0,#0F9H
MOV P2,#0F0H
LCALL BEEP;调用蜂鸣器子程序
LJMP LOOP
KEY2: MOV P0,#0A4H;显示“2”,此为段码值MOV P2,#0F0H ;控制哪一位显示
LCALL BEEP
LJMP LOOP;返回,继续检测按键
KEY3: MOV P0,#0B0H
MOV P2,#0F0H
LCALL BEEP
LJMP LOOP
KEY4: MOV P0,#099H
MOV P2,#0F0H
LCALL BEEP
LJMP LOOP
DELAY:MOV R7,#40;延时10MS子程序
D1:MOV R6,#123
NOP
D2:DJNZ R6, D2
DJNZ R7,D1
RET BEEP:MOV R5,#200;蜂鸣器滴一声子程序BEEP1:
CLR P2.7 ;P3.7引脚不断输出
LCALL DEL ;方波,使蜂鸣器发
SETB P2.7 ;出声音,改变其输
LCALL DEL ;出频率,可调整蜂
DJNZ R5, BEEP1 ;鸣器音调
RET
DEL:MOV R4,#225;供蜂鸣器使用延时DJNZ R4,$
RET
END