📄 ds1302clock.lst
字号:
562 *
563 * 返回值 :
564 * 作者 :
565 * 创建日期 :2006-12-19
566 * 全局变量 :
567 * 全局静态变量:
568 * 局部静态变量:
569 *----------------------------------------修改历史------------------------------------------
570 * 当前版本 : 修改人: 修改日期:
571 * 修改说明 :
572 ******************************************************************************************/
573 uchar ReadStatusLCM(void)
574 {
575 1 LCM_Data = 0xFF;
576 1 LCM_RS = 0;
577 1 LCM_RW = 1;
578 1 LCM_E = 0;
579 1 LCM_E = 0;
580 1 LCM_E = 1;
581 1 while (LCM_Data & Busy); //检测忙信号
582 1 return(LCM_Data);
583 1 }
584
585 /******************************************************************************************
586 * 函数名称 :LCMInit
587 * 功能描述 :LCM初始化
588 * 参数 : 参数名称: 输入/输出? 类型 描述
589 *
590 * 返回值 :
591 * 作者 :
592 * 创建日期 :2006-12-19
593 * 全局变量 :
594 * 全局静态变量:
595 * 局部静态变量:
596 *----------------------------------------修改历史------------------------------------------
597 * 当前版本 : 修改人: 修改日期:
598 * 修改说明 :
599 ******************************************************************************************/
600 void LCMInit(void)
601 {
602 1 LCM_Data = 0;
603 1 WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号
604 1 Delay5Ms();
605 1 WriteCommandLCM(0x38,0);
606 1 Delay5Ms();
607 1 WriteCommandLCM(0x38,0);
608 1 Delay5Ms();
609 1 WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号
610 1 WriteCommandLCM(0x08,1); //关闭显示
611 1 WriteCommandLCM(0x01,1); //显示清屏
612 1 WriteCommandLCM(0x06,1); // 显示光标移动设置
613 1 WriteCommandLCM(0x0C,1); // 显示开及光标设置
C51 COMPILER V8.01 DS1302CLOCK 08/16/2008 15:50:11 PAGE 11
614 1 }
615
616 /******************************************************************************************
617 * 函数名称 :DisplayOneChar
618 * 功能描述 :按指定位置显示一个字符
619 * 参数 : 参数名称: 输入/输出? 类型 描述
620 *
621 * 返回值 :
622 * 作者 :
623 * 创建日期 :2006-12-19
624 * 全局变量 :
625 * 全局静态变量:
626 * 局部静态变量:
627 *----------------------------------------修改历史------------------------------------------
628 * 当前版本 : 修改人: 修改日期:
629 * 修改说明 :
630 ******************************************************************************************/
631 void DisplayOneChar(uchar X, uchar Y, uchar DData)
632 {
633 1 Y &= 0x1;
634 1 X &= 0xF; //限制X不能大于15,Y不能大于1
635 1 if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;
636 1 X |= 0x80; //算出指令码
637 1 WriteCommandLCM(X, 0); //这里不检测忙信号,发送地址码
638 1 WriteDataLCM(DData);
639 1 }
640
641 /******************************************************************************************
642 * 函数名称 :DisplayListChar
643 * 功能描述 :按指定位置显示一串字符 ***原来的遇到空格0x20就不显示***
644 * 参数 : 参数名称: 输入/输出? 类型 描述
645 *
646 * 返回值 :
647 * 作者 :
648 * 创建日期 :2006-12-19
649 * 全局变量 :
650 * 全局静态变量:
651 * 局部静态变量:
652 *----------------------------------------修改历史------------------------------------------
653 * 当前版本 : 修改人: 修改日期:
654 * 修改说明 :
655 ******************************************************************************************/
656 void DisplayListChar(uchar X, uchar Y, uchar code *DData)
657 {
658 1 uchar ListLength,j;
659 1 ListLength = strlen(DData);
660 1 Y &= 0x1;
661 1 X &= 0xF; //限制X不能大于15,Y不能大于1
662 1 if (X <= 0xF) //X坐标应小于0xF
663 1 {
664 2 for(j=0;j<ListLength;j++)
665 2 {
666 3 DisplayOneChar(X, Y, DData[j]); //显示单个字符
667 3 X++;
668 3 }
669 2 }
670 1 }
671
672 /******************************************************************************************
673 * 函数名称 :
674 * 功能描述 :
675 * 参数 : 参数名称: 输入/输出? 类型 描述
C51 COMPILER V8.01 DS1302CLOCK 08/16/2008 15:50:11 PAGE 12
676 *
677 * 返回值 :
678 * 作者 :
679 * 创建日期 :2006-12-19
680 * 全局变量 :
681 * 全局静态变量:
682 * 局部静态变量:
683 *----------------------------------------修改历史------------------------------------------
684 * 当前版本 : 修改人: 修改日期:
685 * 修改说明 :
686 ******************************************************************************************/
687 void Delay5Ms(void)
688 {
689 1 uint TempCyc = 5552;
690 1 while(TempCyc--);
691 1 }
692 //400ms延时
693 /******************************************************************************************
694 * 函数名称 :
695 * 功能描述 :
696 * 参数 : 参数名称: 输入/输出? 类型 描述
697 *
698 * 返回值 :
699 * 作者 :
700 * 创建日期 :2006-12-19
701 * 全局变量 :
702 * 全局静态变量:
703 * 局部静态变量:
704 *----------------------------------------修改历史------------------------------------------
705 * 当前版本 : 修改人: 修改日期:
706 * 修改说明 :
707 ******************************************************************************************/
708 void Delay400Ms(void)
709 {
710 1 uchar TempCycA = 5;
711 1 uint TempCycB;
712 1 while(TempCycA--)
713 1 {
714 2 TempCycB=7269;
715 2 while(TempCycB--);
716 2 };
717 1 }
718
719 /******************************************************************************************
720 * 函数名称 :RTInputByte
721 * 功能描述 :
722 * 参数 : 参数名称: 输入/输出? 类型 描述
723 *
724 * 返回值 :
725 * 作者 :
726 * 创建日期 :2006-12-19
727 * 全局变量 :
728 * 全局静态变量:
729 * 局部静态变量:
730 *----------------------------------------修改历史------------------------------------------
731 * 当前版本 : 修改人: 修改日期:
732 * 修改说明 :
733 ******************************************************************************************/
734 void RTInputByte(uchar d)
735 {
736 1 uchar i;
737 1 ACC = d;
C51 COMPILER V8.01 DS1302CLOCK 08/16/2008 15:50:11 PAGE 13
738 1 for(i=8; i>0; i--)
739 1 {
740 2 T_IO = ACC0; /*相当于汇编中的 RRC */
741 2 T_CLK = 1;
742 2 T_CLK = 0;
743 2 ACC = ACC >> 1;
744 2 }
745 1 }
746 /******************************************************************************************
747 * 函数名称 :RTOutputByte
748 * 功能描述 :
749 * 参数 : 参数名称: 输入/输出? 类型 描述
750 *
751 * 返回值 :
752 * 作者 :
753 * 创建日期 :2006-12-19
754 * 全局变量 :
755 * 全局静态变量:
756 * 局部静态变量:
757 *----------------------------------------修改历史------------------------------------------
758 * 当前版本 : 修改人: 修改日期:
759 * 修改说明 :
760 ******************************************************************************************/
761 uchar RTOutputByte(void)
762 {
763 1 uchar i;
764 1 for(i=8; i>0; i--)
765 1 {
766 2 ACC = ACC >>1; /*相当于汇编中的 RRC */
767 2 ACC7 = T_IO;
768 2 T_CLK = 1;
769 2 T_CLK = 0;
770 2 }
771 1 return(ACC);
772 1 }
773 /******************************************************************************************
774 * 函数名称 :W1302
775 * 功能描述 :
776 * 参数 : 参数名称: 输入/输出? 类型 描述
777 *
778 * 返回值 :
779 * 作者 :
780 * 创建日期 :2006-12-19
781 * 全局变量 :
782 * 全局静态变量:
783 * 局部静态变量:
784 *----------------------------------------修改历史------------------------------------------
785 * 当前版本 : 修改人: 修改日期:
786 * 修改说明 :
787 ******************************************************************************************/
788 void W1302(uchar ucAddr, uchar ucDa)
789 {
790 1 T_RST = 0;
791 1 T_CLK = 0;
792 1 T_RST = 1;
793 1 RTInputByte(ucAddr); /* 地址,命令 */
794 1 RTInputByte(ucDa); /* 写1Byte数据*/
795 1 T_CLK = 1;
796 1 T_RST = 0;
797 1 }
798 /******************************************************************************************
799 * 函数名称 :R1302
C51 COMPILER V8.01 DS1302CLOCK 08/16/2008 15:50:11 PAGE 14
800 * 功能描述 :
801 * 参数 : 参数名称: 输入/输出? 类型 描述
802 *
803 * 返回值 :
804 * 作者 :
805 * 创建日期 :2006-12-19
806 * 全局变量 :
807 * 全局静态变量:
808 * 局部静态变量:
809 *----------------------------------------修改历史------------------------------------------
810 * 当前版本 : 修改人: 修改日期:
811 * 修改说明 :
812 ******************************************************************************************/
813 uchar R1302(uchar ucAddr)
814 {
815 1 uchar ucData;
816 1 T_RST = 0;
817 1 T_CLK = 0;
818 1 T_RST = 1;
819 1 RTInputByte(ucAddr); /* 地址,命令 */
820 1 ucData = RTOutputByte(); /* 读1Byte数据 */
821 1 T_CLK = 1;
822 1 T_RST = 0;
823 1 return(ucData);
824 1 }
825
826 /******************************************************************************************
827 * 函数名称 :Set1302
828 * 功能描述 :
829 * 参数 : 参数名称: 输入/输出? 类型 描述
830 *
831 * 返回值 :
832 * 作者 :
833 * 创建日期 :2006-12-19
834 * 全局变量 :
835 * 全局静态变量:
836 * 局部静态变量:
837 *----------------------------------------修改历史------------------------------------------
838 * 当前版本 : 修改人: 修改日期:
839 * 修改说明 :
840 ******************************************************************************************/
841 void Set1302(uchar *pClock)
842 {
843 1 uchar i;
844 1 uchar ucAddr = 0x80;
845 1 W1302(0x8e,0x00); /* 控制命令,WP=0,写操作?*/
846 1 for(i =7; i>0; i--)
847 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -