?? lcd_dis.lst
字號:
C51 COMPILER V7.50 LCD_DIS 10/19/2007 19:17:49 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCD_DIS
OBJECT MODULE PLACED IN lcd_dis.OBJ
COMPILER INVOKED BY: E:\Program Files\UV2\C51\BIN\C51.EXE lcd_dis.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /***************************************************************\
2 |* 12864LCD顯示程序 proteus7.1仿真AMPIRE128*64 *|
3 |* Copyright (c) 2007山師.傳播 */
4 /* All rights reserved. */
5 /*趙彥彬 *|
6 |* *|
7 |*
8 \***************************************************************/
9
10
11
12
13
14
15 #include <reg52.h>
16
17 #include <string.h>
18
19
20 typedef unsigned char uchar;
21 typedef unsigned int uint;
22 typedef struct dword
23 {
24 uchar dd[64];
25 };
26
27 struct dword code dis[30] = // 數據表
28 {
29 0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0xFF,
30 0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,
31 0x00,0x7F,0x20,0x20,0x20,0x20,0x20,0x3F,
32 0x20,0x20,0x20,0x20,0x20,0x7F,0x00,0x00,
33 0x08,0x08,0x08,0x88,0x68,0x18,0x0F,0xE8,
34 0x08,0x08,0x08,0x88,0x08,0x0C,0x08,0x00,
35 0x00,0x40,0x21,0x11,0x0D,0x41,0x81,0x7F,
36 0x01,0x05,0x09,0x31,0x61,0x00,0x00,0x00,
37 0x00,0xFC,0x00,0x00,0xFF,0x00,0x02,0xF2,
38 0x12,0x12,0xFE,0x12,0x12,0xFB,0x12,0x00,
39 0x00,0x8F,0x40,0x30,0x0F,0x00,0x00,0x3F,
40 0x00,0x00,0xFF,0x10,0x20,0x1F,0x00,0x00,
41 0x04,0x44,0x94,0x24,0x6F,0x04,0xE4,0x24,
42 0x24,0x24,0x2F,0xF4,0x24,0x06,0x04,0x00,
43 0x04,0x04,0xFD,0x04,0x02,0x00,0x3F,0x40,
44 0x40,0x42,0x44,0x43,0x40,0x40,0x70,0x00,
45 0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,
46 0xA0,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
47 0x00,0x40,0x40,0x20,0x10,0x0C,0x03,0x00,
48 0x01,0x06,0x08,0x10,0x20,0x60,0x20,0x00,
49 0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,
50 0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,
51 0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,
52 0x06,0x05,0x04,0x04,0x04,0x06,0x04,0x00,
53 0x80,0x40,0x20,0xF8,0x47,0x48,0x48,0x48,
54 0xC8,0x7F,0x48,0x48,0x4C,0x68,0x40,0x00,
55 0x00,0x00,0x00,0xFF,0x00,0x00,0x02,0x0B,
C51 COMPILER V7.50 LCD_DIS 10/19/2007 19:17:49 PAGE 2
56 0x12,0x62,0xD2,0x0A,0x06,0x02,0x00,0x00,
57 0x10,0x10,0x10,0xFF,0x90,0x30,0xAA,0x72,
58 0x22,0xFE,0x21,0x71,0xA9,0xAC,0xA0,0x00,
59 0x02,0x42,0x81,0x7F,0x00,0x01,0xFE,0x92,
60 0x92,0xFF,0x92,0x92,0xFE,0x01,0x00,0x00,
61 0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,
62 0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,
63 0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,
64 0x06,0x05,0x04,0x04,0x04,0x06,0x04,0x00,
65 0x00,0xFE,0x22,0x5A,0x96,0x0C,0x24,0x24,
66 0x25,0x26,0x24,0x34,0xA4,0x14,0x0C,0x00,
67 0x00,0xFF,0x04,0x08,0x87,0x81,0x41,0x31,
68 0x0F,0x01,0x3F,0x41,0x41,0x41,0x70,0x00,
69
70 0x40,0x48,0x48,0x48,0xFF,0x48,0x68,0x40,
71 0x0C,0x30,0xC0,0x30,0x0E,0x00,0x00,0x00,
72 0x40,0x30,0x0F,0x08,0x1F,0x22,0x42,0x48,
73 0x44,0x43,0x40,0x41,0x46,0x6C,0x20,0x00,
74 0x00,0x00,0xE4,0x24,0x2C,0x34,0x25,0x26,
75 0xA4,0xB4,0x6C,0x26,0x24,0x30,0x20,0x00,
76 0x40,0x30,0x0F,0x80,0x92,0x92,0x49,0x49,
77 0x44,0x24,0x22,0x11,0x08,0x00,0x00,0x00,
78 0x10,0x10,0xD0,0xFF,0x90,0x10,0x10,0xD0,
79 0xFF,0x90,0x10,0x20,0x10,0x08,0xC6,0x00,
80 0x04,0x03,0x00,0xFF,0x00,0x04,0x03,0x00,
81 0xFF,0x00,0x81,0x44,0x22,0x11,0x0C,0x00,
82 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
83 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
84 0x00,0x38,0x7C,0x44,0x44,0x7C,0x38,0x00,
85 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
86 0x20,0x22,0x2A,0x2A,0xAA,0x6A,0x3A,0x2F,
87 0x2A,0x6A,0xAA,0x2A,0x2A,0x22,0x20,0x00,
88 0x04,0x04,0x02,0x01,0xFF,0x49,0x49,0x49,
89 0x49,0x49,0xFF,0x01,0x02,0x06,0x02,0x00,
90
91 0x80,0x70,0x00,0xFF,0x10,0x20,0xFE,0x92,
92 0x92,0x92,0x92,0x92,0xFF,0x02,0x00,0x00,
93 0x00,0x00,0x00,0xFF,0x00,0x00,0xFF,0x40,
94 0x23,0x04,0x08,0x14,0x62,0xC3,0x40,0x00,
95
96 0x24,0x24,0xA4,0xFE,0x23,0x22,0x80,0x70,
97 0x00,0xFF,0x00,0x40,0x20,0x30,0x00,0x00,
98 0x08,0x06,0x01,0xFF,0x81,0x42,0x20,0x18,
99 0x06,0x01,0x06,0x08,0x30,0x60,0x20,0x00,
100
101 0x82,0x92,0x92,0x92,0x92,0xFF,0x00,0x00,
102 0x00,0xFF,0x92,0x92,0x9A,0xD3,0x82,0x00,
103 0x20,0x18,0x00,0x3C,0x40,0x41,0x44,0x48,
104 0x58,0x41,0x40,0x70,0x00,0x08,0x30,0x00,
105
106 0x00,0x40,0x7F,0x44,0x44,0x26,0xA4,0x00,
107 0x3F,0x48,0x48,0xC4,0x46,0x40,0x70,0x00,
108 0x00,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,
109 0x49,0x49,0x49,0xFF,0x01,0x00,0x00,0x00,
110
111 0x00,0x00,0x00,0xF8,0x48,0x4C,0x4A,0x49,
112 0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,
113 0x00,0x00,0x00,0xFF,0x44,0x44,0x44,0x44,
114 0x44,0x44,0x44,0xFF,0x00,0x00,0x00,0x00,
115
116 0x10,0x10,0x10,0xFF,0x90,0x50,0x20,0x20,
117 0x20,0xFF,0xA0,0x22,0x24,0x30,0x20,0x00,
C51 COMPILER V7.50 LCD_DIS 10/19/2007 19:17:49 PAGE 3
118 0x02,0x42,0x81,0x7F,0x00,0x80,0x40,0x30,
119 0x0F,0x00,0x3F,0x40,0x40,0x40,0x70,0x00,
120
121 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
122 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
123 0x00,0x00,0x00,0x46,0x2F,0x1F,0x06,0x00,
124 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
125
126 0x04,0x04,0x04,0xC4,0x3F,0x04,0x04,0x04,
127 0xE4,0x04,0x1F,0x84,0xC4,0x06,0x04,0x00,
128 0x04,0x02,0x01,0xFF,0x00,0x20,0x10,0x08,
129 0x3F,0x42,0x41,0x40,0x40,0x40,0x70,0x00,
130
131 0x10,0x0C,0x04,0x44,0x24,0x94,0x45,0x26,
132 0x44,0x94,0x24,0x64,0x04,0x14,0x0C,0x00,
133 0x08,0x08,0x04,0x02,0xFD,0x44,0x44,0x44,
134 0x44,0x44,0xFD,0x02,0x04,0x0C,0x04,0x00,
135
136 0x00,0x00,0x00,0x00,0xFE,0x22,0x22,0x22,
137 0x22,0x22,0x22,0xFF,0x02,0x00,0x00,0x00,
138 0x00,0x80,0x40,0x30,0x0F,0x02,0x02,0x02,
139 0x02,0x42,0x82,0x7F,0x00,0x00,0x00,0x00,
140
141 0x88,0x98,0x64,0x2C,0xB2,0xCD,0x00,0xFC,
142 0x26,0x25,0x24,0x24,0x24,0xFE,0x04,0x00,
143 0x00,0x12,0x52,0x89,0x44,0x3F,0x80,0x43,
144 0x31,0x0F,0x01,0x3F,0x41,0x43,0x70,0x00,
145
146 0x20,0x20,0x20,0x22,0x24,0x2C,0x20,0xE0,
147 0x3F,0x20,0x20,0x20,0x20,0xF0,0x20,0x00,
148 0x00,0x40,0x20,0x10,0x08,0x04,0x03,0x00,
149 0x02,0x04,0x4C,0x80,0x40,0x3F,0x00,0x00,
150
151 0x40,0x40,0x42,0xCC,0x00,0x20,0x10,0xFC,
152 0x4B,0x48,0x4A,0xFC,0x48,0x4C,0x08,0x00,
153 0x00,0x00,0x00,0x7F,0x20,0x10,0x00,0xFF,
154 0x22,0x22,0x22,0x3F,0x22,0x32,0x20,0x00,
155
156 0x10,0x10,0xF0,0x1F,0x10,0xF2,0x82,0x82,
157 0xFE,0x82,0x82,0x82,0xFE,0x83,0x82,0x00,
158 0x40,0x22,0x15,0x08,0x14,0x23,0x80,0x40,
159 0x3F,0x00,0x00,0x00,0xFF,0x00,0x00,0x00 //山東師范大學傳播學院趙彥彬春恨秋悲皆自擾花容月貌為誰妍
160
161 };
162
163
164 sbit DI =P3^7; // 數據\指令 選擇
165 sbit RW =P3^6; // 讀\寫 選擇
166 sbit E =P3^5; // 讀\寫使能
167 sbit CS2 =P3^4; // 片選1
168 sbit CS1 =P3^3; // 片選2
169 sbit RST =P3^2; // 復位
170
171
172
173
174
175 /**********************************************\
176 |* 寫命令子程序 *|
177 |* *|
178 \**********************************************/
179 void write_cmd(uchar cmd) //寫命令子程序
C51 COMPILER V7.50 LCD_DIS 10/19/2007 19:17:49 PAGE 4
180 { RW=0;
181 1 DI=0; //DI=0 寫命令
182 1 E=1;
183 1 P1=cmd;
184 1 E=0; //RW="L",E="H->L" DB7~DB0的數據被寫到IR或DR
185 1 }
186
187 /**********************************************\
188 |* 寫數據子程序 *|
189
190 |* 調用函數: null *|
191 \**********************************************/
192 void write_dat(uchar dat) //寫數據子程序
193 { RW=0;
194 1 DI=1; //DI=1 寫數據
195 1 E=1;
196 1 P1=dat;
197 1 E=0; //RW="L",E="H->L" DB7~DB0的數據被寫到IR或DR
198 1 }
199
200 /**********************************************\
201 |* 設置顯示起始行 X地址和Y地址 *|
202 |* 入口參數:st_line 顯示起始行 0~63 *|
203 |* x_add 頁地址 8行為一頁 0~7 *|
204 |* y_add Y地址 0~128 *|
205
206 \**********************************************/
207
208 void set_dis(uchar st_line,uchar x_add,uchar y_add) //設置顯示起始行 X地址和Y地址
209 {
211 1 write_cmd(x_add+0xb8); //+0xb8是參照設置頁地址的格式
212 1 if(y_add<64) { CS1=0;CS2=1;write_cmd(y_add+0x40);} //Y_add地址實際上只有0~63 采用CS1和CS2選左右半屏
213 1 else { CS1=1;CS2=0;write_cmd(y_add);} //選第一片時,+64第二片為y_add-64+64
214 1 }
*** WARNING C280 IN LINE 208 OF LCD_DIS.C: 'st_line': unreferenced local variable
215
216
217
218 /***********************************************\
219 |* 寫漢字子程序1 可以在任意位置寫入 *|
220 |* 入口參數:st_line 顯示起始行 0~63 *|
221 |* x_add 頁地址 8行為一頁 0~7 *|
222 |* y_add Y地址 0~128 *|
223
224 count 漢字個數
225 /*調用set_dis write_dat
226 \***********************************************/
227 void write_word(uchar st_line,uchar x_add,uchar y_add,uchar *buf,uchar count) //寫入漢字
228 { uchar i,j,k=1;
229 1 set_dis(st_line, x_add,y_add);
230 1 for(j=0;j<count;j++) //顯示的字數
231 1 {
232 2 for(i=0;i<16;i++)
233 2 write_dat(*(buf+i+j*32)) ; //字的下半部分,x_add+1
234 2 set_dis(st_line,x_add+1,y_add);
235 2 for(i=16;i<32;i++)
236 2 write_dat(*(buf+i+j*32));
237 2 set_dis(st_line,x_add,y_add=y_add+16);
238 2
239 2 if(y_add==128) //一行的字數超過8 y_add>128時換行
240 2 { //為什么每次換行第一列子的上半部分出現錯誤?
C51 COMPILER V7.50 LCD_DIS 10/19/2007 19:17:49 PAGE 5
241 3
242 3 x_add=2*k;
243 3
244 3 y_add=0;
245 3 set_dis(st_line, x_add,y_add);
246 3 k++;
247 3 }
248 2 }
249 1
250 1 }
251
252
253
254
255 /****************************************************\
256 |* 主程序入口 *|
257 |* 12864LCD顯示程序 proteus7.1 仿真AMPIRE128*64 *|
258 \****************************************************/
259 void main(void) //主程序
260
261 {
262 1 write_word(0,0,0,&dis,30);
*** WARNING C182 IN LINE 262 OF LCD_DIS.C: pointer to different objects
263 1
264 1
265 1
266 1 write_cmd(0x3f);
267 1 CS1=CS2=1;
268 1 while(1)
269 1 {}
270 1 }
271
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 203 ----
CONSTANT SIZE = 1920 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 9
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -