欢迎光临
我们一直在努力

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

PORT0EQU 100H ; INPUT PORT, UART RXD BIT7, USER KEY S21
PORT1EQU 1; DIGIT CONTROL
PORT2EQU 2; SEGMENT
PORT3EQU 3; BI-COLOR LED, UART TXD BIT2, SPEAKER BIT3
GPIO1EQU 0 ; CHANGE LOCATION OF GPIO1 FROM 100 TO 0

LCD EQU 200H
USEREQU 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)
未经允许不得转载:171主机测评 » MTK8088单板机LCD显示程序
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址