任务七:独立式按键显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档