DS1302时钟芯片与液晶1602的程序
更新时间:2023-05-11 21:30:01 阅读量: 实用文档 文档下载
基于c51的数字时钟例程
DS1302测试程序
晶振:11.0592MHZ
/*********************************包含头文件********************************/ #include "reg51.h"
#include <intrins.h>
/*********************************端口定义**********************************/ sbit DS1302_CLK = P1^0;
sbit DS1302_IO = P1^1;
sbit DS1302_RST = P1^2;
/******************************定义全局变量*********************************/ unsigned char second,minute,hour,week,day,month,year; //秒、分、时、星期、日、月、年
unsigned char time[]={0x06,0x03,0x14,0x03,0x12,0x30,0x00}; //初始时间数组
/**************************************************************************** 函数功能:数码管扫描延时子程序
入口参数:
出口参数:
****************************************************************************/ void delay1(void)
{
int k;
for(k=0;k<400;k++);
}
/***************************************************************************** 函数功能:向DS1302送一字节数据子程序
入口参数:
出口参数:
*****************************************************************************/ void InputByte(unsigned char byte1)
{
char i;
for(i=8;i>0;i--)
{
DS1302_IO=(bit)(byte1&0x01);
DS1302_CLK=1;
_nop_();
DS1302_CLK=0;
基于c51的数字时钟例程
byte1>>=1;
}
return;
}
/***************************************************************************** 函数功能:读DS1302一个字节子程序
入口参数:
出口参数:
*****************************************************************************/ unsigned char outputbyte(void)
{
unsigned char i;
unsigned ucdat=0;
for(i=8;i>0;i--)
{
DS1302_IO=1;
ucdat>>=1;
if(DS1302_IO)ucdat|=0x80;
DS1302_CLK=1;
_nop_();
DS1302_CLK=0;
}
return(ucdat);
}
/***************************************************************************** 函数功能:向DS1302某地址写一字节数据子程序
入口参数:addr,TDat
出口参数:
*****************************************************************************/ void write_ds1302(unsigned char addr,unsigned char TDat)
{
DS1302_RST=0;
_nop_();
DS1302_CLK=0;
_nop_();
DS1302_RST=1;
InputByte(addr);
_nop_();
InputByte(TDat);
DS1302_CLK=1;
_nop_();
DS1302_RST=0;
基于c51的数字时钟例程
}
/***************************************************************************** 函数功能:读DS1302地址子程序
入口参数:add
出口参数:timedata
*****************************************************************************/ unsigned char read_ds1302(unsigned char addr)
{
unsigned char timedata;
DS1302_RST=0;
_nop_();
DS1302_CLK=0;
_nop_();
DS1302_RST=1;
InputByte(addr);
timedata=OutputByte();
DS1302_CLK=1;
_nop_();
DS1302_RST=0;
return(timedata);
}
/***************************************************************************** 函数功能:初始化DS1302子程序
入口参数:time[](全局变量)
出口参数:
*****************************************************************************/ void initial_ds1302()
{
write_ds1302(0x8e,0x00); //写保护寄存器,在对时钟或RAM写前WP一定要为0
write_ds1302(0x8c,time[0]); //年
write_ds1302(0x88,time[1]); //月
write_ds1302(0x86,time[2]); //日
write_ds1302(0x8A,time[3]); //星期
write_ds1302(0x84,time[4]); //时
write_ds1302(0x82,time[5]); //分
write_ds1302(0x80,time[6]); //秒
write_ds1302(0x8e,0x80); //写保护寄存器
}
/***************************************************************************** 函数功能:读DS1302时间子程序
基于c51的数字时钟例程
入口参数:
出口参数:全局变量(second,minute,hour,week,day,month,year)
*****************************************************************************/ void read_time()
{
second=read_ds1302(0x81);
minute=read_ds1302(0x83);
hour=read_ds1302(0x85);
week=read_ds1302(0x8B);
day=read_ds1302(0x87);
month=read_ds1302(0x89);
year=read_ds1302(0x8d);
}
void write_com(uchar com)
{
P0=com;
rs=0;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;
}
//液晶读写程序//
void write_date(uchar date)
{
P0=date;
rs=1;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;
}
void init()
{
dula=0;
wela=0;
write_com(0x38); //秒寄存器 //分 //时 //星期 //日 //月 //年
基于c51的数字时钟例程
delay(20);
write_com(0x0f);
delay(20);
write_com(0x06);
delay(20);
write_com(0x01);
delay(20);
}
//液晶显示时间程序//
void time_display()
{
void write_com(0x80);
void write_date(year);
void write_com(0x80+5);
void write_date(month);
void write_com(0x80+8);
void write_date(day);
void write_com(0x80+11);
void write_date(week);
}
/***************************************************************************** 函数功能:主程序
入口参数:
出口参数:
*****************************************************************************/ void main(void)
{
initial_ds1302(); //初始化DS1302
while(1)
{
read_time(); //读取时间
time_display(); //显示时间
}
}
正在阅读:
DS1302时钟芯片与液晶1602的程序05-11
采购合同-采购合同范本08-01
贵州白酒行业检测分析仪 专业气相色谱仪01-01
冰机岗位考试题08-31
高校教师廉洁从教心得03-06
毛概的教案,超完整04-05
马年给情侣的经典新年贺词12-13
一年级学生期末评语优秀10篇03-22
大学英语II第2次作业04-01
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 时钟
- 芯片
- 液晶
- 程序
- DS1302
- 1602
- 化学选修1试题_Microsoft_Word_文档
- 基于IPV6的校园网构建
- 2011年地理中考模拟试题(二)
- 非法集资排查方案
- 2010年湖南高考文综B卷试题答案
- 浅析环境因素对植物生长影响
- 葡萄酒灌装生产线项目可行性研究报告编写格式及参考(模板word)
- 建筑学专业阅读参考书目
- 大河网行业联盟十万有奖征集2012首届天下豫商行业电子商务峰会策划方案
- 初二物理《物态变化》练习
- 初中古诗词名言名句
- 中西方餐桌礼仪的文献综述
- 胆结石最好治疗方法
- 2012虹口区初三英语一模
- 热统新教案第3次课
- 小区物业绿化养护管理
- 九个GRE复习计划(已排版)
- 2012届高中语文 2.5.1《离骚(节选)》同步达标测试 苏教版必修3
- 新标准大学英语_视听说教程3原文及翻译讲解
- 2006年监理工程师《建设工程质量、投资、进度控制》真题及答案