📄 051203059.lst
字号:
A51 MACRO ASSEMBLER 051203059 12/16/2008 22:42:45 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN .\051203059.obj
ASSEMBLER INVOKED BY: F:\Hardware Develop\Develop Tools\Keil uVision v2.0\KEIL\C51\BIN\A51.EXE C:\Documents and Settings
\Administrator\桌面\051203059.ASM SET(SMALL) DEBUG PRINT(.\051203059.lst) OBJECT(.\051203059.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 3156 19 ACALL DELAY
0034 C2A4 20 CLR PSB
0036 D2A2 21 SETB RST
0038 D2A7 22 SETB CS ;液晶操作开启
003A 1200AB 23 LCALL SETUP ;LCD初始化
003D 12004B 24 MAIN: LCALL LOGON ;开机显示画面
0040 7401 25 MOV A,#01H
0042 11DB 26 ACALL WRITE_COM
0044 12007B 27 LCALL LOGON1
0047 315F 28 ACALL DELAY5S
0049 013D 29 AJMP MAIN
30
31 ;***************开机显示画面***********************
004B 7480 32 LOGON: MOV A,#80H ;第一行左第一个字开始
004D 1200DB 33 LCALL WRITE_COM
0050 9001B6 34 MOV DPTR,#CHINESE ;WORD 16*16点阵TEST
0053 12017C 35 LCALL WRITE_HZ
0056 7490 36 MOV A,#90H ;第二行左第一个字开始
0058 1200DB 37 LCALL WRITE_COM
005B 9001C6 38 MOV DPTR,#CHINESE1 ;WORD 16*16点阵TEST
005E 12017C 39 LCALL WRITE_HZ
0061 7488 40 MOV A,#88H ;第三行左第一个字开始
0063 1200DB 41 LCALL WRITE_COM
0066 9001D6 42 MOV DPTR,#CHINESE2 ;WORD 16*16点阵TEST
0069 12017C 43 LCALL WRITE_HZ
006C 7498 44 MOV A,#98H ;第四行左第一个字开始
006E 1200DB 45 LCALL WRITE_COM
0071 9001E6 46 MOV DPTR,#CHINESE3 ;WORD 16*16点阵TEST
0074 12017C 47 LCALL WRITE_HZ
0077 12015F 48 LCALL DELAY5S ;显示5秒
007A 22 49 RET
50 ;***************开机显示画面***********************
007B 7480 51 LOGON1: MOV A,#80H ;第一行左第一个字开始
007D 1200DB 52 LCALL WRITE_COM
0080 9001F6 53 MOV DPTR,#CHINESE4 ;WORD 16*16点阵TEST
0083 12017C 54 LCALL WRITE_HZ
0086 7490 55 MOV A,#90H ;第二行左第一个字开始
0088 1200DB 56 LCALL WRITE_COM
008B 900206 57 MOV DPTR,#CHINESE5 ;WORD 16*16点阵TEST
A51 MACRO ASSEMBLER 051203059 12/16/2008 22:42:45 PAGE 2
008E 12017C 58 LCALL WRITE_HZ
0091 7488 59 MOV A,#88H ;第三行左第一个字开始
0093 1200DB 60 LCALL WRITE_COM
0096 900216 61 MOV DPTR,#CHINESE6 ;WORD 16*16点阵TEST
0099 12017C 62 LCALL WRITE_HZ
009C 7498 63 MOV A,#98H ;第四行左第一个字开始
009E 1200DB 64 LCALL WRITE_COM
00A1 900226 65 MOV DPTR,#CHINESE7 ;WORD 16*16点阵TEST
00A4 12017C 66 LCALL WRITE_HZ
00A7 12015F 67 LCALL DELAY5S ;显示5秒
00AA 22 68 RET
69 ;**********初始化程序*************
00AB 70 SETUP:
00AB 7401 71 MOV A,#01H ;CLEAR DISPLAY
00AD 1200DB 72 LCALL WRITE_COM
00B0 7430 73 MOV A,#00110000B ;FUNCTION SETTING
00B2 1200DB 74 LCALL WRITE_COM
00B5 7402 75 MOV A,#00000010B ;DDRAM SET TO '00H'
00B7 1200DB 76 LCALL WRITE_COM
00BA 7404 77 MOV A,#00000100B ;
00BC 1200DB 78 LCALL WRITE_COM
00BF 740C 79 MOV A,#00001100B ;DISPLAY ON
00C1 1200DB 80 LCALL WRITE_COM
00C4 7401 81 MOV A,#00000001B ;CLEARING SCREEN
00C6 1200DB 82 LCALL WRITE_COM
00C9 7480 83 MOV A,#10000000B ;SET DDRAM ADDRESS
00CB 1200DB 84 LCALL WRITE_COM
00CE 120156 85 LCALL DELAY
00D1 120156 86 LCALL DELAY
00D4 120156 87 LCALL DELAY
00D7 120156 88 LCALL DELAY
00DA 22 89 RET
90 ;************串行命令写入子程序****************
91 ;写入命令字在A中
00DB 92 WRITE_COM:
00DB 12014D 93 LCALL DELAY1 ;
00DE D2A7 94 SETB CS
00E0 C0E0 95 PUSH ACC
00E2 7808 96 MOV R0,#8
00E4 74F8 97 MOV A,#11111000B
00E6 98 COMM1:
00E6 C3 99 CLR C
00E7 33 100 RLC A
00E8 92A6 101 MOV SID,C
00EA C2A5 102 CLR SCLK
00EC D2A5 103 SETB SCLK
00EE D8F6 104 DJNZ R0,COMM1
00F0 D0E0 105 POP ACC
00F2 FD 106 MOV R5,A
00F3 54F0 107 ANL A,#0F0H
00F5 7808 108 MOV R0,#8
00F7 C3 109 COMM2: CLR C
00F8 33 110 RLC A
00F9 92A6 111 MOV SID,C
00FB C2A5 112 CLR SCLK
00FD D2A5 113 SETB SCLK
00FF D8F6 114 DJNZ R0,COMM2
0101 ED 115 MOV A,R5
0102 C4 116 SWAP A
0103 54F0 117 ANL A,#0F0H
0105 7808 118 MOV R0,#8
0107 C3 119 COMM3: CLR C
0108 33 120 RLC A
0109 92A6 121 MOV SID,C
010B C2A5 122 CLR SCLK
010D D2A5 123 SETB SCLK
A51 MACRO ASSEMBLER 051203059 12/16/2008 22:42:45 PAGE 3
010F D8F6 124 DJNZ R0,COMM3
0111 C2A7 125 CLR CS
0113 22 126 RET
127 ;
128 ;***********串行数据写入子程序****************
129 ;写入数据字在A中
0114 130 WRITE_DAT:
0114 12014D 131 LCALL DELAY1
0117 D2A7 132 SETB CS
0119 C0E0 133 PUSH ACC
011B 7808 134 MOV R0,#8
011D 74FA 135 MOV A,#11111010B
011F C3 136 DATA1: CLR C
0120 33 137 RLC A
0121 92A6 138 MOV SID,C
0123 C2A5 139 CLR SCLK
0125 D2A5 140 SETB SCLK
0127 D8F6 141 DJNZ R0,DATA1
0129 D0E0 142 POP ACC
012B FD 143 MOV R5,A
012C 54F0 144 ANL A,#0F0H
012E 7808 145 MOV R0,#8
0130 C3 146 DATA2: CLR C
0131 33 147 RLC A
0132 92A6 148 MOV SID,C
0134 C2A5 149 CLR SCLK
0136 D2A5 150 SETB SCLK
0138 D8F6 151 DJNZ R0,DATA2
013A ED 152 MOV A,R5
013B C4 153 SWAP A
013C 54F0 154 ANL A,#0F0H
013E 7808 155 MOV R0,#8
0140 C3 156 DATA3: CLR C
0141 33 157 RLC A
0142 92A6 158 MOV SID,C
0144 C2A5 159 CLR SCLK
0146 D2A5 160 SETB SCLK
0148 D8F6 161 DJNZ R0,DATA3
014A C2A7 162 CLR CS
014C 22 163 RET
164 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -