📄 12864串行.lst
字号:
A51 MACRO ASSEMBLER 12864確__ 12/17/2008 18:31:39 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN .\12864串行.obj
ASSEMBLER INVOKED BY: F:\Hardware Develop\Develop Tools\Keil uVision v2.0\KEIL\C51\BIN\A51.EXE C:\Documents and Settings
\Administrator\桌面\12864串行.ASM SET(SMALL) DEBUG PRINT(.\12864串行.lst) OBJECT(.\12864串行.obj) EP
LOC OBJ LINE SOURCE
1 ;*********************************************************************
2 ; 以下程序用以演示一个计时程序,说明中文液晶显示器12864的串口驱动用法
3 ; 使用12864\12MHZ晶振\AT89c51
4 ;**********************************************************************
5 ;************定义***************
6
00A7 7 CS EQU P2.7 ;液晶使能,=1操作,=0禁止.
00A6 8 SID EQU P2.6 ;液晶串行数据输入口
00A5 9 SCLK EQU P2.5 ;液晶串行操作时钟口
00A4 10 PSB EQU P2.4 ;液晶串行操作
00A2 11 RST EQU P2.2
12
13 ;************程序入口***********
0000 14 ORG 0000H ;程序执行开始地址
0000 020030 15 LJMP START ;跳到标号START执行
0030 16 ORG 0030H ;主程序入口
17 ;**********主程序****************
0030 C2A7 18 START: CLR CS ;液晶操作禁止
0032 3172 19 ACALL DELAY
0034 C2A4 20 CLR PSB
0036 D2A2 21 SETB RST
0038 D2A7 22 SETB CS ;液晶操作开启
003A 1200B3 23 LCALL SETUP ;LCD初始化
003D 120053 24 MAIN: LCALL LOGON ;开机显示画面
0040 12016A 25 LCALL DELAY1
0043 7401 26 MOV A,#01H
0045 11F8 27 ACALL WRITE_COM
0047 120083 28 LCALL LOGON1
004A 1200E3 29 LCALL SHANGSHUO
004D 7401 30 MOV A,#01H
004F 11F8 31 ACALL WRITE_COM
0051 013D 32 AJMP MAIN
33
34 ;***************开机显示画面***********************
0053 7480 35 LOGON: MOV A,#80H ;第一行左第一个字开始
0055 1200F8 36 LCALL WRITE_COM
0058 9001D2 37 MOV DPTR,#CHINESE ;WORD 16*16点阵TEST
005B 120198 38 LCALL WRITE_HZ
005E 7490 39 MOV A,#90H ;第二行左第一个字开始
0060 1200F8 40 LCALL WRITE_COM
0063 9001E2 41 MOV DPTR,#CHINESE1 ;WORD 16*16点阵TEST
0066 120198 42 LCALL WRITE_HZ
0069 7488 43 MOV A,#88H ;第三行左第一个字开始
006B 1200F8 44 LCALL WRITE_COM
006E 9001F2 45 MOV DPTR,#CHINESE2 ;WORD 16*16点阵TEST
0071 120198 46 LCALL WRITE_HZ
0074 7498 47 MOV A,#98H ;第四行左第一个字开始
0076 1200F8 48 LCALL WRITE_COM
0079 900202 49 MOV DPTR,#CHINESE3 ;WORD 16*16点阵TEST
007C 120198 50 LCALL WRITE_HZ
007F 12017B 51 LCALL DELAY5S ;显示5秒
0082 22 52 RET
53 ;***************开机显示画面***********************
0083 7480 54 LOGON1: MOV A,#80H ;第一行左第一个字开始
0085 1200F8 55 LCALL WRITE_COM
0088 900212 56 MOV DPTR,#CHINESE4 ;WORD 16*16点阵TEST
008B 120198 57 LCALL WRITE_HZ
A51 MACRO ASSEMBLER 12864確__ 12/17/2008 18:31:39 PAGE 2
008E 7490 58 MOV A,#90H ;第二行左第一个字开始
0090 1200F8 59 LCALL WRITE_COM
0093 900222 60 MOV DPTR,#CHINESE5 ;WORD 16*16点阵TEST
0096 120198 61 LCALL WRITE_HZ
0099 7488 62 MOV A,#88H ;第三行左第一个字开始
009B 1200F8 63 LCALL WRITE_COM
009E 900232 64 MOV DPTR,#CHINESE6 ;WORD 16*16点阵TEST
00A1 120198 65 LCALL WRITE_HZ
00A4 7498 66 MOV A,#98H ;第四行左第一个字开始
00A6 1200F8 67 LCALL WRITE_COM
00A9 900242 68 MOV DPTR,#CHINESE7 ;WORD 16*16点阵TEST
00AC 120198 69 LCALL WRITE_HZ
00AF 12017B 70 LCALL DELAY5S ;显示5秒
00B2 22 71 RET
72 ;**********初始化程序*************
00B3 73 SETUP:
00B3 7401 74 MOV A,#01H ;CLEAR DISPLAY
00B5 1200F8 75 LCALL WRITE_COM
00B8 7430 76 MOV A,#00110000B ;FUNCTION SETTING
00BA 1200F8 77 LCALL WRITE_COM
00BD 7402 78 MOV A,#00000010B ;DDRAM SET TO '00H'
00BF 1200F8 79 LCALL WRITE_COM
00C2 7404 80 MOV A,#00000100B ;
00C4 1200F8 81 LCALL WRITE_COM
00C7 740C 82 MOV A,#00001100B ;DISPLAY ON
00C9 1200F8 83 LCALL WRITE_COM
00CC 7401 84 MOV A,#00000001B ;CLEARING SCREEN
00CE 1200F8 85 LCALL WRITE_COM
00D1 7480 86 MOV A,#10000000B ;SET DDRAM ADDRESS
00D3 1200F8 87 LCALL WRITE_COM
00D6 120172 88 LCALL DELAY
00D9 120172 89 LCALL DELAY
00DC 120172 90 LCALL DELAY
00DF 120172 91 LCALL DELAY
00E2 22 92 RET
93 ;************闪烁子程序***********************
00E3 94 SHANGSHUO:
00E3 7B03 95 MOV R3,#3
00E5 7408 96 S1: MOV A,#08H ;关显示
00E7 1200F8 97 LCALL WRITE_COM
00EA 12016A 98 LCALL DELAY1
00ED 740C 99 MOV A,#0CH
00EF 1200F8 100 LCALL WRITE_COM ;开显示
00F2 12016A 101 LCALL DELAY1
00F5 DBEE 102 DJNZ R3,S1 ;循环闪烁
00F7 22 103 RET
104 ;************串行命令写入子程序****************
105 ;写入命令字在A中
00F8 106 WRITE_COM:
00F8 12016A 107 LCALL DELAY1 ;
00FB D2A7 108 SETB CS
00FD C0E0 109 PUSH ACC
00FF 7808 110 MOV R0,#8
0101 74F8 111 MOV A,#11111000B
0103 112 COMM1:
0103 C3 113 CLR C
0104 33 114 RLC A
0105 92A6 115 MOV SID,C
0107 C2A5 116 CLR SCLK
0109 D2A5 117 SETB SCLK
010B D8F6 118 DJNZ R0,COMM1
010D D0E0 119 POP ACC
010F FD 120 MOV R5,A
0110 54F0 121 ANL A,#0F0H
0112 7808 122 MOV R0,#8
0114 C3 123 COMM2: CLR C
A51 MACRO ASSEMBLER 12864確__ 12/17/2008 18:31:39 PAGE 3
0115 33 124 RLC A
0116 92A6 125 MOV SID,C
0118 C2A5 126 CLR SCLK
011A D2A5 127 SETB SCLK
011C D8F6 128 DJNZ R0,COMM2
011E ED 129 MOV A,R5
011F C4 130 SWAP A
0120 54F0 131 ANL A,#0F0H
0122 7808 132 MOV R0,#8
0124 C3 133 COMM3: CLR C
0125 33 134 RLC A
0126 92A6 135 MOV SID,C
0128 C2A5 136 CLR SCLK
012A D2A5 137 SETB SCLK
012C D8F6 138 DJNZ R0,COMM3
012E C2A7 139 CLR CS
0130 22 140 RET
141 ;
142 ;***********串行数据写入子程序****************
143 ;写入数据字在A中
0131 144 WRITE_DAT:
0131 12016A 145 LCALL DELAY1
0134 D2A7 146 SETB CS
0136 C0E0 147 PUSH ACC
0138 7808 148 MOV R0,#8
013A 74FA 149 MOV A,#11111010B
013C C3 150 DATA1: CLR C
013D 33 151 RLC A
013E 92A6 152 MOV SID,C
0140 C2A5 153 CLR SCLK
0142 D2A5 154 SETB SCLK
0144 D8F6 155 DJNZ R0,DATA1
0146 D0E0 156 POP ACC
0148 FD 157 MOV R5,A
0149 54F0 158 ANL A,#0F0H
014B 7808 159 MOV R0,#8
014D C3 160 DATA2: CLR C
014E 33 161 RLC A
014F 92A6 162 MOV SID,C
0151 C2A5 163 CLR SCLK
0153 D2A5 164 SETB SCLK
0155 D8F6 165 DJNZ R0,DATA2
0157 ED 166 MOV A,R5
0158 C4 167 SWAP A
0159 54F0 168 ANL A,#0F0H
015B 7808 169 MOV R0,#8
015D C3 170 DATA3: CLR C
015E 33 171 RLC A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -