独立按键汇编程序

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

相关文档
最新文档