?? 12864.lst
字號:
C51 COMPILER V8.12 12864 08/07/2008 18:06:59 PAGE 1
C51 COMPILER V8.12, COMPILATION OF MODULE 12864
OBJECT MODULE PLACED IN 12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<regx51.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 sbit cs2=P2^1;
5 sbit cs1=P2^0;
6 sbit di=P2^2;
7 sbit rw=P2^3;
8 sbit en=P2^4;
9 uchar code xiao1[]={
10 /*-- 文字: 鄭 --*/
11 /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
12 0x80,0x91,0x96,0x90,0xF8,0x94,0x93,0x90,0x90,0x00,0xFE,0x02,0x62,0x9A,0x06,0x00,
13 0x20,0x20,0x10,0x0C,0x03,0x02,0x04,0x18,0x00,0x00,0xFF,0x08,0x08,0x10,0x0F,0x00,
14
15 /*-- 文字: 州 --*/
16 /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
17 0x00,0xE0,0x00,0x00,0xFF,0x20,0xC0,0x00,0xFE,0x10,0x60,0x80,0x00,0xFF,0x00,0x00,
18 0x01,0x80,0x60,0x18,0x07,0x00,0x00,0x00,0x7F,0x00,0x00,0x01,0x00,0xFF,0x00,0x00,
19
20 /*-- 文字: 輕 --*/
21 /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
22 0xC4,0xB4,0x8F,0xF4,0x84,0x84,0x04,0x82,0x42,0x22,0x12,0x2A,0x46,0xC2,0x00,0x00,
23 0x08,0x08,0x08,0xFF,0x04,0x44,0x41,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0x00,
24
25 /*-- 文字: 工 --*/
26 /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
27 0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
28 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
29 /*-- 文字: 業 --*/
30 /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
31 0x00,0x10,0x60,0x80,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x80,0x60,0x38,0x10,0x00,
32 0x20,0x20,0x20,0x23,0x21,0x3F,0x20,0x20,0x20,0x3F,0x22,0x21,0x20,0x30,0x20,0x00,
33
34 /*-- 文字: 學 --*/
35 /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
36 0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
37 0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
38
39 /*-- 文字: 院 --*/
40 /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
41 0xFE,0x02,0x32,0x4A,0x86,0x0C,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x0C,0x04,0x00,
42 0xFF,0x00,0x02,0x04,0x83,0x41,0x31,0x0F,0x01,0x01,0x7F,0x81,0x81,0x81,0xF1,0x00
43 };
44
45 uchar code ming[]={
46 /*-- 文字: 呂 --*/
47 /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
48 0x00,0x00,0x00,0x3F,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x3F,0x00,0x00,0x00,0x00,
49 0x00,0x00,0x7F,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00,
50
51 /*-- 文字: 效 --*/
52 /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
53 0x00,0x08,0xC8,0x39,0x0E,0x18,0xA8,0x48,0x40,0xF0,0x1F,0x12,0x10,0xF0,0x10,0x00,
54 0x40,0x41,0x21,0x12,0x0C,0x0A,0x51,0x40,0x20,0x20,0x13,0x0C,0x33,0x60,0x20,0x00,
55
C51 COMPILER V8.12 12864 08/07/2008 18:06:59 PAGE 2
56 /*-- 文字: 軍 --*/
57 /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
58 0x00,0x18,0x26,0x22,0xA2,0x72,0x2E,0xAA,0x22,0x22,0x22,0x32,0x22,0x0A,0x06,0x00,
59 0x00,0x10,0x10,0x12,0x13,0x12,0x12,0xFF,0x12,0x12,0x12,0x13,0x12,0x18,0x10,0x00};
60 void delay(uint ms)
61 {
62 1 while(--ms) ;
63 1 }
64 void write_com(uchar com)
65 {
66 1 // check_busy();
67 1 di=0;
68 1 rw=0;
69 1 en=0;
70 1 P0=com;
71 1 en=1;
72 1 // delay(10);
73 1 en=0;
74 1 }
75 void write_data(uchar date)
76 {
77 1 di=1;
78 1 rw=0;
79 1 en=0;
80 1 P0=date;
81 1 en=1;
82 1 // delay(10);
83 1 en=0;
84 1 }
85 void clear_lcd() //清屏
86 {
87 1 uchar i,j;
88 1 cs1=0;
89 1 cs2=0;
90 1 write_com(0x3f);
91 1 write_com(0xc0);
92 1 for(i=0;i<8;i++)
93 1 {
94 2 write_com(0xb8+i);
95 2 write_com(0x40);
96 2 for(j=0;j<64;j++)
97 2 write_data(0);
98 2 }
99 1 }
100 void init_lcd()
101 {
102 1 write_com(0x3f); //開顯示
103 1 write_com(0xc0); //設置顯示的開始坐標,從屏幕左邊0點開始顯示
104 1 write_com(0xb8); //設置頁數,x坐標
105 1 write_com(0x40); //設置y坐標
106 1 clear_lcd();
107 1 }
108 /*--------------全屏顯示圖片(寬*高=128*64)----------------*/
109 void display_picture(uchar code *img)
110 {
111 1 uchar i,j;
112 1 for(j=0;j<8;j++)
113 1 {
114 2 cs1=0;cs2=1;
115 2 write_com(0x3f);
116 2 write_com(0xb8+j);
117 2 write_com(0xc0);
C51 COMPILER V8.12 12864 08/07/2008 18:06:59 PAGE 3
118 2 write_com(0x40);
119 2 for(i=0;i<64;i++)
120 2 write_data(img[j*128+i]);
121 2 cs1=1;cs2=0;
122 2 write_com(0x3f);
123 2 write_com(0xb8+j);
124 2 write_com(0xc0);
125 2 write_com(0x40);
126 2 for(i=64;i<128;i++)
127 2 write_data(img[j*128+i]);
128 2 }
129 1 }
130
131 /*---指定位置(x,y)顯示row_xl行(每行row_yl個)漢字(大小8xl*yl)---*/
132 void display(uchar x,uchar y,uchar xl,uchar yl,uchar row_xl,uchar row_yl,uchar code *chn)
133 {
134 1 uchar i,j,k,l,a;
135 1 write_com(0x3f);
136 1 for(l=0;l<row_xl;l++)
137 1 {
138 2 for(k=0;k<row_yl;k++)
139 2 {
140 3 for(j=0;j<xl;j++)
141 3 {
142 4 write_com(0xb8+x+l*xl+j);
143 4 write_com(0xc0);
144 4 write_com(0x40+y+k*yl);
145 4 a=l*xl*yl*row_yl+k*xl*yl+j*yl;
146 4 for(i=0;i<yl;i++)
147 4 write_data(chn[a+i]);
148 4 }
149 3 }
150 2 }
151 1 }
152 void write_one(uchar x,uchar y,uchar *hanzi) //對LCD在指定位置寫入單個漢字
153 { //16*16
154 1 uchar i;
155 1 if(y < 4) //posy < 4 在左半部寫
156 1 {
157 2 cs1=0;
158 2 cs2=1;
159 2 write_com(0xb8+2*x); //x頁數
160 2 write_com(0x40+16*y); //y坐標
161 2 for(i = 0; i < 16; i++)
162 2 {
163 3 write_data(hanzi[i]);
164 3 }
165 2 write_com(0xb8+2*x+1);
166 2 write_com(0x40+16*y);
167 2 for(i = 16; i < 32; i++)
168 2 {
169 3 write_data(hanzi[i]);
170 3 }
171 2 }
172 1 else //否則在右半部寫
173 1 {
174 2 cs1=1;
175 2 cs2=0;
176 2 write_com(0xb8+x*2);
177 2 write_com(0x40+16*(y-4));
178 2 for(i = 0; i < 16; i++)
179 2 {
C51 COMPILER V8.12 12864 08/07/2008 18:06:59 PAGE 4
180 3 write_data(hanzi[i]);
181 3 }
182 2 write_com(0xb8+2*x+1);
183 2 write_com(0x40+16*(y-4));
184 2 for(i = 16; i < 32; i++)
185 2 {
186 3 write_data(hanzi[i]);
187 3 }
188 2 }
189 1 }
190 //row行col列寫入n個漢字
191 void write_string(uchar row,uchar col,uchar n,uchar *str)
192 {
193 1 uchar i;
194 1 for(i = 0 ; i < n; i++)
195 1 {
196 2 if( col > 7)
197 2 {
198 3 row++;
199 3 col = col - 8;
200 3 }
201 2 write_one(row,col,str+i*32);
202 2 col++;
203 2 }
204 1 }
205
206 void main()
207 {
208 1
209 1 init_lcd();
210 1 cs1=1;
211 1 cs2=0;
212 1 display(5,2,2,16,1,3,ming);
213 1 write_string(0,0,7,xiao1);
214 1 while(1);
215 1
216 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 628 ----
CONSTANT SIZE = 320 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 22
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -