?? 12864.asm.bak
字號:
;********************************************************************************
;* 標題: ME300系列單片機開發系統演示程序 - 12864LCD(不帶字庫)演示 *
;* 硬件: ME300A+,ME300B *
;* 文件: wl015.asm *
;* 日期: 2005-3-20 *
;* 版本: 1.0 *
;* 作者: sauwa *
;* 郵箱: sauwa@willar.com *
;* 網站: http://www.willar.com *
;********************************************************************************
;* 描述: *
;* 12864LCD(不帶字庫)演示程序 *
;* *
;* 控制器:KS0107 *
;* LCD型號:TS12864A-2或兼容型號 *
;* MCU:AT89S52 ,晶體頻率:11.0592MHz *
;* 取模方式:縱向字節倒序 *
;* CS1和CS2為高電平有效 * *
;* *
;********************************************************************************
;* 【版權】 Copyright(C)偉納電子 www.willar.com All Rights Reserved *
;* 【聲明】 此程序僅用于學習與參考,引用請注明版權和作者信息! *
;********************************************************************************
;***************硬件端口定義***********
RS EQU P2.0
RW EQU P2.1
E EQU P2.2
CS1 EQU P2.3
CS2 EQU P2.4
RST EQU P2.5
COM EQU 20H ;指令數據寄存器
DAT EQU 21H ;顯示數據寄存器
;**********************************主程序入口地址
ORG 0000H
AJMP STR
ORG 0003H
;*********************************中斷程序入口地址
STR:
AJMP L0100
L0100: CLR RST
NOP
NOP
SETB RST
;********************************以上是軟件復位
MOV SP,#60H
MOV IE,#81H ;中斷允許
MOV IP,#01H ;優先中斷
MOV TCON,#00H ;電平中斷
MOV COM,#3FH ;顯示開
LCALL S02A9 ;左半屏寫指令子程序
LCALL S02C1 ;右半屏寫指令子程序
;----------------------------------------------------------------------
MOV COM,#0C0H ;第一行
LCALL S02A9 ;左半屏寫指令子程序
LCALL S02C1 ;右半屏寫指令子程序
;----------------------------------------------------------------------
MOV COM,#0B8H ;第一頁
LCALL S02A9 ;左半屏寫指令子程序
LCALL S02C1 ;右半屏寫指令子程序
;----------------------------------------------------------------------
MOV COM,#40H ;第一列
LCALL S02A9 ;左半屏寫指令子程序
LCALL S02C1 ;右半屏寫指令子程序
;********************************************************以上是軟件初始化
MOV B,#0AAH
LCALL XIHX ;顯示橫線1
LCALL DELAY
; MOV B,#55H
; LCALL XIHX
; LCALL DELAY ;顯示橫線2
MOV B,#0FFH
MOV 29H,#00H
LCALL XISX
LCALL DELAY ;顯示豎線1
; MOV B,#00H
; MOV 29H,#0FFH
; LCALL XISX
; LCALL DELAY ;顯示豎線2
MOV DPTR,#TAB1
LCALL LEFT
MOV DPTR,#TAB2
LCALL RIGHT
LCALL DELAY ;顯示第一幅圖片
MOV DPTR,#TAB3
LCALL LEFT
MOV DPTR,#TAB4
LCALL RIGHT
LCALL DELAY ;顯示第二幅圖片
MOV DPTR,#TAB5
LCALL LEFT
MOV DPTR,#TAB6
LCALL RIGHT
LCALL DELAY ;顯示第三幅圖片
AJMP L0100
;=======================================================以上是主程序
LEFT: MOV R1,#0B8H
_AB: MOV COM,R1 ;第一頁
LCALL S02A9 ;左半屏寫指令子程序
MOV COM,#40H ;第一列
LCALL S02A9 ;左半屏寫指令子程序
MOV R0, #64
S027B: MOV A,#00H
MOVC A,@A+DPTR
MOV DAT,A
LCALL S02B1 ;左半屏寫數據子程序
INC DPTR
DJNZ R0,S027B
INC R1
CJNE R1, #0C0H,_AB
RET
;======================================================以上是左半屏寫數據子程序
RIGHT: MOV R1,#0B8H
ABC: MOV COM,R1 ;第一頁
LCALL S02C1 ;右半屏寫指令子程序
MOV COM,#40H ;第一列
LCALL S02C1 ;右半屏寫指令子程序
MOV R0, #64
S027D: MOV A,#00H
MOVC A,@A+DPTR
MOV DAT,A
LCALL S02B9 ;右半屏寫數據子程序
INC DPTR
DJNZ R0,S027D
INC R1
CJNE R1, #0C0H,ABC
RET
;*******************************************************以上是右半屏寫數據子程序
XIHX: MOV R1,#0B8H
BA: MOV COM,R1 ;第一頁
LCALL S02A9 ;左半屏寫指令子程序
LCALL S02C1 ;右半屏寫指令子程序
MOV COM,#40H ;第一列
LCALL S02A9 ;左半屏寫指令子程序
LCALL S02C1 ;右半屏寫指令子程序
MOV R0, #64
W027B: MOV DAT,B
LCALL S02B1 ;左半屏寫數據子程序
LCALL S02B9 ;右半屏寫數據子程序
DJNZ R0,W027B
INC R1
CJNE R1, #0C0H,BA
RET
;---------------------------------------------------------
XISX: MOV R1,#0B8H
CA: MOV COM,R1 ;第一頁
LCALL S02A9 ;左半屏寫指令子程序
LCALL S02C1 ;右半屏寫指令子程序
MOV COM,#40H ;第一列
LCALL S02A9 ;左半屏寫指令子程序
LCALL S02C1 ;右半屏寫指令子程序
MOV R0, #32
X027B: MOV DAT,B
LCALL S02B1 ;左半屏寫數據子程序
LCALL S02B9 ;右半屏寫數據子程序
MOV DAT,29H
LCALL S02B1 ;左半屏寫數據子程序
LCALL S02B9 ;右半屏寫數據子程序
DJNZ R0,X027B
INC R1
CJNE R1, #0C0H,CA
RET
;****************************************************以上是顯示線條程序
S02A9: SETB CS1
LCALL S02C9
CLR CS1 ;左半屏寫指令子程序
RET
S02B1: SETB CS1 ;左半屏寫數據子程序
LCALL S02E0
CLR CS1
RET
S02C1: SETB CS2 ;右半屏寫指令子程序
LCALL S02C9
CLR CS2
RET
S02B9: SETB CS2 ;右半屏寫數據子程序
LCALL S02E0
CLR CS2
RET
;****************************************************
S02C9: CLR RS
SETB RW
S02C9A: MOV P0,#0FFH
SETB E
MOV A, P0
CLR E
JB ACC.7,S02C9A
CLR RW
MOV P0,COM
SETB E
NOP
CLR E
RET
;*************************************************以上是寫指令子程序
S02E0: CLR RS
SETB RW
S02E0A: MOV P0,#0FFH
SETB E
MOV A, P0
CLR E
JB ACC.7,S02E0A
SETB RS
CLR RW
MOV P0,DAT
SETB E
NOP
CLR E
RET
;************************************************以上是寫數據子程序
DELAY: MOV R5,#0BH ;延時
D1: MOV R7,#0FFH
D2: MOV R6,#0FFH
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -