📄 22222.lst
字号:
180 2 }
181 1 com=0xb2; /* 设置自动写结束方式 */
182 1 PR12();
183 1 }
184 /**************************/
185 /* CGRAM函数 */
186 /**************************/
187 CGRAM()
188 {
189 1 unsigned int i;
190 1 dat1=0x03;
191 1 dat2=0x00;
192 1 com=0x22; /* 设置CGRAM偏置地址 */
193 1 PR1();
194 1 dat1=0x00;
195 1 dat2=0x1c;
196 1 com=0x24; /* 设置存储器地址指针 */
197 1 PR1();
198 1 com=0xb0; /* 设置自动写方式 */
199 1 PR12();
200 1 for(i=0;i<64;i++)
201 1 {
202 2 ST3();
203 2 d_add=CGTAB[i];
204 2 }
205 1 com=0xb2; /* 设置自动写结束方式 */
206 1 PR12();
207 1 }
208 /********************************/
209 /* 汉字写入(文本方式)函数 */
210 /********************************/
211 CCW1_PR()
212 {
213 1 unsigned int i,j;
214 1 i=para1;
215 1 j=i*O_Y+O_X;
216 1 dat1=j%256;
217 1 dat2=j/256;
218 1 com=0x24; /* 设置显示地址 */
219 1 PR1();
220 1 dat2=code_1; /* 写入左上半部汉字代码 */
221 1 com=0xc0;
222 1 PR11();
223 1 dat2=code_1+0x02; /* 写入右上半部汉字代码 */
224 1 PR11();
225 1 j=j+i;
226 1 dat1=j%256; /* 显示RAM地址修正 */
227 1 dat2=j/256;
228 1 com=0x24;
229 1 PR1();
230 1 dat2=code_1+0x01; /* 写入左下半部汉字代码 */
231 1 com=0xc0;
232 1 PR11();
233 1 dat2=code_1+0x03; /* 写入右下半部汉字代码 */
234 1 PR11();
235 1 }
236 /********************************/
237 /* 汉字写入(图形方式)函数 */
238 /********************************/
239 CCW2_PR()
240 {
241 1 unsigned int i,j,count1;
C51 COMPILER V7.08 22222 08/27/2005 22:51:02 PAGE 5
242 1 i=para1;
243 1 j=i*O_Y+O_X+0x0800; /* 图形显示区首地址为0x0800*/
244 1 for(count1=0;count1<16;count1++)
245 1 {
246 2 dat1=j%256; /* 显示地址设置 */
247 2 dat2=j/256;
248 2 com=0x24;
249 2 PR1();
250 2 dat2=CCTAB[code_1][count1];
251 2 com=0xc0;
252 2 PR11();
253 2 dat2=CCTAB[code_1][count1+16];
254 2 PR11();
255 2 j=j+i;
256 2 }
257 1 }
258 /********************************/
259 /* 西文字符写入(文本属性)函数 */
260 /********************************/
261 CW2_PR()
262 {
263 1 unsigned int i,j;
264 1 i=para1;
265 1 j=i*O_Y+O_X;
266 1 dat1=j%256;
267 1 dat2=j/256;
268 1 com=0x24; /* 显示地址设置 */
269 1 PR1();
270 1 dat2=code_1;
271 1 com=0xc4; /* 数据写 */
272 1 PR11();
273 1 dat2=0x08;
274 1 com=0x24;
275 1 PR1();
276 1 dat2=attr; /* 写入属性参数 */
277 1 com=0xc4;
278 1 PR11();
279 1 }
280 /****************************/
281 /* 绘点函数 */
282 /****************************/
283 W_DOT()
284 {
285 1 unsigned char i,j;
286 1 unsigned int k;
287 1 i=para1;
288 1 j=O_X%8;
289 1 O_X=O_X/8;
290 1 k=i*O_Y+O_X+0x0800;
291 1 dat1=k%256;
292 1 dat2=k/256;
293 1 com=0x24;
294 1 PR1();
295 1 j=0x07-j;
296 1 com=i|0xf8; /* 位操作 */
297 1 PR12();
298 1 }
299 /****************************/
300 /* 写指令和写数据函数 */
301 /****************************/
302 PR1() /* 双字节参数指令写入入口 */
303 {
C51 COMPILER V7.08 22222 08/27/2005 22:51:02 PAGE 6
304 1 ST01();
305 1 d_add=dat1; /* 取第一参数单元数据 */
306 1 PR12();
307 1 }
308 PR11() /* 单字节参数指令写入入口 */
309 {
310 1 ST01();
311 1 d_add=dat2; /* 取第二参数单元数据 */
312 1 PR12();
313 1 }
314 PR12() /* 无参数指令写入入口 */
315 {
316 1 ST01();
317 1 c_add=com; /* 写入指令代码 */
318 1 }
319 /************************************************/
320 /* 判状态位S1,S0 函数(读写指令和读写数据状态) */
321 /************************************************/
322 ST01()
323 {
324 1 do
325 1 {
326 2 ACC=c_add;
327 2 }
328 1 while(Acc_0==0,Acc_1==0);
329 1 }
330 /************************************/
331 /* 判状态位S2函数(数据自动读状态) */
332 /************************************/
333 /*ST2()
334 {
335 do
336 {
337 ACC=c_add;
338 }
339 while(Acc_2==0);
340 }*/
341 /************************************/
342 /* 判状态位S3函数(数据自动写状态) */
343 /************************************/
344 ST3()
345 {
346 1 do
347 1 {
348 2 ACC=c_add;
349 2 }
350 1 while(Acc_3==0);
351 1 }
352
353
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 953 ----
CONSTANT SIZE = 192 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 23 20
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 + -