单片机时间控制器c语言程序,基于AT89C52单片机实时时钟程序编写

#include‘reg52.h’ //包含单片机寄存器的头文件

#include‘intrins.h’ //包含_nop_()的头文件

sbit RS=P2^0; //LCD读写选择位

sbit RW=P2^1; //LCD读写选择位

918af7977797acd277f8b783e9c0bcdc.png

sbit E=P2^2; //LCD使能端

sbit BF=P0^7; //忙信号

sbit SCLK=P1^0; //1302时钟输出端

sbit DATA=P1^1; //1302数据端

sbit RST=P1^2; //1302复位端

unsigned char code digit[]=“0123456789”;

void delay1ms(unsigned int n)

{

unsigned char i;

while(n--)

for(i=0;i《115;i++);

}

void Write1302(unsigned char dat)

{

unsigned char i;

SCLK=0; //确保写数据前SCLK为低电平

_nop_();

_nop_(); //给硬件反应时间

for(i=0;i《8;i++){

DATA=dat&0x01; //取数据的最低位 低位在前,高位在后

_nop_();

_nop_(); //给硬件反应时间

SCLK=1; //正跳变写数据

_nop_();

_nop_(); //给硬件反应时间

SCLK=0; //重新拉低SCLK,形成脉冲

dat》》=1; //dat右移,为写入下位数据做准备

}

}

void WriteSet1302(unsigned char cmd, unsigned char dat)

{

RST=0; //禁止数据传输 。!!!这条很重要

SCLK=0; //确保写数据前SCLK为低电平

RST=1; //开启数据传输

_nop_();

_nop_();

Write1302(cmd);

Write1302(dat);

SCLK=1; // 将时钟电平置于高电平状态 ,处于已知状态

RST=0;

}

unsigned char Read1302()

{

unsigned char i,d

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值