?? 1602lcd_gd.asm
字號:
;*******************************************************************
;*
;* ME300B單片機開發系統演示程序 - LCD1602 滾動顯示
;*
;* 顯示內容:WLCOME TO WWW.WILLAR.COM
;*
;* 顯示方式:
;* 1、從左到右逐字顯示,閃動二次,清屏。
;* 2、再從右到左逐字顯示,閃動二次,清屏。
;* 3、周期性地重復上述顯示方式。
;*
;* 郵箱: gguoqing@willar.com
;* 網站: http://www.willar.com
;* 作者: gguoqing
;* 創作時間:2004/12/20
;* 修改時間:2006/01/20
;*
;*【版權】Copyright(C)偉納電子 www.willar.com All Rights Reserved
;*【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!
;*
;*******************************************************************
LCD_RS EQU P2.0
LCD_RW EQU P2.1
LCD_EN EQU P2.2
;*******************************************************************
ORG 0000H
AJMP MAIN
ORG 0030H
;*******************************************************************
MAIN:
MOV SP,#60H
MOV R4,#02H ;設置閃爍次數
ACALL LCD_INIT
MAIN1:
ACALL LCDSET1
MOV DPTR,#CHAR1
ACALL WRITE1 ;顯示“WELCOME TO”
MOV A,#0C0H ;顯示第二行左邊第一位位置
ACALL LCD_CMD
MOV DPTR,#CHAR2 ;顯示“WWW.WILLAR.COM”
ACALL WRITE1
ACALL DELAY4 ;延時
ACALL DELAY4
ACALL SHAN ;閃爍兩次
ACALL LCDSET2
MOV DPTR,#CHAR3 ;顯示“WELCOME TO”
ACALL WRITE1
MOV A,#0CFH ;顯示第二行右邊第一位位置
ACALL LCD_CMD
MOV DPTR,#CHAR4 ;顯示“WWW.WILLAR.COM”
ACALL WRITE1
ACALL DELAY4 ;延時
ACALL DELAY4
ACALL SHAN ;閃爍兩次
ACALL MAIN1
;***************************************************************
;LCD初始化設定子程序
;***************************************************************
LCD_INIT:
ACALL DELAY5MS ;延時15MS
ACALL DELAY5MS ;等待LCD電源穩定
ACALL DELAY5MS
MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS
MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS
MOV A,#38H ;16*2顯示,5*7點陣,8位數據
ACALL LCD_CMD_NC ;不進行LCD忙檢測
ACALL DELAY5MS
MOV A,#08H ;顯示關
ACALL LCD_CMD ;進行LCD忙檢測
MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;進行LCD忙檢測
MOV A,#06H ;移動光標
ACALL LCD_CMD ;進行LCD忙檢測
MOV A,#0CH ;顯示開,關光標
ACALL LCD_CMD ;進行LCD忙檢測
RET
;***************************************************************
;顯示位置與移動光標設定
;***************************************************************
LCDSET1:
MOV A,#01H ;清除屏幕
ACALL LCD_CMD
ACALL DELAY5MS
MOV A,#06H ;移動光標(光標加1)
ACALL LCD_CMD
ACALL DELAY5MS
MOV A,#80H ;顯示第一行左邊第一位位置
ACALL LCD_CMD
ACALL DELAY5MS
RET
LCDSET2:
MOV A,#01H ;清除屏幕
ACALL LCD_CMD
ACALL DELAY5MS
MOV A,#04H ;移動光標(光標減1)
ACALL LCD_CMD
ACALL DELAY5MS
MOV A,#8FH ;顯示第一行右邊第一位位置
ACALL LCD_CMD
ACALL DELAY5MS
RET
;***************************************************************
;寫指令數據到LCD
;RS=L,RW=L,D0-D7=指令碼,E=高脈沖
;***************************************************************
LCD_CMD:
ACALL CHECKBUSY
LCD_CMD_NC:
CLR LCD_RS
CLR LCD_RW
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -