1602、18b20、ds1302电子时钟
介绍了1602/1602/18b20以c语言为基础的编程方法。
目录
1 仿真实验环境............................................................................................................ 1
1.1采用 Proteus6_9_SP5实现单片机及外围器件的仿真 ................................. 1 1.2使用Keil uVision3编写本日历程序(C语言)........................................... 1 2 原理图........................................................................................................................ 2
2.1各部分功能实现:........................................................................................... 2 3 程序分析及代码........................................................................................................ 3
3.1程序分析:....................................................................................................... 3
3.1.1 程序的优点:........................................................................................ 3 3.1.2 程序的缺点:........................................................................................ 3 3.1.3 总结:.................................................................................................... 3 3.2源代码:........................................................................................................... 4
3.2.1 Calendar.c程序文件:........................................................................... 4 3.2.2 LM016L.h程序文件: .......................................................................... 6 3.2.3 DS1302.h程序文件: ........................................................................... 7 3.2.4 DS18B20.h程序文件: ....................................................................... 11 3.2.5 KeyScan.h程序文件: ........................................................................ 14 3.2.6 OPEN.h程序文件: ............................................................................ 17 3.2.7 MODE.h程序文件: ........................................................................... 18
4 效果图...................................................................................................................... 19
4.1 上电显示........................................................................................................ 19 4.2 正常显示........................................................................................................ 20 4.3功能模式(调时)......................................................................................... 20 4.4闹钟模式......................................................................................................... 21 4.5温度报警(小灯闪烁)................................................................................. 21
介绍了1602/1602/18b20以c语言为基础的编程方法。
1 仿真实验环境
1.1采用 Proteus6_9_SP5实现单片机及外围器件的仿真
如图:
1.2使用Keil uVision3编写本日历程序(C语言)
如图:
介绍了1602/1602/18b20以c语言为基础的编程方法。
2 原理图
2.1各部分功能实现:
1.以AT89C52作为控制核心,通过P0口连接LM016L液晶的并行数据输入/输出端进行显示数据以及命令的发送与接收。P2.0、P2.1和P2.2分别连接液晶的数据/命令选择端、读/写控制以及使能端。通过对这三个端口的操作,来实现液晶的正确显示。
2.DS18B20数字温度传感器以单总线的方式连接到P2.3口,通过正确的时序操作,与单片机进行双向通信,把温度值以串行数字形式发送给单片机。再正确显示在LCD上。
3.LED灯连接P2.4口,在相应的时间或温度触发下通过电平的高低变化闪烁。 4.单片机的P2.5、P2.6、P2.7分别连接DS1302时钟芯片的复位端、时钟信号以及I/O端。在相应时序信号的控制下,读出芯片中的内容,并显示在LCD上。 5.该日历的功能操作通过连接在P3.0~P3.3的四个按键实现,四个按键分别为:进入/退出模式键、功能选择键、时加/温度加一键、分加/温度减一键。 6.因为P0口没有上拉电阻,所以加了排阻。
介绍了1602/1602/18b20以c语言为基础的编程方法。
3 程序分析及代码
3.1程序分析:
3.1.1 程序的优点:
1.以模块化的形式把程序分为若干个独立部分。
2.在程序中使用了指针、数组、函数等结合的方法,简化了部分程序。 3.程序中首次使用了二维字符数组的相关操作。
3.1.2 程序的缺点:
1.程序总体上写的不够简练。
2.程序的部分功能操作麻烦,如调时或闹钟设置时对时、分的操作只能加。 3.程序的稳定性有待于提高。
4.过多的变量、标志位的定义降低了程序的可读性。
3.1.3 总结:
通过该日历程序的编写,自身发现了许多的问题,现总结如下: 1.在编写程序的过程中一定要做好程序的备份。
2.在编写某功能函数之前要想好流程再写,最好写出流程图。 3.一定要多写注释,不然连自己都读不懂自己的程序。
4. 在编写该日历程序过程中,首次出现了内存不够的情况,以后需引起注意。
介绍了1602/1602/18b20以c语言为基础的编程方法。
3.2源代码:
3.2.1 Calendar.c程序文件:
/******使用LCD1602、DS1302时钟芯片、DS18B20温度传感器完成该日历*******/ #include<reg52.h>
//以下的顺序不能任意放
#define uint unsigned int //宏定义 #define uchar unsigned char #include"LM016L.h" #include"DS1302.h" #include"DS18B20.h" #include"KeyScan.h" #include"MODE.h"
#include"OPEN.h"
////////以下为几个标志位///////////
// flag,select,alarm,temperature,limit
/*分别为模式标志位、功能选择标志位、闹钟、温度正负标志位以及温度上限值 (整型) 其中alarm有三种状态:0为禁止进入,1为允许进入,2为正在闹钟模式下 */ void open(); //上电显示 void KeyScan(); //键盘扫描 void SetTime_Mode(); //调时 void SetRing_Mode(); //闹钟设置
void SetTemp_Mode(); //温度上限设置模式
/******************************日历主函数************************************/ void main() { init(); //初始化LCD Set_RTC(l_tmpdate1);//初始化时钟芯片
open(); //上电显示函数 write_com(0x01); //清屏
while(1) { time_date(); //时间处理
KeyScan(); //键盘扫描
if(ring_time[1]==l_tmpdate[1]&&ring_time[2] …… 此处隐藏:4171字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [外语考试]管理学 第13章 沟通
- [外语考试]07、中高端客户销售流程--分类、筛选讲
- [外语考试]2015-2020年中国高筋饺子粉市场发展现
- [外语考试]“十三五”重点项目-汽车燃油表生产建
- [外语考试]雅培奶粉培乐系列适用年龄及特点
- [外语考试]九三学社入社申请人调查问卷
- [外语考试]等级薪酬体系职等职级表
- [外语考试]货物买卖合同纠纷起诉状(范本一)
- [外语考试]青海省实施消防法办法
- [外语考试]公交车语音自动报站系统的设计第3稿11
- [外语考试]logistic回归模型在ROC分析中的应用
- [外语考试]2017-2021年中国隔膜泵行业发展研究与
- [外语考试]神经内科下半年专科考试及答案
- [外语考试]园林景观设计规范标准
- [外语考试]2018八年级语文下册第一单元4合欢树习
- [外语考试]分布式发电及微网运行控制技术应用
- [外语考试]三人行历史学笔记:中世纪人文主义思想
- [外语考试]2010届高考复习5年高考3年联考精品历史
- [外语考试]挖掘机驾驶员安全生产责任书
- [外语考试]某211高校MBA硕士毕业论文开题报告(范
- 用三层交换机实现大中型企业VLAN方案
- 斯格配套系种猪饲养管理
- 涂层测厚仪厂家直销
- 研究生学校排行榜
- 鄱阳湖湿地景观格局变化及其驱动力分析
- 医学基础知识试题库
- 2010山西省高考历年语文试卷精选考试技
- 脉冲宽度法测量电容
- 谈高职院校ESP教师的角色调整问题
- 低压配电网电力线载波通信相关技术研究
- 余额宝和城市商业银行的转型研究
- 篮球行进间运球教案
- 气候突变的定义和检测方法
- 财经大学基坑开挖应急预案
- 高大支模架培训演示
- 一种改进的稳健自适应波束形成算法
- 2-3-鼎视通核心人员薪酬股权激励管理手
- 我国电阻焊设备和工艺的应用现状与发展
- MTK手机基本功能覆盖测试案例
- 七年级地理教学课件上册第四章第一节




