独立按键汇编程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
急求独立按键汇编程序
我自己写的一个拷面包炉的程式,可以给你参考。我的QQ:597430854
;........................................................
K1 BIT P3.0 ;定义向下键在p3.0
K2 BIT P3.1 ;定义向上键在p3.1
K3 BIT P3.2 ;定义取消键在p3.2
K4 BIT P3.3 ;定义半烤键在p3.3
K5 BIT P3.4 ;定义开始键在P3.4 ;........................................................
LED1 BIT P1.6 ;定义LED1在P1.6
LED2 BIT P1.5 ;定义LED2在P1.5
LED3 BIT P1.4 ;定义LED3在P1.4
LED4 BIT P1.3 ; ...
LED5 BIT P1.2 ; ...
LED6 BIT P1.1 ; ...
LED7 BIT P1.0 ; ...
;........................................................
RY1 BIT P3.5 ;继电器1半烤定义在P3.5口
RY2 BIT P3.7 ;继电器2定义在P3.7口
SPK BIT P1.7 ;喇叭定义在P3.4口
SS EQU 200 ;秒数值5MS*200=1秒
TSEC EQU 30H ;秒数变量
ID EQU 31H ;ID变量
TCOUNT EQU 32H ;秒数计数器
ORG 0H
JMP START0
ORG 0BH
JMP SET0
START0:CLR RY1 ;继电器1释放
CLR RY2 ;继电器2释放
MOV TCOUNT,#00H ;TO计数清0
MOV TSEC,#00H ;秒数清0
MOV ID,#00H ;ID清0
MOV P1,#01110111B 1口开始时为01110111
MOV ID,#00H ;ID清0
MOV A,ID
ADD A,#04H
MOV ID,A
MOV TCOUNT,#00H
MOV TMOD,#00000001B
MOV TL0,#236
MOV TH0,#120
SETB TR0
LOOP:JB K1,M1 ;判断K1是否按下,BIT=1时,转M1,BIT=0时,继续
LCALL DELAY ;
JB K1,LOOP ;
JMP START ;
M1:JB K2,M2 ;判断K2是否按下,BIT=1时,转M2,BIT=0时,继续
LCALL DELAY ;
JB K2,M1;
JMP START1
M2:JB K5,M3 ;开始键盘按下
LCALL DELAY ;
JB K5,LOOP ;
MOV A,ID
JMP SET0
M3:JB K4,M4
LCALL DELAY ;
JB K4,LOOP ;
CPL RY1
CALL BZ
JNB K4,$
M4:JMP LOOP ;
;向下键..................................................
START:INC ID ;ID加1
MOV A,ID ;ID放入A
CJNE A,#08H,REL ;如果A=8,继续,否则转REL
MOV A,#0H
ADD A,#07H
JMP IS6
START1EC ID ;ID减1
MOV A,ID ;ID放入A
CJNE A,#00H,REL ;如果A=0,继续,否则转REL
MOV A,#0H
ADD A,#01H
JMP IS6
REL: CALL BZ
REL1:CJNE A,#01H,IS0 ;如果A不等于1,转IS0
MOV P1,#00111111B ;
JMP IS6 ;
IS0: CJNE A,#02H,IS1 ;
MOV P1,#01011111B
JMP IS6 ;
IS1: CJNE A,#03H,IS2 ;
MOV P1,#01101111B
JMP IS6
IS2: CJNE A,#04H,IS3 ;
MOV P1,#01110111B ;
JMP IS6 ;
IS3: CJNE A,#05H,IS4 ;
MOV P1,#01111011B
JMP IS6 ;
IS4: CJNE A,#06H,IS5 ;
MOV P1,#01111101B
JMP IS6 ;
IS5: CJNE A,#07H,IS6 ;
MOV P1,#01111110B
JMP IS6
IS6:MOV ID,A
JNB K1,$
JNB K2,$
JMP LOOP
;0.5秒钟延时子程式...................................
DELAY1S:MOV R5,#50
D2:CALL DELAY
DJNZ R5,D2
RET
;10ms延时............................................
DELAY: MOV R6,#20 ;延时10ms 子程序
L1: MOV R7,#248
DJNZ R7,$
DJNZ R6,L1
RET
;喇叭哗一声..........................................
BZ:
MOV R2,#248
B1:CALL DEX
CPL SPK
DJNZ R2,B1
CLR SPK
RET ;....................................................
DEX:MOV R4,#38
DE1:NOP
DJNZ R4,DE1
RET
;喇叭哗三声..........................................
BZ1:MOV R3,#15
C2:MOV R2,#248
C1:CALL DEX
CPL SPK
DJNZ R2,C1