📄 function.lst
字号:
C51 COMPILER V7.09 FUNCTION 10/11/2006 16:32:11 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE FUNCTION
OBJECT MODULE PLACED IN function.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE function.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //#include "sys.h"
2 #include "user.h"
3 #include "ShowLcd.h"
4
5 #define MCUCALLPC 0x5b
6 #define RECEIVEFILEOK 0x55
7
8 //extern UCHAR arrayNum; //???????
9 extern UCHAR groupCurrent; //已采集得数据组数
10 UCHAR AddressL,AddressH;
11 UCHAR UIData[8] = {0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30};//比基站数据多两个字节,估计当时是为了凑足EEPRO
-M的整数地址 //save the data from the cell
12 bit receiveFlag,responseFlag,sendFlag;
13 data UCHAR *p;
14 typedef struct
15 {
16 UCHAR cellStack[CELLMAXNUM];
17 UCHAR length;
18 UCHAR point;
19 }ASTACK;
20 ASTACK cellInfo;
21
22 void UserInit()
23 {
24 1 cellInfo.length = 0;
25 1 cellInfo.point = 0;
26 1 cellInfo.cellStack[0] = 0;
27 1 receiveFlag = 0;
28 1 responseFlag = 0;
29 1 sendFlag = 0;
30 1 SEND_RECEIVE = 1; //send status
31 1 }
32
33 void Write_Display(UCHAR *Display_Addr)
34 {
35 1 UCHAR tmp;
36 1 Write_Addr(0);
37 1 for(tmp = 0;tmp < 16;tmp ++)
38 1 {
39 2 Write_Data(Display_Addr[tmp]);
40 2 Delay(1);
41 2 }
42 1 Delay(100);
43 1 Write_Addr(16);
44 1 for(tmp = 16;tmp < 32;tmp ++)
45 1 {
46 2 Write_Data(Display_Addr[tmp]);
47 2 Delay(1);
48 2 }
49 1 }
50
51
52
53
54 void PC_CellDisplay()
C51 COMPILER V7.09 FUNCTION 10/11/2006 16:32:11 PAGE 2
55 {
56 1 Init_LCD();
57 1 Delay(50);
58 1 LCDClr();
59 1 Delay(50);
60 1 Write_Display(backspack);
61 1 Delay(50);
62 1 Write_Display(selectString);
63 1 }
64
65 void EEPQ_Display()
66 {
67 1 Init_LCD();
68 1 Delay(50);
69 1 LCDClr();
70 1 Delay(50);
71 1 Write_Display(backspack);
72 1 Delay(50);
73 1 Write_Display(EEPQMover);
74 1 }
75
76 void EEPnum_Display()
77 {
78 1 Init_LCD();
79 1 Delay(50);
80 1 LCDClr();
81 1 Delay(50);
82 1 Write_Display(backspack);
83 1 Delay(50);
84 1 Write_Display(EEPnum);
85 1 }
86
87 void NUM_GROUG_DISPLAY()
88 {
89 1 Init_LCD();
90 1 Delay(50);
91 1 LCDClr();
92 1 Delay(50);
93 1 Write_Display(backspack);
94 1 Delay(50);
95 1 Write_Display(GROUP);
96 1 }
97
98 void Err_Display()
99 {
100 1 Init_LCD();
101 1 Delay(50);
102 1 LCDClr();
103 1 Delay(50);
104 1 Write_Display(backspack);
105 1 Delay(50);
106 1 Write_Display(ErorrMessage);
107 1 }
108 void TOPC_display(void)
109 {
110 1 Init_LCD();
111 1 Delay(50);
112 1 LCDClr();
113 1 Delay(50);
114 1 Write_Display(backspack);
115 1 Delay(50);
116 1 Write_Display(TOPCSMessage);
C51 COMPILER V7.09 FUNCTION 10/11/2006 16:32:11 PAGE 3
117 1 }
118
119 void DELROM_display(void)
120 {
121 1 Init_LCD();
122 1 Delay(50);
123 1 LCDClr();
124 1 Delay(50);
125 1 Write_Display(backspack);
126 1 Delay(50);
127 1 Write_Display(delterom);
128 1 }
129
130 void CELLCALL_display(void)
131 {
132 1 Init_LCD();
133 1 Delay(50);
134 1 LCDClr();
135 1 Delay(50);
136 1 Write_Display(backspack);
137 1 Delay(50);
138 1 Write_Display(CALLCELLMessage);
139 1 }
140 void EEPROMquery_display(void)
141 {
142 1 Init_LCD();
143 1 Delay(50);
144 1 LCDClr();
145 1 Delay(50);
146 1 Write_Display(backspack);
147 1 Delay(50);
148 1 Write_Display(EEPROMQURRYMess);
149 1 }
150 void EEPROMDELE_display(void)
151 {
152 1 Init_LCD();
153 1 Delay(50);
154 1 LCDClr();
155 1 Delay(50);
156 1 Write_Display(backspack);
157 1 Delay(50);
158 1 Write_Display(EEPROMMessage);
159 1 }
160
161 //the frequency of MCU is 12MHz;
162 void Delay(UCHAR n)
163 {
164 1 UCHAR i;
165 1 for(i=0;i<n;i++)
166 1 {
167 2 _nop_();
168 2 _nop_();
169 2 }
170 1 }
171 void Delay5s()
172 {
173 1 UCHAR tmp;
174 1 for(tmp=0;tmp<255;tmp++)
175 1 {
176 2 Delay(255);
177 2 }
178 1 for(tmp=0;tmp<255;tmp++)
C51 COMPILER V7.09 FUNCTION 10/11/2006 16:32:11 PAGE 4
179 1 {
180 2 Delay(255);
181 2 }
182 1
183 1 }
184
185 void Init_LCD(void)
186 {
187 1 Delay(3);
188 1 Write_Com(0x28); /*设置工作方式*/
189 1 Delay(3);
190 1 Write_Com(0x06); /*设置输入方式*/
191 1 Delay(3);
192 1 Write_Com(0x0d); /*设置显示方式*/
193 1 Delay(3);
194 1 Write_Com(0x01); /*清屏*/
195 1 Delay(3);
196 1 }
197
198 void LCDClr(void)
199 {
200 1 Write_Com(0x01); //0x01
201 1 Delay(3);
202 1 Write_Com(0x02); //0x02
203 1 }
204
205 void Write_Com(UCHAR Com)
206 {
207 1 UCHAR tmp;
208 1 LCD_RS = 0;
209 1 LCD_R_W = 1;
210 1 do
211 1 {
212 2 P0 = 0xf0 | P0; /*读BF,AC高四位*/
213 2 LCD_E = 1;
214 2 LCD_E = 1;
215 2 tmp = P0;
216 2 LCD_E = 0;
217 2 LCD_E = 0;
218 2 LCD_E = 1; /*读BF,AC低4位*/
219 2 LCD_E = 1;
220 2 LCD_E = 0;
221 2 LCD_E = 0;
222 2 }
223 1 while(tmp & 0x80);
224 1 LCD_R_W = 0;
225 1 P0 = (P0 & 0x0f) | (Com & 0xf0);
226 1 LCD_E = 1;
227 1 LCD_E = 1;
228 1 LCD_E = 0;
229 1 LCD_E = 0;
230 1 P0 = (P0 & 0x0f) | (Com << 4);
231 1 LCD_E = 1;
232 1 LCD_E = 1;
233 1 LCD_E = 0;
234 1 LCD_E = 0;
235 1 }
236
237 void Write_Addr(UCHAR Dis_Addr)
238 {
239 1
240 1 if((Dis_Addr >=0) && (Dis_Addr <16))
C51 COMPILER V7.09 FUNCTION 10/11/2006 16:32:11 PAGE 5
241 1 Write_Com((Dis_Addr ) | 0x80);
242 1 else if((Dis_Addr >=16) && (Dis_Addr <32))
243 1 Write_Com(((Dis_Addr-16) + 0x40) | 0x80 );
244 1 }
245
246 void Write_Data(UCHAR Ddata)
247 {
248 1 UCHAR tmp;
249 1 LCD_RS = 0;
250 1 LCD_R_W = 1;
251 1 do
252 1 {
253 2 P0 = 0xf0 | P0; /*读BF,AC高四位*/
254 2 LCD_E = 1;
255 2 LCD_E = 1;
256 2 tmp = P0;
257 2 LCD_E = 0;
258 2 LCD_E = 0;
259 2 LCD_E = 1; /*读BF,AC低4位*/
260 2 LCD_E = 1;
261 2 LCD_E = 0;
262 2 LCD_E = 0;
263 2 }
264 1 while(tmp & 0x80);
265 1 LCD_RS = 1;
266 1 LCD_R_W = 0;
267 1 P0 = (P0 & 0x0f) | (Ddata & 0xf0);
268 1 LCD_E = 1;
269 1 LCD_E = 1;
270 1 LCD_E = 0;
271 1 LCD_E = 0;
272 1 P0 = (P0 & 0x0f) | (Ddata << 4);
273 1 LCD_E = 1;
274 1 LCD_E = 1;
275 1 LCD_E = 0;
276 1 LCD_E = 0;
277 1 }
278
279 void LCDChar(UCHAR position,UCHAR asc)
280 {
281 1 Write_Addr(position);
282 1 Write_Data(asc);
283 1 }
284
285 void LCDString(UCHAR position,UCHAR *parrow,UCHAR num)
286 {
287 1 UCHAR tmp;
288 1 if(position<16)
289 1 {
290 2 Write_Addr(position);
291 2 for(tmp=0;tmp<num;tmp++)
292 2 {
293 3 Write_Data(parrow[tmp]);
294 3 }
295 2 }
296 1 if(position>=16)
297 1 {
298 2 Write_Addr(position);
299 2 for(tmp=0;tmp<num;tmp++)
300 2 {
301 3 Write_Data(parrow[tmp]);
302 3 }
C51 COMPILER V7.09 FUNCTION 10/11/2006 16:32:11 PAGE 6
303 2 }
304 1 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -