⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 键显调试1.asm

📁 该程序采用了89c51实现了键盘和1602液晶显示程序的联合调试。
💻 ASM
字号:
RS      EQu     p2.0
CS8279  EQU     P2.1
E_LCD   EQU     P2.2
RW      EQU     P3.6
DATAPORT EQU    P0

COM	EQU	20H
DAT	EQU	21H
FLAG    EQU     22H
SETTEMP1 EQU     23H
SETTEMP2 EQU     24H
SETTEMP3 EQU     25H
TEMP1    EQU     26H
TEMP2    EQU     27H
TEMP3    EQU     28H
TEMP4    EQU     29H
SECOND1  EQU     30H
SECOND2  EQU     31H
MINUTE1  EQU     32H
MINUTE2  EQU     33H

        ORG   0000H
        LJMP  MAIN
        ORG   0003H
        LJMP  EXT0
        ORG   000BH
        ORG   0100H

MAIN:   CLR     EA
        MOV     SP,#60H
        MOV     COM,#02H
        CALL    WRI8279
        MOV     COM,#34H
        CALL    WRI8279
        MOV     COM,#0DFH
        CALL    WRI8279

        MOV	COM,#01H
	ACALL	LcdWRI
        LCALL	DELAY
        MOV	COM,#38H
	ACALL	LcdWRI
	LCALL	DELAY
	MOV	COM,#0CH
	ACALL	LcdWRI
	LCALL	DELAY
	MOV	COM,#06H
	ACALL	LcdWRI
        LCALL	DELAY
        MOV	COM,#01H
	ACALL	LcdWRI
        LCALL	DELAY
        MOV	COM,#02H
	ACALL	LcdWRI

        MOV     FLAG,#00H
        MOV     TEMP1,#30H
        MOV     TEMP2,#30H
        MOV     TEMP3,#30H
        MOV     TEMP4,#30H
        MOV     SETTEMP1,#30H
        MOV     SETTEMP2,#30H
        MOV     SETTEMP3,#30H
        MOV     SECOND1,#30H
        MOV     SECOND2,#30H
        MOV     MINUTE1,#30H
        MOV     MINUTE2,#30H
        MOV     IE,#81H
        SETB    IT0
        CALL    DISPAGE
        CALL    DISPSETTEMP
        JMP     $
;-----------------------------------初始化

;----------------------------------8279写入命令子程
WRI8279:PUSH	ACC
        CLR     E_LCD
        MOV     DPTR,#00FFH
        MOV     A,COM
        MOVX    @DPTR,A
        CALL    DELAY
        SETB    CS8279
        POP	ACC
	RET
;---------------------------------8279读取数据子程
RDD8279:PUSH     ACC
        CLR      E_LCD
        MOV      DPTR,#00FFH
        MOV      A,#40H
        MOVX     @DPTR,A
        CALL     DELAY
        MOV      DPTR,#01FFH
        MOVX     A,@DPTR
        MOV      DAT,A
        SETB     CS8279
        POP      ACC
        RET
;----------------------------------
LcdWRI:	PUSH	ACC
        SETB    CS8279
        CLR	RS
	SETB	RW
LcdWRI1:MOV	DATAPORT,#0FFH
	SETB	E_LCD
	MOV	A,P0
	CLR	E_LCD
	JB	ACC.7,LcdWRI1
	CLR	RW
	MOV	DATAPORT,COM
	SETB	E_LCD
	CLR	E_LCD
        POP	ACC
	RET
;--------------------------------液晶写数据子程序
LcdWRD:	PUSH	ACC
        SETB    CS8279
        CLR	RS
	SETB	RW
LcdWRD1:MOV	DATAPORT,#0FFH
	SETB	E_LCD
	MOV	A,P0
	CLR	E_LCD
	JB	ACC.7,LcdWRD1
	SETB	RS
	CLR	RW
	MOV	DATAPORT,DAT
	SETB	E_LCD
	CLR	E_LCD
        POP	ACC
	RET
