📄 com.lst
字号:
243 1 _NOP();
244 1 _NOP();
245 1 _NOP();
246 1 S_SDA;
247 1 _NOP();
248 1 _NOP();
249 1 _NOP();
250 1 S_SCL;
251 1 _NOP();
252 1 _NOP();
253 1 _NOP();
254 1 i=P4;
255 1 if(i==0xff)
256 1 ack=0;
257 1 else
258 1 ack=1;
259 1
260 1 delay();
261 1 C_SCL;
262 1
263 1 _NOP();
264 1 _NOP();
265 1 }
266 /************************************
267 停止总线函数
268 **************************************/
269 void send_ack(uchar a)
270 {
271 1 if(a==0)
272 1 {
273 2 C_SDA;
274 2 delay();
275 2 S_SCL;
276 2 delay();
277 2 C_SCL;
278 2 delay();
279 2 S_SDA;
280 2 }
281 1 else
282 1 {
283 2 S_SDA;
284 2 delay();
285 2 S_SCL;
286 2 delay();
287 2 C_SCL;
288 2 delay();
289 2 }
290 1 }
291 /************************************
292 接收一个字节函数
293 **************************************/
294 uchar RcvByte()
295 {
296 1 uchar retc;
297 1 uchar i,j;
298 1 retc=0;
299 1 // SDA_IN;
300 1 S_SDA;
301 1 for(i=0;i<8;i++)
C51 COMPILER V7.50 COM 10/03/2007 21:56:30 PAGE 6
302 1 {
303 2 _nop_();
304 2 C_SCL;
305 2 delay();
306 2 S_SCL;
307 2 delay();
308 2 retc=retc<<1;
309 2 // SDA_IN;
310 2 // if(READ_SDA==SDA)//read p4in
311 2 j=P4;
312 2 if(P4&SDA==SDA)
313 2 retc+=1;
314 2 delay();
315 2 C_SCL;
316 2 delay();
317 2 }
318 1 return(retc);
319 1 }
320 /************************************
321 接收一个字节函数
322 **************************************/
323 uchar ISendByte(uchar sla,uchar c)
324 {
325 1 start();
326 1 SendByte(sla);
327 1 if(ack==0)
328 1 return(0);
329 1 SendByte(c);
330 1 if(ack==0)
331 1 return(0);
332 1 stop();
333 1 return(1);
334 1 }
335 /************************************
336 发送一个数据串函数
337 **************************************/
338 uchar ISendstr(uchar sla,uchar suba,uchar *s,uchar no)
339 {
340 1 uchar i;
341 1 start();
342 1 SendByte(sla);
343 1 if(ack==0)
344 1 return(0);
345 1 SendByte(suba);
346 1 if(ack==0)
347 1 return(0);
348 1 for(i=0;i<no;i++)
349 1 {
350 2 SendByte(*s);
351 2 if(ack==0)
352 2 return(0);
353 2 s++;
354 2 suba++;
355 2 }
356 1 stop();
357 1 return(1);
358 1 }
359 /************************************
360 接收多个数据串函数
361 **************************************/
362 uchar IRcvbyte(uchar sla,uchar *c)
363 {
C51 COMPILER V7.50 COM 10/03/2007 21:56:30 PAGE 7
364 1 start();
365 1 SendByte(sla+1);
366 1 if(ack==0)
367 1 {
368 2 return(0);
369 2 }
370 1
371 1 *c=RcvByte();
372 1 send_ack(1);
373 1 stop();
374 1 return(1);
375 1 }
376 //check
377 uchar IRcvStr(uchar sla,uchar suba,uchar *s,uchar no)
378 {
379 1 uchar i;
380 1 start();
381 1 SendByte(sla);
382 1 if(ack==0)
383 1 return(0);
384 1 SendByte(suba);
385 1 if(ack==0)
386 1 return(0);
387 1 start();
388 1 SendByte(sla+1);
389 1 if(ack==0)
390 1 return(0);
391 1 for(i=0;i<no-1;i++)
392 1 {
393 2 *s=RcvByte();
394 2 send_ack(0);
395 2 s++;
396 2 }
397 1 *s=RcvByte();
398 1 send_ack(1);
399 1 stop();
400 1 return(1);
401 1 }
402
403
404
405 /*******************************************************************
406 * moli-1 *
407 * Ver 0.0 *
408 * by ren jia fu *
409 * 2007.9.8 *
410 *********************************************************************/
411 uchar rom_rec[7];
412 main()
413 {
414 1
415 1
416 1 /***********************************************
417 1 初始化系统
418 1 *************************************************/
419 1
420 1
421 1 WDTCN = 0xde; // disable watchdog timer
422 1 WDTCN = 0xad;
423 1
424 1 SYSCLK_Init (); // initialize oscillator
425 1 PORT_Init (); // initialize crossbar and GPIO
C51 COMPILER V7.50 COM 10/03/2007 21:56:30 PAGE 8
426 1 //*******************-----------------------------
427 1
428 1 //******************-------------------------------
429 1 UART0_Init (); // initialize UART0
430 1
431 1 DAC_init(); // initialize DAC0 DAC1
432 1
433 1 /***********************************************
434 1 测试DAC0 DAC1
435 1 *************************************************/
436 1 chii=1023;
437 1 OUTDAC0();
438 1 chii=0;
439 1 DAC1=chii;
440 1
441 1
442 1 /***********************************************
443 1 主程序
444 1 *************************************************/
445 1
446 1 P2=0x00;
447 1 P2=0x01;
448 1
449 1 for(ii=0;ii<1024;ii++)
450 1 {
451 2 f=0.0061357*ii;
452 2 f=32767*sin(f);
453 2 chii=f;
454 2 BB[ii]=chii;
455 2 //BB[ii]=ii;
456 2 }
457 1
458 1 DAC8541();
459 1 /*
460 1
461 1 for(ii=0;ii<1024;ii++)
462 1 {
463 1 DAC0=BB[ii];
464 1 DAC1=DAC0;
465 1 bufer[0]=ii/256;
466 1 bufer[1]=ii-256*bufer[0];
467 1
468 1 P6=bufer[0];
469 1 P7=bufer[1];
470 1
471 1 }
472 1 */
473 1 begin1:
474 1 DAC712();
475 1
476 1 goto begin1;
477 1
478 1 }
479
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 807 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 2050 ----
PDATA SIZE = ---- ----
DATA SIZE = 40 15
C51 COMPILER V7.50 COM 10/03/2007 21:56:30 PAGE 9
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -