⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds1302.c

📁 DS1302的驱动程序
💻 C
字号:
/************************************************************************************************
	   实时时钟模块 时钟芯片型号:DS1302 
	   使用8位动态共阴极数码管动态显示当前时间,没有设定初始时间的功能,
	   显示有闪烁,延时函数有可能有问题,其他显示正常
	   //9.20修改,使用汇编函数精确延时,显示稳定
	   
*************************************************************************************************/


#include <at89x51.h>
#include<intrins.h>
#include <DS1302.h>
#define uchar unsigned char
#define uint unsigned int
/*********************************************************************/


 uchar ucCurtime[7];
 uchar buf[]={0,0,0,0,0,0,0,0};
SYSTEMTIME  time1;

sbit d1=P1^0;
sbit d2=P1^1;
sbit d3=P1^2;
sbit d4=P1^3;
sbit d5=P1^4;
sbit d6=P1^5;
sbit d7=P1^6;
sbit d8=P1^7;

//0--9 位码,0X00:清显示。
unsigned char code  dispcode[13]={
							
	0X3F,/*0*/
	0X06,/*1*/
	0X5B,/*2*/
	0X4F,/*3*/
	0X66,/*4*/
	0X6D,/*5*/
	0X7D,/*6*/
	0X07,/*7*/
	0X7F,/*8*/
	0X6F,/*9*/
	0X40,/*-*/
	0XBF,/*0.*/
	0X00,/*NULL*/	};
		

void delay1ms()
{
/*	unsigned int i,j;
	for(i=0;i<c;i++)
		for(j=0;j<100;j++);
unsigned int c	*/

	#pragma asm
      MOV  R4,#5
	  MOV  R6,#100
	  MOV  R7, #250
      DJNZ R7,$
	  DJNZ R6, $
	  DJNZ R4, $
	#pragma endasm	
} 

void main()
{
    while(1)
    {  DS1302_GetTime(&time1);

	   buf[7]=(time1.Second)%10;
       buf[6]=(time1.Second)/10;
       buf[4]=(time1.Minute)%10;
       buf[3]=(time1.Minute)/10;
       buf[1]=(time1.Hour)%10;
       buf[0]=(time1.Hour)/10;

		d1=0;
		P2=	dispcode[buf[0]];	 //显示时的十位数
		delay1ms();
		d1=1;

		d2=0;
		P2=	dispcode[buf[1]];	 //显示时的个位数
		delay1ms();
		d2=1;

		d3=0;
		P2=	dispcode[10];	 //显示“-”
		delay1ms();
		d3=1;

		d4=0;
		P2=	dispcode[buf[3]];	 
		delay1ms();
		d4=1;					   //分的十位数

		d5=0;
		P2=	dispcode[buf[4]];	 //显示分的个位数
		delay1ms();
		d5=1;

		d6=0;
		P2=	dispcode[10];	 //显示“-”
		delay1ms();
		d6=1;
		
		d7=0;
		P2=	dispcode[buf[6]];	 //显示时的个位数
		delay1ms();
		d7=1;

		d8=0;
		P2=	dispcode[buf[7]];	 //显示时的个位数
		delay1ms();
		d8=1;
			
    }			   
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -