?? text1.lst
字號:
C51 COMPILER V6.20c TEXT1 01/17/2006 10:49:50 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c DEBUG OBJECTEXTEND
stmt level source
1 #include<stdio.h>
2 #include<intrins.h>
3 #include <reg51.h>
4 #include <math.h>
5 #include <absacc.h>
6 #include <string.h>
7 /* 地址定義 */
8 #define d_add XBYTE[0x8000]
9 #define c_add XBYTE[0x8100]
10 /* 常數(shù)定義 */
11 #define para1 0x30;
12 #define uchar unsigned char
13 #define uint unsigned int
14
15 #define dat1 DBYTE[0x30]
16 #define dat2 DBYTE[0x31]
17 #define com DBYTE[0x32]
18 #define code_1 DBYTE[0x33]
19 #define attr DBYTE[0x34]
20 #define O_Y DBYTE[0x35]
21 #define O_X DBYTE[0x36]
22 /* 定義標(biāo)志位 */
23 sbit Acc_0=ACC^0;
24 sbit Acc_1=ACC^1;
25 sbit Acc_2=ACC^2;
26 sbit Acc_3=ACC^3;
27 sbit fs=P1^1;
28 uchar num=0;
29 bit s=0;
30 uchar x=0;
31 uchar y=0;
32 /******************************/
33 code unsigned char CCTAB[49][32]={
34 /* 0=天*/
35 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,
36 0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,
37 0x01,0x00,0x02,0x80,0x02,0x80,0x04,0x40,
38 0x08,0x20,0x30,0x18,0x00,0x00,0x00,0x00,
39
40 /*1=下*/
41 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
42 0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0xC0,
43 0x01,0x20,0x01,0x10,0x01,0x00,0x01,0x00,
44 0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
45
46 /*2=為*/
47 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,
48 0x09,0x00,0x05,0x10,0x1F,0xF8,0x01,0x10,
49 0x02,0x10,0x02,0x90,0x04,0x50,0x04,0x50,
50 0x08,0x10,0x30,0xE0,0x00,0x00,0x00,0x00,
51
52 /*2=公*/
53 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x80,
54 0x04,0x80,0x04,0x40,0x08,0x40,0x11,0x20,
55 0x21,0x18,0x02,0x00,0x02,0x80,0x04,0x40,
C51 COMPILER V6.20c TEXT1 01/17/2006 10:49:50 PAGE 2
56 0x08,0xE0,0x1F,0x20,0x00,0x00,0x00,0x00,
57 };
58 /******************************/
59 INT_1();
60 CLEAR();
61 CCW2_PR();
62 PR1();
63 PR11();
64 PR12();
65 ST01();
66 ST3();
67 FCCW2_PR();
68 CCWD_PR();
69 FDISHAZIT(uchar x,uchar y,uchar d);
70 /**************************/
71 /* 初始化函數(shù) */
72 /**************************/
73 INT_1()
74 {
75 1 fs=0;
76 1
77 1 dat1=0x00; /*設(shè)文本顯示區(qū)域首地址*/
78 1 dat2=0x00;
79 1 com=0x40;
80 1 PR1();
81 1
82 1 dat1=para1; /*設(shè)文本顯示區(qū)域?qū)挾?/
83 1 dat2=0x00;
84 1 com=0x41;
85 1 PR1();
86 1
87 1 dat1=0x00; /*設(shè)圖形顯示區(qū)域首地址*/
88 1 dat2=0x08;
89 1 com=0x42;
90 1 PR1();
91 1
92 1 dat1=para1; /*設(shè)圖形顯示區(qū)域?qū)挾?/
93 1 dat2=0x00;
94 1 com=0x43;
95 1 PR1();
96 1
97 1 com=0xa0; /*光標(biāo)形狀設(shè)置*/
98 1 PR12();
99 1
100 1 com=0x80; /*顯示方式設(shè)置邏輯"或"合成*/
101 1 PR12();
102 1
103 1 com=0x98; /*顯示開關(guān)設(shè)置 開文本和圖形顯示*/
104 1 PR12();
105 1 }
106
107 /***************************/
108 /* 清顯示子程序 */
109 /***************************/
110 CLEAR()
111 {
112 1 unsigned char i,j;
113 1 dat1=0x00;
114 1 dat2=0x00;
115 1 com=0x24;
116 1 PR1();
117 1 com=0xb0;
C51 COMPILER V6.20c TEXT1 01/17/2006 10:49:50 PAGE 3
118 1 PR12();
119 1 for(i=0;i<205;i++)
120 1 {
121 2 for(j=0;j<=40;j++)
122 2 {
123 3 ST3();
124 3 d_add=0x00;
125 3 }
126 2 }
127 1 com=0xb2;
128 1 PR12();
129 1 }
130
131 /************************************************/
132 /* 判狀態(tài)位S1,S0 函數(shù)(讀寫指令和讀寫數(shù)據(jù)狀態(tài)) */
133 /************************************************/
134 ST01()
135 {
136 1 do
137 1 {
138 2 ACC=c_add;
139 2 }
140 1 while(Acc_0==0,Acc_1==0);
141 1 }
142
143 /************************************/
144 /* 判狀態(tài)位S3函數(shù)(數(shù)據(jù)自動寫狀態(tài)) */
145 /************************************/
146 ST3()
147 {
148 1 do
149 1 {
150 2 ACC=c_add;
151 2 }
152 1 while(Acc_3==0);
153 1 }
154
155 DISHAZIT(uchar x,uchar y,uchar d) /*漢字寫入(圖文方式)*/
156 {
157 1 code_1=d;
158 1 O_X=x;
159 1 O_Y=y;
160 1 CCW2_PR();
161 1 }
162
163 /****************************/
164 /* 寫指令和寫數(shù)據(jù)函數(shù) */
165 /****************************/
166 PR1() /* 雙字節(jié)參數(shù)指令寫入入口 */
167 {
168 1 ST01();
169 1 d_add=dat1; /* 取第一參數(shù)單元數(shù)據(jù) */
170 1 PR11();
171 1 }
172 PR11() /* 單字節(jié)參數(shù)指令寫入入口 */
173 {
174 1 ST01();
175 1 d_add=dat2; /* 取第二參數(shù)單元數(shù)據(jù) */
176 1 PR12();
177 1 }
178 PR12() /* 無參數(shù)指令寫入入口 */
179 {
C51 COMPILER V6.20c TEXT1 01/17/2006 10:49:50 PAGE 4
180 1 ST01();
181 1 c_add=com; /* 寫入指令代碼 */
182 1 }
183
184 /****************************/
185
186 CCW2_PR()
187 {
188 1 unsigned int i,j,count1;
189 1 i=para1;
190 1 j=i*O_Y+O_X+0x0800;
191 1 for(count1=0;count1<32;count1++)
192 1 {
193 2 dat1=j%256;
194 2 dat2=j/256;
195 2 com=0x24;
196 2 PR1();
197 2
198 2 dat2=CCTAB[code_1][count1]; /* 寫入漢字左側(cè)代碼 */
199 2 com=0xc0;
200 2 PR11();
201 2
202 2 dat2=CCTAB[code_1][count1+1]; /* 寫入漢字右側(cè)代碼 */
203 2 PR11();
204 2 j=j+i;
205 2 count1++;
206 2 }
207 1 }
208
209 FDISHAZIT(uchar x,uchar y,uchar d) /*漢字寫入(反圖文方式)*/
210 {
211 1 code_1=d;
212 1 O_X=x;
213 1 O_Y=y;
214 1 FCCW2_PR();
215 1 }
216 FCCW2_PR()
217 {
218 1 unsigned int i,j,count1;
219 1 i=para1;
220 1 j=i*O_Y+O_X+0x0800;
221 1 for(count1=0;count1<16;count1++)
222 1 {
223 2 dat1=j%256;
224 2 dat2=j/256;
225 2 com=0x24;
226 2 PR1();
227 2
228 2 dat2=0xff-CCTAB[code_1][count1]; /* 寫入漢字左側(cè)代碼 */
229 2 com=0xc0;
230 2 PR11();
231 2
232 2 dat2=0xff-CCTAB[code_1][count1+16]; /* 寫入漢字右側(cè)代碼 */
233 2 PR11();
234 2 j=j+i;
235 2 }
236 1 }
237
238 DISDASC(uchar x,uchar y,uchar d) /*漢字寫入(文本方式)*/
239 {
240 1 code_1=d;
241 1 O_X=x;
C51 COMPILER V6.20c TEXT1 01/17/2006 10:49:50 PAGE 5
242 1 O_Y=y;
243 1 CCWD_PR();
244 1 }
245
246 CCWD_PR() /* */
247 {
248 1 unsigned int i,j;
249 1 i=para1;
250 1 j=i*O_Y+O_X;
251 1
252 1 dat1=j%256;
253 1 dat2=j/256;
254 1 com=0x24; /* 設(shè)置顯示地址 */
255 1 PR1();
256 1 dat2=code_1; /* 寫入左上半部漢字代碼 */
257 1 com=0xc0;
258 1 PR11();
259 1
260 1 j=j+i;
261 1 dat1=j%256; /* 顯示RAM地址修正 */
262 1 dat2=j/256;
263 1 com=0x24;
264 1 PR1();
265 1
266 1 dat2=code_1+0x01; /* 寫入左下半部漢字代碼 */
267 1 com=0xc0;
268 1 PR11();
269 1
270 1 }
271
272 /***************************/
273 /* 演示主程序 */
274 /***************************/
275
276 void main()
277 {
278 1 INT_1(); /* 初始化函數(shù) */
279 1 CLEAR(); /* 清屏函數(shù) */
280 1
281 1 DISHAZIT(0x00,0x10,0X00);
282 1 DISHAZIT(0x02,0x10,0X01);
283 1 DISHAZIT(0x04,0x10,0X02);
284 1 DISHAZIT(0x06,0x10,0X03);
285 1 DISHAZIT(0x08,0x10,0X00);
286 1 DISHAZIT(0x0a,0x10,0X01);
287 1 DISHAZIT(0x0c,0x10,0X02);
288 1 DISHAZIT(0x0e,0x10,0X03);
289 1 DISHAZIT(0x10,0x10,0X00);
290 1 DISHAZIT(0x12,0x10,0X01);
291 1 DISHAZIT(0x14,0x10,0X02);
292 1 DISHAZIT(0x16,0x10,0X03);
293 1 DISHAZIT(0x18,0x10,0X00);
294 1 DISHAZIT(0x1a,0x10,0X01);
295 1 DISHAZIT(0x1c,0x10,0X02);
296 1 DISHAZIT(0x1e,0x10,0X03);
297 1
298 1 while(1);
299 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 783 ----
C51 COMPILER V6.20c TEXT1 01/17/2006 10:49:50 PAGE 6
CONSTANT SIZE = 1568 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 18
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -