《课程设计实验报告基于单片机的数字时钟设计.doc》由会员分享,可在线阅读,更多相关《课程设计实验报告基于单片机的数字时钟设计.doc(18页珍藏版)》请在三一办公上搜索。
1、绪 论随着时代的进步和发展,单片机技术已经普及到生活、工作、科研等各个领域,已经成为一种比较成熟的技术。本文将介绍一种基于单片机控制的数字温度计和数字钟,本数字温度计属于多功能温度计,可以任意设置温度的上下限报警功能,当温度不在设定范围内时,可以报警;本数字钟可以同步显示时间日历,日期和时间都可通过按键校整。本系统采用的DS1302可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。本系统显示部分采用LCD液晶显示屏显示,工作方便,外形美观一、方案设计本项目拟设计基于单片机的数字时钟和数字温度计,并将时间和温度显示在液晶显示器上。本系统由主控模块、时钟模块、显示模块、测温模块共4个模块
2、组成。主控芯片使用89系列的AT89C52单片机。时钟芯片使用DS1302, DS1302做为计时芯片,可以做到及时准确。DS1302可以在很小电流的后备电源(2.55.5V电源,在2.5V时耗小于300nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。测温模块采用DS18B20,具有测温准确,测温范围宽,电路简单的优点。显示模块采用液晶显示屏LCD1602,LCD1602电路简单,功耗低,显示信息量大,显示质量高,显示界面美观、友好。1、主控制器的选择 ATmega16是AVR系列中的一个低电压,高性能CMOS 8位单片机,片内含8k bytes
3、的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准AVR指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的ATmega16单片机可为您提供许多较复杂系统控制应用场合。另外,在校期间所涉及到也主要是MCS-51系列单片机,对于其内部功能和指令系统较为熟悉,能在较为短的项目内完成项目的设计和验证。2、时钟功能的实现时钟功能的实现有两种方案:一是用软件实现,直接用单片机的定时器编程以实现时钟;二是用专门的时钟芯片实现时钟的记时,再把时间数据送入单片机,由单片机控制显示。比较两种方案,
4、用软件实现时钟固然可以,但是程序运行需占用大量的CPU资源,会影响记时的准确度。而用专用时钟芯片可以实现准确记时。顾采用专用时钟芯片DS1302来实现时钟功能。3、温度功能的实现可以采用热敏电阻来实现温度的测量,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测到的温度的精确度不能够得到保证。在本装置中,要实现精度为0.1摄氏度温度的车辆,采用热敏电阻不嫩够满足求,故考虑采用数字温度传感器DS18B20。DS18B20 测量温度,输出信号全数字化,便于单片机处理及控制,单总线的数据传输,省去传统的测温方法的很多外围电路,系统的结构可以做得较为紧凑。4、显示部分选
5、择 一般的数据输出可采用数码管,但是,采用七段LED数码管显示,虽然显示较为清楚,但由于本项目设计所要求输出的数据较多,如果采用数码管显示,则会用到多个数码管,将导致硬件电路复杂化,也会占用较多的线路板面积,也会给软件设计实现上带来困难,并且整个电路的功耗也会较大。顾考虑采用液晶显示器lcd1602作为数据的输出显示部件。该芯片可显示162个字符,可显示字符较多多。另外,l602芯片编程和电路设计比较简单,具有低功耗功能,能够满足设计要求。 5、时间调整部分选择 DS1302必须设定初始时间才能正常工作,顾本系统必须有初始时间输入电路。可以考虑通过PC机通过串口通讯将初始时间数据送入单片机内部
6、,但这给时间的调整带来一定不便,不能随时随地的调整时间。因此选择通过键盘来实现设定初始时间。二、总体设计按照系统的设计功能要求,初步确定系统由单片机主控单元、时钟模块、测温模块、显示模块、键盘接口模块共五个模块组成,框图如图1所示。主控器件AT89C52温度检测DS0820时钟DS1302LCD显示器1602键盘部分图1 系统框图三、硬件设计系统整体硬件电路包括:单片机主板电路,传感器数据采集电路,时钟芯片电路,温度和时间显示电路。 如图2,系统硬件电路主要有4部分组成,单片机主板电路中的按健复位电路是上电复位加手动复位方式,DS1302使用两个1.5伏外部电源为后备电 接到VCC1,主电源+
7、5伏接VCC2 ,RST接平p1.5,SLK接p1.7,I/ O接p1.6。DS18B20采用外部电源供电方式。用p0口驱动LCD1602液晶显示屏。 图2 系统整体硬件电路1、时钟电路设计采用DS1302作为计时芯片,主要为了提高计时精度,更重要的就是DS1302可以在很小的后备电源下继续计时,并可编程选择充电电流来对后备电源进行充电,可以保证后备电源基本不耗电。电路如图3所示。图3 DS1302时钟电路2、温度传感器设计DS18B20是美国DALLAS公司的新一代单总线数字温度传感器,其单总线是将地址线、数据线、控制线合三为一根信号线,单片机只需一根端口线就能与DS18B20串接和通讯。实
8、现了一信号线上进行双向数据传输。图4 DS18B20 电路3、液晶显示电路设计LCD1602液晶显示器属于工业字符型液晶,能够同时显示16x02即32个字符(2行16列)。LCD1602液晶模块内部的字符发生内存(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。LCD1602与单片机之间通过3根控制线和8位并行数据IO线实现交互,电路如图5所示。图5 LCD160
9、2液晶显示电路4、键盘接口电路按键有4个,分别实现为时间调整键、时间增加,时间减少、时间确认按键。四、软件设计本次设计用Keil编程软件进行软件设计。Keil软件是目前最流行的开发MCS-51 系列单片机软件,近年来各仿真机厂商纷纷宣布全面支持Keil。Keil提供了包括C 编译器、宏汇编、连接器、库管理和仿真调试器在内的完整开发方案,通过集成开发环境将这些部分组合在一起。Keil支持汇编语言和C语言的程序设计,易学易用1、系统流程图系统主程序首先对系统进行初始化,显示开机画面。由于单片机没有停止指令,所以可以设计系统程序不断地循环执行上述显示效果。系统流程图如图6所示。时钟芯片初始化Done
10、=0?是否进入液晶显示数据扫描各键功能是开始液晶初始化DS18B20初始化键值处理各标志位初始化Done=1?是否进入键值处理否是图6 系统流程图2、DS18B20芯片程序设计系统程序的设计主要包括C程序主函数、DS18B20复位函数、DS18B20写字节函数、DS18B20读字节函数、温度计算转换函数和显示函数等,系统主程序设计流程图如图10所示。 开始初始显示读取温度值、发温度转换命令读出温度值计算、处理,送显示模块图7 DS18B20芯片程序流程图3、键值处理程序流程图,如图8所示返回扫描各键数据更新位闪控制显示程序关闭时钟调节项目选择扫描各键数据更新位闪控制显示程序扫描各键数据更新位闪
11、控制显示程序扫描各键数据更新位闪控制显示程序扫描各键数据更新位闪控制显示程序扫描各键数据更新位闪控制显示程序秒分时星期月日年开始扫描各键数据更新位闪控制显示程序图8 键值处理程序流程图4、时钟程序的设计因为使用了时钟芯片DS1302,阳历程序只需要从DS1302各寄存器中读出年、周、月、日、小时、分、秒等数据,再处理既可。对其进行初始化,然后从DS1302中读出数据,再经过处理后,送给显示缓存单元。时钟程序流程图见图9所示。 开始初始化13021302开始振荡从1302中读出年、周、月、日、小时、分、秒读出的数据都为BCD码,送显示模块图9 时钟程序流程图5、液晶程序设计时钟需显示时间、温度。
12、以上两个模块都需将数值送显示模块。液晶的一般初始化过程:延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置void en_toggle()en=0;/_nop_();delay();en=1;delay();/ _nop_();en=0; /液晶延时五、仿真调试 1、软件介绍1.1概述Proteus ISIS是英国Labcenter公司开发的电路分析与实物
13、仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功
14、能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本章介绍Proteus ISIS软件的工作环境和一些基本操作。1.2工作界面图10 工作界面图1.3主窗口菜单 1.3.1. File (文件) (1) New (新建) 新建一个电路文件 (2) Open (打开) 打开一个已有电路文(3) Save (保存) 将电路图和全部参数保存在打开的电路文件中 (4) Save As
15、(另存为) 将电路图和全部参数另存在一个电路文件中 (5) Print (打印) 打印当前窗口显示的电路图 (6) Page Setup (页面设置) 设置打印页面 (7) Exit (退出) 退出Proteus ISIS 1.3.2. Edit (编辑) (1) Rotate (旋转) 旋转一个欲添加或选中的元件 (2) Mirror (镜像) 对一个欲添加或选中的元件镜像 (3) Cut (剪切) 将选中的元件、连线或块剪切入裁剪板 (4) Copy (复制) 将选中的元件、连线或块复制入裁剪板 (5) Paste (粘贴) 将裁切板中的内容粘贴到电路图中 (6) Delete (删除)
16、删除元件,连线或块 (7) Undelete (恢复) 恢复上一次删除的内容 (8) Select All (全选) 选中电路图中全部的连线和元件1.3.3. View (查看) (1) Redraw (重画) 重画电路 (2) Zoom In (放大) 放大电路到原来的两倍 (3) Zoom Out (缩小) 缩小电路到原来的12 (4) Full Screen (全屏) 全屏显示电路 (5) Default View (缺省) 恢复最初状态大小的电路显示 (6) Simulation Message (仿真信息) 显示隐藏分析进度信息显示窗口 (7) Common Toolbar (常用工
17、具栏) 显示隐藏一般操作工具条 (8) Operating Toolbar (操作工具栏) 显示隐藏电路操作工具条(9) Element Palette (元件栏) 显示隐藏电路元件工具箱 (10) Status Bar (状态信息条) 显示隐藏状态条1.3.4. Place (放置) (1) Wire (连线) 添加连线 (2) Element (元件) 添加元件 a. Lumped (集总元件) 添加各个集总参数元件 b. Microstrip (微带元件) 添加各个微带元件 c. S Parameter (S参数元件) 添加各个S参数元件 d. Device (有源器件) 添加各个三极管
18、、FET等元件 (3) Done (结束) 结束添加连线、元件1.3.5. Parameters (参数) (1) Unit (单位) 打开单位定义窗口 (2) Variable (变量) 打开变量定义窗口 (3) Substrate (基片) 打开基片参数定义窗口 (4) Frequency (频率) 打开频率分析范围定义窗口 (5) Output (输出) 打开输出变量定义窗口 (6) Opt/Yield Goal (优化/成品率目标) 打开优化/成品率目标定义窗口 (7) Misc (杂项) 打开其它参数定义窗口1.3.6. Simulate (仿真) (1) Analysis (分析)
19、 执行电路分析 (2) Optimization (优化) 执行电路优化 (3) Yield Analysis (成品率分析) 执行成品率分析 (4) Yield Optimization (成品率优化) 执行成品率优化 (5) Update Variables (更新参数) 更新优化变量值 (6) Stop (终止仿真) 强行终止仿真1.3.7. Result (结果) (1) Table (表格) 打开一个表格输出窗口 (2) Grid (直角坐标) 打开一个直角坐标输出窗口 (3) Smith (圆图) 打开一个Smith圆图输出窗口 (4) Histogram (直方图) 打开一个直方
20、图输出窗口 (5) Close All Charts (关闭所有结果显示) 关闭全部输出窗口 (6) Load Result (调出已存结果) 调出并显示输出文件 (7) Save Result (保存仿真结果) 将仿真结果保存到输出文件1.3.8. Tools (工具) (1) Input File Viewer (查看输入文件) 启动文本显示程序显示仿真输入文件 (2) Output File Viewer (查看输出文件) 启动文本显示程序显示仿真输出文件 (3) Options (选项) 更改设置1.3.9. Help (帮助) (1) Content (内容) 查看帮助内容 (2)
21、Elements (元件) 查看元件帮助 (3) About (关于) 查看软件版本信息1.4表格输出窗口(Table)菜单 1.4.1. File (文件) (1) Print (打印) 打印数据表 (2) Exit (退出) 关闭窗口 1.4.2. Option (选项) (1) Variable (变量) 选择输出变量 1.5方格输出窗口(Grid)菜单 1.5.1. File (文件) (1) Print (打印) 打印曲线 (2) Page setup (页面设置) 打印页面 (3) Exit (退出) 关闭窗口 1.5.2. Option (选项) (1) Variable (变量
22、) 选择输出变量 (2) Coord (坐标) 设置坐标1.6Smit圆图输出窗口(Smith)菜单 1.6.1. File (文件) (1) Print (打印) 打印曲线 (2) Page setup (页面设置) 打印页面 (3) Exit (退出) 关闭窗口 1.6.2. Option (选项) (1) Variable (变量) 选择输出变量 1.7直方图输出窗口(Histogram)菜单 1.7.1. File (文件) (1) Print (打印) 打印曲线(2) Page setup (页面设置) 打印页面 (3) Exit (退出) 关闭窗口 1.7.2. Option (选
23、项) (1) Variable (变量) 选择输出变量2、仿真调试与模块连接2.1显示模块的数据连接1602LCD的D0D7的八位数据线分别接单片机89C51的P0.0P0.7。RS复位端接P2.0,EN使能端接P2.2,读、写信号端接P2.1图11 显示模块的数据连接图2.2.时钟模块的数据连接设计中时钟模块,DS1302的X1、X2间接晶振起时钟振荡作用。复位端RST接89C51的P1.5,串行数据输入端SCLK接P1.6,数据双向输入、输出端IO接P1.7图12 时钟模块的数据连接2.3温度模块的数据连接在设计中,温度传感器DS18B20的数据端口DQ与单片机89C51的P3.0。单片机
24、读取数据送入显示模块进行温度显示。图13 温度模块及键盘接口模块连接图2.4整体仿真电路图仿真图如下图,图14图14 整体仿真图2.5结果分析 经过软件调试,电路板独立供电运行,发现整个系统能按预先设定的方式工作,液晶显示器能正确显示的时间和温度数据,其中温度最小分辨率为0.1摄氏度。六、总结本设计能够准确显示时间(显示格式为时时:分分:秒秒,24小时制),可随时进行时间调整,具有闹钟时间设置、闹钟开/关、止闹功能,能够对时钟所在的环境温度进行测量并显示。设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。基于单片机的数字时钟系统具有显示准确、直观、易于调整等特点,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。电子时代已经到来。做为新时代的我们,更应该提高自身能力,适应新时代的发展。知识来自实践,多去生活中探询所需要的。对于上述所提到的研究课题,我们应尽量考虑到人的因素,增强时钟的实用性和操作性,为使用者提供切实的方便,营造一种舒适的生活氛围。所以,在设计的时候,应该从多方面、多角度去考虑问题,而且应该进一步提高时钟的质量。