?? 1602lcd_gd.asm
字號(hào):
;*******************************************************************
;*
;*LCD1602 滾動(dòng)顯示
;*
;* 顯示內(nèi)容:WLCOME TO WWW.WILLAR.COM
;*
;* 顯示方式:
;* 1、從左到右逐字顯示,閃動(dòng)二次,清屏。
;* 2、再?gòu)挠业阶笾鹱诛@示,閃動(dòng)二次,清屏。
;* 3、周期性地重復(fù)上述顯示方式。
;*
;*
;*
;*******************************************************************
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 ;設(shè)置閃爍次數(shù)
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 ;延時(shí)
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 ;延時(shí)
ACALL DELAY4
ACALL SHAN ;閃爍兩次
ACALL MAIN1
;***************************************************************
;LCD初始化設(shè)定子程序
;***************************************************************
LCD_INIT:
ACALL DELAY5MS ;延時(shí)15MS
ACALL DELAY5MS ;等待LCD電源穩(wěn)定
ACALL DELAY5MS
MOV A,#38H ;16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)
ACALL LCD_CMD_NC ;不進(jìn)行LCD忙檢測(cè)
ACALL DELAY5MS
MOV A,#38H ;16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)
ACALL LCD_CMD_NC ;不進(jìn)行LCD忙檢測(cè)
ACALL DELAY5MS
MOV A,#38H ;16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)
ACALL LCD_CMD_NC ;不進(jìn)行LCD忙檢測(cè)
ACALL DELAY5MS
MOV A,#08H ;顯示關(guān)
ACALL LCD_CMD ;進(jìn)行LCD忙檢測(cè)
MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;進(jìn)行LCD忙檢測(cè)
MOV A,#06H ;移動(dòng)光標(biāo)
ACALL LCD_CMD ;進(jìn)行LCD忙檢測(cè)
MOV A,#0CH ;顯示開,關(guān)光標(biāo)
ACALL LCD_CMD ;進(jìn)行LCD忙檢測(cè)
RET
;***************************************************************
;顯示位置與移動(dòng)光標(biāo)設(shè)定
;***************************************************************
LCDSET1:
MOV A,#01H ;清除屏幕
ACALL LCD_CMD
ACALL DELAY5MS
MOV A,#06H ;移動(dòng)光標(biāo)(光標(biāo)加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 ;移動(dòng)光標(biāo)(光標(biāo)減1)
ACALL LCD_CMD
ACALL DELAY5MS
MOV A,#8FH ;顯示第一行右邊第一位位置
ACALL LCD_CMD
ACALL DELAY5MS
RET
;***************************************************************
;寫指令數(shù)據(jù)到LCD
;RS=L,RW=L,D0-D7=指令碼,E=高脈沖
;***************************************************************
LCD_CMD:
ACALL CHECKBUSY
LCD_CMD_NC:
CLR LCD_RS
CLR LCD_RW
MOV P0,A
SETB LCD_EN
NOP
NOP
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -