MTK8088单板机LCD显示程序
·
该套件提供用于LCD显示的16针接口。任何带有HD44780控制器的LCD模块均可使用。
本示例展示了如何在LCD上显示文本消息。
插拔LCD模块时,必须关闭套件的电源。请小心地将其插入正确位置!引脚1是左手边的第一个引脚
代码首先通过调用初始化LCD配置模式来启动程序。随后会打印由SI寄存器所指向的第一条信息。子程序PUT_STR_LCD将逐字节写入ASCII字符,直至找到终止符0。
下一行通过将BX加载为0001来选择,然后子程序GOTO_XY将LCD的当前位置设置到第2行。接着对第二条消息执行相同操作。
消息是由ASCII字母组成的字符串,以0结尾。
程序
; sample test code for LCD display
CPU "8086.TBL" ; CPU TABLE
HOF "INT8" ; HEX OUTPUT FORMAT
PORT0 EQU 100H ; INPUT PORT, UART RXD BIT7, USER KEY S21
PORT1 EQU 1 ; DIGIT CONTROL
PORT2 EQU 2 ; SEGMENT
PORT3 EQU 3 ; BI-COLOR LED, UART TXD BIT2, SPEAKER BIT3
GPIO1 EQU 0 ; CHANGE LOCATION OF GPIO1 FROM 100 TO 0
LCD EQU 200H
USER EQU 300H
USER_STACK EQU 0FE00H
SYSTEM_STACK EQU 0FF00H
command_write equ 0
command_read equ 2
data_write equ 1
data_read equ 3
busy equ 80h
org 400h
JMP TEST_LCD
; LCD DRIVER HD44780
LCD_READY push ax
MOV DX,LCD+COMMAND_READ
WAIT IN AL,DX
AND AL,80H
JNE WAIT ; UNTIL READY
pop ax
RET
clear_lcd: call lcd_ready
MOV AL,1
MOV DX,LCD+COMMAND_WRITE
OUT DX,AL
RET
init_lcd: call lcd_ready
MOV DX,LCD+COMMAND_WRITE
MOV AL,38H
OUT DX,AL
call lcd_ready
MOV DX,LCD+COMMAND_WRITE
MOV AL,0ch
OUT DX,AL
call clear_lcd
ret
; print ASCII text on LCD
; entry: SI
put_str_lcd:
seg cs ; need for rom placement
MOV AL,[SI]
CMP AL,0
JNE put_str_lcd1
ret
put_str_lcd1:
call lcd_ready
MOV DX,LCD+DATA_WRITE
OUT DX,AL
INC SI
JMP put_str_lcd
; goto_xy set cursor location on lcd
; entry: BX: BH = x, BL = y
goto_xy: call lcd_ready
mov al,bl
cmp al,0
jne goto_xy1
mov al,bh
add al,80h
mov dx,lcd+command_write
out dx,al
ret
goto_xy1: cmp al,1
jne goto_xy2
mov al,bh
add al,0c0h
mov dx,lcd+command_write
out dx,al
ret
goto_xy2: cmp al,2
jne goto_xy3
mov al,bh
add al,094h
mov dx,lcd+command_write
out dx,al
ret
goto_xy3: cmp al,3
jne goto_xy4
mov al,bh
add al,0d4h
mov dx,lcd+command_write
out dx,al
ret
goto_xy4: ret
; put_ch_lcd put character to lcd
; entry: AL
put_ch_lcd: call lcd_ready
mov dx,lcd+data_write
out dx,al
ret
TEST_LCD CALL INIT_LCD
MOV SI,TEXT
CALL PUT_STR_LCD
mov bx,0001
call goto_xy
mov si,text2
call put_str_lcd
ret
TEXT DFB "Hello John",0
text2 dfb "Merry X-mas",0
END

更多推荐


所有评论(0)