📄 disp_a.lst
字号:
C51 COMPILER V6.02 DISP_A 08/19/2003 10:24:25 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE DISP_A
OBJECT MODULE PLACED IN D:\LCD_6963\LCD2\DISP_A.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE D:\LCD_6963\LCD2\DISP_A.C DB SB OE
stmt level source
1 #include <reg51.h>
2 #include <math.h>
3 #include <absacc.h>
4 #include <string.h>
5 /* 地址定义 */
6 #define d_add XBYTE[0x8000]
7 #define c_add XBYTE[0x8100]
8 /* 常数定义 */
9 #define para1 0x20;
10
11 /* 定义标志位 */
12 sbit Acc_0=ACC^0;
13 sbit Acc_1=ACC^1;
14 sbit Acc_2=ACC^2;
15 sbit Acc_3=ACC^3;
16 sbit P1_0=P1^0;
17
18 sbit P3_3=P3^3;
19 sbit P3_4=P3^4;
20
21 sbit P3_2=P3^2;
22
23 unsigned int O_X,O_Y,com,dat1,dat2,code_1;
24 unsigned char attr;
25 /******************************/
26
27 code unsigned char CGTAB[64]={ 0x00,0x40,0x37,0x10,0x81,0x61,0x22,0x0A,/*"液"= 80H*/
28 0x16,0x2B,0xE2,0x22,0x22,0x22,0x23,0x22,
29 0x80,0x44,0xFE,0x20,0x20,0x3C,0x44,0x64,
30 0x98,0x48,0x50,0x20,0x50,0x8E,0x04,0x00,
31 0x0F,0x08,0x08,0x0F,0x08,0x08,0x0F,0x08,/*"晶"= 84H*/
32 0x7E,0x42,0x42,0x7E,0x42,0x42,0x7E,0x42,
33 0xE0,0x20,0x20,0xE0,0x20,0x20,0xE0,0x24,
34 0xFE,0x84,0x84,0xFC,0x84,0x84,0xFC,0x84};
35
36 code unsigned char CCTAB[4][32]={ 0x00,0x40,0x37,0x10,0x83,0x60,0x2F,0x08, /* "清"代码为00H*/
37 0x13,0x22,0xE3,0x22,0x23,0x22,0x22,0x22,
38 0x40,0x48,0xFC,0x40,0xF8,0x40,0xFE,0x08,
39 0xFC,0x08,0xF8,0x08,0xF8,0x08,0x28,0x10,
40 0x04,0x04,0x08,0x08,0x18,0x29,0x4A,0x08, /*"华"代码为01H*/
41 0x09,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,
42 0x40,0x48,0x58,0x60,0xC0,0x40,0x44,0x44,
43 0x3C,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,
44 0x04,0xFF,0x05,0x41,0x33,0x14,0x01,0xF6, /*"蓬"代码为02H*/
45 0x1B,0x10,0x13,0x10,0x17,0x10,0x28,0x47,
46 0x44,0xFE,0x40,0xF8,0x10,0xE0,0x18,0x46,
47 0xF8,0x40,0xF8,0x40,0xFC,0x40,0x46,0xFC,
48 0x00,0x43,0x30,0x10,0x00,0x07,0xF1,0x11, /* "远"代码为03H*/
49 0x11,0x11,0x12,0x12,0x14,0x28,0x47,0x00,
50 0x10,0xF8,0x00,0x00,0x08,0xFC,0x20,0x20,
51 0x20,0x24,0x24,0x1C,0x00,0x06,0xFC,0x00};
52
53 unsigned char DTAB[11]={ 0x37,0x45,0x4c,0x43,0x4f,0x4d,0x45,0x00,0x39,0x4f,0x55};
54
55 /***************************/
C51 COMPILER V6.02 DISP_A 08/19/2003 10:24:25 PAGE 2
56 /* 演示主程序 */
57 /***************************/
58 /*void main()
59 {
60 unsigned char i,j,k,b;
61 INT_1(); /* 初始化函数 */
62 /* CLEAR(); /* 清屏函数 */
63 /* CGRAM(); /* 建立CGRAM内字库函数 */
64
65 /* code_1=0x80; /* 汉字写入(文本方式)*/
66 /* O_X=0x0a;
67 O_Y=0x07;
68 CCW1_PR();
69 code_1=0x84;
70 O_X=0x03;
71 O_Y=0x00;
72 CCW1_PR();
73
74 code_1=0x00; /* 汉字写入(图形方式)*/
75 /* O_X=0x00;
76 O_Y=0x00;
77 CCW2_PR();
78 code_1=0x01;
79 O_X=0x00;
80 O_Y=0x00;
81 CCW2_PR();
82 code_1=0x02;
83 O_X=0x00;
84 O_Y=0x11;
85 CCW2_PR();
86 code_1=0x03;
87 O_X=0x1c;
88 O_Y=0x6f;
89 CCW2_PR();
90 */
91 /* com=0x84; /* 显示方式设置 */ /* 西文写入*/
92 /* PR12();
93 com=0x94; /* 显示状态设置 */
94 /* PR12();
95 for(i=0;i<8;i++)
96 {
97 // dat1=0x0e;
98 // dat2=0x01;
99 // com=0x21; /* 光标地址设置 */
100 // PR1();
101 /* attr=i;
102 O_X=0x27;
103 O_Y=0x0f;
104 for(b=0;b<11;b++)
105 {
106 code_1=DTAB[b];
107 CW2_PR();
108 }
109 }
110
111 for(j=0;j<128;j++) /* 绘点 */
112 /* {
113 O_X=k;
114 O_Y=j;
115 W_DOT();
116 k++;
117 }
C51 COMPILER V6.02 DISP_A 08/19/2003 10:24:25 PAGE 3
118 for(j=128;j>0;j--)
119 {
120 O_X=k;
121 O_Y=j;
122 W_DOT();
123 k++;
124 }
125 }
126 /**************************/
127 /* 初始化函数 */
128 /**************************/
129 INT_1()
130 {
131 1 dat1=0x00; /*设文本显示区域首地址*/
132 1 dat2=0x00;
133 1 com=0x40;
134 1 PR1();
*** WARNING C206 IN LINE 134 OF D:\LCD_6963\LCD2\DISP_A.C: 'PR1': missing function-prototype
135 1 dat1=para1; /*设文本显示区域宽度*/
136 1 dat2=0x00;
137 1 com=0x41;
138 1 PR1();
139 1 dat1=0x00; /*设图形显示区域首地址*/
140 1 dat2=0x08;
141 1 com=0x42;
142 1 PR1();
143 1 dat1=para1; /*设图形显示区域宽度*/
144 1 dat2=0x00;
145 1 com=0x43;
146 1 PR1();
147 1 com=0xa0; /*光标形状设置*/
148 1 PR12();
*** WARNING C206 IN LINE 148 OF D:\LCD_6963\LCD2\DISP_A.C: 'PR12': missing function-prototype
149 1 com=0x84; /*显示方式设置逻辑"或"合成*/
150 1 PR12();
151 1 com=0x9c; /*显示开关设置 开文本和图形显示*/
152 1 PR12();
153 1 }
154 /***************************/
155 /* 清显示函数 */
156 /***************************/
157 CLEAR()
158 {
159 1 unsigned int i;
160 1 dat1=0x00;
161 1 dat2=0x00;
162 1 com=0x24; /* 设置显示地址 */
163 1 PR1();
164 1 com=0xb0; /* 设置自动写方式 */
165 1 PR12();
166 1 for(i=0;i<8200;i++) /* 清8K存储器 */
167 1 {
168 2 ST3();
*** WARNING C206 IN LINE 168 OF D:\LCD_6963\LCD2\DISP_A.C: 'ST3': missing function-prototype
169 2 d_add=0x00;
170 2 }
171 1 com=0xb2; /* 设置自动写结束方式 */
172 1 PR12();
173 1 }
174 /**************************/
175 /* CGRAM函数 */
176 /**************************/
C51 COMPILER V6.02 DISP_A 08/19/2003 10:24:25 PAGE 4
177 CGRAM()
178 {
179 1 unsigned int i;
180 1 dat1=0x03;
181 1 dat2=0x00;
182 1 com=0x22; /* 设置CGRAM偏置地址 */
183 1 PR1();
184 1 dat1=0x00;
185 1 dat2=0x1c;
186 1 com=0x24; /* 设置存储器地址指针 */
187 1 PR1();
188 1 com=0xb0; /* 设置自动写方式 */
189 1 PR12();
190 1 for(i=0;i<64;i++)
191 1 {
192 2 ST3();
193 2 d_add=CGTAB[i];
194 2 }
195 1 com=0xb2; /* 设置自动写结束方式 */
196 1 PR12();
197 1 }
198 /********************************/
199 /* 汉字写入(文本方式)函数 */
200 /********************************/
201 CCW1_PR()
202 {
203 1 unsigned int i,j;
204 1 i=para1;
205 1 j=i*O_Y+O_X;
206 1 dat1=j%256;
207 1 dat2=j/256;
208 1 com=0x24; /* 设置显示地址 */
209 1 PR1();
210 1 dat2=code_1; /* 写入左上半部汉字代码 */
211 1 com=0xc0;
212 1 PR11();
*** WARNING C206 IN LINE 212 OF D:\LCD_6963\LCD2\DISP_A.C: 'PR11': missing function-prototype
213 1 dat2=code_1+0x02; /* 写入右上半部汉字代码 */
214 1 PR11();
215 1 j=j+i;
216 1 dat1=j%256; /* 显示RAM地址修正 */
217 1 dat2=j/256;
218 1 com=0x24;
219 1 PR1();
220 1 dat2=code_1+0x01; /* 写入左下半部汉字代码 */
221 1 com=0xc0;
222 1 PR11();
223 1 dat2=code_1+0x03; /* 写入右下半部汉字代码 */
224 1 PR11();
225 1 }
226 /********************************/
227 /* 汉字写入(图形方式)函数 */
228 /********************************/
229 CCW2_PR()
230 {
231 1 unsigned int i,j,count1;
232 1 i=para1;
233 1 j=i*O_Y+O_X+0x0800; /* 图形显示区首地址为0x0800*/
234 1 for(count1=0;count1<16;count1++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -