DS1302输出时间,在lcd上显示

本文介绍了如何使用DS1302实时时钟芯片,通过C语言和C++编程,在单片机上读取时间,并将其结果显示在LCD显示器上。文中提供了完整的电路图、代码及运行效果展示。
摘要由CSDN通过智能技术生成

完整电路图:

完整代码: 

#include <reg51.h>
#include <intrins.h>			//包含_nop_( )空函数指令的头文件

#define uchar unsigned char
#define uint unsigned int
#define out P2
sbit RS=P3^0; 					
sbit RW=P3^1;				
sbit E=P3^2; 
sbit RST=P1^7 ;
sbit SCLK =P1^6;
sbit DSIO=P1^5;					

void lcd1602_initial(void);			//lcd1602初始化函数
void lcd1602_write_command(uchar com); 	//lcd1602写命令函数
void lcd1602_write_data(uchar dat);		//lcd1602写数据函数
void lcd1602_string(uchar ad ,uchar *s);//lcd1602写字符串
void delay(uint);						//延时函数
void Ds1302Write(uchar add,uchar dat);
uchar Ds1302Read(uchar add);
void Ds1302Readtime_data();
uchar bcd_decimal(uchar bcd);
void write_time();
void xinshi_time();

uchar code table1[]={"2021-01-24"};
uchar code table2[]={"23:59:50"};
uchar nian,zhou,yue,ri,shi,fen,miao;

//---DS1302写入和读取时分秒的地址命令---//
//---秒分时日月周年 最低位读写位;-------//
uchar code read_add[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d}; 
uchar code write_add[7]= {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};

//---DS1302时钟初始化2013年1月1日星期二12点00分00秒。---//
//---存储顺序是秒分时日月周年,存储格式是用BCD码---//
uchar code time_data[7]= {0x58, 0x40, 0x14, 0x29, 0x01, 0x01, 0x21};
uchar code     xingqi1[]={"MON"};
uchar code     xingqi2[]={"TUE"};
uchar code     xingqi3[]={"WED"};
uchar code     xingqi4[]={"THU"};
uchar code     xingqi5[]={"FRI"};
uchar code     xingqi6[]={"SAT"};
uchar code     xingqi7[]={"SUN"};	 

/**************************************************************
*函数名		:delay
*函数功能	:延时函数
*函数参数	:需要延时的毫秒数:uint j
*函数返回值	:无
****************************************************************/
void delay(uint j){	 //1ms延时子程序
	uchar i&#
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值