📄 22222_fun.lst
字号:
C51 COMPILER V7.08 22222_FUN 08/08/2005 20:36:11 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE 22222_FUN
OBJECT MODULE PLACED IN 22222_FUN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 22222_FUN.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /**************************/
2 /* 初始化函数 */
3 /**************************/
4 INT_1()
5 {
6 1 dat1=0x00; /*设文本显示区域首地址*/
*** ERROR C202 IN LINE 6 OF 22222_FUN.C: 'dat1': undefined identifier
7 1 dat2=0x00;
*** ERROR C202 IN LINE 7 OF 22222_FUN.C: 'dat2': undefined identifier
8 1 com=0x40;
*** ERROR C202 IN LINE 8 OF 22222_FUN.C: 'com': undefined identifier
9 1 PR1();
10 1 dat1=para1; /*设文本显示区域宽度*/
11 1 dat2=0x00;
12 1 com=0x41;
13 1 PR1();
14 1 dat1=0x00; /*设图形显示区域首地址*/
15 1 dat2=0x08;
16 1 com=0x42;
17 1 PR1();
18 1 dat1=para1; /*设图形显示区域宽度*/
19 1 dat2=0x00;
20 1 com=0x43;
21 1 PR1();
22 1 com=0xa0; /*光标形状设置*/
23 1 PR12();
24 1 com=0x80; /*显示方式设置逻辑"或"合成*/
25 1 PR12();
26 1 com=0x9c; /*显示开关设置 开文本和图形显示*/
27 1 PR12();
28 1 }
29 /***************************/
30 /* 清显示函数 */
31 /***************************/
32 CLEAR()
33 {
34 1 unsigned int i;
35 1 dat1=0x00;
36 1 dat2=0x00;
37 1 com=0x24; /* 设置显示地址 */
38 1 PR1();
39 1 com=0xb0; /* 设置自动写方式 */
40 1 PR12();
41 1 for(i=0;i<8200;i++) /* 清8K存储器 */
42 1 {
43 2 ST3();
44 2 d_add=0x00;
45 2 }
46 1 com=0xb2; /* 设置自动写结束方式 */
47 1 PR12();
48 1 }
49 /**************************/
50 /* CGRAM函数 */
51 /**************************/
52 CGRAM()
C51 COMPILER V7.08 22222_FUN 08/08/2005 20:36:11 PAGE 2
53 {
54 1 unsigned int i;
55 1 dat1=0x03;
56 1 dat2=0x00;
57 1 com=0x22; /* 设置CGRAM偏置地址 */
58 1 PR1();
59 1 dat1=0x00;
60 1 dat2=0x1c;
61 1 com=0x24; /* 设置存储器地址指针 */
62 1 PR1();
63 1 com=0xb0; /* 设置自动写方式 */
64 1 PR12();
65 1 for(i=0;i<64;i++)
66 1 {
67 2 ST3();
68 2 d_add=CGTAB[i];
69 2 }
70 1 com=0xb2; /* 设置自动写结束方式 */
71 1 PR12();
72 1 }
73 /********************************/
74 /* 汉字写入(文本方式)函数 */
75 /********************************/
76 CCW1_PR()
77 {
78 1 unsigned int i,j;
79 1 i=para1;
80 1 j=i*O_Y+O_X;
81 1 dat1=j%256;
82 1 dat2=j/256;
83 1 com=0x24; /* 设置显示地址 */
84 1 PR1();
85 1 dat2=code_1; /* 写入左上半部汉字代码 */
86 1 com=0xc0;
87 1 PR11();
88 1 dat2=code_1+0x02; /* 写入右上半部汉字代码 */
89 1 PR11();
90 1 j=j+i;
91 1 dat1=j%256; /* 显示RAM地址修正 */
92 1 dat2=j/256;
93 1 com=0x24;
94 1 PR1();
95 1 dat2=code_1+0x01; /* 写入左下半部汉字代码 */
96 1 com=0xc0;
97 1 PR11();
98 1 dat2=code_1+0x03; /* 写入右下半部汉字代码 */
99 1 PR11();
100 1 }
101 /********************************/
102 /* 汉字写入(图形方式)函数 */
103 /********************************/
104 CCW2_PR()
105 {
106 1 unsigned int i,j,count1;
107 1 i=para1;
108 1 j=i*O_Y+O_X+0x0800; /* 图形显示区首地址为0x0800*/
109 1 for(count1=0;count1<16;count1++)
110 1 {
111 2 dat1=j%256; /* 显示地址设置 */
112 2 dat2=j/256;
113 2 com=0x24;
114 2 PR1();
C51 COMPILER V7.08 22222_FUN 08/08/2005 20:36:11 PAGE 3
115 2 dat2=CCTAB[code_1][count1];
116 2 com=0xc0;
117 2 PR11();
118 2 dat2=CCTAB[code_1][count1+16];
119 2 PR11();
120 2 j=j+i;
121 2 }
122 1 }
123 /********************************/
124 /* 西文字符写入(文本属性)函数 */
125 /********************************/
126 CW2_PR()
127 {
128 1 unsigned int i,j;
129 1 i=para1;
130 1 j=i*O_Y+O_X;
131 1 dat1=j%256;
132 1 dat2=j/256;
133 1 com=0x24; /* 显示地址设置 */
134 1 PR1();
135 1 dat2=code_1;
136 1 com=0xc4; /* 数据写 */
137 1 PR11();
138 1 dat2=0x08;
139 1 com=0x24;
140 1 PR1();
141 1 dat2=attr; /* 写入属性参数 */
142 1 com=0xc4;
143 1 PR11();
144 1 }
145 /****************************/
146 /* 绘点函数 */
147 /****************************/
148 W_DOT()
149 {
150 1 unsigned char i,j;
151 1 unsigned int k;
152 1 i=para1;
153 1 j=O_X%8;
154 1 O_X=O_X/8;
155 1 k=i*O_Y+O_X+0x0800;
156 1 dat1=k%256;
157 1 dat2=k/256;
158 1 com=0x24;
159 1 PR1();
160 1 j=0x07-j;
161 1 com=i|0xf8; /* 位操作 */
162 1 PR12();
163 1 }
164 /****************************/
165 /* 写指令和写数据函数 */
166 /****************************/
167 PR1() /* 双字节参数指令写入入口 */
168 {
169 1 ST01();
170 1 d_add=dat1; /* 取第一参数单元数据 */
171 1 PR11();
172 1 }
173 PR11() /* 单字节参数指令写入入口 */
174 {
175 1 ST01();
176 1 d_add=dat2; /* 取第二参数单元数据 */
C51 COMPILER V7.08 22222_FUN 08/08/2005 20:36:11 PAGE 4
177 1 PR12();
178 1 }
179 PR12() /* 无参数指令写入入口 */
180 {
181 1 ST01();
182 1 c_add=com; /* 写入指令代码 */
183 1 }
184 /************************************************/
185 /* 判状态位S1,S0 函数(读写指令和读写数据状态) */
186 /************************************************/
187 ST01()
188 {
189 1 do
190 1 {
191 2 ACC=c_add;
192 2 }
193 1 while(Acc_0==0,Acc_1==0);
194 1 }
195 /************************************/
196 /* 判状态位S2函数(数据自动读状态) */
197 /************************************/
198 ST2()
199 {
200 1 do
201 1 {
202 2 ACC=c_add;
203 2 }
204 1 while(Acc_2==0);
205 1 }
206 /************************************/
207 /* 判状态位S3函数(数据自动写状态) */
208 /************************************/
209 ST3()
210 {
211 1 do
212 1 {
213 2 ACC=c_add;
214 2 }
215 1 while(Acc_3==0);
216 1 }
217
218
C51 COMPILATION COMPLETE. 0 WARNING(S), 3 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -