打印
[51单片机]

51单片机时钟DS1302+LCD1602

[复制链接]
461|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
larrychen|  楼主 | 2020-6-21 09:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

此部分内容已被设置为付费内容,您可以在支付 2 元 人民币后浏览本楼层全部付费内容点击购买

#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++);
        }

}          

DS1302 LCD1602.zip

1.85 KB

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