📄 ad.lst
字号:
192 1 SPI0CFG = 0x07; // data sampled on 1st SCK rising edge
193 1 SPI0CFG|=0xC0; //CKPOL =1;
194 1 SPI0CN = 0x03; // Master mode; SPI enabled; flags
195 1 SPI0CKR = SYSCLK/2/2000000-1; // SPI clock <= 8MHz (limited by
196 1 // EEPROM spec.)
197 1 }
198 //-----------------------------------------------------------------------------
199 // UART0_Init
200 //-----------------------------------------------------------------------------
201 void UART0_Init (void)
202 {
203 1 SCON = 0x50; // SCON: mode 1, 8-bit UART, enable RX
204 1 TMOD = 0x20; // TMOD: timer 1, mode 2, 8-bit reload
205 1 TH1 = -(SYSCLK/BAUDRATE/16); // set Timer1 reload value for baudrate
206 1 TR1 = 1; // start Timer1
207 1 CKCON |= 0x10; // Timer1 uses SYSCLK as time base
208 1 PCON |= 0x80; // SMOD = 1
209 1 TI = 1; // Indicate TX ready
210 1 }
211 //-----------------------------------------------------------------------------
212 // LCD_Init
213 //-----------------------------------------------------------------------------
214 void LCD_Init(void) //向LCD送命令
215 {
216 1 // unsigned int xdata x;
217 1 delaynms(100);
218 1 datad=0x00;
219 1 SendSPIByte(datad);
220 1 delaynms(10);
221 1 Write_COM(0x30);
222 1 delaynms(10);
223 1 Write_COM(0x30);
224 1 delaynms(10);
225 1 Write_COM(0x30);
226 1 delaynms(10) ;
227 1 Write_COM(0x28);
228 1 delaynms(100);
229 1 virt_port=0;
230 1 SendSPIByte(virt_port);
231 1 lcden(virt_port);
232 1 Write_COM(0x01);
233 1 delaynms(100);
234 1 Write_COM(0x06);
235 1 delaynms(10);
236 1 Write_COM(0x0C);
237 1 delaynms(500);
238 1
239 1 }
C51 COMPILER V8.02 AD 03/23/2009 20:06:28 PAGE 5
240 //-----------------------------------------------------------------------------
241 // SendSPIByte
242 //-----------------------------------------------------------------------------
243 void SendSPIByte(unsigned char ch)
244 { lcdcs=1;
245 1 delaynus(100);
246 1 SPIF = 0;
247 1 SPI0DAT = ch;
248 1 while (SPIF == 0);
249 1 delaynus(100);
250 1 lcdcs=0;
251 1 delaynus(100);
252 1 nop_(); // 等待写结束
253 1 }
254 //-----------------------------------------------------------------------------
255 // lcden
256 //-----------------------------------------------------------------------------
257 void lcden(datad)
258 {
259 1 datad|=0x08;
260 1 SendSPIByte(datad);
261 1 datad&=0xf7;
262 1 SendSPIByte(datad);
263 1 }
264 //-----------------------------------------------------------------------------
265 // delaynms
266 //-----------------------------------------------------------------------------
267 void delaynms (unsigned int uu)
268 {
269 1 unsigned int oo,ll;
270 1 for (oo=0;oo {
*** ERROR C141 IN LINE 270 OF AD.C: syntax error near '{'
271 2 for(ll=0;ll<1140;ll++);
272 2
273 2 }
274 1 }
275 //-----------------------------------------------------------------------------
276 // writechar
277 //-----------------------------------------------------------------------------
278 void writechar(unsigned char ua)
279 {
280 1
281 1 uint j;
282 1 uchar t,x;
283 1 for(j=0;j<500;j++);
284 1 datad|=0x02;
285 1 SendSPIByte(datad);
286 1 datad|=ua&0xf0;
287 1 SendSPIByte(datad);
288 1 datad|=0x08;
289 1 SendSPIByte(datad);
290 1 for(x=0;x<3;x++);
291 1 datad&=0xf7;
292 1 SendSPIByte(datad);
293 1 for(x=0;x<3;x++);
294 1 datad&=0x07;
295 1 delaynus(100);
296 1 SendSPIByte(virt_port);
297 1 t|=ua&0x0f;
298 1 datad|=t<<4;
299 1 SendSPIByte(datad);
300 1 for(x=0;x<3;x++);
C51 COMPILER V8.02 AD 03/23/2009 20:06:28 PAGE 6
301 1 datad|=0x08;
302 1 SendSPIByte(datad);
303 1 for(x=0;x<3;x++);
304 1 datad&=0xf7;
305 1 SendSPIByte(datad);
306 1 for(x=0;x<3;x++);
307 1 datad=0x00;
308 1 t=0x00;
309 1 SendSPIByte(datad);
310 1 }
311 //-----------------------------------------------------------------------------
312 // Write_COM
313 //-----------------------------------------------------------------------------
314 void Write_COM(uchar ins)
315 {
316 1 uchar t;
317 1 uint j;
318 1
319 1 for(j=0;j<5000;j++); //用延时代替查询
320 1 virt_port|=ins&0xf0;
321 1 SendSPIByte(virt_port);
322 1 //LCDE=1;
323 1 virt_port|=0x08;
324 1 SendSPIByte(virt_port);
325 1 for(i=3;i>0;i--);
326 1 //LCDE=0;
327 1 virt_port&=~0x08;
328 1 SendSPIByte(virt_port);
329 1 virt_port&=0x07;
330 1 SendSPIByte(virt_port);
331 1 t=ins<<4;
332 1 virt_port|=t&0xf0;
333 1 SendSPIByte(virt_port);
334 1 //LCDE=1;
335 1 virt_port|=0x08;
336 1 SendSPIByte(virt_port);
337 1 for(i=3;i>0;i--);
338 1 //LCDE=0;
339 1 virt_port&=~0x08;
340 1 SendSPIByte(virt_port);
341 1 virt_port=0;
342 1 SendSPIByte(virt_port);
343 1 }
344 //-----------------------------------------------------------------------------
345 // LCD_set_xy
346 //-----------------------------------------------------------------------------
347 void LCD_set_xy( unsigned char x, unsigned char y )
348 {
349 1 unsigned char address;
350 1 if (y == 0) address = 0x80 + x;
351 1 else
352 1 address = 0xc0 + x;
353 1 Write_COM(address);
354 1 }
355 //-----------------------------------------------------------------------------
356 // LCD_write_string
357 //-----------------------------------------------------------------------------
358 void LCD_write_string(unsigned char n)
359 {
360 1 unsigned char data1;
361 1 for(n;n>0;n--)
362 1 {
C51 COMPILER V8.02 AD 03/23/2009 20:06:28 PAGE 7
363 2 data1=*lcdpoint;
364 2 writechar(data1);
365 2 delaynms(100);
366 2 lcdpoint++;
367 2 delaynus(10);
368 2 }
369 1 }
370 //-----------------------------------------------------------------------------
371 // delaynus
372 //-----------------------------------------------------------------------------
373 void delaynus(unsigned int q) //N us延时函数
374 {
375 1 for (i=0;i
376 1 nop_();
*** ERROR C141 IN LINE 376 OF AD.C: syntax error near 'nop_'
377 1 }
378 }
*** ERROR C141 IN LINE 378 OF AD.C: syntax error near '}'
379 //-----------------------------------------------------------------------------
380 // lcd_adc
381 //-----------------------------------------------------------------------------
382 void lcd_adc(void)
383 {
384 1 unsigned char xdata ADC0Data[5]=;
*** ERROR C141 IN LINE 384 OF AD.C: syntax error near ';'
385 1 lcdpoint=&ADC0Data;
386 1 }
C51 COMPILATION COMPLETE. 1 WARNING(S), 4 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -