单片机课程设计报告基于ATC单片机的数显温度传感器设计

合集下载

基于单片机的数字温度计课程设计

基于单片机的数字温度计课程设计

标题:基于单片机的数字温度计课程设计一、概述在现代电子科技飞速发展的今天,单片机技术已经渗透到各行各业。

而在电子课程设计中,基于单片机的数字温度计课程设计是一项常见而且具有挑战性的任务。

本文将探讨基于单片机的数字温度计课程设计的相关内容。

二、课程设计目标1、理解单片机的工作原理和基本架构;2、掌握温度传感器的工作原理和应用;3、设计并实现一个数字温度计系统;4、对系统进行实验验证并调试。

三、课程设计内容1、单片机基础知识的学习通过学习单片机的基本原理、指令系统、编程语言等内容,理解单片机的工作方式及其在数字温度计设计中的应用。

2、温度传感器的选型和原理学习选择并了解适合数字温度计设计的温度传感器,掌握其工作原理和接口特性,为后续的系统设计奠定基础。

3、数字温度计系统设计根据所学知识,设计数字温度计系统的硬件和软件部分。

硬件设计包括电路连接和元器件选取,软件设计包括程序编写和逻辑控制。

4、系统调试和优化对设计好的数字温度计系统进行实验验证,检查并解决可能存在的问题,优化系统的性能和稳定性。

四、课程设计实施步骤1、学习单片机基础知识可以通过课堂教学、实验操作和参考书籍资料等方式进行学习。

要求学生掌握单片机的基本原理和编程方法。

2、温度传感器的选型和原理学习在实验室或者实际应用中选择适合的温度传感器,并深入了解其工作原理和使用要求。

3、数字温度计系统设计学生按照课程要求,独立或者分组设计数字温度计系统的硬件和软件部分,包括原理图设计、程序编写、电路连接等。

4、系统调试和优化学生在实验室进行系统调试,检查系统的功能是否符合设计要求,发现问题并解决。

优化系统的性能和稳定性。

五、课程设计评价1、设计方案的完整性和可行性对学生提交的设计方案进行评价,要求其具有一定的完整性和可行性,考察学生的设计能力和实际应用能力。

2、实验结果的准确性和稳定性对学生进行实验验证,检查实验结果的准确性和系统的稳定性,考察学生的实验操作能力和问题解决能力。

单片机课程设计基于数字温度传感器的数字温度计课程设计报告书

单片机课程设计基于数字温度传感器的数字温度计课程设计报告书

《单片机原理及应用》课程设计报告书课题名称基于数字温度传感器的数字温度计姓名学号专业指导教师机电与控制工程学院年月日填写说明1、正文部分:(1)标题与正文格式定义标准如下:一级标题:1.标题1二级标题:1.1标题2三级标题:1.1.1标题3四级标题:1.1.1.1标题4(2)表格:尽可能采用三线表。

(3)图形:直接插入的插图应有图标、图号,不能直接插入的图应留出插图空位。

图中文字、符号书写要清楚,并与正文一致。

(4)文字表述:要求层次清楚,语言流畅,语句通顺,无语法和逻辑错误,无错字、别字、漏字。

文字的表述应当以科学语言描述研究过程和研究结果,不要以口语化的方式表达,报告中科技术语和名词应符合规定的通用词语,并使用法定计量单位和标准符号。

2、参考文献:(1)数量要求:参考文献只选择最主要的列入,应不低于5种。

(2)种类要求:参考文献的引用,可以是著作[M]、论文[J]、专利文献[P]、会议论文等。

(3)文献著录格式及示例。

参考文献用宋体五号字。

[1] 作者. 书名[M]. 版次. 出版地: 出版者, 出版年: 起止页码(著作图书文献)[2] 作者. 文章名[J]. 学术刊物名称. 年. 卷(期): 起止页码(学术刊物文献)示例: [1]王社国,建光。

基于ARM的嵌入式语音识别系统研究[J]。

微计算机信息,2007,2-2:149-150.3、附录或附件:(可选项)重要的测试结果、图表、设计图纸、源程序代码、大量的公式、符号、照片等不宜放入正文中的可以附录形式出现。

4、如果需要可另行附页粘贴。

任务书1. 设计要求利用数字温度传感器DS18B20与单片机结合来测量温度。

利用数字温度传感器DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。

其温度测量围为−55℃~125℃,精确到0.5℃。

数字温度计所测量的温度采用数字显示,控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示。

单片机课程设计 基于数字温度传感器的数字温度计报告

单片机课程设计  基于数字温度传感器的数字温度计报告

《单片机原理及应用》课程设计报告书课题名称基于数字温度传感器的数字温度计姓名学号专业指导教师机电与控制工程学院年月日填写说明1、正文部分:(1)标题与正文格式定义标准如下:一级标题:1.标题1二级标题:1.1标题2三级标题:1.1.1标题3四级标题:1.1.1.1标题4(2)表格:尽可能采用三线表。

(3)图形:直接插入的插图应有图标、图号,不能直接插入的图应留出插图空位。

图中文字、符号书写要清楚,并与正文一致。

(4)文字表述:要求层次清楚,语言流畅,语句通顺,无语法和逻辑错误,无错字、别字、漏字。

文字的表述应当以科学语言描述研究过程和研究结果,不要以口语化的方式表达,报告中科技术语和名词应符合规定的通用词语,并使用法定计量单位和标准符号。

2、参考文献:(1)数量要求:参考文献只选择最主要的列入,应不低于5种。

(2)种类要求:参考文献的引用,可以是著作[M]、论文[J]、专利文献[P]、会议论文等。

(3)文献著录格式及示例。

参考文献用宋体五号字。

[1] 作者. 书名[M]. 版次. 出版地: 出版者, 出版年: 起止页码(著作图书文献)[2] 作者. 文章名[J]. 学术刊物名称. 年. 卷(期): 起止页码(学术刊物文献)示例:[1]王社国,赵建光。

基于ARM的嵌入式语音识别系统研究 [J]。

微计算机信息,2007,2-2:149-150.3、附录或附件:(可选项)重要的测试结果、图表、设计图纸、源程序代码、大量的公式、符号、照片等不宜放入正文中的可以附录形式出现。

4、如果需要可另行附页粘贴。

任务书1. 设计要求利用数字温度传感器DS18B20与单片机结合来测量温度。

利用数字温度传感器DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。

其温度测量范围为−55℃~125℃,精确到0.5℃。

数字温度计所测量的温度采用数字显示,控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示。

基于单片机的数字温度计课程设计报告

基于单片机的数字温度计课程设计报告

1 基于单片机的数字温度计设计1引言 设计一个数字温度计,以单片机为控制核心,运用集成度较高的温度传感器和显示器能够较为准确测量并显示出温度结果,且测温范围较广,可根据实际需要通过软件设置高低温报警,并在仿真的基础上制作出设计产品,通过对具体问题的提出,对问题的分析和解决,加强了理论运用于实际的能力,最终该产品要能够运用于实际,如冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域,主要用于测量室温。

2设计方案及原理2.1总体设计方案根据电子元件的发展要求,要在可实现的前提下,选择硬件简单、集成度高、可靠性强的设计方案;软件与硬件呈现互补关系,当硬件较为简单时,需要软件控制实现其功能,因此选择集成度高,控制方法清晰、实际运用广泛的硬件。

总体设计要求:(1)温度测量范围为传感器的理论值(-55℃—125℃)(2)通过软件分别实现高温和低温报警(预设35℃和-20℃)(3)使用LCD1602显示所测温度(4)温度测量精度为0.5℃总体设计方框图如图1 所示:2 2.2系统组成原理温度测量模块选用集成芯片DS18B20作为温度的测量和变送,输出信号为数字信号。

DS18B20采用单总线的数据传送,可以直接通过一个I/O 口向单片机接收设置信号和向单片机发送温度的测量值。

控制模块采用STC89C52单片机。

功能强大STC89C52单片机适合于许多较为复杂控制应用场合。

输出模块采用液晶显示LCD1602,总共可以显示两行共32个字符,设计中显示器的第一行使用软件预设想要显示的字符,温度值则放在第二行中显示。

本次设计采用红色LED 作为高温报警指示灯,黄色作为低温报警指示灯。

另外在高低温报警的同时有蜂鸣器发出报警的蜂鸣声。

设计总电路图原理如图2所示:图2 总体设计电路图3软件设计本次设计采用c 语言编程,程序主要由传感器复位,温度转换,温度显示三个子程序和一个主程序组成,主程序首先执行传感器的温度转换子程序将实际温度转换成数字量并存储在传感器内部的存储器中,再将测量温度的数字量读到单片机中,判断正负温度和是否达到报警要求,如果达到报警要求,执行报警模块,最后将温度值的每一位转换成对应的ASCII 码值,由主程序调用温度显示子程序将测量的温度值显示出来。

单片机课程设计报告(数字温度计)

单片机课程设计报告(数字温度计)

单片机课程设计报告课题:基于单片机的数字温度计设计1 方案设计2 系统的硬件设计3.1 主控制器3.2 显示电路3.3 温度传感器工作原理3.4 温度传感器接口电路3 系统的软件设计3.1 程序3.2 温度测量3.3 数码管显示4 系统的测试与总结附录1 原理图附录2 源程序清单1方案设计本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下:●利用温度传感器〔DS18B20〕测量某一点环境温度●测量范围为-55℃~+125℃,精度为±0.5℃●用数码管进行实际温度值显示采用AT89S52单片机P3.5口控制温度传感器DS18B20的温度测量,以四位数码感形式输出测量温度。

图2.1 DS18B20与单片机接口原理图2.2总体设计方框图2 系统的硬件设计2.1 主控制器STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。

STC89C52使用经典的MCS-51内核,但做了很多的改良使得芯片具有传统51单片机不具备的功能。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,stc89c52MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构〔兼容传统51的5向量2级中断结构〕,全双工串行口。

另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

基于单片机数字温度计课程设计

基于单片机数字温度计课程设计

基于单片机数字温度计课程设计
基于单片机的数字温度计课程设计是一个非常有趣和实用的项目。

首先,我们需要选择合适的单片机,比如常用的Arduino或者STM32等。

然后,我们需要选择合适的温度传感器,比如LM35或者DS18B20等。

接下来,我们可以按照以下步骤进行课程设计:
1. 硬件设计,首先,我们需要将单片机和温度传感器连接起来,这涉及到电路设计和焊接。

我们需要确保电路连接正确,传感器能
够准确地读取温度,并且单片机能够正确地接收并处理传感器的数据。

2. 软件设计,接下来,我们需要编写单片机的程序,以便能够
读取传感器的数据,并将其转换为数字温度值。

我们可以使用C语
言或者Arduino的编程语言来实现这一步骤。

在程序设计中,需要
考虑到温度的单位转换、数据的精度等问题。

3. 显示设计,我们可以选择合适的显示设备来展示温度数值,
比如数码管、液晶显示屏或者OLED屏幕等。

在设计中,我们需要考
虑到显示的清晰度、易读性以及节能等因素。

4. 功能扩展,除了基本的温度显示功能,我们还可以考虑对数
字温度计进行功能扩展,比如添加报警功能、数据存储功能或者远
程监控功能等,这些功能的添加可以提升数字温度计的实用性和趣
味性。

5. 测试与优化,最后,我们需要对设计的数字温度计进行测试,并不断优化,确保其稳定可靠、准确无误地显示温度。

总的来说,基于单片机的数字温度计课程设计涉及到硬件设计、软件设计、显示设计、功能扩展、测试与优化等多个方面,学生可
以通过这样的课程设计项目,全面提升自己的电子设计和编程能力,同时也能够实现一个实用的数字温度计产品。

单片机课程设计报告基于ATC单片机的数显温度传感器设计

单片机课程设计报告基于ATC单片机的数显温度传感器设计

课题二: 基于AT89C51单片机的数显温度传感器设计一、设计目的1、掌握51单片机最小系统的设计;2、掌握温度传感器DS18B20的使用;3、掌握C51的编程方式。

二、设计任务与要求基于AT89C51单片机的数显温度传感器设计主要具有如下功能,具体要求如下:1.温度传感器DS18B20检测环境温度。

2.用4位数码管显示温度;3.设定一个温度,当检测的温度达到这个设定值时,用蜂鸣器实现报警。

三、设计步骤①根据课题,查阅相关资料。

②画出系统原理框图,确定基本电路。

(电路图不能在Protuse里画,在A4纸上或者用DXP画电路图)③在Protuse里进行仿真。

(仿真结果出来后,才发放元件)④按电路原理图在板子上焊接电路。

⑤调试硬件。

⑥撰写电子综合设计报告:字数约2000~3000字(不包括程序清单),格式见附件2)。

⑦最后一个下午,制作PPT进行答辩。

题目二:基于AT89C51单片机的数显温度传感器设计附件2:单片机原理及其应用课程设计设计报告格式成绩:重庆大学城市科技学院电气学院基于AT89C51单片机的数显温度传感器设计报告一、设计目的作用本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,四位共阴极数码管一个,电容电阻若干。

DS18B20支持“一线总线”接口,测量温度范围-55°℃—— +125°℃。

在-10℃——+85°℃范围内,精度为±0.5°℃。

18B20的精度较差,为± 2°℃。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。

本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,按键设置部分,时钟电路。

主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路,按键部分用来设置上下限报警温度。

单片机课程设计报告基于单片机的温控系统

单片机课程设计报告基于单片机的温控系统

单片机课程设计报告基于单片机的温控系统职业学院机械与电子工程学院基于单片机温控系统课程设计报告班级电信班学生姓名学号指导教师时间2021目录摘要I1系统方案设计及组成I2系统设计12.1温度传感器的工作原理与单片机的连接12.2DS1302原理及管脚22.3单片机与报警电路32.4显示电路32.41基本操作时序43系统软件设计4摘要本课题主要介绍基于xxxx单片机和xxxx数字温度传感器的温度测量系统。

该系统利用xxxx单片机分别采集各个温度点的温度,实现温度显示、报警等功能以及用DS1302时钟芯片在液晶显示当前时间日期。

直观,实用。

它以xxxx单片机为主控制芯片,采用数字温度传感器xxxx实现温度的检测,测量精度可以达到0.5℃。

该系统采用了1602显示模块,形象直观的显示测出的温度值。

基于xxxx 单片机的单总线温度测控系统具有硬件组成简单、读数方便、精度高、测温范围广等特点,在实际工程中得到广泛应用。

关键词:温度传感器;单片机;温度控制;DS1302;LCD1系统方案设计及组成该方案使用了xxxx单片机作为控制核心,以智能温度传感器xxxx为温度测量元件,对各点温度进行检测,设置温度上下限,超过其温度值就报警。

以及用DS1302时钟芯片在液晶显示当前时间日期。

显示电路采用1602液晶模块显示,使用三极管,电阻和蜂鸣器组成的报警电路,按钮处理模块等。

具有温度控制,实时时钟,报警等功能。

89C52CPU控制模块按键处理模块温度采集模块报警电路LCD显示模块DS1302时钟采集模块图2-1温度控制系统方案框2系统设计2.1温度传感器的工作原理与单片机的连接温度传感器的单总线(1-Wire)与单片机的P2.7连接,P2.7是单片机的高位地址线。

P2端口是一个带内部上拉电阻的8位双向I/O,其输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对该端口写“1”,可通过内部上拉电阻将其端口拉至高电平,此时可作为输入口使用,这是因为内部存在上拉电阻,某一引脚被外部信号拉低时会输出一个电流。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课题二:基于A T89C51单片机的数显温度传感器设计一、设计目的1、掌握51单片机最小系统的设计;2、掌握温度传感器DS18B20的使用;3、掌握C51的编程方式。

二、设计任务与要求基于AT89C51单片机的数显温度传感器设计主要具有如下功能,具体要求如下:1.温度传感器DS18B20检测环境温度。

2.用4位数码管显示温度;3.设定一个温度,当检测的温度达到这个设定值时,用蜂鸣器实现报警。

三、设计步骤①根据课题,查阅相关资料。

②画出系统原理框图,确定基本电路。

(电路图不能在Protuse里画,在A4纸上或者用DXP画电路图)③在Protuse里进行仿真。

(仿真结果出来后,才发放元件)④按电路原理图在板子上焊接电路。

⑤调试硬件。

⑥撰写电子综合设计报告:字数约2000~3000字(不包括程序清单),格式见附件2)。

⑦最后一个下午,制作PPT进行答辩。

题目二:基于AT89C51单片机的数显温度传感器设计附件2:单片机原理及其应用课程设计设计报告格式成绩:重庆大学城市科技学院电气学院基于AT89C51单片机的数显温度传感器设计报告一、设计目的作用本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,四位共阴极数码管一个,电容电阻若干。

DS18B20支持“一线总线”接口,测量温度范围-55°℃—— +125°℃。

在-10℃—— +85°℃范围内,精度为±°℃。

18B20的精度较差,为±2°℃。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。

本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,按键设置部分,时钟电路。

主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路,按键部分用来设置上下限报警温度。

测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。

二、设计要求基于AT89C51单片机的数显温度传感器设计主要具有如下功能,具体要求如下:(1).温度传感器DS18B20检测环境温度。

(2).用两个2位一体共阳数码管显示温度;(3).通过按键开关设定一个上限温度和一个下限温度,当检测的温度达到这个设定值时,用蜂鸣器实现报警,同时LED灯闪烁。

三、设计的具体实现1、设计原理用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

(DS18B20数字温度传感器具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠,所以在该设计中采用DS18B20数字温度传感器测量温度。

)实验名称是“基于AT89C51单片机的数显温度传感器设计”,涉及到MCS-51系列的单片机,我们首先有设计一个能使单片机工作的最小系统,然后温度传感器将实时温度值送给单片机,通过对单片机进行软件编程实现数据处理,然后送给LED 共阴数码管显示,在对单片机编程时要考虑到要使得能通过按键开关设置上限报警温度及下限报警温度,通过蜂鸣器报警,在报警的同时LED 灯同步闪烁。

设计任务书中已给出了元件清单,但是我们需要在软件中对自己设计的电路进行仿真我们还需要画出单片机的最小系统电路。

总体电路结构框图所示:2、系统设计(详细介绍各单元电路的选择、设计及工作原理分析,并介绍有关参数的计算及元器件参数的选择等,要求有原理图。

) (1)、硬件设计硬件电路设计通过单片机仿真软件Proteus 进行原理图的编辑,根据实验要求及所给出的元件设计出如下电路原理图,并进行了仿真时钟及复位模块实验所给的元件中直接已给出了AT89C51的最小系统板,但是我们在设计电路时还是你需要画出该部分电路,时钟复位为能使单片机工作的最简单的电路,又称最小系统。

具体实验电路如下:时钟电路有12MHz的晶振及两个20~30PF的瓷片电容(无极性)连接在单片机的XTAL1及XTAL2连个端口;复位电路由10K的电阻,10UF电解电容(有极性)以及按键开关组成,接在单片机的RST口。

当系统出现故障错误,我想让系统恢复初始化状态可以通过对按动按键开关实现对电容的充放电从而实现系统的复位。

蜂鸣器报警及LED显示模块蜂鸣器用于当温度传感器的输入的温度数值大于认为设定的上限温度或者小于下限温度时,系统会给出相应的信号使得蜂鸣器发出声音同时让LED灯闪烁显示,从听觉和视觉上同时提出报警信号。

电路图如下:蜂鸣器由一个PNP型的三极管驱动接在单片机的口,当口输出低电平是蜂鸣器发出声音;LED灯正极通过1K的电阻上拉接Vcc,负极接在单片机的口,当系统在口输出低电平时LED灯亮。

共阳数码管显示显示模块实验给出的数码管为2位一体共阳的数码管,在实验显示中我们需要四个数码管去显示相应的温度,所以采用两个2位一体共阳数码管并联当做一个4位一体的共阳数码管。

电路原理图如下:数码管的使用设计到了段选及位选,我们把段选接在单片机的P0口,位选接在数码管的~口,需要注意的是此数码管为共阳的,所以P0口输出的低电平完全可以驱动数码管的段选显示,但是位选输出高电平不足以驱动数码管显示导致数码管的亮度不够,此时我们需要在数码管的位选段接上相应的1K的上拉电阻,这样数码管的亮度就可以明显的得到提升。

DS18BB20温度传感器模块DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

电路图如下:接在单片机的口,DS18B20的DQ端需要接一个左右的上拉电阻。

按键控制模块按键是用来设置报警的上下限温。

K1是用来进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限调节模式。

在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;按一下K4消除按键音,再按一下启动按键音。

在调节上下限温度模式下,K2是实现加1功能, K1是实现减1功能,K3是用来设定上下限温度正负的。

(2)、软件设计通过单片机编程软件Keil 4进行编程,程序部分通过一个主函数和自定义的三个#include"" #include"" #include"" 头文件,分别完成温度的采集转化、通过键盘设定上下限报警温度以及模式的切换、通过定时器0延时使数码管动态显示温度系统的主流程图:3、系统实现(详细介绍实物连接图及运行程序时的每种结果,要求有图为证,并对每张图片进行简单的说明)根据系统的设计框图,查找相关资料,在Proteus 中画出原理图,在KEIL 4软件中编写好程序,然后将这两个软件结合,将写好的程序在Proteus 中烧录进单片机,然后开启仿真开关,即可显示设计效果,通过修改硬件电路的同时结合程序,实现实验要求。

然后开始焊接硬件电路,在多孔板上焊出相应的电路,用杜邦线将各个模块与单片机最小系统板连接在一起得到最终电路,用烧录软件将程序烧录进单片机,最终以实际电路的形式展现出成果。

系统的调试及性能分析:硬件调试,首先检查电感的焊接是否正确,然后可用万用表测试或通电检测。

软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等的编程及调试四、总结(对整个设计工作过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识、收获和提高。

)通过本次课程设计使我收获很多,从一开始对单片机仿真软件的使用到后来渐渐的熟悉,深深感觉到了我们在设计电路的时候为了验证我们方案的可行性,我们必须借助一些仿真软件,来模拟我们设计的电路,这样既可以节省本也使得我们焊接实物时有了很好的依据,要学会以这种方法为基础再来焊接电路。

通过系统仿真软件Proteus和编译软件Keil,使我们进一步了解了单片机的设计制作过程,其中最为困难的是软件部分,即编程部分,我们上网找了好多资料,虽然经过自己的修改,但还是有很多功能不能实现,如温度上下限设置。

由于Proteus并不是很熟练,在使用的过程中有很多原件的名称不知道,从而花费了大量的时间查阅资料。

在应用仿真的过程中,还出现了仿真软件出现问题,不管怎样修改程序,结果在仿真软件上还是出现错误,后来发现是我们使用的软件是盗版的所以他可能在仿真过程中出现错误,最终决定先将硬件焊接出来将程序写进去看看结果,再对软件进行相应的调整,最后焊接出来将程序写进单片机经过简单的调整实现了实验要求。

最后一步的焊接硬件也遇到了不少麻烦。

综上所述我们得出这样的结论,应该借助软件仿真证明我们方案的可行性,设计时实际电路和我们理论上的数值是有所差别的,我们也要学会将理论知识与实际结合起来,这样我们才能在实际中提高自我能力,我们才能真正理解并在实际中运用我们的知识。

五、附录附录一:元件清单附录二:实物焊接图附录三:程序/************************************************************** ******* 程序名; 基于51单片机的温度计* 功能:实时测量温度,超过上下限报警,报警温度可手动调整。

K1是用来进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限调节模式。

在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;按一下K4消除按键音,再按一下启动按键音。

在调节上下限温度模式下,K2是实现加1功能,K1是实现减1功能,K3是用来设定上下限温度正负的。

*************************************************************** ******/#include<>#include<> uchar codetemperature3[]={ 0xff,0x7f,0xbf,0x89,0xc7}; ‘-’‘H’‘L’/******************************************************//* 延时子函数//*****************************************************/void display_delay(uint t) //延时1ms左右{uinti,j;for(i=t;i>0;i--)for(j=120;j>0;j--);}/******************************************************//* 定时器1初始化函数//*****************************************************/void timer1_init(bit t){TMOD=0x10;TH0=0x3c;TL0=0xb0;EA=1;ET1=1;TR1=t; // 局部变量t为1启动定时器1,为0关闭定时器1}/******************************************************//* 定时器1中断函数//*****************************************************/void timer1() interrupt 3{TH0=0x3c; //重新赋初值,定时50msTL0=0xb0;num++; //每进入一次定时器中断num加1(每50ms加1一次)if(num<5){s=1;if(w==1){beer=1;led=1;}else{beer=1;led=1;}}else //进入4次中断,定时200ms时若报警标志位w为‘1’则启动报警,不为‘1’不启动//实现间歇性报警功能{s=0;if(w==1){beer=0;led=0;}else{beer=1;led=1;}}if(num>20) //进入20次中断,定时1s{num=0; //num归0,重新定开始定时1ss1=0; //定时1s时间到时自动关闭报警上下限显示功能v1=1; //定时1s时间到时自动关闭报警上下限查看功能}}/******************************************************//* 调整报警上下限选择函数//*****************************************************/void selsct_1(ucharf,uchar k) //消除百位的0显示,及正负温度的显示选择{if(f==0) //若为正温度,百位为0则不显示百位,不为0则显示{if(k/100==0) P0=temperature3[0];else P0=temperature1[k/100];}if(f==1) //若为负温度,若十位为0,百位不显示,否则百位显示‘-’{if(k%100/10==0) P0=temperature3[0];else P0=temperature3[2];}}void selsct_2(bit f,uchar k) //消除十位的0显示,及正负温度的显示选择{if(f==0) //若为正温度,百位十位均为0则不显示十位,否则显示十位{if((k/100==0)&&(k%100/10==0))P0=temperature3[0];else P0=temperature1[k%100/10];}if(f==1) //若为负温度,若十位为0,十位不显示,否则十位显示‘-’{if(k%100/10==0) P0=temperature3[2];else P0=temperature1[k%100/10];}}/******************************************************//* 主函数显示//*****************************************************/void display(uchart,uchart_d) //用于实测温度、上限温度的显示{uchari;for(i=0;i<4;i++) //依次从左至右选通数码管显示,实现动态显示{switch(i){case 0: //选通第一个数码管wei2=0; //关第二个数码管wei3=0; //关第三个数码管wei4=0; //关第四个数码管wei1=1; //开第一个数码管if(a==0){selsct_1(f,t);} //若a=0则在第一个数码管上显示测量温度的百位或‘-’if(a==1){P0=temperature3[3]; //若a=1则在第一个数码管上显示‘H’}if(a==2){P0=temperature3[4]; //若a=2则在第一个数码管上显示‘L’}break;case 1: //选通第二个数码管 wei1=0;wei3=0;wei4=0;wei2=1;if(a==0){selsct_2(f,t);} //若a=0则在第二个数码管上显示测量温度的十位或‘-’if(a==1) //若a=1则在第二个数码管上显示上限报警温度的百位或‘-’{if(s==0) selsct_1(f_max,max);//若s=0则显示第二个数码管,否则不显示else P0=temperature3[0]; //通过s标志位的变化实现调节上下限报警温度时数码管的闪烁if(s1==1) selsct_1(f_max,max);//若s1=1则显示第二个数码管(s1标志位用于上下限查看时的显示)}if(a==2) //若a=2则在第二个数码管上显示下限报警温度的百位或‘-’{if(s==0) selsct_1(f_min,min);else P0=temperature3[0];if(s1==1) selsct_1(f_min,min);}break;case 2: //选通第三个数码管 wei1=0;wei2=0;wei4=0;wei3=1;if(a==0){P0=temperature2[t%10];}//若a=0则在第三个数码管上显示测量温度的个位if(a==1) //若a=1则在第三个数码管上显示上限报警温度的十位或‘-’{if(s==0) selsct_2(f_max,max);//若s=0则显示第三个数码管,否则不显示else P0=temperature3[0];if(s1==1) selsct_2(f_max,max);//若s1=1则显示第三个数码管}if(a==2) //若a=2则在第三个数码管上显示下限报警温度的十位或‘-’{if(s==0) selsct_2(f_min,min);else P0=temperature3[0];if(s1==1) selsct_2(f_min,min);}break;case 3: //选通第四个数码管wei1=0;wei2=0;wei3=0;wei4=1;if(a==0){P0=temperature1[t_d];}//若a=0则在第四个数码管上显示测量温度的小数位if(a==1) //若a=1则在第四个数码管上显示上限报警温度的个位{if(s==0) P0=temperature1[max%10];//若s=0则显示第四个数码管,否则不显示else P0=temperature3[0];if(s1==1) P0=temperature1[max%10];//若s1=1则显示第四个数码管}if(a==2) //若a=2则在第四个数码管上显示下限报警温度的个位{if(s==0) P0=temperature1[min%10];else P0=temperature3[0];if(s1==1) P0=temperature1[min%10];}break;}display_delay(10); //每个数码管显示3ms左右}}/******************************************************/ /* 开机显示函数//*****************************************************/ void display1(uint z) //用于开机动画的显示{uchari,j;bit f=0;for(i=0;i<z;i++) //‘z’是显示遍数的设定 {for(j=0;j<4;j++) //依次从左至右显示‘-’ {switch(j){case 0:wei2=0;wei3=0;wei4=0;wei1=1; break;P0=temperature3[2];//第一个数码管显示case 1:wei1=0;wei3=0;wei4=0;wei2=1;break;P0=temperature3[2];//第二个数码管显示case 2:wei1=0;wei2=0;wei4=0;wei3=1;break;P0=temperature3[2];//第三个数码管显示case 3:wei1=0;wei2=0;wei3=0;wei4=1;break;P0=temperature3[2];//第四个数码管显示 }display_delay(400); //每个数码管显示200ms左右 }}}#endif六、参考文献参考文献的格式如下:1·李群芳·单片微型计算机与接口技术·电子工业出版社·2012年1月(第四版)。

相关文档
最新文档