[51单片机] 51单片机时钟DS1302+LCD1602

[复制链接]
718|0
 楼主| larrychen 发表于 2020-6-21 09:04 | 显示全部楼层 |阅读模式
[payamount]2.00[/payamount]
[pay]请在此处填写付费后可见内容[/pay]
#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int


/**LCD1602的接口定义**/
sbit LCDRS=P2^6;
sbit LCDWR=P2^5;
sbit LCDE=P2^7;
#define LCDPin P0

/**DS1302的接口定义**/
sbit SCLK=P3^6; //7脚 SCLK
sbit DSIO=P3^4;  //6脚 IO
sbit RST=P3^5; //5脚 CE


/**DS1302的数组定义**/
uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d};          //读秒,分,时,天,月,周,年,
uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};         //写秒,分,时,天,月,周,年,
uchar Init_time[7] = {0, 0, 0x12, 0x07, 0x05, 0x06, 0x16};  //初始显示秒,分,时,天,月,周,年
uchar  time[7];

/**LCD1602显示数组**/
uchar code table2[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};         //ASCII码0,1,2,3,4,5,6,7,8,9,


/**函数声明***/
void Ds1302Write(uchar addr, uchar dat);
uchar Ds1302Read(uchar addr);
void Ds1302Init();
void Ds1302ReadTime();
void delayms(uint y);
void LCDWriteData(uchar dat);
void LCDWriteCom(uchar com);
void LCDInit();
void display();
void display_init();


/*******************************************************************************
* 函 数 名       : delayms()
* 函数功能                 : 主函数
* 输    入       : u16 x
* 输    出             : 无
*******************************************************************************/
void delayms(uint y)
{
        uchar i;
        for(;y>0;y--)
        {
                for(i=0;i<110;i++);
        }

}          

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部