📄 d_lock_dispaly.lst
字号:
C51 COMPILER V7.50 D_LOCK_DISPALY 10/25/2007 19:45:38 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE D_LOCK_DISPALY
OBJECT MODULE PLACED IN d_lock_dispaly.OBJ
COMPILER INVOKED BY: E:\Program Files\UV2\C51\BIN\C51.EXE d_lock_dispaly.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 #include"w_word.h"
13
14
15
16
17
18
19 /**********************************************\
20 |* 写命令子程序 *|
21 |* *|
22 \**********************************************/
23 void write_cmd(uchar cmd) //写命令子程序
24 { RW=0;
25 1 DI=0; //DI=0 写命令
26 1 E=1;
27 1 P1=cmd;
28 1 E=0; //RW="L",E="H->L" DB7~DB0的数据被写到IR或DR
29 1 }
30
31 /**********************************************\
32 |* 写数据子程序 *|
33
34 |* 调用函数: null *|
35 \**********************************************/
36 void write_dat(uchar dat) //写数据子程序
37 { RW=0;
38 1 DI=1; //DI=1 写数据
39 1 E=1;
40 1 P1=dat;
41 1 E=0; //RW="L",E="H->L" DB7~DB0的数据被写到IR或DR
42 1 }
43
44 /**********************************************\
45 |* 设置显示起始行 X地址和Y地址 *|
46 |* 入口参数:st_line 显示起始行 0~63 *|
47 |* x_add 页地址 8行为一页 0~7 *|
48 |* y_add Y地址 0~128 *|
49
50 \**********************************************/
51
52 void set_dis(uchar st_line,uchar x_ad,uchar y_ad) //设置显示起始行 X地址和Y地址
53 {
54 1 //write_cmd(st_line+0xc0); //+0xc0是参照设置起始行的格式
55 1 write_cmd(x_ad+0xb8); //+0xb8是参照设置页地址的格式
C51 COMPILER V7.50 D_LOCK_DISPALY 10/25/2007 19:45:38 PAGE 2
56 1 if(y_ad<64) { CS1=0;CS2=1;write_cmd(y_ad+0x40);} //Y_add地址实际上只有0~63 采用CS1和CS2选左右半屏
57 1 else { CS1=1;CS2=0;write_cmd(y_ad);} //选第一片时,+64第二片为y_add-64+64
58 1 }
*** WARNING C280 IN LINE 52 OF D_LOCK_DISPALY.C: 'st_line': unreferenced local variable
59
60
61
62 /***********************************************\
63 |* 写汉字子程序1 可以在任意位置写入 *|
64 |* 入口参数:st_line 显示起始行 0~63 *|
65 |* x_add 页地址 8行为一页 0~7 *|
66 |* y_add Y地址 0~128 *|
67
68 count 汉字个数
69 /*调用set_dis write_dat
70 \***********************************************/
71 void write_word(uchar st_line,uchar x_a,uchar y_a,uchar *buf,uchar count) //写入汉字
72 { uint i,j,k=1;
73 1 set_dis(st_line, x_a,y_a);
74 1 for(j=0;j<count;j++) //显示的字数
75 1 {// set_dis(st_line,x_ad,y_ad);
76 2 for(i=0;i<16;i++)
77 2 write_dat(*(buf+i+j*32)) ; //字的下半部分,x_add+1
78 2 set_dis(st_line,x_a+1,y_a);
79 2 for(i=16;i<32;i++)
80 2 write_dat(*(buf+i+j*32));
81 2 set_dis(st_line,x_a,y_a=y_a+16);
82 2
83 2 if(y_a==128) //一行的字数超过8 y_add>128时换行
84 2 { //为什么每次换行第一列子的上半部分出现错误?
85 3
86 3 x_a=2*k;
87 3
88 3 y_a=0;
89 3
90 3 set_dis(st_line,x_a,y_a);
91 3 set_dis(st_line,x_a,y_a);
92 3 k++;
93 3 }
94 2 }
95 1
96 1
97 1
98 1 }
99
100
101
102
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 253 ----
CONSTANT SIZE = 1536 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 12
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -