




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2燕京理工学院课程设计(论文) 第 页xxxx学院课程设计报告题 目基于单片机的万年历的设计专 业通信工程班 级xxx学 号xxx姓 名xxx指导教师xxx信息科学与技术学院二一三年九月 至 二一三年十月燕京理工学院课程设计 第 IV 页课程设计任务书学生姓名xxx学生学号xxx学生专业通信工程学生班级xxx发题日期 2013年 9月 3 日完成日期 2013年 10 月1 日课程名称单片机综合课程设计指导教师xxx设计题目基于单片机的万年历的设计课程设计(实训)主要目的: 1. 通过查阅有关资料用AT89C51单片机设计一个万年历; 2. 能够通过按键进行日期、时、分、秒的调整;3. 可以实现实时温度更新显示;4. 能够显示日期、时间、温度及星期;5. 进一步熟悉和掌握单片机的结构及工作原理。课程设计(实训)任务要求:(包括原始数据、技术参数、设计条件、设计要求等)1提出课题的初步设想和研究目的;2. 收集、整理与课程设计有关领域的信息资料;3. 完成本课程设计电路原理图设计;4. 完成本课程设计程序流程图和控制程序设计;完成软件和硬件系统的调试,功能指标达到设计要求;5. 根据课程设计内容进行设计、编程、仿真运行,形成符合学校规定的课程设计书面文档。课程设计(实训)主要任务:1. 系统的仿真原理图和源代码;2. 课程设计报告课程设计(实训)进度安排:(共4周)序号内容安排时间查相关的资料,熟悉单片机开发环境;第一周在教师指导下完成系统方案和电路设计;第二周完成程序的调试,下载、调试,系统的优化;第三周完成课程设计说明书的纂写和修改;第四周课程设计(实训)参考文献:1 王新颖单片机原理及应用北京大学出版社 20082 陈忠平 单片机基础与最小系统实践.北京航空航天大学出版社3 窦振中 单片机外围器件实用手册存储器分册.北京航空航天大学出版社4 沈庆阳, 郭庭吉 8051单片机实践与应用.清华大学出版社5 陈明荧. 8051单片机课程设计实训教程M. 北京: 清华大学出版社6 何立民. 单片机高级教程M. 北京: 北京航空航天大学出版社, 2003.指导教师签字系主任审核签字注:1、发题日期,完成日期根据实际情况填写(一般不超过进度安排)。2、页面不够可附加页摘 要随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。为了在观测时间的同时,能够了解其它与人类关系相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能与一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景,该电子万年历主要采用AT89C51单片机作为主控核心,由DS1302时钟芯片提供时钟、DS18B20温度传感芯片提供温度数据、LCD液晶显示屏显示。AT89C51单片机是由Atmel公司推出的,功耗小,电压可选用46V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;DS18B20温度芯片是一种测量精度高的数字温度传感器,具有只需要一个数据电缆传输数据,电路连接简单的特点;数字显示是采用的LCD液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。此外,该电子万年历还具有时间校准等功能。关键词:时钟电路;时钟芯片DS1302;DS18B20温度传感芯片;LCD液晶显示;单片机AT89C51;目 录摘 要III目 录IV第1章 绪论1第2章 功能要求2第3章 方案论证与设计33.1 控制部分的方案选择33.2 测温部分的方案选择33.3 显示部分的方案选择3第4章 系统硬件电路设计54.1 主控器 AT89C5154.2 时钟电路 DS130254.2.1. DS1302的性能特性54.2.2 DS1302数据操作原理64.3 测温电路的设计84.3.1 温度传感器工作原理84.5 键盘接口的设计12第5章 系统程序的设计135.1 阳历程序设计135.2 时间调整程序设计135.3 温度程序设计155.3.1 主程序155.3.2 读出温度子程序155.3.3 温度转换命令子程序155.3.4 计算温度子程序165.3.5显示数据刷新子程序16第章 调试及性能分析176.1 调试步骤176.2 性能分析17结论18参考文献19附录20燕京理工学院课程设计 第 40 页第1章 绪论随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步本设计为软件,硬件相结合的一组设计。在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。基本的要了解一些主要器件的基本功能和作用。除了采用集成化的时钟芯片外,还有采用MCU的方案,利用AT89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制LCD液晶屏输出,分别用来显示年、月、日、使、分、秒、星期、温度,其最大特点是:硬件电路简单,方案方便易于实现,软件设计独特,可靠。AT89C51是由ATMEL公司推出的一种小型单片机。95年出现在中国市场。其主要特点为采用Flash存储器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受。本文介绍了基于AT89C51单片机设计的电子万年历。首先我们在绪论中简单介绍了单片机的发展与其在中低端领域中的优势以及课题的开发意义;接着介绍了AT89C51单片机的硬件结构和本课程设计所要外扩的LCD显示的方法,并在此基础上实现了万年历基本电路的设计;然后使用C语言进行万年历程序的设计,程序采用模块化结构,使得逻辑关系简单明了,维护方便。第2章 功能要求1. 万年历能用数码管显示阳历年、月、日、星期、小时、分、秒并设置指定时间的闹铃。2. 数字式温度计要求测温范围-50100C, LCD数码管直读显示。 第3章 方案论证与设计3.1 控制部分的方案选择1. 用可编程逻辑器件设计。可采用ALTERA公司的FLEX10K系列PLD器件。设计起来结构清晰,各个模块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。但是考虑到本设计的特点,EDA在功能扩展上比较受局限,而且EDA占用的资源也相对多一些。从成本上来讲,用可编程逻辑器件来设计也没有什么优势。 2. 用凌阳16位单片机设计。凌阳16位单片机有丰富的中断源和时基,方便本实验的设计。它的准确度相当高,并且C语言和汇编兼容的编程环境也很方便来实现一些递归调用。I/O口功能也比较强大,方便使用。用凌阳16位单片机做控制器最有特色的就是它的可编程音频处理,可完成语音的录制播放和识别。这些都方便对设计进行扩展,使设计更加完善。成本也相对低一些。但是,在控制与显示的结合上有些复杂,显示模组资源相对有限,而且单片机的稳定性不是很高。3. 主控芯片使用51系列AT89C52单片机,时钟芯片用美国DALLAS公司推出的一种高性能、低功耗、带RAM的时钟DS1302。采用DS1302作为主要计时芯片,可以做到计时准确。更重要的是,DS1302可以在很小电流的后备电源(2.55V电源,在2.5V时耗电小于300nA)下继续计时,停电后时钟无需重新调整,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电,还可自设闹铃,阳历、星期与年月日自动对应。本系统采用了此方案。3.2 测温部分的方案选择1.在日常生活及工农业生产中经常要乃至温度的检测及控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。2.与前面相比,采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55125,最大分辨率可达0.0625。DS18B20可以直接读出被测温度值,而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。3.3 显示部分的方案选择1. 液晶显示方式。液晶显示效果出众,可以运用菜单项来方便操作,但是在显示时,特别是使用秒表功能时扫描速度跟不上,屏幕会有明显的闪烁。而且由于61板的存储空间有限,液晶显示就不能与语音播抱程序同时实现。这些大大影响了电子万年历的性能。2. 相比液晶显示,8段数码管虽然操作比液晶显示略显繁琐,但可视范围十分宽,而且经济实惠,也不需要复杂的驱动程序。所以最后选择LCD数码管显示方案。综上所述,按照系统设计功能的要求,确定硬件系统由主控制器、时钟模块、测温电路、显示模块、键盘接口共5个模块组成,总体系统构成框图如图3.1所示。AT89C51主控制器键盘扫描电路DS1302时钟模块数码显示电路DS18B20温度探测图3-1 电子万年历系统构成框图第4章 系统硬件电路设计电子万年历电路原理图见附件一,系统由主控制器AT89C51、时钟芯片DS1302、温度传感器DS18B20传感器、显示电路及键盘扫描电路组成。4.1 主控器 AT89C51ATMEL公司生产的AT89C52单片机采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flsah程序存储器。它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。主要性能特点有: 8KB Flash ROM,可以檫写1000次以上,数据保存10年。 256字节内部RAM。 电源控制模式 时钟可停止和恢复; 空闲模式; 掉电模式。 6个中断源。4个中断优先级。 4个8位I/O口。 全双工增强型UART。 3个16位定时/计数器,T0、T1(标准80C51)和增加的T2(捕获和比较)。 全静态工作方式:024MHz。4.2 时钟电路 DS13024.2.1. DS1302的性能特性实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数;用于高速数据暂存的318位RAM;最少引脚的串行I/O;2.55.5V电压工作范围;2.5V时耗电小于300nA;用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;简单的3线接口;可选的慢速充电(至Vcc1)的能力。DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月和月末的日期自动调整,还包括闰年校正的功能。时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302有主电源/后备电源双电源引脚:Vcc1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;Vcc2在双电源系统中提供主电源,在这种运用方式中,Vcc1连接到备份电,以便在没有主电源的情况下能保存时间信息以及数据。DS1302由Vcc1或Vcc2中较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电;当Vcc2小于Vcc时, DS13026由Vcc1供电。4.2.2 DS1302数据操作原理DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。无论是读周期还是写周期,开始8位指定40个寄存器中哪个将被访问到。在开始8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作是写入时写入数据。时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248字节数。如果在传送过程中置RST脚为低电平,则会终止本次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc大于等于2.5V之前,RST脚必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。DS1302的引脚及内部结构图如图4.1所示,表4.1为各引脚的功能。DS1302的控制字如图4.2所示。控制字节的最高位(位7)必须是逻辑1;如果它为0,则不能把数据写入到DS1302中。位6如果为0,则表示存取日历时钟数据;为1表示存取RAM数据。位51(A4A0)指示操作单元的地址。最低有效位(位0)如为0,表示要进行写操作;为1表示进行读操作。控制字节总是从最低位开始输入/输出。为了提高对32个地址的寻址能力(地址/命令位15=逻辑1),可以把时钟/日历或RAM寄存器规定为多字节(burst)方式。位6规定时钟或RAM,而位0规定读或写。在时钟/日历寄存器中的地址931或RAM寄存器中的地址31不能寄存数据。在多字节方式中,读或写从地址0的位0开始。必须按数据传送的次序写最先的8个寄存器。但是,当以多字节方式写RAM时,为了传送数据不必写所有31字节。不管是否写了全部31字节,所写的每一字节都将传送至RAM。12345678Vcc1SCLKI/ORSTVcc2X1X2GND电源控制Vcc1Vcc2GND输入移位寄存器I/OSCLK实时时钟命令与控制逻辑振荡器与分频器318RAMRSTX2X132.768kHzDATA BUS图4.1 DS1302引脚及内部结构表 4.1 DS1302引脚功能引脚号引脚名称功 能1Vcc2主电源2,3X1,X2振荡源,外界32.768kHz晶振4GND地线5RST复位/片选线6I/O串行数据输入/输出端(双向)7SCLK串行数据输入端8Vcc1后备电池1RAMA4A3A2A1A0RAM图 4.2 DS1302的控制字DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字见表3.2,其中奇数为读操作,偶数为写操作。时钟暂停:秒寄存器的位7定义位时钟暂停位。当它为1时,DS1302停止震荡,进入低功耗的备份方式。通常在对DS1302进行写操作时(如进入时钟调整程序),停止震荡。当它为0时,时钟将开始启动。AMPM/1224小时方式:小时寄存器的位7定义为12或24小时方式选择位。它为高电平时,选择12小时方式。在此方式下,位5是AM/PM位,此位是高电平时表示PM低电平表示AM。在24小时方式下,位5为第二个10小时位(2023h)。表 4.2 内部寄存器地址和内容积存器名命令字节取值范围积存器内容写读76543210秒积存器80H81H0059CH10SSEC分积存器82H83H0059010 minMIN小时积存器84H85H0023或011212/24010A/PHRHR日积存器85H87H0128,29,30,310010DATEDATE月积存器88H89H011200010MMONTH周积存器8AH8BH010700000DAY年积存器8CHD3H009910YEARYEARDS1302的晶震选用32.768kHz,电容推荐值为33pF,因为震荡频率较低,也可以不接电容,对计时精度影响不大。4.3 测温电路的设计测温电路主要使用温度传感器DS18B20,由于精度要求不高所以采用2位共阳LCD数码管以动态扫描法实现温度显示。其设计原理图如附件一所示。4.3.1 温度传感器工作原理DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要示通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在唯一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.03.5V;零待机功耗;温度以9或12数字量读出;用户可定义的非易失性温度报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。DS18B20采用3脚PR35封装或脚SOIC封装,其内部结构框图如图4.3所示。64位ROM的位结构如图4.4所示。开始8位是产品类型的编号,接着是每个器件的唯一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。非易失性温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个调整暂存RAM和一个易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节存储器,结构如图4.5所示。头2个字节包含测得的温度信息,第3和第4节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如图4.6所示。低5位一直1,M是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,即用来设置分辨率,定义方法见表4.3。由表4.3可见,DS18B20温度转换的时间比较长,而且设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625C/LSB形式表示。温度值格式如图4.7所示。64位ROM 和单线接口图4.3DS18B20内部结构图存储器与控制逻辑高速缓存温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器 I/OCVDD8位检验CRC48位序列号8位工厂代码(10H) MSB LSB MSB LSB MSB LSB图4.4 64位ROM结构图温度LSB1字节2字节EEROM3字节4字节5字节6字节7字节8字节9字节温度MSBTH用户字节1TL用户字节2TH用户字节1配置寄存器TL用户字节2保留保留保留CRC图4.5 高速暂存RAM结构图TMR1R011111图 4.6 配置寄存器表 4.3 DS18B20分辨率的定义规定R1R0分辨率/位测量最大转换时间/ms00993.750110187.510113751112750表 4.4 DS18B20温度与测得值对应表温度/C二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90HLS字节232221202-12-22-32-4MS字节SSSSSS6S5S4 图 4.7 温度数字值格式预置计数器1减法计数器1低温度系数振荡器减到0减法计数器2预置温度寄存器减到0高温度系数振荡器斜率累加器计数比较器增加图 4.8 DS18B20测温原理图停止表 4.5 74LS164特性表操作模式输 入输 出复 位MRABQ0Q1Q7移 位LLQ0Q6HLLLQ0Q6HLHLQ0Q6HHLLQ0Q6HHHHQ0Q674LS164内部为8个D触发器,用以实现数据的串行移位,74LS164特性见表4.5。单片机以串口方式0(移位寄存器方式)输出数据,3片74LS164作为3排共阳数码管的串/并转换显示接口。74LS164为TTl单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑“与”运算规律输入信号,共一个输入信号时可并接,共同作为输入脚。CP(第8脚)为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到CP端时,移位寄存器移一位。8个时钟脉冲过后,8位二进制数全部移入74LS164中。MR脚(第9脚)为复位端,当该脚为低电平时,移位寄存器各位复0;只有当它高电平时,时钟脉冲才起作用。Q1Q8(第36和1013引脚)并行输出端分别接数码管的ha(因为串口从低位开始传送)各段对应的引脚上。在给出了8个脉冲后,最先进入74LS164的第一个字节数据到达了最高位。再来1个脉冲,第1个脉冲就会从最高位移出,进入下个74LS164的第1位。3片74LS164首尾相串,而时钟端则接在一起。这样,当输入8个脉冲时,从单片机RXD端输出的第1字节数据就进入了第1片74LS164中,而当第2个8个脉冲到来后,第1字节数据就进入了第2片74LS164,而随后的第2字节的数据则进入了第1片74LS164。这样,当第3个8个脉冲完成后,首次送出的数据被送到了最下面的164(第3片)中,其它数据依次出现在第二和第一片74LS164中,实现了数据在74LS164中的串行输入、并行输出。在方式0状态下,串行口为同步移位寄存器方式,其波特率是固定的,为fosc/12。数据由RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)端输出。发送、接收数据时低位在先。所以根据提供的硬件电路图,在编写程序时,查共阳数码管的段码的二进制数据应该将正常的共阳数据管09的二进制值按位反序排序,如原来的二进制为11000000(C0H),要改为00000011(03H),就能使数码管正常显示。4.5 键盘接口的设计由于按键只有5个,用普通按钮接10K上拉电阻,用查询法完成读键功能。第5章 系统程序的设计5.1 阳历程序设计因为使用了时钟芯片DS1302,阳历程序只需从DS1302各寄存器中读出年、周、月、日、小时、分、秒等数据,再处理即可。在首次对DS1302进行操作之前,必须对它进行初始化,然后从DS1302中读出数据,再经过处理后,送给显示缓冲单元。阳历程序流程图见图5.1所示。初始化13021302开始振荡从1302中读出年、周、月、日、小时、分、秒开 始读出的数据都为BCD码,将其高低位分离送显示缓冲单元图5.1 阳历程序流程图5.2 时间调整程序设计调整时间用5个调整按钮,1个作为移位、控制用,2个作为加和减用,还有2个作为闹钟调整使用,分别定义为控制按钮、加按钮、减按钮、闹钟加按纽、闹钟减按纽。在调整时间过程中,要调整的位与别的位应该有区别。所以增加了闪烁功能,即调整的位一直在闪烁,直到调整下一位。闪烁原理就是,让要调整的一位每隔一定时间熄灭一次,比如说50ms。利用定时器计时,当达到50ms溢出时,就送给该位熄灭符,在下一次溢出时,再送正常显示的值,不断交替,直到调整该位结束。此时送正常显示值给该位,再进入下一位调整闪烁程序。时间调整程序流程图如图5.2所示。等待按键程序减键有效年减1控制键有效,进入年调整程序员加键有效年加1等待按键程序减键有效日减1控制键有效,进入日调整程序员加键有效日加1等待按键程序减键有效小时减1控制键有效,进入小时调整程序员加键有效小时加1等待按键程序减键有效月减1控制键有效,进入月调整程序员加键有效月加1等待按键程序减键有效星期减1控制键有效,进入星期调整程序员加键有效星期加1等待按键程序减键有效分减1控制键有效,进入分调整程序员加键有效分加1控制键有效,跳出时间调整程序,进入主循环程序图 5.2 时间调整程序程序流程图5.3 温度程序设计系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示数据刷新子程序等等。5.3.1 主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次。其程序流程图见5.3。5.3.2 读出温度子程序主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图5.4所示。初始化调用显示子程序1S到?初次上电?读出温度值温度计算处理显示数据刷新发温度转换开始命令NYYN发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正确?移入温度暂存器结束NYYN图5.3 DS18B20温度计主程序流程图 图5.4 读出温度子程序流程图5.3.3 温度转换命令子程序温度转换子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图5.5所示。5.3.4 计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图5.6所示。5.3.5显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图5.7所示。发跳过ROM命令发温度转换开始命令结束发DS18B20复位命令 开始温度零下?温度值取补码置“”标志置“+”标志结束计算小数位BCD值计算整数位BCD值NY图5.5 温度转换命令子程序流程图 图5.6 计算温度子程序流程图温度数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号)结束NNYY图5.7 显示数据刷新子程序流程图第章 调试及性能分析6.1 调试步骤系统的调试分为硬件调试和软件调试。其中硬件调试主要是检测硬件电路是否有短路、断路、虚焊现象。时钟和测温部分的硬件电路很简单,DS1302通过3根线、DS18B20只通过1根线与单片机相连接,很容易检测,主要是检测引脚晶振和电源是否接好。另外可以通过软件来调试硬件,如编写一个简单的显示程序来测试显示电路连接是否正确。接下来可进行软件调试,可以编写只含DS1302的计时和读写程序、显示程序,测试DS1302是否正常工作。最后调试日历、时间、闹钟、报警和温度程序。6.2 性能分析 计时器最关键的是计时的精度。电子万年历中DS1302上最好使用专用的晶振。经测试制作的电子万年历,误差较大,设计可以通过换用标准晶振或用软件进行修正。结论通过这次的课程设计,使深深感到自身能力的不足,也使我将学到的知识应用到了实践中,在这段时间里,我学到了很多知识也有很多感受,我开始了独立的学习和试验,遇到了很多的困难,我通过查阅大量相关的书籍、报纸、期刊、和资料,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩的作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好长一段时间。从中我也充分认识到了学习的重要性。虽然我的设计还有很多不足之处,但我可以很自豪的说,这里面的每一段文字和每一个图形,都有自己的劳动当看着自己的设计,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。由于本人的水平有限,设计当中,难免会有不少的缺点和不足之处,恳请指导老师批评并改正。参考文献1 王新颖单片机原理及应用北京大学出版社 20082 陈忠平 单片机基础与最小系统实践.北京航空航天大学出版社3 窦振中 单片机外围器件实用手册存储器分册.北京航空航天大学出版社4 沈庆阳, 郭庭吉 8051单片机实践与应用.清华大学出版社5 陈明荧. 8051单片机课程设计实训教程M. 北京: 清华大学出版社6 何立民. 单片机高级教程M. 北京: 北京航空航天大学出版社, 2003. 附录/*/#include#include#define uchar unsigned char#define uint unsigned intuchar code digit=0123456789; /定义字符数组显示数字uchar code Error=Error!Check!; /说明没有检测到DS18B20uchar code table=Alarm Clock;uchar code table1=0123456789;uchar code table2=WEEK;uchar code table3=Today is fine!;uchar code table4=HELLO!;uchar code table5=Made by Xiaopeng;uchar code table6=Happy new year!;/1.1uchar code table7=Valentines Day; /2.14/*uchar code table8=Qing Ming jie!;/4.5uchar code table9=Happy Labor Day!;/5.1uchar code table10=Duan Wu jie!;/6.15uchar code table11=Army day!;/8.1uchar code table12=Teachers Day!;/9.10uchar code table13=National Day!;/10.1/*以下是对液晶模块的操作程序*/sbit RS=P20; /寄存器选择位,将RS位定义为P2.0引脚sbit RW=P21; /读写选择位,将RW位定义为P2.1引脚sbit E=P22; /使能信号位,将E位定义为P2.2引脚sbit BF=P07; /忙碌标志位,将BF位定义为P0.7引脚sbit DQ=P26;sbit T_RST=P15;sbit T_CLK=P13; sbit T_IO=P14;sbit beep=P24;sbit key1=P30; /调闹钟的小时即xsbit key2=P31; /调闹钟的分钟即ysbit key3=P32; /显示切换sbit key4=P33;sbit ACC0=ACC0;sbit ACC7=ACC7;uchar time; /设置全局变量,专门用于严格延时static uchar x=0x08,y=30;uchar t_sec,sec1,sec2;uchar t_min,min1,min2;uchar t_hour,hour1,hour2;uchar t_mon,mon1,mon2;uchar t_day,day1,day2;uchar t_year,year1,year2;uchar week,week1;uchar com,inf;void tixing(unsigned char mm,unsigned dd);void show();void delay1(uchar t)uchar a,b;for(a=t;a0;a-)for(b=110;b0;b-);/*函数功能:延时1ms(3j+2)*i=(333+2)10=1010(微秒),可以认为是1毫秒*/void delay1ms()uchar i,j;for(i=0;i10;i+) for(j=0;j33;j+) ; /*函数功能:延时若干毫秒入口参数:n*/ void delaynms(uchar n) uchar i;for(i=0;in;i+) delay1ms(); /*函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=0,不忙*/bit BusyTest(void) bit result;RS=0; /根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1; /E=1,才允许读写 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 result=BF; /将忙碌标志电平赋给result E=0; /将E恢复低电平 return result; /*函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate*/void WriteInstruction (uchar dictate) while(BusyTest()=1); /如果忙就等待 RS=0; /根据规定,RS和R/W同时为低电平时,可以写入指令 RW=0; E=0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让E从0到1发生正跳变,所以应先置0 _nop_(); _nop_(); /空操作两个机器周期,给硬件反应时间 P0=dictate; /将数据送入P0口,即写入指令或地址 _nop_(); _nop_(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年网红主题餐厅特色经营授权合作合同
- 2025年高新技术企业项目贷款担保合同含房产全权抵押条款
- 2025年智慧型住宅小区雨水收集利用与景观设计综合服务合同
- 2025年度足疗中心专业技师劳动合同及职业培训协议
- 2025年版医疗器械召回及患者赔偿责任承担合同
- 2025年绿色园区保安队伍派遣与维护一体化合同
- 2025年家禽养殖产业链风险评估与市场预测服务合同
- 2025年校园食堂场地租赁及食品安全管理服务合同
- 2025年生态别墅水电系统改造与低碳节能建设合同
- 建筑工程分包合同
- (2025秋新版)苏教版三年级数学上册全册教案
- 保密教育培训课件内容
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案
- 2024-2025学年人教版数学五年级下学期期末试卷(含答案)
- 八大联考练习试卷附答案
- 第1章制图基础-金大鹰
- 清欠工作管理制度管理办法
- (高清版)GB_T 40921-2021发泡聚丙烯(PP-E)珠粒
- 护理质量管理会议记录范文
- 干砌石护坡施工工艺标准
- 教育资料(2021-2022年收藏的)有色金属国际贸易操作实务概要
评论
0/150
提交评论