1、信息与电子工程学院课程设计报告课 程:设计题目:专 业:班 级:成 员:姓名学号成绩指导老师:答辩日期:目录一、课程设计概述31、课程设计背景32、课程设计内容3二、方案的选择及确定32.1设计思路32.2设计方案32.3 方案比较论证4三、系统硬件设计43.1总体硬件设计43.2 单片机主控制模块的设计53.3 时钟电路模块的设计53.4 温度采集模块设计63.5 功能按钮设计63.6 16*2 LCD1602液晶显示电路设计73.7总体电路图7四、系统软件设计84.1 系统模块的功能分划分84.2 总体程序流程框图94.3 时钟调整时间的流程图94.4 修改键“UP”的功能流程图104.5
2、温度转换流程图11五、系统调试过程13六、遇到的问题及解决方法/总结13七、参考文献13八、附录131、仪器与设备132、元器件清单143、原理图144、PCB图155、实物图156、操作说明书16一、课程设计概述1、课程设计背景随着计算机技术的和控制系统的广泛应用,以及设备向小型化、智能化发展,单片机作为高新技术之一,以其体积小、功能强、价格低、使用灵活等优势,显示出了很强的生命力。进入21世纪以来,开发推出单片机的公司很多,各种高性能单片机芯片市场异常活跃,新技术的不断采用,更加使单片机的种类、性能以及应用领域不断扩大和提高。因其功耗低、超高型、低成本、功能完整,在国内越来越受到用户的重视
3、和广泛使用。2、课程设计内容要求设计的单片机作息时间控制钟完成以下功能:实时显示当前温度;实时显示当前时间;实时显示当前日期;能修改当前时钟二、方案的选择及确定2.1设计思路用STC89C52RC处理产生内部时钟数据或者读取外部时钟数据和采集外部传感器的信息进行处理,并暂时寄存在其内部的储存器中,再通过单片机调用内部RAM的数据并送到LCD或者LED数码管上显示出来。2.2设计方案方案1:单片机一般的工作频率在12MHz左右,而且内部还有定时、计数器,可以产生精确的1S定时,由次可以用定时中断的方式产生精确的1S时间,秒位不断的加1,再设计分、时、星期、日、月、年之间的进制,使产生进位。本方案
4、只需要单片机最小系统加上显示电路,再设计简单的程序算法就可以实现。对于测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理。在显示电路上,采用数码管就可以将年月日星期时分秒和室内温度显示出来方案2:万年历时钟采用单片机控制DS1302实时时钟芯片,能达到走时准确且掉电不丢失数据的。DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES( 复位)2 I/O (数据线)3 SCLK(串行时钟)。温度计要灵敏反映室温的变化这样可采用单片机与数字式温度传感器DS18B20通讯,采集温度
5、数字信号进行处理。DS18B20通过一个单线接口发送或接受信息,因此在单片机与DS18B20之间仅需一条连接(加上地线)。在显示电路上,采用16*2的LCD显示。2.3 方案比较论证对于方案1,单片机虽然可以产生精确的秒信号,但是单片机在处理闰年上会比较麻烦,加之一旦单片机断电后,所有的时间都要重新调整。对于测温电路,采用热敏电阻的输出电压-温度特性,要加上A/D转换,温度传感信息才能被单片机所接受,这种设计需要用到A/D转换电路,感温电路比较麻烦。在显示电路上,采用LED数码的话要用到单片机的许多I/O口,甚至I/O不够用,还需要接上其它芯片大量扩展I/O口,这是一个弊处。对于方案2:单片机
6、不用去产生时钟的数据,时钟的数据由DS1302独立产生,并寄存在其内部的寄存器上,单片机可以通过三总线与它通讯,不仅可以对它进行读取实时时钟数据,还可以对它进行编程,设置它的工作模式。单片机只是处理从DS1302读出来的数据并送显示,大大减少了单片机的负担。而且DS1302可以通过后备电池继续工作,内部的时钟还在走,下次启动后不用去调整时钟,方便使用。基于同样的原理,DS18B20也是一个独立的传感器,只要单片机配置它的工作状态后它就可以独立工作,内部已经把模拟信号转换成数字信号,并把数字信号储存在其内部的寄存中。同样,单片机通过单总线与它通讯,可以处理912位的温度数字数据。在显示电路上,采
7、用16*2 LCD液晶显示器,能容纳年月日星期时分秒温度等信息的显示。LCD显示器只需占用11个I/O口就可以工作了,不用其它扩展芯片,总体上使电路简单化。三、系统硬件设计3.1总体硬件设计本方案由STC89C52单片机核心控制模块、液晶显示模块、温度检测模块、按键模块、时钟模块、晶振模块、响铃模块7个部分组成组成。硬件总框图如图3-1所示。STC89C52RC单片机按键模块液晶显示模块响铃模块时钟模块晶振模块温度检测模块图3-1. 硬件总框图3.2 单片机主控制模块的设计STC89C52RC单片机为40引脚双列直插芯片, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每
8、一条I/O线都能独立地作输出或输入。单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端. 如图3.2所示:图3.2 单片机最小系统3.3 时钟电路模块的设计图3.3是 DS1302与单片机的连接,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于V
9、cc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768KHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。中有在SCLK 为低电平时,才
10、能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端图3.3 时钟芯片与单片机的连接3.4 温度采集模块设计如图3.4所示,采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用2.4与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,GND接地。图3.4 温度传感器与单片机的连接3.5 功能按钮设计当按钮被按下时,该按钮对应的I/O口被拉为低电平,松开时按钮对应的I/O口由内部的上拉电阻将该I/O拉为高电平,如图3.5所示:图3.5 功能按键电路3.6 16*2 LCD1602液晶
11、显示电路设计根据其读写的时序模拟总线的方式与单片机进行数据的通讯,首先将数据从I/O口读入或送出,再选择R/W 和RS的电平进行不同的操作,在使能端E下降沿时触发数据的读入或送出。注意P0口要接上拉电阻,如图3.6所示:图3.6 LCD液晶显示屏与单片机的连接3.7总体电路图本设计的具在温度指示的数字万年历的总体电路图如图3.7所示:图3.7 总体电路图四、系统软件设计4.1 系统模块的功能分划分万年历程序设计总体上分为四个大模块,分别是DS1302时钟程序模块、DS18B20测温模块、LCD显示模块、键盘功能模块。aDS1302时钟程序模块包括设置DS1302初始时间、从DS1302 读时间
12、子程序、写1302一字节子程序、读1302一字节、关闭写保护、开启写保护、关闭时钟、延时子100MS程序。b. DS18B20测温模块包括DS18B20的初始化子程序、DS18B20数据处理子程序、读出温度值的子程序、DS18B20复位子程序、写DS18B20的1位字节子程序、读DS18B20的1个字节子程序。c. LCD显示模块包括LCD初始化子程序、写入控制命令的子程序、判断LCD显示器是否忙的子程序、向LCD中的DDRAM中写数据、查询LCD字符表、调整模式的显示子程序、正常模式LCD显示子程序。d. 键盘功能模块包括模式选择按键SET子程序、调整模式选择子程序、OUT键扫描子程序、UP
13、按键扫描子程序、DOWN按键扫描子程序。4.2 总体程序流程框图本设计中,实现功能的总体程序流程框图如下图4.1所示:图4.1 总体程序流程框图4.3 时钟调整时间的流程图时钟调整时间的流程图4.2所示:图4.2时钟调整时间的流程4.4 修改键“UP”的功能流程图修改键“UP”的功能流程图如图4.3所示:4.5温度转换流程图初始化DS18B20开始应答脉冲发起Skip Rom命令发起Convert命令延时1S等待温度转换完成初始化DS18B20应答脉冲发起Read Seratchpad命令读取第1、2字节即为温度数据NOYESYESNO单片机实现对温度传感器DS18B20的温度转换读取温度数值
14、流程图如下图4.4所示:图4.4温度转换读取温度数值流程图五、系统调试过程首先把各个模块的程序编好,再到Protues 7.1中画好并连接电路图进行程序仿真。各个部分的功能后再把它们综合到一个主程序中去,再把它用Keil uVision3软件把程序生成hex格式最后到Protues 7.1中仿真。在综合到一起的时候,出现了RAM分配错误的问题,因为原先是一个模块子程序在运行,RAM的分配只要不要跟子程序中的分配不冲突就可以了,但是在综合各个模块子程序的时候就会出现RAM分配冲突的问题。最好是在设计程序之前先把RAM的空间分配好。六、遇到的问题及解决方法/总结本次设计是我们遇到过的较大的设计,所
15、以遇到的问题也比较的多,尤其是以前没有接触过如此复杂的硬件电路以及软件编程,在软、硬件设计和调试中遇到了不少的困难,在同学的帮助才逐一克服了难题,学习到了不少的专业知识。在整个设计过程之前,我们已经在网上找了相关方面的资料,万事开始难,一开始不知道从哪里下手。后来慢慢学会分析系统,将系统模块化,各个模块可以在软件或者硬件上实现。在确保各个模块的硬件电路和与之相搭配的程序能够正常工作后在把它们组成一个系统。由于我们的理论知识水平有限,实践能力和设计经验不足,在设计的过程中难免还存在一些问题甚至是错误。在今后的日子里,我会进一步加强自己的动手能力,丰富自己的知识面,并在以后工作岗位中发挥我所长,为
16、社会作出贡献。七、参考文献1 唐亚平、李移伦.单片机原理实训与学习指导M,长沙:中南大学出版社,20062 刘军.单片机原理与接口技术M,华东理工大学出版社,20063 谢自美.电子线路设计、实验、测试M,武汉:华中理工大学出版社,2000八、附录1、仪器与设备仪器(设备)名称规格型号单位数量单片机开发板STC89C52块1USB转串口线STC89C52根1USBA-A线USB2.0根1笔记本电脑Asus台12、元器件清单器件型号数量单片机STC89C52RC1片1602液晶QC1602A1个蜂鸣器1个12M晶振TXC 11.0YBF2个按钮4个开关1个温度检测器DS18B201个时钟芯片DS
17、13021个电容10uf/30pf/22pf1个/2个/2个电阻10K/1K/20K5个/2个/1个滑动变阻器10K/2个/二极管2N54012个LED灯1个排阻9A103G1排杜邦导线16根直流电源1个PCB板1块数据传输线1根3、原理图4、PCB图5、实物图6、操作说明书6-1功能说明1. 具有时钟功能;2. 具有温度显示功能;3. 具有万年历功能;4. 具有实时调整时间功能。6-2按键说明本数字钟有三个按键(如下图)S6号键为“时间设置/确定”键;S10号键为“+”键;S14号键为“-”键;6-3时间设置说明1. 第一次按下“时间设置/确定”键,“秒”位开始闪烁,此时按“+”“-”键可调
18、节秒;2. 第二次按下“时间设置/确定”键,“分”位开始闪烁,此时按“+”“-”键可调节分;3. 第三次按下“时间设置/确定”键,“时”位开始闪烁,此时按“+”“-”键可调节时;4. 第四次按下“时间设置/确定”键,“星期”位开始闪烁,此时按“+”“-”键可调节星期;5. 第五次按下“时间设置/确定”键,“天”位开始闪烁,此时按“+”“-”键可调节天;6. 第六次按下“时间设置/确定”键,“月”位开始闪烁,此时按“+”“-”键可调节月;7. 第七次按下“时间设置/确定”键,“年”位开始闪烁,此时按“+”“-”键可调节年;8. 第八次按下“时间设置/确定”键,设置完毕,时钟开始正常走动。word文档 可自由编辑