;--------------------------------------
DELAY:
	MOV	R7,#0FFH
DELAY4: MOV	R6,#02FH
LOOP2:	DJNZ	R6,LOOP2
	DJNZ	R7,DELAY4
	RET

DELAY1:
	MOV	R4,#04H
DELAY11:MOV	R7,#0FFH
DELAY41:MOV	R6,#0FFH
	DJNZ	R6,$
	DJNZ	R7,DELAY41
	DJNZ	R4,DELAY11
	RET
;------------------------------------------
DISPLAY:
        PUSH    ACC
        PUSH    PSW
DISP:	CLR	A
	MOVC	A,@A+DPTR
        SUBB    A,#00H
        JZ      FINISHD
        MOV	DAT,A
        LCALL	LcdWRD
	INC	DPTR
        JMP     DISP
FINISHD:POP     PSW
        POP     ACC
        RET
;----------------------------------------
DISPSETTEMP:
        PUSH    ACC
        PUSH    PSW
        MOV	COM,#85H
	LCALL	LcdWRI
        MOV	DAT,SETTEMP1
	ACALL	LcdWRD
        MOV	DAT,SETTEMP2
	ACALL	LcdWRD
        MOV	DAT,#02EH
	ACALL	LcdWRD
        MOV	DAT,SETTEMP3
	ACALL	LcdWRD
        POP     PSW
        POP     ACC
        RET
;----------------------------------------
DISPAGE:
        MOV	COM,#80H
	LCALL	LcdWRI
        MOV     DPTR,#DAB
        CALL    DISPLAY

        ;MOV	COM,#87H
	;LCALL	LcdWRI
        ;MOV     DAT,#0A1H
        ;LCALL   LcdWRD
        ;MOV     DAT,#0E6H
        ;LCALL   LcdWRD
        MOV	COM,#90H
	LCALL	LcdWRI
        MOV     DPTR,#DAB1
        CALL    DISPLAY
        MOV	COM,#88H
	LCALL	LcdWRI
        MOV     DPTR,#DAB2
        CALL    DISPLAY
        MOV	COM,#98H
	LCALL	LcdWRI
        MOV     DPTR,#DAB3
        CALL    DISPLAY
        RET
;----------------------------------------
EXT0:  PUSH  PSW
       PUSH  A
       CALL  DELAY
       CALL  RDD8279
       MOV   A,DAT

       ANL   A,#1FH
       SUBB  A,#12H
       JC    NUM
       MOV   A,DAT
       ANL   A,#1FH
       CJNE  A,#18H,RETURN
       MOV   A,FLAG
       JB    ACC.7,CONFIRM
       MOV   FLAG,#80H
       MOV   COM,#34H
       CALL  LcdWRI
       MOV   COM,#04H
       CALL  LcdWRI
       MOV   COM,#30H
       CALL  LcdWRI
       
       JMP   RETURN
CONFIRM:MOV   FLAG,#00H
       CALL  DISPSETTEMP
       JMP   RETURN
NUM:   MOV   A,FLAG
       JNB   ACC.7,RETURN
       ANL   A,03H
       MOV   R0,#SETTEMP1
       ADD   A,R0
       MOV   R0,A

       MOV   A,DAT
       ANL   A,#1FH
       MOV   B,#04H
       DIV   AB
       RL    A
       ADD   A,B
       INC   A
       MOV   B,#0AH
       DIV   AB
       MOV   @R0,A
       INC   FLAG
       MOV   R0,FLAG
       CJNE  @R0,#84H,RETURN
       MOV   FLAG,#80H
       JMP   RETURN
       CALL  DISPSETTEMP
RETURN:
       POP   A
       POP   PSW
       RETI

DAB: DB "设定温度:     ℃",00H
DAB1: DB "当前温度:     ℃",00H
DAB2: DB "调整时间:  :",00H
DAB3: DB "电炉功率:     4W",00H
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -