📄 conrol.asm
字号:
RS EQU p2.1 ;液晶口定义
RW EQU P2.2
E EQU P2.3
PSB EQU P2.7
RST EQU P2.4
YH EQU 30H
YL EQU 31H
MON EQU 32H
DAY EQU 33H
HOUR EQU 34H
MIN EQU 35H
SEC EQU 36H
WEK EQU 37H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
COM EQU 20H ;公共指令口与数据口
DAT EQU 21H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BFD EQU 23H ;键盘口
SFD EQU 24H
GFD EQU 25h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DIN EQU P3.2 ;DA口
SCLK EQU P3.1
CSN EQU P3.0
SUG EQU 26H
SUD EQU 27H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: NOP
LCALL DELAY10
; LCALL DELAY10
LCALL KEY
NOP
AJMP KEY
ZIDONG:SETB P3.0
MOV SUG,#02H
MOV SUD,#00H
MOV R0,SUG
MOV R1,SUD
LCALL DAC
LCALL DELAY10
CHUSHENG:
CLR C
MOV A,R1
ADD A,#1
MOV R1,A
CLR A
ADDC A,R0
MOV R0,A
LCALL DAC
LCALL DELAY1400
CJNE R0,#0BH,CHUSHENG
CJNE R1,#80H,CHUSHENG
JINGSHENG:
CLR C
MOV A,R1
ADD A,#1
MOV R1,A
CLR A
ADDC A,R0
MOV R0,A
LCALL DAC
LCALL DELAY3900
CJNE R0,#0DH,JINGSHENG
CJNE R1,#80H,JINGSHENG
MOV R5,#0C8H
BAOCHI:MOV R0,#0DH
MOV R1,#80H
LCALL DAC
LCALL DELAY10
DJNZ R5,BAOCHI
XIELIAO:CLR C
MOV A,R1
SUBB A,#1
MOV R1,A
CLR A
MOV A,R0
SUBB A,#0
MOV R0,A
CLR C
LCALL DAC
LCALL DELAY600
CJNE R0,#00H,XIELIAO
CJNE R1,#80H,XIELIAO
AJMP MAIN
SHOUDONG:NOP
NOP
SETB P3.0
MOV SUG,#00H
MOV SUD,#01H
MOV R0,SUG
MOV R1,SUD
LCALL DAC
LCALL DELAY10
AJMP KEY
CHUSHENG1: SETB P3.0
MOV SUG,#02H
MOV SUD,#00H
MOV R0,SUG
MOV R1,SUD
LCALL DAC
LCALL DELAY600
CHUSHENG2:CLR C
MOV A,R1
ADD A,#1
MOV R1,A
CLR A
ADDC A,R0
MOV R0,A
LCALL DAC
LCALL DELAY1400
CJNE R0,#0BH,CHUSHENG2
CJNE R1,#80H,CHUSHENG2
AJMP KEY
JINGSHENG1:
SETB P3.0
MOV SUG,#0BH
MOV SUD,#80H
MOV R0,SUG
MOV R1,SUD
LCALL DAC
LCALL DELAY600
JINGSHENG2:CLR C
MOV A,R1
ADD A,#1
MOV R1,A
CLR A
ADDC A,R0
MOV R0,A
LCALL DAC
LCALL DELAY3900
CJNE R0,#0DH,JINGSHENG2
CJNE R1,#80H,JINGSHENG2
AJMP KEY
BIAOCHI1:MOV R0,#0DH
MOV R1,#80H
LCALL DAC
LCALL DELAY10
AJMP KEY
XIELIAO1: SETB P3.0
MOV SUG,#0DH
MOV SUD,#80H
MOV R0,SUG
MOV R1,SUD
LCALL DAC
LCALL DELAY600
XIELIAO2:CLR C
MOV A,R1
SUBB A,#1
MOV R1,A
CLR A
MOV A,R0
SUBB A,#0
MOV R0,A
CLR C
LCALL DAC
LCALL DELAY600
CJNE R0,#00H,XIELIAO2
CJNE R1,#80H,XIELIAO2
AJMP KEY
STEPUP:SETB P3.0
MOV SUG,#00H
MOV SUD,#00H
MOV R0,SUG
MOV R1,SUD
LCALL DAC
LCALL DELAY10
CLR C
MOV A,R1
ADD A,#1
MOV R1,A
CLR A
ADDC A,R0
MOV R0,A
LCALL DAC
LCALL DELAY10
AJMP KEY
STEPDOWN:SETB P3.0
MOV SUG,#0DH
MOV SUD,#80H
MOV R0,SUG
MOV R1,SUD
LCALL DAC
lcall delay10
CLR C
MOV A,R1
SUBB A,#1
MOV R1,A
CLR A
MOV A,R0
SUBB A,#0
MOV R0,A
CLR C
LCALL DAC
LCALL DELAY10
AJMP KEY
DELAY1400: ;27*255*0.2=1.4ms 改为1。56ms
MOV R7,#1BH
D141:
MOV R6,#0FFH
D142:
DJNZ R6,D142
DJNZ R7,D141
RET
DELAY3900: ;76*255*0.2=3.9ms
MOV R7,#4DH
D391:
MOV R6,#0FFH
D392:
DJNZ R6,D392
DJNZ R7,D391
RET
DELAY600: ;11*255*0.2=0.6MS
MOV R7,#0BH
D61:
MOV R6,#0FFH
D62:
DJNZ R6,D62
DJNZ R7,D61
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAX539
;DA:MOV SCON,#00H ;设置串行口通信方式为0方式,TXD开始输出移位脉冲
; CLR CSN ;片选信号置0,选中MAX539
; MOV A,SUG ;将待转换的高四位数据和伪数据送交SBUF
;MOV SBUF,A
; CLR 99H ;清除发送中断标志位
; MOV A,SUD ;将待转换的低8位数据送交SBUF
; MOV SBUF,A
; CLR 99H ;清除发送中断标志位
; SETB CSN ;片选信号置1,将待转换的数据送入DAC,开始D/A转换
; RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DAC: CLR P3.0 ;TLC5615,高位R0,低位R1,最后两位虚位,MAX539试用,无虚位
MOV R2,#4
MOV A,R0
SWAP A
LCALL WRDATA
MOV R2,#8
MOV A,R1
LCALL WRDATA
CLR P3.1
SETB P3.0
RET
WRDATA:NOP
LOOP:CLR P3.1
RLC A
MOV P3.2,C
SETB P3.1
DJNZ R2,LOOP
RET
DELAY10: ;延时10ms
MOV R7,#0C4H
D1:MOV R6,#0FFH
D2:DJNZ R6,D2
DJNZ R7,D1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;键盘扫描P2
KEY: setb rs0
LCALL KST
CJNE A,#0F0H,KEY1
CALL DELAY10
RET
KEY1:
LCALL DELAY10
LCALL KST
CJNE A,#0F0H,KEY2
JMP KEY
KEY2:
MOV A,#00
MOV R0,A
MOV R1,A
MOV R3,#0FEH
KEY3:
MOV A,R3
MOV P2,A
NOP
NOP
NOP
MOV A,P2
MOV R1,A
ORL A,#0FH
CPL A
JNZ KEY4
INC R0
SETB C
MOV A,R3
RLC A
MOV R3,A
MOV A,R0
CJNE A,#4,KEY3
KEY4:
MOV A,R1
JNB ACC.4,SKEY5
JNB ACC.5,SKEY6
JNB ACC.6,SKEY7
JNB ACC.7,SKEY8
SKEY5:
MOV A,#00H
MOV R2,A
AJMP DKEY
SKEY6:
MOV A,#01H
MOV R2,A
AJMP DKEY
SKEY7:
MOV A,#02H
MOV R2,A
AJMP DKEY
SKEY8:
MOV A,#03H
MOV R2,A
AJMP DKEY
DKEY:
MOV A,R0
ACALL DECODE
LJMP KEY
DECODE:
MOV A,R0
MOV B,#4
MUL AB
ADD A,R2
keytel:
MOV DPTR,#TABLE
CLR C
RL A
JMP @A+DPTR
clr rs0
RET
KST:
MOV P2,#0F0H
MOV A,P2
ANL A,#0F0H
RET
TABLE:AJMP ZIDONG
AJMP SHOUDONG
AJMP CHUSHENG1
AJMP JINGSHENG1
AJMP BIAOCHI1
AJMP XIELIAO1
AJMP STEPUP
AJMP STEPDOWN
AJMP MAIN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -