?? 1602lcd_yd.asm
字號:
;*******************************************************************
;*
;* ME300B單片機開發系統演示程序 - LCD1602 移動顯示C
;*
;* 顯示內容: CHINESE
;* NEW YEAR
;*
;* 顯示方式:
;* 1、LCD第一行顯示: CHINESE
;* LCD第二行顯示: NEW YEAR
;* 2、先將兩行字符寫入DDRAM中,然后從右至左逐字移出顯示。
;* 3、在指定位置停留1.6秒后,閃爍2次,清屏。
;* 4、反復循環上述顯示方式。
;*
;* 郵箱: gguoqing@willar.com
;* 網站: http://www.willar.com
;* 作者: gguoqing
;* 時間: 2006/01/23
;*
;*【版權】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
ACALL LCD_INIT ;LCD初始化
MAIN1:
ACALL CLR_LCD ;清LCD
MOV A,#90H ;在第一行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE1 ;第一行字符串的起始地址送入DPTR。
ACALL WRITE
MOV A,#0D0H ;在第二行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE2 ;第二行字符串的起始地址送入DPTR。
ACALL WRITE
MOV R3,#10H ;向左移動16格
LOOPA:
MOV A,#18H ;字符同時左移一格
ACALL LCD_CMD
MOV R5,#03H ;延時375MS
ACALL DELAY125MS
DJNZ R3,LOOPA
ACALL DELAY4 ;延時1.6s
ACALL DELAY4
MOV R4,#02H ;設置閃爍次數
ACALL FLASH ;開始閃爍
AJMP MAIN1
LINE1:
DB " CHINESE ",00H
LINE2:
DB " NEW YEAR ",00H
;***************************************************************
;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,#0CH ;顯示開,關光標
ACALL LCD_CMD ;進行LCD忙檢測
RET
;***************************************************************
;清LCD子程序
;***************************************************************
CLR_LCD:
MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;進行LCD忙檢測
RET
;***************************************************************
;寫指令數據到LCD
;RS=L,RW=L,D0-D7=指令碼,E=高脈沖
;***************************************************************
LCD_CMD:
CALL CHECKBUSY
LCD_CMD_NC:
CLR LCD_RS
CLR LCD_RW
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -