📄 anjian.lst
字号:
C51 COMPILER V7.50 ANJIAN 10/08/2007 15:34:45 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE ANJIAN
OBJECT MODULE PLACED IN anjian.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE anjian.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include<string.h>
3 #include<math.h>
4 #define uint unsigned int
5 #define uchar unsigned char
6
7 #define x1 0x80
8 #define x2 0x88
9 #define y 0x80
10 #define comm 0
11 #define dat 1
12 sbit cs = P2^5;
13 sbit std = P2^6;
14 sbit sclk = P2^7;
15
16 uchar number=0;
17 uchar count=0;
18 uchar list=0;
19 //uchar idata tt[10]={0x07,0x06,0x06,0x17,0x25};
20 uchar idata tab1[64];
21 uchar idata buffer[12];
22
23 uchar code tab2[]={
24 " 时间 "
25 " 电压设置 "
26 " 电压值 "
27 " 电压统计量 "
28 };
29
30 uchar idata tab3[]={
31 "2007-05-31 16:33"
32 "2007-05-30 16:33"
33 "电压值: 220.5V "
34 "电压值: 220.5V "
35 };
36
37 uchar code tab4[]={
38 "*-------------* "
39 "上限电压: 107% "
40 "下限电压: 90% "
41 "*-------------* "
42 };
43
44 uchar code tab5[]={
45 " 整点电压值 "
46 "上限电压时间间隔"
47 "下限电压时间间隔"
48 " 停电时间间隔 "
49 };
50
51 void wr_lcd (uchar dat_comm,uchar content);
52 void delay (uint us);
53 //uchar keywork(uchar p,uchar k);
54
55 /*------------------初始化-----------------*/
C51 COMPILER V7.50 ANJIAN 10/08/2007 15:34:45 PAGE 2
56 void init_lcd (void)
57 {
58 1
59 1 wr_lcd (comm,0x30); /*30---基本指令动作*/
60 1 wr_lcd (comm,0x01); /*清屏,地址指针指向00H*/
61 1 delay (100);
62 1 wr_lcd (comm,0x06); /*光标的移动方向*/
63 1 wr_lcd (comm,0x0c); /*开显示,关游标*/
64 1 }
65
66 /*---------------显示汉字----------------*/
67 void chn_disp (uchar code *chn)
68 {
69 1 uchar i,j;
70 1 wr_lcd (comm,0x30);
71 1 wr_lcd (comm,0x80);
72 1 for (j=0;j<4;j++)
73 1 {
74 2 for (i=0;i<16;i++)
75 2 wr_lcd (dat,chn[j*16+i]);
76 2 }
77 1 }
78
79 /*---------------显示字----------------*/
80 void chn_disp1 (uchar idata *chn)
81 {
82 1 uchar i,j;
83 1 wr_lcd (comm,0x30);
84 1 wr_lcd (comm,0x80);
85 1 j=0;
86 1 {
87 2 for (i=0;i<16;i++)
88 2 wr_lcd (dat,chn[j*16+i]);
89 2 }
90 1 }
91
92 /*---------------显示电压----------------*/
93 void chn_disp2 (uchar idata *chn)
94 {
95 1 uchar i,j;
96 1 wr_lcd (comm,0x30);
97 1 wr_lcd (comm,0x80);
98 1 for (j=0;j<4;j++)
99 1 {
100 2 for (i=0;i<16;i++)
101 2 wr_lcd (dat,chn[j*16+i]);
102 2 }
103 1 }
104 /*--------------显示点阵----------------*/
105 void lat_disp (uchar data1,uchar data2)
106 {
107 1 uchar i,j,k,x;
108 1 x=x1;
109 1 for(k=0;k<2;k++)
110 1 {
111 2 for(j=0;j<16;j++)
112 2 {
113 3 for(i=0;i<8;i++)
114 3 {
115 4 wr_lcd (comm,0x34);
116 4 wr_lcd (comm,y+j*2);
117 4 wr_lcd (comm,x+i);
C51 COMPILER V7.50 ANJIAN 10/08/2007 15:34:45 PAGE 3
118 4 wr_lcd (comm,0x30);
119 4 wr_lcd (dat,data1);
120 4 wr_lcd (dat,data1);
121 4 }
122 3 for(i=0;i<8;i++)
123 3 {
124 4 wr_lcd (comm,0x34);
125 4 wr_lcd (comm,y+j*2+1);
126 4 wr_lcd (comm,x+i);
127 4 wr_lcd (comm,0x30);
128 4 wr_lcd (dat,data2);
129 4 wr_lcd (dat,data2);
130 4 }
131 3 }
132 2 x=x2;
133 2 }
134 1 wr_lcd (comm,0x36);
135 1 }
136
137 /*---------------反白 ---------------------*/
138 void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
139 {
140 1 uchar i,j;
141 1 for(j=0;j<yl;j++)
142 1 {
143 2 for(i=0;i<xl;i++)
144 2 {
145 3 wr_lcd (comm,0x34);
146 3 wr_lcd (comm,y0+j);
147 3 wr_lcd (comm,x0+i);
148 3 wr_lcd (comm,0x30);
149 3 wr_lcd (dat,data1);
150 3 wr_lcd (dat,data2);
151 3 }
152 2 }
153 1 wr_lcd (comm,0x36);
154 1 }
155
156 /*---------------------------------------*/
157 void wr_lcd (uchar dat_comm,uchar content)
158 {
159 1 uchar a,i,j;
160 1 delay (50);
161 1 a=content;
162 1 cs=1;
163 1 sclk=0;
164 1 std=1;
165 1 for(i=0;i<5;i++)
166 1 {
167 2 sclk=1;
168 2 sclk=0;
169 2 }
170 1 std=0;
171 1 sclk=1;
172 1 sclk=0;
173 1 if(dat_comm)
174 1 std=1; //data
175 1 else
176 1 std=0; //command
177 1 sclk=1;
178 1 sclk=0;
179 1 std=0;
C51 COMPILER V7.50 ANJIAN 10/08/2007 15:34:45 PAGE 4
180 1 sclk=1;
181 1 sclk=0;
182 1 for(j=0;j<2;j++)
183 1 {
184 2 for(i=0;i<4;i++)
185 2 {
186 3 a=a<<1;
187 3 std=CY;
188 3 sclk=1;
189 3 sclk=0;
190 3 }
191 2 std=0;
192 2 for(i=0;i<4;i++)
193 2 {
194 3 sclk=1;
195 3 sclk=0;
196 3 }
197 2 }
198 1 }
199
200 /*-----------------------------------*/
201 void delay (uint us) //delay time
202 {
203 1 while(us--);
204 1 }
205
206 /*---------------数据处理--------------------*/
207 void transfer(uchar idata tt[])
208 { uchar i, time;
209 1 for(i=0;i<6;i++)
210 1 {
211 2 time=tt[i];
212 2 buffer[2*i+1]=time&0x0f;
213 2 buffer[2*i]=time>>4;
214 2 }
215 1 }
216
217 void convent( uchar idata buffer[])
218 { uchar i, time;
219 1 uchar idata pp[]={"-- :"};
220 1 uchar idata buffer1[12];
221 1 for(i=0;i<12;i++)
222 1 { time=buffer[i];
223 2 switch(time)
224 2 { case 0:buffer1[i]='0'; break;
225 3 case 1:buffer1[i]='1'; break;
226 3 case 2:buffer1[i]='2'; break;
227 3 case 3:buffer1[i]='3'; break;
228 3 case 4:buffer1[i]='4'; break;
229 3 case 5:buffer1[i]='5'; break;
230 3 case 6:buffer1[i]='6'; break;
231 3 case 7:buffer1[i]='7'; break;
232 3 case 8:buffer1[i]='8'; break;
233 3 case 9:buffer1[i]='9'; break;
234 3 default: break;
235 3 }
236 2 }
237 1 for(i=0;i<4;i++)
238 1 { tab1[i]=buffer1[i];
239 2 tab1[3*i+4]=pp[i];
240 2 tab1[3*i+5]=buffer1[2*i+4];
241 2 tab1[3*i+6]=buffer1[2*i+5];
C51 COMPILER V7.50 ANJIAN 10/08/2007 15:34:45 PAGE 5
242 2 }
243 1 }
244
245 /*-----------------1#键------------------*/
246 void key1(uchar flag[])
247 {
248 1 number++;
249 1 if(number==3)
250 1 number=1;
251 1 flag[1]=number;
252 1 if(flag[1]==1)
253 1 { flag[3]=1;
254 2 flag[2]=1;
255 2 init_lcd ();
256 2 lat_disp (0x00,0x00);
257 2 chn_disp (tab2);
258 2 }
259 1 if(flag[1]==2)
260 1 { if(flag[4]==1)
261 2 { init_lcd ();
262 3 lat_disp (0x00,0x00);
263 3 convent(buffer);
264 3 chn_disp1 (tab1);
265 3 flag[5]=1;
266 3 }
267 2 if(flag[4]==2)
268 2 { init_lcd ();
269 3 lat_disp (0x00,0x00);
270 3 chn_disp2 (tab3);
271 3 }
272 2 if(flag[4]==3)
273 2 { init_lcd ();
274 3 lat_disp (0x00,0x00);
275 3 chn_disp (tab4);
276 3 }
277 2 if(flag[4]==4)
278 2 { init_lcd ();
279 3 lat_disp (0x00,0x00);
280 3 chn_disp (tab5);
281 3 }
282 2 flag[1]=1;
283 2
284 2 }
285 1 }
286
287 /*-----------------2#键------------------*/
288 void key2(uchar flag[])
289 { count++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -