st7920serial.lst
来自「这是TOPWAY公司的LCD驱动程序」· LST 代码 · 共 1,211 行 · 第 1/5 页
LST
1,211 行
464 2 LCD_Write_string(3,2,wu);
465 2 break;
466 2 case 6:
467 2 LCD_Write_string(3,2,liu);
468 2 break;
469 2 case 7:
470 2 LCD_Write_string(3,2,ri);
471 2 break;
472 2 case 8:
473 2 LCD_Write_string(3,2,space_c);
474 2 break;//显示空格,为调整时间用
475 2 default:
476 2 break;
477 2 }
478 1 }
479
480 /******************************************************************************************
481 * 函数名称 :Delay
482 * 功能描述 :延时函数
483 * 参数 : 参数名称: 输入/输出? 类型 描述
484 *
485 * 返回值 :
486 * 作者 :
487 * 创建日期 :2006-12-19
488 * 全局变量 :
489 * 全局静态变量:
C51 COMPILER V8.02 ST7920SERIAL 07/24/2007 06:45:27 PAGE 9
490 * 局部静态变量:
491 *----------------------------------------修改历史------------------------------------------
492 * 当前版本 : 修改人: 修改日期:
493 * 修改说明 :
494 ******************************************************************************************/
495 void Delay(int num)
496 {
497 1 while(num--);
498 1 }
499
500 /******************************************************************************************
501 * 函数名称 :Init_DS18B20
502 * 功能描述 :初始化ds1820
503 * 参数 : 参数名称: 输入/输出? 类型 描述
504 *
505 * 返回值 :
506 * 作者 :
507 * 创建日期 :2006-12-19
508 * 全局变量 :
509 * 全局静态变量:
510 * 局部静态变量:
511 *----------------------------------------修改历史------------------------------------------
512 * 当前版本 : 修改人: 修改日期:
513 * 修改说明 :
514 ******************************************************************************************/
515 void Init_DS18B20(void)//初始化ds1820
516 {
517 1 unsigned char x=0;
518 1 DQ = 1; //DQ复位
519 1 Delay(8); //稍做延时
520 1 DQ = 0; //单片机将DQ拉低
521 1 Delay(80); //精确延时 大于 480us
522 1 DQ = 1; //拉高总线
523 1 Delay(14);
524 1 x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
525 1 Delay(20);
526 1 }
527
528 /******************************************************************************************
529 * 函数名称 :ReadOneChar
530 * 功能描述 :读一个字节
531 * 参数 : 参数名称: 输入/输出? 类型 描述
532 *
533 * 返回值 :
534 * 作者 :
535 * 创建日期 :2006-12-19
536 * 全局变量 :
537 * 全局静态变量:
538 * 局部静态变量:
539 *----------------------------------------修改历史------------------------------------------
540 * 当前版本 : 修改人: 修改日期:
541 * 修改说明 :
542 ******************************************************************************************/
543 unsigned char ReadOneChar(void)
544 {
545 1 unsigned char i=0;
546 1 unsigned char dat = 0;
547 1 for (i=8;i>0;i--)
548 1 {
549 2 DQ = 0; // 给脉冲信号
550 2 dat>>=1;
551 2 DQ = 1; // 给脉冲信号
C51 COMPILER V8.02 ST7920SERIAL 07/24/2007 06:45:27 PAGE 10
552 2 if(DQ)
553 2 dat|=0x80;
554 2 Delay(4);
555 2 }
556 1 return(dat);
557 1 }
558
559 /******************************************************************************************
560 * 函数名称 :WriteOneChar
561 * 功能描述 :写一个字节
562 * 参数 : 参数名称: 输入/输出? 类型 描述
563 *
564 * 返回值 :
565 * 作者 :
566 * 创建日期 :2006-12-19
567 * 全局变量 :
568 * 全局静态变量:
569 * 局部静态变量:
570 *----------------------------------------修改历史------------------------------------------
571 * 当前版本 : 修改人: 修改日期:
572 * 修改说明 :
573 ******************************************************************************************/
574 void WriteOneChar(unsigned char dat)
575 {
576 1 unsigned char i=0;
577 1 for (i=8; i>0; i--)
578 1 {
579 2 DQ = 0;
580 2 DQ = dat&0x01;
581 2 Delay(5);
582 2 DQ = 1;
583 2 dat>>=1;
584 2 }
585 1 }
586
587 /******************************************************************************************
588 * 函数名称 :ReadTemperature
589 * 功能描述 :读取温度
590 * 参数 : 参数名称: 输入/输出? 类型 描述
591 *
592 * 返回值 :
593 * 作者 :
594 * 创建日期 :2006-12-19
595 * 全局变量 :
596 * 全局静态变量:
597 * 局部静态变量:
598 *----------------------------------------修改历史------------------------------------------
599 * 当前版本 : 修改人: 修改日期:
600 * 修改说明 :
601 ******************************************************************************************/
602 unsigned int ReadTemperature(void)
603 {
604 1 unsigned char a=0;
605 1 unsigned char b=0;
606 1 unsigned int t=0;
607 1 float tt=0;
608 1 Init_DS18B20();
609 1 WriteOneChar(0xCC); // 跳过读序号列号的操作
610 1 WriteOneChar(0x44); // 启动温度转换
611 1 Init_DS18B20();
612 1 WriteOneChar(0xCC); //跳过读序号列号的操作
613 1 WriteOneChar(0xBE); //读取温度寄存器
C51 COMPILER V8.02 ST7920SERIAL 07/24/2007 06:45:27 PAGE 11
614 1 a=ReadOneChar(); //读低8位
615 1 b=ReadOneChar(); //读高8位
616 1 t=b;
617 1 t<<=8;
618 1 t=t|a;
619 1 tt=t*0.0625;
620 1 t= tt*10+0.5; //放大10倍输出并四舍五入
621 1 return(t);
622 1 }
623
624 /******************************************************************************************
625 * 函数名称 :clock_out
626 * 功能描述 :
627 * 参数 : 参数名称: 输入/输出? 类型 描述
628 *
629 * 返回值 :
630 * 作者 :
631 * 创建日期 :2006-12-19
632 * 全局变量 :
633 * 全局静态变量:
634 * 局部静态变量:
635 *----------------------------------------修改历史------------------------------------------
636 * 当前版本 : 修改人: 修改日期:
637 * 修改说明 :
638 ******************************************************************************************/
639 void clock_out(unsigned char dd)
640 {
641 1 ACC=dd;
642 1 clock_dat=a0; clock_clk=1; clock_clk=0;
643 1 clock_dat=a1; clock_clk=1; clock_clk=0;
644 1 clock_dat=a2; clock_clk=1; clock_clk=0;
645 1 clock_dat=a3; clock_clk=1; clock_clk=0;
646 1 clock_dat=a4; clock_clk=1; clock_clk=0;
647 1 clock_dat=a5; clock_clk=1; clock_clk=0;
648 1 clock_dat=a6; clock_clk=1; clock_clk=0;
649 1 clock_dat=a7; clock_clk=1; clock_clk=0;
650 1 }
651
652 /******************************************************************************************
653 * 函数名称 :clock_in
654 * 功能描述 :
655 * 参数 : 参数名称: 输入/输出? 类型 描述
656 *
657 * 返回值 :
658 * 作者 :
659 * 创建日期 :2006-12-19
660 * 全局变量 :
661 * 全局静态变量:
662 * 局部静态变量:
663 *----------------------------------------修改历史------------------------------------------
664 * 当前版本 : 修改人: 修改日期:
665 * 修改说明 :
666 ******************************************************************************************/
667 unsigned char clock_in(void)
668 {
669 1 clock_dat=1;
670 1 a0=clock_dat;
671 1 clock_clk=1; clock_clk=0; a1=clock_dat;
672 1 clock_clk=1; clock_clk=0; a2=clock_dat;
673 1 clock_clk=1; clock_clk=0; a3=clock_dat;
674 1 clock_clk=1; clock_clk=0; a4=clock_dat;
675 1 clock_clk=1; clock_clk=0; a5=clock_dat;
C51 COMPILER V8.02 ST7920SERIAL 07/24/2007 06:45:27 PAGE 12
676 1 clock_clk=1; clock_clk=0; a6=clock_dat;
677 1 clock_clk=1; clock_clk=0; a7=clock_dat;
678 1 return(ACC);
679 1 }
680
681 /******************************************************************************************
682 * 函数名称 :read_clock
683 * 功能描述 :
684 * 参数 : 参数名称: 输入/输出? 类型 描述
685 *
686 * 返回值 :
687 * 作者 :
688 * 创建日期 :2006-12-19
689 * 全局变量 :
690 * 全局静态变量:
691 * 局部静态变量:
692 *----------------------------------------修改历史------------------------------------------
693 * 当前版本 : 修改人: 修改日期:
694 * 修改说明 :
695 ******************************************************************************************/
696 unsigned char read_clock(unsigned char ord)
697 {
698 1 unsigned char dd=0;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?