?? exa.asm
字號:
;功能簡介
;Mini51板lcd1602字符顯示
;作者:田開坤
;時間:2008.04.30
;/******LCD1602接口定義*******/
LCD_CW EQU 0FCEBH ;該地址由Mini51板硬件確定
LCD_DW EQU 0FDEBH ;該地址由Mini51板硬件確定
LCD_CR EQU 0FEEBH ;該地址由Mini51板硬件確定
LCD_DR EQU 0FFEBH ;該地址由Mini51板硬件確定
LINE1 EQU 00H ;LCD1602第一行地址
LINE2 EQU 40H ;LCD1602第二行地址
ORG 0000H
AJMP START
ORG 0030H ;30H以前的空間被中斷占用,主程序一般從30H開始
START: MOV SP,#60H ;設置堆棧指針
MOV DPTR,#LCD_CW
MOV A,#0CH
MOVX @DPTR,A ;LCD初始化
ACALL BUSY
MOV DPTR,#LCD_CW
MOV A,#38H
MOVX @DPTR,A ;LCD顯示
;寫LCD第一行
;****************************************
ACALL BUSY
MOV DPTR,#LCD_CW
MOV A,#(80H+LINE1)
MOVX @DPTR,A
MOV R6,#16
MOV R7,#0
LOOP: ACALL BUSY
MOV A,R7
MOV DPTR,#CHAR_STR
MOVC A,@A+DPTR
MOV DPTR,#LCD_DW
MOVX @DPTR,A
INC R7
DJNZ R6,LOOP
;****************************************
;寫LCD第二行
;****************************************
ACALL BUSY
MOV DPTR,#LCD_CW
MOV A,#(80H+LINE2)
MOVX @DPTR,A
MOV R6,#16
MOV R7,#0
LOOP0: ACALL BUSY
MOV A,R7
MOV DPTR,#CHAR_STR+16
MOVC A,@A+DPTR
MOV DPTR,#LCD_DW
MOVX @DPTR,A
INC R7
DJNZ R6,LOOP0
;**************************************
SJMP $ ;結束,原地踏步
;LCD忙檢測
;*************************************
BUSY: MOV DPTR,#LCD_CR
BUSY?: MOVX A,@DPTR
ANL A,#80H
JNZ BUSY?
RET
;*************************************
CHAR_STR:
DB "welcometostuelab"
DB "0123456789ABCDEF"
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -