历史上的今天
返回首页

历史上的今天

今天是:2025年01月25日(星期六)

2018年01月25日 | HT48R50A的 93C46示例程序

2018-01-25 来源:eefocus

; ********************************************

; Function :   基于HT48R50A的 93C46示例程序  *


; MICroProcessor : HT48R50A-1/28SKDIP-A      *

; Author:         www.picavr.com              *
; Crystal :       4MHz                       *
; ********************************************

#INCLUDE                HT48R50A-1.INC
LCD_DATA                EQU     PA
LCD_DATA_CTRL           EQU     PAC
LCD_CTRL                EQU     PC
LCD_CTRL_CTRL           EQU     PCC
E                       EQU     1
RS                      EQU     0
KEYIN_ERROR             EQU     0AAH
EEPROM                  EQU     PC
CS                      EQU     5
SK                      EQU     4
DI                      EQU     3
DO                      EQU     2
;------------------------------------------------------
DATA    .SECTION        AT 60H  'DATA'
DELAY_COUNTER_1         DB      ?       ;[60H]
DELAY_COUNTER_2         DB      ?       ;[61H]
COUNTER                 DB      ?       ;[62H]
COUNTER_1               DB      ?       ;[63H]
DATA                    DB      ?       ;[64H]
ADDRESS_BUFFER          DB      3  DUP(?)
DATA_BUFFER             DB      4  DUP(?)
DISPLAY_BUFFER          DB      32 DUP(?)
;------------------------------------------------------
DATA_W          MACRO   M_DATA
                SET     LCD_CTRL.RS
                MOV      A,M_DATA
                MOV      LCD_DATA,A
                CALL    WRITE
                ENDM
;------------------------------------------------------
INS_W           MACRO   M_INS
                CLR     LCD_CTRL.RS
                MOV      A,M_INS
                MOV      LCD_DATA,A
                CALL    WRITE
                ENDM
;------------------------------------------------------
LCD_BUFFER      MACRO
                LOCAL   BUFFER_1,BUFFER_2
                MOV      TBLP,A
                MOV      A,OFFSET DISPLAY_BUFFER
                MOV      MP0,A
                MOV      A,10H
                MOV      COUNTER,A
BUFFER_1:
                TABRDC  R0
                INC     TBLP
                INC     MP0
                SDZ     COUNTER
                JMP     BUFFER_1
                MOV      A,10H
                MOV      COUNTER,A
BUFFER_2:
                TABRDC  R0
                INC     MP0
                INC     TBLP
                SDZ     COUNTER
                JMP     BUFFER_2
                CALL    LCD_DISPLAY
                ENDM
;------------------------------------------------------
CODE    .SECTION        AT 00H  'CODE'
                ORG     00H
                JMP     START
START:
                CLR     LCD_DATA_CTRL
                CLR     LCD_DATA
                MOV      A,00000100B
                MOV      LCD_CTRL_CTRL,A
                CLR     LCD_CTRL
                MOV      A,00101111B
                MOV      PBC,A
                CLR     PB.4
;------------------------------------------------------
                CALL    DELAY
                INS_W   00110000B       ;LCD RESET
                CALL    DELAY
                INS_W   00110000B       ;LCD_RESET
                CALL    DELAY
                INS_W   00111000B       ;FUNCTION SET
                INS_W   00000110B       ;ENTRY MODE SET
                INS_W   00000001B       ;DISPLAY CLEAN
                CALL    DELAY           ;DELAY SOME TIME
                INS_W   00001111B       ;DISPLAY TURN ON
;------------------------------------------------------
                CALL    MESSAGE_01
                CALL    GET_KEY
MANUAL_PAGE_1:
                CALL    MESSAGE_02
                INS_W   11001111B
CHOOSE_1:
                CALL    GET_KEY
                SUB     A,01H
                SZ      ACC
                JMP     CHOOSE_2
                JMP     FUNCTION_1
CHOOSE_2:
                MOV      A,DATA
                SUB     A,02H
                SZ      ACC
                JMP     CURSOR_DOWN_1
                JMP     FUNCTION_2
CURSOR_DOWN_1:
                MOV      A,DATA
                SUB     A,0DH
                SZ      ACC
                JMP     CHOOSE_1
MANUAL_PAGE_2:
                CALL    MESSAGE_03
                INS_W   11001111B
CHOOSE_3:
                CALL    GET_KEY
                SUB     A,03H
                SZ      ACC
                JMP     CHOOSE_4
                JMP     FUNCTION_3
CHOOSE_4:
                MOV      A,DATA
                SUB     A,04H
                SZ      ACC
                JMP     CURSOR_UP_2
                JMP     FUNCTION_4
CURSOR_UP_2:
                MOV      A,DATA
                SUB     A,0CH
                SZ      ACC
                JMP     CURSOR_DOWN_2
                JMP     MANUAL_PAGE_1
CURSOR_DOWN_2:
                MOV      A,DATA
                SUB     A,0DH
                SZ      ACC
                JMP     CHOOSE_3
MANUAL_PAGE_3:
                CALL    MESSAGE_04
                INS_W   11001111B
CHOOSE_5:
                CALL    GET_KEY
                SUB     A,05H
                SZ      ACC
                JMP     CHOOSE_6
                JMP     FUNCTION_5
CHOOSE_6:
                MOV      A,DATA
                SUB     A,06H
                SZ      ACC
                JMP     CURSOR_UP_3
                JMP     FUNCTION_6
CURSOR_UP_3:
                MOV      A,DATA
                SUB     A,0CH
                SZ      ACC
                JMP     CURSOR_DOWN_3
                JMP     MANUAL_PAGE_2
CURSOR_DOWN_3:
                MOV      A,DATA
                SUB     A,0DH
                SZ      ACC
                JMP     CHOOSE_5
MANUAL_PAGE_4:
                CALL    MESSAGE_05
                INS_W   11001111B
CHOOSE_7:
                CALL    GET_KEY
                SUB     A,07H
                SZ      ACC
                JMP     CURSOR_UP_4
                JMP     FUNCTION_7
CURSOR_UP_4:
                MOV      A,DATA
                SUB     A,0CH
                SZ      ACC
                JMP     CHOOSE_7
                JMP     MANUAL_PAGE_3
                RET
;------------------------------------------------------
FUNCTION_1:
                CALL    MESSAGE_06
                INS_W   11000100B
                CALL    ENTER_ADDRESS
                MOV      A,DATA
                SUB     A,KEYIN_ERROR
                SZ      ACC
                JMP     FUN_NEXT_1
                JMP     FUN_END_1
FUN_NEXT_1:
                CALL    HT93LC46_READ
                CALL    MESSAGE_08

;WRITE ADDRESS CODE TO LCD

                INS_W   10001000B
                MOV      A,OFFSET ADDRESS_BUFFER + 2
                MOV      MP0,A
                MOV      A,R0
                ADD     A,30H
                DATA_W  ACC
                DEC     MP0
                MOV      A,R0
                ADD     A,30H
                DATA_W  ACC

;WRITE DATA CODE TO LCD

                INS_W   11001000B
                MOV      A,OFFSET DATA_BUFFER
                MOV      MP0,A
                MOV      A,R0
                SUB     A,0FH
                SZ      ACC
                JMP     DEC_DISPLAY
                CALL    HEX_TO_TEXT
DEC_DISPLAY:
                MOV      A,04H
                MOV      COUNTER,A
FUN_1_LOOP:
                MOV      A,R0
                ADD     A,30H
                DATA_W  ACC
                INC     MP0
                SDZ     COUNTER
                JMP     FUN_1_LOOP
                INS_W   11001111B
                CALL    GET_KEY
FUN_END_1:
                JMP     MANUAL_PAGE_1
                RET
;------------------------------------------------------
FUNCTION_2:
                CALL    MESSAGE_06
                INS_W   11000100B
                CALL    ENTER_ADDRESS
                MOV      A,DATA
                SUB     A,KEYIN_ERROR
                SZ      ACC
                JMP     FUN_NEXT_21
                JMP     FUN_END_2
FUN_NEXT_21:
                CALL    MESSAGE_07
                INS_W   11000001B
                CALL    ENTER_DATA
                MOV      A,DATA
                SUB     A,KEYIN_ERROR
                SZ      ACC
                JMP     FUN_NEXT_22
                JMP     FUN_END_2
FUN_NEXT_22:
                CALL    HT93LC46_WRITE
                CALL    MESSAGE_11
                CALL    GET_KEY
FUN_END_2:
                JMP     MANUAL_PAGE_1
                RET
;------------------------------------------------------
FUNCTION_3:
                CALL    MESSAGE_06
                INS_W   11000100B
                CALL    ENTER_ADDRESS
                MOV      A,DATA
                SUB     A,KEYIN_ERROR
                SZ      ACC
                JMP     FUN_NEXT_3
                JMP     FUN_END_3
FUN_NEXT_3:
                CALL    HT93LC46_ERASE
                CALL    MESSAGE_11
                CALL    GET_KEY
FUN_END_3:
                JMP     MANUAL_PAGE_2
                RET
;------------------------------------------------------
FUNCTION_4:
                CALL    HT93LC46_ERAL
                CALL    MESSAGE_10
                CALL    GET_KEY
                JMP     MANUAL_PAGE_2
                RET
;------------------------------------------------------
FUNCTION_5:
                CALL    MESSAGE_07
                INS_W   11000001B
                CALL    ENTER_DATA
                MOV      A,DATA
                SUB     A,KEYIN_ERROR
                SZ      ACC
                JMP     FUN_NEXT_5
                JMP     FUN_END_5
FUN_NEXT_5:
                CALL    HT93LC46_WRAL
                CALL    MESSAGE_10
                CALL    GET_KEY
FUN_END_5:
                JMP     MANUAL_PAGE_3
                RET
;------------------------------------------------------
FUNCTION_6:
                CALL    HT93LC46_EWDS
                CALL    MESSAGE_12
                CALL    GET_KEY
                JMP     MANUAL_PAGE_3
                RET
;------------------------------------------------------
FUNCTION_7:
                CALL    HT93LC46_EWEN
                CALL    MESSAGE_13
                CALL    GET_KEY
                JMP     MANUAL_PAGE_4
                RET
;------------------------------------------------------
LCD_DISPLAY     PROC
                MOV      A,OFFSET DISPLAY_BUFFER
                MOV      MP0,A
                INS_W   10000000B       ;FIRST LINE ADD
                MOV      A,10H
                MOV      COUNTER,A
LOOP_1:
                MOV      A,R0
                DATA_W  ACC             ;WRITE DATA
                INS_W   00011100B       ;DISPLAY/CURSOR SHIFT
                CALL    DELAY
                INC     MP0
                SDZ     COUNTER
                JMP     LOOP_1
                INS_W   11000000B       ;SECOND LINE ADD
                MOV      A,10H
                MOV      COUNTER,A
LOOP_2:
                MOV      A,R0
                DATA_W  ACC             ;WRITE DATA
                INS_W   00011000B       ;DISPLAY/CURSOR SHIFT
                CALL    DELAY
                INC     MP0
                SDZ     COUNTER
                JMP     LOOP_2
                RET
LCD_DISPLAY     ENDP
;------------------------------------------------------
WRITE           PROC
                SET     LCD_CTRL.E
                CLR     LCD_CTRL.E
                MOV      A,020H
                MOV      DELAY_COUNTER_1,A
WRITE_WAIT:
                SDZ     DELAY_COUNTER_1
                JMP     WRITE_WAIT
                RET
WRITE           ENDP
;------------------------------------------------------
ENTER_ADDRESS   PROC
ENTER_START:
                MOV      A,OFFSET ADDRESS_BUFFER
                MOV      MP0,A
                MOV      A,02H
                MOV      COUNTER,A
ADD_LOOP:
                CALL    GET_KEY
                SUB     A,0FH
                SZ      ACC
                JMP     ADD_NEXT_E
                JMP     ADD_ERROR
ADD_NEXT_E:
                MOV      A,DATA
                SUB     A,0EH
                SZ      ACC
                JMP     ADD_OTHER
                CALL    MESSAGE_09
                CALL    GET_KEY
                JMP     ADD_ERROR
ADD_OTHER:
                CALL    KEY_TRANSFER
                MOV      A,DATA
                SUB     A,KEYIN_ERROR
                SZ      ACC
                JMP     ADD_OK
                JMP     ADD_LOOP
ADD_OK:
                CALL    DELAY
                CALL    DELAY
                CALL    DELAY
                MOV      A,DATA
                MOV      R0,A
                ADD     A,30H
                DATA_W  ACC
                INC     MP0
                SDZ     COUNTER
                JMP     ADD_LOOP
                INS_W   11000101B
ADD_INPUT:
                CALL    GET_KEY
                SUB     A,0EH
                SZ      ACC
                JMP     ADD_INPUT
                MOV      A,OFFSET ADDRESS_BUFFER
                MOV      MP0,A
                MOV      A,R0
                INC     MP0
                INC     MP0
                MOV      R0,A
                DEC     MP0
                DEC     MP0
                MOV      A,OFFSET HEX_TO_DEC
                ADD     A,R0
                MOV      TBLP,A
                INC     MP0
                TABRDL  ACC
                ADD     A,R0
                MOV      ADDRESS_BUFFER,A
                CLR     STATUS
                MOV      A,3FH
                SUB     A,ADDRESS_BUFFER
                MOV      A,STATUS
                AND     A,00000011B
                SUB     A,00000010B
                SZ      ACC
                JMP     ADD_END
                CALL    MESSAGE_06
                INS_W   11000100B
                JMP     ENTER_START
ADD_ERROR:
                MOV      A,KEYIN_ERROR
                MOV      DATA,A
ADD_END:
                RET
ENTER_ADDRESS   ENDP
;------------------------------------------------------
ENTER_DATA      PROC
                MOV      A,OFFSET DATA_BUFFER
                MOV      MP0,A
                MOV      A,04H
                MOV      COUNTER,A
DATA_LOOP:
                CALL    GET_KEY
                SUB     A,0FH
                SZ      ACC
                JMP     DATA_NEXT_E
                JMP     DATA_ERROR
DATA_NEXT_E:
                MOV      A,DATA
                SUB     A,0EH
                SZ      ACC
                JMP     DATA_OTHER
                CALL    MESSAGE_09
                CALL    GET_KEY
                JMP     DATA_ERROR
DATA_OTHER:
                CALL    KEY_TRANSFER
                MOV      A,DATA
                SUB     A,KEYIN_ERROR
                SZ      ACC
                JMP     DATA_OK
                JMP     DATA_LOOP
DATA_OK:
                CALL    DELAY
                CALL    DELAY
                CALL    DELAY
                MOV      A,DATA
                MOV      R0,A
                ADD     A,30H
                DATA_W  ACC
                INC     MP0
                SDZ     COUNTER
                JMP     DATA_LOOP
                INS_W   11000100B
DATA_INPUT_OK:
                CALL    GET_KEY
                SUB     A,0EH
                SZ      ACC
                JMP     DATA_INPUT_OK
                MOV      A,OFFSET DATA_BUFFER
                MOV      MP0,A
                SWAP    R0
                MOV      A,R0
                INC     MP0
                ADD     A,R0
                MOV      DATA_BUFFER,A
                INC     MP0
                SWAP    R0
                MOV      A,R0
                INC     MP0
                ADD     A,R0
                DEC     MP0
                DEC     MP0
                MOV      R0,A
                JMP     DATA_END
DATA_ERROR:
                MOV      A,KEYIN_ERROR
                MOV      DATA,A
DATA_END:
                RET
ENTER_DATA      ENDP
;------------------------------------------------------
KEY_TRANSFER    PROC
                MOV      A,DATA
                SUB     A,0AH
                SZ      ACC
                JMP     NEXT_KEY_B
                JMP     KEY_ERROR
NEXT_KEY_B:
                MOV      A,DATA
                SUB     A,0BH
                SZ      ACC
                JMP     NEXT_KEY_C
                JMP     KEY_ERROR
NEXT_KEY_C:
                MOV      A,DATA
                SUB     A,0CH
                SZ      ACC
                JMP     NEXT_KEY_D
                JMP     KEY_ERROR
NEXT_KEY_D:
                MOV      A,DATA
                SUB     A,0DH
                SZ      ACC
                JMP     NEXT_KEY_OK
                JMP     KEY_ERROR
NEXT_KEY_OK:
                JMP     KEY_END
KEY_ERROR:
                MOV      A,KEYIN_ERROR
                MOV      DATA,A
KEY_END:
                RET
KEY_TRANSFER    ENDP
;------------------------------------------------------
GET_KEY         PROC
KEY_LOOP_1:
                MOV      A,PB
                AND     A,00100000B
                SUB     A,00100000B
                SZ      ACC
                JMP     KEY_LOOP_1
                MOV      A,PB
                AND     A,00001111B
                MOV      DATA,A
                RET
GET_KEY         ENDP
;------------------------------------------------------
DELAY           PROC
                MOV      A,50H
                MOV      DELAY_COUNTER_1,A
                MOV      DELAY_COUNTER_2,A
WAITING:
                SDZ     DELAY_COUNTER_2
                JMP     WAITING
                SDZ     DELAY_COUNTER_1
                JMP     WAITING
                RET
DELAY           ENDP
;------------------------------------------------------
HT93LC46_READ   PROC
                MOV      A,OFFSET DATA_BUFFER
                MOV      MP0,A
                MOV      A,ADDRESS_BUFFER
                OR      A,10000000B
                MOV      DATA,A
                CALL    START_BIT
                CALL    WRITE_TO_ROM

                MOV      A,04H
                MOV      COUNTER,A
READ_LOOP_1:
                MOV      A,04H
                MOV      COUNTER_1,A
                CLR     DATA
READ_LOOP_2:
                SET     EEPROM.SK
                MOV      A,PC
                CLR     EEPROM.SK
                AND     A,00000100B
                SUB     A,00000100B
                SZ      ACC
                JMP     READ_BIT_0
                SET     C
                RLC     DATA
                JMP     READ_OK
READ_BIT_0:
                CLR     C
                RLC     DATA
READ_OK:
                SDZ     COUNTER_1
                JMP     READ_LOOP_2
                MOV      A,DATA
                MOV      R0,A
                INC     MP0
                SDZ     COUNTER
                JMP     READ_LOOP_1
                CLR     EEPROM.CS
                CLR     EEPROM.DI
                RET
HT93LC46_READ   ENDP
;------------------------------------------------------
HT93LC46_ERASE  PROC
                MOV      A,ADDRESS_BUFFER
                OR      A,11000000B
                MOV      DATA,A
                CALL    START_BIT
                CALL    WRITE_TO_ROM
                CLR     EEPROM.CS
                CLR     EEPROM.DI
                CALL    SK_CLOCK
                CALL    SK_CLOCK
                SET     EEPROM.CS
                SET     EEPROM.DO
                CALL    SK_CLOCK
                CLR     EEPROM.CS
                CLR     EEPROM.DI
                RET
HT93LC46_ERASE  ENDP
;------------------------------------------------------
HT93LC46_WRITE  PROC
                MOV      A,OFFSET DATA_BUFFER
                MOV      MP0,A
                MOV      A,ADDRESS_BUFFER
                OR      A,01000000B
                MOV      DATA,A
                CALL    START_BIT
                CALL    WRITE_TO_ROM
                MOV      A,R0
                MOV      DATA,A
                CALL    WRITE_TO_ROM
                INC     MP0
                MOV      A,R0
                MOV      DATA,A
                CALL    WRITE_TO_ROM
                CLR     EEPROM.CS
                CLR     EEPROM.DI
                CALL    SK_CLOCK
                CALL    SK_CLOCK
                SET     EEPROM.CS
                SET     EEPROM.DO
                CALL    SK_CLOCK
                CLR     EEPROM.CS
                CLR     EEPROM.DI
                RET
HT93LC46_WRITE  ENDP
;------------------------------------------------------
HT93LC46_EWEN   PROC
                MOV      A,00110000B
                MOV      DATA,A
                CALL    START_BIT
                CALL    WRITE_TO_ROM
                CLR     EEPROM.CS
                CLR     EEPROM.DI
                RET
HT93LC46_EWEN   ENDP
;------------------------------------------------------
HT93LC46_EWDS   PROC
                MOV      A,00000000B
                MOV      DATA,A
                CALL    START_BIT
                CALL    WRITE_TO_ROM
                CLR     EEPROM.CS
                CLR     EEPROM.DI
                RET
HT93LC46_EWDS   ENDP
;------------------------------------------------------
HT93LC46_ERAL   PROC
                MOV      A,00100000B
                MOV      DATA,A
                CALL    START_BIT
                CALL    WRITE_TO_ROM
                CLR     EEPROM.CS
                CLR     EEPROM.DI
                CALL    SK_CLOCK
                CALL    SK_CLOCK
                SET     EEPROM.CS
                SET     EEPROM.DO
                CALL    SK_CLOCK
                CLR     EEPROM.CS
                CLR     EEPROM.DI
                RET
HT93LC46_ERAL   ENDP
;------------------------------------------------------
HT93LC46_WRAL   PROC
                MOV      A,OFFSET DATA_BUFFER
                MOV      MP0,A
                MOV      A,00010000B
                MOV      DATA,A
                CALL    START_BIT
                CALL    WRITE_TO_ROM
                MOV      A,R0
                MOV      DATA,A
                CALL    WRITE_TO_ROM
                INC     MP0
                MOV      A,R0
                MOV      DATA,A
                CALL    WRITE_TO_ROM
                CLR     EEPROM.CS
                CLR     EEPROM.DI
                CALL    SK_CLOCK
                CALL    SK_CLOCK
                SET     EEPROM.CS
                SET     EEPROM.DO
                CALL    SK_CLOCK
                CLR     EEPROM.CS
                CLR     EEPROM.DI
                RET
HT93LC46_WRAL   ENDP
;------------------------------------------------------
START_BIT       PROC
                SET     EEPROM.CS
                CALL    SK_CLOCK
                SET     EEPROM.DI
                CALL    SK_CLOCK
                RET
START_BIT       ENDP
;------------------------------------------------------
WRITE_TO_ROM    PROC
                MOV      A,08H
                MOV      COUNTER,A
ROM_LOOP:
                CLR     ACC
                CLR     C
                RLC     DATA
                RLC     ACC
                SUB     A,00H
                SZ      ACC
                JMP     ROM_OUTPUT_1
                CLR     EEPROM.DI
                CALL    SK_CLOCK
                JMP     ROM_OUTPUT_2
ROM_OUTPUT_1:
                SET     EEPROM.DI
                CALL    SK_CLOCK
ROM_OUTPUT_2:
                SDZ     COUNTER
                JMP     ROM_LOOP
                RET
WRITE_TO_ROM    ENDP
;------------------------------------------------------
SK_CLOCK        PROC
                CLR     EEPROM.SK
                NOP
                NOP
                NOP
                SET     EEPROM.SK
                NOP
                NOP
                NOP
                CLR     EEPROM.SK
                RET
SK_CLOCK        ENDP
;------------------------------------------------------
HEX_TO_TEXT     PROC
                MOV      A,OFFSET DATA_BUFFER
                MOV      MP1,A
                MOV      A,04H
                MOV      COUNTER,A
HEX_LOOP:
                MOV      A,R1
                ADD     A,07H
                MOV      R1,A
                INC     MP1
                SDZ     COUNTER
                JMP     HEX_LOOP
                RET
HEX_TO_TEXT     ENDP
;------------------------------------------------------
                ORG     0A00H
MESSAGE_01      PROC
                MOV      A,OFFSET MESSAGE_001
                LCD_BUFFER
                RET
MESSAGE_01      ENDP
MESSAGE_001:    ;[HT-93LC46 EEPROM]
                ;[ PRESS ANY KEY! ]
                DC      48H,54H,2DH,39H,33H,4CH,43H,34H
                DC      36H,20H,45H,45H,50H,52H,4FH,4DH
                DC      20H,50H,52H,45H,53H,53H,20H,41H
                DC      4EH,59H,20H,4BH,45H,59H,21H,20H

MESSAGE_02      PROC
                MOV      A,OFFSET MESSAGE_002
                LCD_BUFFER
                RET
MESSAGE_02      ENDP
MESSAGE_002:    ;[1.READ A DATA   ]
                ;[2.WRITE A DATA  ]
                DC      31H,2EH,52H,45H,41H,44H,20H,41H
                DC      20H,44H,41H,54H,41H,20H,20H,20H
                DC      32H,2EH,57H,52H,49H,54H,45H,20H
                DC      41H,20H,44H,41H,54H,41H,20H,7EH

MESSAGE_03      PROC
                MOV      A,OFFSET MESSAGE_003
                LCD_BUFFER
                RET
MESSAGE_03      ENDP
MESSAGE_003:    ;[3.ERASE A DATA  ]
                ;[4.ERASE ALL     ]
                DC      33H,2EH,45H,52H,41H,53H,45H,20H
                DC      41H,20H,44H,41H,54H,41H,20H,20H
                DC      34H,2EH,45H,52H,41H,53H,45H,20H
                DC      41H,4CH,4CH,20H,20H,20H,7FH,7EH

MESSAGE_04      PROC
                MOV      A,OFFSET MESSAGE_004
                LCD_BUFFER
                RET
MESSAGE_04      ENDP
MESSAGE_004:    ;[5.WRITE ALL     ]
                ;[6.EWDS          ]
                DC      35H,2EH,57H,52H,49H,54H,45H,20H
                DC      41H,4CH,4CH,20H,20H,20H,20H,20H
                DC      36H,2EH,45H,57H,44H,53H,20H,20H
                DC      20H,20H,20H,20H,20H,20H,7FH,7EH
;------------------------------------------------------
                ORG     0B00H
MESSAGE_05      PROC
                MOV      A,OFFSET MESSAGE_005
                LCD_BUFFER
                RET
MESSAGE_05      ENDP
MESSAGE_005:    ;[7.EWEN          ]
                ;[                ]
                DC      37H,2EH,45H,57H,45H,4EH,20H,20H
                DC      20H,20H,20H,20H,20H,20H,20H,20H
                DC      20H,20H,20H,20H,20H,20H,20H,20H
                DC      20H,20H,20H,20H,20H,20H,20H,7FH

MESSAGE_06      PROC
                MOV      A,OFFSET MESSAGE_006
                LCD_BUFFER
                RET
MESSAGE_06      ENDP
MESSAGE_006:    ;[ ENTER  ADDRESS ]
                ;[   (__) 00-63   ]
                DC      20H,45H,4EH,54H,45H,52H,20H,20H
                DC      41H,44H,44H,52H,45H,53H,53H,20H
                DC      20H,20H,20H,28H,5FH,5FH,29H,20H
                DC      30H,30H,2DH,36H,33H,20H,20H,20H

MESSAGE_07      PROC
                MOV      A,OFFSET MESSAGE_007
                LCD_BUFFER
                RET
MESSAGE_07      ENDP
MESSAGE_007:    ;[   ENTER DATA   ]
                ;[(____) 0000-9999]
                DC      20H,20H,20H,45H,4EH,54H,45H,52H
                DC      20H,44H,41H,54H,41H,20H,20H,20H
                DC      28H,5FH,5FH,5FH,5FH,29H,20H,30H
                DC      30H,30H,30H,2DH,39H,39H,39H,39H

MESSAGE_08      PROC
                MOV      A,OFFSET MESSAGE_008
                LCD_BUFFER
                RET
MESSAGE_08      ENDP
MESSAGE_008:    ;[ADDRESS:     DEC]
                ;[   DATA:     DEC]
                DC      41H,44H,44H,52H,45H,53H,53H,3AH
                DC      20H,20H,20H,20H,20H,20H,20H,20H
                DC      20H,20H,20H,44H,41H,54H,41H,3AH
                DC      20H,20H,20H,20H,20H,20H,20H,20H
;------------------------------------------------------
                ORG     0C00H
MESSAGE_09      PROC
                MOV      A,OFFSET MESSAGE_009
                LCD_BUFFER
                RET
MESSAGE_09      ENDP
MESSAGE_009:    ;[ENTER ERROR !   ]
                ;[ADDRESS OR DATA ]
                DC      45H,4EH,54H,45H,52H,20H,45H,52H
                DC      52H,4FH,52H,20H,21H,20H,20H,20H
                DC      41H,44H,44H,52H,45H,53H,53H,20H
                DC      4FH,52H,20H,44H,41H,54H,41H,20H

MESSAGE_10      PROC
                MOV      A,OFFSET MESSAGE_010
                LCD_BUFFER
                RET
MESSAGE_10      ENDP
MESSAGE_010:    ;[ ERASE OR WRITE ]
                ;[  ALL DATA OK!  ]
                DC      20H,45H,52H,41H,53H,45H,20H,4FH
                DC      52H,20H,57H,52H,49H,54H,45H,20H
                DC      20H,20H,41H,4CH,4CH,20H,44H,41H
                DC      54H,41H,20H,4FH,4BH,21H,20H,20H

MESSAGE_11      PROC
                MOV      A,OFFSET MESSAGE_011
                LCD_BUFFER
                RET
MESSAGE_11      ENDP
MESSAGE_011:    ;[ ERASE OR WRITE ]
                ;[   A DATA OK!   ]
                DC      20H,45H,52H,41H,53H,45H,20H,4FH
                DC      52H,20H,57H,52H,49H,54H,45H,20H
                DC      20H,20H,20H,41H,20H,44H,41H,54H
                DC      41H,20H,4FH,4BH,21H,20H,20H,20H

MESSAGE_12      PROC
                MOV      A,OFFSET MESSAGE_012
                LCD_BUFFER
                RET
MESSAGE_12      ENDP
MESSAGE_012:    ;[ ERASE OR WRITE ]
                ;[  DATA DISABLE  ]
                DC      20H,45H,52H,41H,53H,45H,20H,4FH
                DC      52H,20H,57H,52H,49H,54H,45H,20H
                DC      20H,20H,44H,41H,54H,41H,20H,44H
                DC      49H,53H,41H,42H,4CH,45H,20H,20H
;------------------------------------------------------
                ORG     0D00H
MESSAGE_13      PROC
                MOV      A,OFFSET MESSAGE_013
                LCD_BUFFER
                RET
MESSAGE_13      ENDP
MESSAGE_013:    ;[ ERASE OR WRITE ]
                ;[  DATA ENABLE   ]
                DC      20H,45H,52H,41H,53H,45H,20H,4FH
                DC      52H,20H,57H,52H,49H,54H,45H,20H
                DC      20H,20H,44H,41H,54H,41H,20H,45H
                DC      4EH,41H,42H,4CH,45H,20H,20H,20H
;------------------------------------------------------
                ORG     0F00H
HEX_TO_DEC:     DC      00H,0AH,14H,1EH,28H,32H,3CH,46H
                DC      50H,5AH
;------------------------------------------------------
                END


推荐阅读

史海拾趣

EHC(ELECTRONICHARDWARE)公司的发展小趣事

随着环保意识的不断提高,绿色环保已经成为电子行业的发展趋势。EHC公司积极响应这一趋势,致力于研发和生产绿色环保的电子产品。公司采用环保材料和工艺,减少生产过程中的污染排放。同时,EHC公司还积极推动废旧电子产品的回收和再利用工作,为环保事业做出了积极贡献。这种对环保的关注和行动让EHC公司在行业中树立了良好的形象。

East Texas Integrated Circuits公司的发展小趣事

随着市场的不断扩大,ETIC意识到必须不断提升自身的研发实力才能保持竞争优势。因此,公司加大了对研发的投入,引进了一批高端人才和先进的研发设备。同时,ETIC还积极与国内外高校和研究机构开展合作,共同开展前沿技术的研究和开发。这些努力使ETIC在集成电路领域的技术实力得到了显著提升。

Chino-Excel公司的发展小趣事

Chino-Excel公司最初是一家小型电子元件供应商,凭借对技术创新的执着追求,逐渐在市场中崭露头角。公司研发团队不断突破技术瓶颈,开发出性能更优越、成本更低的电子元器件。随着产品质量的提升和市场份额的扩大,Chino-Excel公司逐渐从众多竞争者中脱颖而出,成为行业内备受瞩目的新星。

Caltron Devices Ltd公司的发展小趣事

在电子市场竞争日益激烈的背景下,Caltron Devices Ltd公司始终坚持品质至上的原则。公司建立了严格的质量管理体系,从原材料的采购到生产过程的控制,再到产品的出厂检验,每一个环节都严格把关。正是这种对品质的执着追求,使得Caltron的产品在市场上获得了良好的口碑,赢得了客户的信赖。

HANA Micron公司的发展小趣事

随着线上及线下业务的快速增长,Hama面临着交货时效性的巨大挑战。为了应对这一挑战,公司决定在蒙海姆总部建造一座集仓储、拣选与发货一体的物流中心。该物流中心采用了先进的自动化和人工子系统相结合的设计方案,大大提高了物流运作的效率。新系统的启用使得Hama每天能够处理数以万计的订单,确保了产品的及时交付,进一步提升了客户满意度和品牌影响力。

Ark-Les Connectors公司的发展小趣事

Ark-Les Connectors公司从一家小型电子连接器制造商起步,凭借其不断的技术创新,逐渐在行业中崭露头角。公司研发团队致力于开发高性能、高可靠性的连接器产品,满足日益增长的电子设备连接需求。通过对材料科学的深入研究,Ark-Les成功研发出新型耐高温、耐腐蚀的连接器材料,大大提高了产品的使用寿命和稳定性。这一创新不仅赢得了客户的广泛认可,也为公司带来了可观的市场份额。

问答坊 | AI 解惑

全国大学生电子设计大赛历年题目

全国大学生电子设计大赛历年题目,里面包含技术达标,元器件,评分规则…

查看全部问答>

求C++简易教程

入门级的C++教程。多一点实例讲解的 大家给推荐一下啊。…

查看全部问答>

基于FPGA 的DDS 调频信号的研究与实现.pdf

基于FPGA 的DDS 调频信号的研究与实现.pdf…

查看全部问答>

下班回家后,不弄技术,你能做什么?

嗨, 本来想看点电视节目的,关注关注国家大事什么的............... 但是还是习惯看看单片机论坛,查查资料什么的 ............ 我这陋习真难改...........…

查看全部问答>

嵌入式系统如何与计算机通过以太网连接

本人在利用DM642EVM上设计了一个算法,想通过网口将计算结果传给计算机,EVM上发送的是标准的IP包,请问计算机端如何接收,请各位高手指点…

查看全部问答>

keil3上memory window 无法显示的问题

前两天你在网上下了个700多M的keil3来用!好不容易装好了发现memory window 里没法显示内存数据! 看了半天发现是字体的问题,memory window 的字体默认的是1295711,一般编译框里字体是10或0,但是没办法修改!今天弄了一天都没办法,字体太小, ...…

查看全部问答>

STM32的UART竟然不支持7Bit传输...

STM32 只能设置8,9位的方式。LPC ARM可以支持5,6,7,8位。工控中常用的 9600,E,7,1 就用不了吗?…

查看全部问答>

ModelSim中自带一个例子的疑问

在ModelSim安装成功后应该是在.....\\ModelSim\\examples\\tutorials\\verilog\\basicSimulation的目录下,有一个counter.v和tcounter.v的两个文件, 主要的疑问就是在count.v中为什么要加入function那一块?老是无法明了。 疑问的部分就是大号粗 ...…

查看全部问答>

设置提醒的建议

我跟帖,要是有人回复了我,或者我自己发的帖子有新的回复,我希望能得到有一个提醒,这样子会好一些…

查看全部问答>