教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 外语考试 >

1602、18b20、ds1302电子时钟

来源:网络收集 时间:2026-06-01
导读: 介绍了1602/1602/18b20以c语言为基础的编程方法。 目录 1 仿真实验环境............................................................................................................ 1 1.1采用 Proteus6_9_SP5实现单片机及外围器件的仿真 .............

介绍了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字,全部文档内容请下载后查看。喜欢就下载吧 ……

1602、18b20、ds1302电子时钟.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/117606.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)