ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:463.41KB ,
资源ID:8416781      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8416781.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于DS1302的多功能数字时钟.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于DS1302的多功能数字时钟.docx

1、基于DS1302的多功能数字时钟HUBEI NORMAL UNIVERSITY综合课程设计(一)Integrated Curriculum Design(1)所在院系教育信息与技术学院专业名称信息工程班级1403题目基于DS1302的多功能数字时钟指导教师完成时间2015年 12 月28日 基于DS1302的多功能数字时钟设计1 设计目的(1)掌握单片机芯片STC89C51的基本功能和使用。(2)熟悉Proteus仿真软件的使用,了解各元件的功能及作用。(3)了解时钟芯片DS1302的基本知识,了解温度传感器DS18B20的基本使用。(4)提高数字电子电路的综合应用能力。(5)掌握Keil软件

2、的使用方法,以及如何创建文件和编写程序。(6)提高焊接能力以及实际问题分析能力。2 设计思路时间,对人们来说是非常宝贵的,准确的掌握时间和分配时间对人们来说至关重要。因此自从时钟发明的那刻起,就成为人类的好朋友。随着时间的流逝,科学技术的不断发展和提高,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好、更方便、更精确的显示时间,这就要求人们不断设计研发出新型的时钟。高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校。数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针进而

3、显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在单片机的应用系统中,时钟有两个方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时器/计数器来实现;二是用专门的时钟芯片实现。多功能数字时钟将万年历、时钟与温度计结合,设计和制作了一款具有推广价值的多功能数字时钟。3方案论证3.1单片机芯片的选择方案和论

4、证:方案一: 采用STC89C52芯片作为硬件核心。STC89C52内部具有8KB ROM 存储空间,512字节数据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C52可以通过串口下载。方案二:采用AT89S52。AT89S52片内具有8K字节程序存储空间,256字节的数据存储空间没有EEPROM存储空间,也与MCS-51系列单片机完全兼容,具有在线编程可擦除技术。两种单片机都完全能够满足设计需要,STC89C52相对ATS89C52价格便宜,且抗干扰能力强。考虑到成本因素,因此选用STC89C52。 3.2 显示模块选择方案和论证:方案一:采用点阵

5、式数码管显示。点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且也相对较高,所以不用此种作为显示。方案二:采用LED数码管动态扫描。LED数码管价格便宜,对于显示数字最合适,但功耗较大,且显示容量不够,所以也不用此种方案。方案三:采用LCD液晶显示屏。液晶显示屏的显示功能强大,可显示大量文字,显示多样,清晰可见,且价格适中,所以采用了LCD数码管作为显示。3.3 时钟芯片的选择方案和论证:方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不

6、采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA。 3.4 电路设计最终方案决定综上各方案所述,对此次作品的方案选定: 采用STC89C52单片机作为主控制系统;采用DS1302作为时钟芯片;采用1602 LCD液晶作为显示器件,扩展模块为DS18B20温度模块。4 设计过程4.1硬件设计电路以STC89C52单片机最小系统为控制核心,时钟电路由高精度低功耗的DS1302提供,采用三线接口与CPU进行同步通信,输入部分

7、采用四个独立式按键S1、S2、S3、S4。1602液晶显示部分,D0D7口与单片机P0口相连,温度模块主要由DS18B20温度传感器构成。具体框图如图1所示。LCD液晶显示键盘DS1302时钟芯片DS18B20温度采集STC89C52控制器图1 系统框图(1)单片机控制模块采用STC89C52芯片作为硬件核心。STC89C52内部具有8KB ROM 存储空间,512字节数据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C52可以通过串口下载,实现功能完全,性价比较高,更适合本设计。具体电路如图2所示。图2STC89C52是STC公司生产的一种低功耗、

8、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。内含8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持

9、2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。最小系统是指能进行正常工作的最简单电路。它包含五个电路部分:电源电路、时钟电路、复位电路、片内外程序存储器选择电路、输入/输出接口电路。其中电源电路、时钟电路、复位电路是 保证单片机系统能够正常工作的最基本的三部分电路,缺一不可。电源电路 芯片引脚VCC一般接上直流稳压电源+5V,引脚GND接电源+5V的负极,电源电压范围在45.5之间,可保证单片机系统能

10、正常工作。时钟电路 单片机引脚18和引脚19外接晶振及电容,STC89C 52芯片的工作频率可在233MHz范围之间选,单片机工作频率取决于晶振XT的频率,通常选用11.0592MHz晶振。两个小电容通常取值30pF,以保证振荡器电路的稳定性及快速性。复位电路 一般若在引脚RST上保持24个工作主频周期的高电平,单片机就可以完成复位,但为了保证系统可靠地复位,复位电路应使引脚RST保持10ms以上的高电平。如图复位电路带有上电自动复位功能,当电路上电时,由于C1电容两端电压值不能突变,电源+5V会通过电容向RST提供充电电流,因此在RST引脚上产生一高电平,使单片机进入复位状态。随着电容C1充

11、电,它两端电压上升使得RST电位下降,最终使单片机退出复位状态。正常运行时,可按复位按钮对单片机复位。图3 单片机控制模块(2)时钟电路采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA。图4 时钟电路(3)复位电路单片机小系统常采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。其结构如下图4所示。上电自动复位通过

12、电容C5充电来实现。手动按键复位是通过按键将电阻R5与VCC接通来实现。图5 复位电路(4)显示部分设计用液晶屏 LCD1602 分两行显示“ 年、月、日、周日、时、分、秒 ”,如图5所示。图6 1602显示模块(5)按键控制部分设计共4个独立按键:S1:功能键。用来选择要更改的项目(年、月、日、周日、时、分、秒)。S2:加数键。按1下则数值加1。S3:减数键。按1下则数值减1。S4:闹钟键。进入闹钟模式。下图为键盘电路图6所示。图7 键盘模块温度模块设计 图8 温度模块4.2系统软件程序设计(1)主程序:LCD1602初始化,闹铃响应,检测是否有按键按下,有按键按下则记录按下键的键值,并跳转

13、至功能转移程序;无按键按下,则返回键盘扫描程序继续检测。(2)LCD1602显示子程序:LCD1602初始化函数,LCD读写操作子程序,接受MCU的指令与数据,完成显示功能。(3)DS1302读写子程序:根据检测到的相应按键值对DS1302进行读写操作,完成年、月、日、星期、时、分、秒等数据的更改和传输。(4)键盘扫描子程序:将MCU的I/O口与按键相连,通过不断的检测该I/O口是否变为低电平,当检测到低电平时说明按键被按下,执行相应的指令。(5)温度检测子程序:接受温度传感器DS18B20的数据,4.2.2主程序模块图9 主程序流程图4.2.3按键子程序模块s1 图10 按键子程序流程图(以

14、S2为例)5电路仿真与结果分析5.1电路仿真图11 这是正常显示状态(未设定闹钟)图12 闹钟设置状态图13 闹铃设置成功5.2结果分析 由于是第一次做课程设计,同时也是第一次写这么综合的程序,所以在调试过程中遇到很多问题,一部分是关于DS1302与1602的硬件特点以及在硬件的基础之上驱动程序的调用,这里主要是网上找资料去学会调用与编写,主要是通过网上视频教学;另一部分是自己做的硬件存在很多误差。在仿真与实物图之间还是存在一定差距,需要细心的焊接和调试等操作。6设计体会通过本次课程设计,使我加深了对单片机的认识,并且熟悉了单片机系统的设计流程,收获丰硕。功能上基本达标:时钟与闹钟的显示,调时

15、间和闹钟功能以及闹钟鸣叫功能。时钟与闹钟显示功能,精确度完全可以满足日常生活显示时间的需要;调时间与闹钟功能,方便快捷。硬件设施基本合乎要求,软件设计可以配合硬件实现其功能。技术在不断进步,机械式时钟已经被淘汰,取而代之的是具有高度准确性和直观性且无机械装置,具有更长的使用寿命等优点的电子时钟。电子时钟更具人性化,更能提高人们的生活质量,更受人们欢迎。机械时代已经远去,电子时代已经到来。做为新时代的我们,更应该提高自身能力,适应新时代的发展。知识来自实践,多从生活中探寻所需要的。从这次的论文设计中,我真正的体会到,知识的重要性,特别是要理论联系实际,把我们所学的理论知识运用到实际生活当中,要用

16、知识改变一切。参考文献1程国钢、陈跃琴、崔荔蒙. 51单片机典型模块开发查询手册. 电子工业出版社.2012年5月第1 版。2郭天祥.51单片机C语言教程,电子工业出版社2009年12月第一版。3康华光.电子技术基础,高等教育出版社.第五版。附件完整电路部分程序:#include #include #define uchar unsigned char#define uint unsigned intsbit rs=P23; /寄存器选择sbit rw=P21; /读写信号线sbit lcden=P21; /led使能端sbit scl=P15; /时钟线sbit rst=P17; /复位线s

17、bit io=P16; /数据口sbit key_set_time=P30; /设置时间键sbit key_add=P31; /加键sbit key_minus=P32; /减键sbit key_set_alarm=P33; /设置闹钟键sbit bee=P24; /蜂鸣器接口sbit dq=P25; /ds18b20测温uchar getTimebuf8;/存放时间数据uchar time= : : ;/时间格式字符串uchar date=20 - - ;/日期格式字符串uchar weeklist=SunMonTueWedThuFriSat;/星期字符列表uchar week= ;/星期格

18、式字符串int count;/设定秒分时日月星期年的时候count的值分别为1235647int alarm;/是否进入闹钟设置界面 123分别代表开关 分 小时的设置int isOpen;/闹钟是否开启 默认不开启int fen,shi;/闹钟的分钟小时int isRing;/闹钟是否在响uchar isInit_1302;/是否初始化时钟完毕int num;int temperature;/温度int temp_flag;/温度正负标志void main() init_1602(); init_ds1302(); while(1) if(isOpen)/只有开启闹钟的时候才检测 beep();/不断检测闹钟 key_scan(); if(count=0&alarm=0)/没有设定时间 也没有在闹钟界面的时候时间才显示 display();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1