
#include #define uchar unsigned char #define uint unsigned int sbit LCD1602_E=P3^6; sbit LCD1602_RW=P3^5; sbit LCD1602_RS=P3^4; sbit DSIO=P0^7; sbit RST=P0^5; sbit SCLK=P0^6; extern uchar TIME[7]; void Ds1302Write(uchar addr, uchar dat); uchar Ds1302Read(uchar addr); void Ds1302Init(); void Ds1302ReadTime(); v误差 0us void LcdWriteCom(uchar com); void LcdWriteData(uchar dat) void LcdInit(); void LcdDisplay(); uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x, 0x8b, 0x8d}; uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c}; uchar TIME[7] = {0, 0, 0x12, 0x01, 0x01, 0x02, 0x13}; void main() { } void Ds1302Write(uchar addr, uchar dat) { 先将SCLK置低电平。 然后将RST(CE)置高电平。 开始传送八位地址命令 数据从低位开始传送 数据在上升沿时,DS1302读取数据 写入8位数据 数据在上升沿时,DS1302读取数据 传送数据结束 } uchar Ds1302Read(uchar addr) { 先将SCLK置低电平。 然后将RST(CE)置高电平。 开始传送八位地址命令 数据从低位开始传送 数据在上升沿时,DS1302读取数据 下降沿时,放置数据 读取8位数据 从最低位开始接收 下降沿时,放置数据 以下为DS1302复位的稳定时间,必须的。 } void Ds1302ReadTime() { 读取7个字节的时钟信号:分秒时日月周年 } void Ds1302Init() { 禁止写保护,就是关闭写保护功能 写入7个字节的时钟信号:分秒时日月周年 打开写保护功能 } v误差 0us { } void LcdWriteCom(uchar com) 写入命令 { 使能 选择发送命令 选择写入 放入命令 等待数据稳定 写入时序 保持时间 } void LcdWriteData(uchar dat) 写入数据 { 使能清零 选择输入数据 选择写入 写入数据 写入时序 保持时间 } void LcdInit() 初始化子程序 { 将8位总线转为4位总线 在四位线下的初始化 开显示不显示光标 写一个指针加1 清屏 设置数据指针起点 } void LcdDisplay() { 时 分 秒 年 月 日 星期 }
