📄 11.asm
字号:
CALL SENDDATE
CALL ASKWAT
SETB SDAAT
MOV R7,#8
CLR A
SETB SDAAT
RD000: RL A
SETB SCLAT
NOP
NOP
MOV C,SDAAT
MOV ACC.0,C
CLR SCLAT
NOP
NOP
DJNZ R7,RD000
LCALL NOASK
LCALL STOPAT
RET
WT24: PUSH ACC
CALL STARTAT
MOV A,#0A0H
CALL SENDDATE
CALL ASKWAT
POP ACC
CALL SENDDATE
CALL ASKWAT
MOV A,B
CALL SENDDATE
CALL ASKWAT
CALL STOPAT
CALL DELAY
RET
SENDDATE: MOV R2,#8
LOOPW: RLC A
MOV SDAAT,C
lCALL DELAY
SETB SCLAT
lCALL DELAY
CLR SCLAT
ACALL DELAY
DJNZ R2,LOOPW
SETB SDAAT
RET
; -------------------------------
DELAY: NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
DELAY10:
MOV R4,#10
D10:
MOV R5,#248
DJNZ R5,$
DJNZ R4,D10
RET
;/////////////////////////////////
LCM_RESET: MOV LCM_D,#0FFH
ACALL W_LCD1
LCALL DELAY10
ACALL W_LCD1
LCALL DELAY10
ACALL W_LCD1
LCALL DELAY10
ACALL W_LCD1
CLR LCD_BIT
MOV LCM_BUFF,#0CH
ACALL W_LCD
CLR LCD_BIT
MOV LCM_BUFF,#01H
ACALL W_LCD
CLR LCD_BIT
MOV LCM_BUFF,#06H
ACALL W_LCD
RET
;********************************
;以下为LCD各个子程序程序应用部分
;********************************
WRTC: ;写控制
CLR LCD_BIT
MOV LCM_BUFF,ZLING
ACALL W_LCD
RET
WRTS: ;写数值
SETB LCD_BIT
MOV LCM_BUFF,SHUJU
ACALL W_LCD
RET
;==========================================================================
;送控制指令程序
W_LCD1: CLR LCD_BIT ;送控制指令程序
MOV LCM_BUFF,#28H ;显示模式设置,4位数据,双行显示,5x7点阵
W_LCD: ACALL BUSY_WAIT ;BF查询子程序
MOV A,LCM_D
ANL A,#0FH ;取出P0口的控制,暂放在R7里
MOV R7,A
MOV A,LCM_BUFF ;取控制或数值
ANL A,#0F0H ;先取高位控制或数值
ORL A,R7 ;和P0口的控制一起送回P0口
MOV LCM_D,A
CLR RW
JB LCD_BIT,WD_1 ;为0写控制,为1写数值
CLR RS
SJMP WC_1
WD_1: SETB RS
WC_1: SETB E
CLR E
CLR E
MOV A,LCM_BUFF ;取控制或数值
SWAP A ;
ANL A,#0F0H ;取低字节
MOV R7,A
MOV A,LCM_D ;取出P0口的控制,暂放在R7里
ANL A,#0FH
ORL A,R7 ;和P0口的控制一起送回P0口
MOV LCM_D,A
JB LCD_BIT,WD_2 ;为0写控制,为1写数值
CLR RS
SJMP WC_2
WD_2: SETB RS
WC_2: SETB E
CLR E
RET
;==========================================================================
;BF查询子程序 功能: 直到BF=0才退出该程序
BUSY_WAIT: SETB BF
CLR RS
SETB RW
CLR E
CLR E
SETB E
JB BF,$
lcall DELAY
RET
DISLCD1: MOV ZLING,#0C9H
ACALL WRTC
;-------------------------------------
MOV SHUJU,#00100000B;
ACALL WRTS
;-------------------------------------
MOV A,DISP0
MOV DPTR,#ADDR_LCD
MOVC A,@A+DPTR
MOV SHUJU,A
ACALL WRTS
;-------------------------------------
MOV A,DISP1
MOV DPTR,#ADDR_LCD
MOVC A,@A+DPTR
MOV SHUJU,A
ACALL WRTS
;-------------------------------------
MOV SHUJU,#00100000B;
ACALL WRTS
;--------------------------------------
MOV SHUJU,#"d"
ACALL WRTS
;--------------------------------------
MOV SHUJU,#"B"
ACALL WRTS
;---------------------------------------
MOV SHUJU,#00100000B;
ACALL WRTS
RET
;**********************************************
;****************************************************
DISLCD2: MOV ZLING,#0C9H
LCALL WRTC
;-------------------------------------
MOV A,BUFF23
MOV DPTR,#TONE_LCD
MOVC A,@A+DPTR
MOV SHUJU,A
ACALL WRTS
;-------------------------------------
MOV A,BUFF23
MOV DPTR,#TONE_LCD0
MOVC A,@A+DPTR
MOV SHUJU,A
ACALL WRTS
;-------------------------------------
MOV A,BUFF23
MOV DPTR,#TONE_LCD1
MOVC A,@A+DPTR
MOV SHUJU,A
ACALL WRTS
;-------------------------------------
MOV SHUJU,#00100000B;
ACALL WRTS
;--------------------------------------
MOV SHUJU,#"d"
ACALL WRTS
;--------------------------------------
MOV SHUJU,#"B"
ACALL WRTS
;---------------------------------------
MOV SHUJU,#00100000B;
ACALL WRTS
RET
;--------------------------------------
DIS_M_VOL: MOV ZLING,#0C0h;80H
ACALL WRTC
;-----------------------------------------------
MOV SHUJU,#00100000B;
ACALL WRTS
MOV SHUJU,#"V"
ACALL WRTS
MOV SHUJU,#"o"
ACALL WRTS
MOV SHUJU,#"l"
ACALL WRTS
MOV SHUJU,#"u"
ACALL WRTS
MOV SHUJU,#"m"
ACALL WRTS
MOV SHUJU,#"e"
ACALL WRTS
MOV SHUJU,#00100000B;
ACALL WRTS
RET
;-----------------------------------------------
DIS_BASS_VOL: MOV ZLING,#0C0H;80H
LCALL WRTC
;-----------------------------------------------
MOV SHUJU,#00100000B
LCALL WRTS
MOV SHUJU,#"B"
LCALL WRTS
MOV SHUJU,#"a"
LCALL WRTS
MOV SHUJU,#"s"
LCALL WRTS
MOV SHUJU,#"s"
LCALL WRTS
MOV SHUJU,#00100000B
LCALL WRTS
MOV SHUJU,#00100000B
LCALL WRTS
MOV SHUJU,#00100000B
LCALL WRTS
RET
;---------------------------------------------
DIS_TR_VOL: MOV ZLING,#0C0H;80H
LCALL WRTC
;-----------------------------------------------
MOV SHUJU,#00100000B
LCALL WRTS
MOV SHUJU,#"T"
LCALL WRTS
MOV SHUJU,#"r"
LCALL WRTS
MOV SHUJU,#"e"
LCALL WRTS
MOV SHUJU,#"b"
LCALL WRTS
MOV SHUJU,#"l"
LCALL WRTS
MOV SHUJU,#"e"
LCALL WRTS
MOV SHUJU,#00100000B
LCALL WRTS
RET
;---------------------------------------------
DIS_BAL_VOL: MOV ZLING,#0C0H
LCALL WRTC
;-----------------------------------------------
MOV SHUJU,#00100000B
LCALL WRTS
MOV SHUJU,#"B"
LCALL WRTS
MOV SHUJU,#"a"
LCALL WRTS
MOV SHUJU,#"l"
ACALL WRTS
MOV SHUJU,#"a"
LCALL WRTS
MOV SHUJU,#"n"
LCALL WRTS
MOV SHUJU,#"c"
LCALL WRTS
MOV SHUJU,#"e"
LCALL WRTS
MOV SHUJU,#00100000B
LCALL WRTS
MOV SHUJU,#"L"
LCALL WRTS
MOV A,#31
SUBB A,SP_L_BUFF
LCALL DIS_BAL_L
MOV SHUJU,#"R"
LCALL WRTS
MOV A,#31
SUBB A,SP_R_BUFF
DIS_BAL_L:
LCALL BIN2BCD
MOV A,DISP0
MOV DPTR,#ADDR_LCD
MOVC A,@A+DPTR
MOV SHUJU,A
LCALL WRTS
;-------------------------------------
MOV A,DISP1
MOV DPTR,#ADDR_LCD
MOVC A,@A+DPTR
MOV SHUJU,A
LCALL WRTS
MOV SHUJU,#00100000B
LCALL WRTS
RET
BIN2BCD:
MOV B,#10
Div AB
MOV DISP0,A
MOV DISP1,B
RET
WELCOME:
MOV ZLING,#00H
LCALL WRTC
MOV SHUJU,#00100000B;7
LCALL WRTS
MOV SHUJU,#"W";8
LCALL WRTS
MOV SHUJU,#"E";9
LCALL WRTS
MOV SHUJU,#"L"
LCALL WRTS
MOV SHUJU,#"C"
LCALL WRTS
MOV SHUJU,#"O";C
LCALL WRTS
MOV SHUJU,#"M";C
LCALL WRTS
MOV SHUJU,#"E";C
LCALL WRTS
RET
;---------------------------------------------
;****************************************************
ADDR_LCD: DB 00110000B ;字符“0”的地址
DB 00110001B ;字符“1”的地址
DB 00110010B ;字符“2”的地址
DB 00110011B ;字符“3”的地址
DB 00110100B ;字符“4”的地址
DB 00110101B ;字符“5”的地址
DB 00110110B ;字符“6”的地址
DB 00110111B ;字符“7”的地址
DB 00111000B ;字符“8”的地址
DB 00111001B ;字符"9"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TONE_LCD:;-+
DB 00101101B ;-14
DB 00101101B ;-12
DB 00101101B ;-10
DB 00101101B ;-8
DB 00101101B ;-6
DB 00101101B ;-4
DB 00101101B ;-2
DB 00100000B ;0
DB 00101011B ;+2
DB 00101011B ;+4
DB 00101011B ;+6
DB 00101011B ;+8
DB 00101011B ;+10
DB 00101011B ;+12
DB 00101011B ;+14
;**********************************************
TONE_LCD0:;10
DB 00110001B ;-14
DB 00110001B ;-12
DB 00110001B ;-10
DB 00110000B ;-8
DB 00110000B ;-6
DB 00110000B ;-4
DB 00110000B ;-2
DB 00110000B ;0
DB 00110000B ;+2
DB 00110000B ;+4
DB 00110000B ;+6
DB 00110000B ;+8
DB 00110001B ;+10
DB 00110001B ;+12
DB 00110001B ;+14
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TONE_LCD1:
DB 00110100B ;4 -14
DB 00110010B ;2 -12
DB 00110000B ;0 -10
DB 00111000B ;8 -8
DB 00110110B ;6 -6
DB 00110100B ;4 -4
DB 00110010B ;2 -2
DB 00110000B ;0
DB 00110010B ;2
DB 00110100B ;4
DB 00110110B ;6
DB 00111000B ;8
DB 00110000B ;0
DB 00110010B ;2
DB 00110100B ;4
;--------------------------
LCD_MUTE: MOV ZLING,#0C9H
LCALL WRTC
MOV SHUJU,#00100000B
LCALL WRTS
MOV SHUJU,#00100000B
LCALL WRTS
;-----------------------------------------------
MOV SHUJU,#"M"
LCALL WRTS
MOV SHUJU,#"u"
LCALL WRTS
MOV SHUJU,#"t"
LCALL WRTS
MOV SHUJU,#"e"
LCALL WRTS
MOV SHUJU,#00100000B
LCALL WRTS
RET
;----------------------------------------------
IN_DIS:
MOV ZLING, #080H
LCALL WRTC
MOV SHUJU,#00100000B
LCALL WRTS
MOV SHUJU,#"I"
LCALL WRTS
MOV SHUJU,#"n"
LCALL WRTS
MOV SHUJU,#"p"
LCALL WRTS
MOV SHUJU,#"u"
LCALL WRTS
MOV SHUJU,#"t"
LCALL WRTS
MOV SHUJU,#":"
LCALL WRTS
RET
;-----------------------------------------------
IN_DIS1: MOV ZLING,#1H
LCALL WRTC
MOV SHUJU,#00100000B;7
LCALL WRTS
MOV SHUJU,#"T";8
LCALL WRTS
MOV SHUJU,#"A";9
LCALL WRTS
MOV SHUJU,#"P";A
LCALL WRTS
MOV SHUJU,#"E";B
LCALL WRTS
MOV SHUJU,#00100000B;C
LCALL WRTS
RET
;-----------------------------------
IN_DIS2: MOV ZLING,#0FH
LCALL WRTC
MOV SHUJU,#00100000B
LCALL WRTS
MOV SHUJU,#00100000B
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -