已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录内容摘要1关键词11 绪论22 设计任务22.1 设计任务与要求22.2 方案的选择与论证33 系统硬件设计4 3.1 主控器模块53.2 数码管显示模块73.3 采样和A/D转换模块83.4 报警模块94 软件设计与仿真94.1 主程序设计94.2 仿真软件简介104.3 仿真结果114.4 系统调试134.5 误差分析145 实物展示15 5.1低于温度下限15 5.2 高于温度上限166 总结18附录:程序清单20参考文献25基于单片机的温度测量设计内容摘要:该温度测量报警系统以AT89C51单片机为核心控制芯片,实现温度检测报警功能的方案。该系统通过调节可调电阻调节电压作为模拟输入量,通过A/D转换成温度信息进行显示,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。该系统实现了对温度的自动监测,为设备的正常运行提供了条件,在工业中具有一定的实用价值和广泛的应用前景。另外该方案显示部分采用数码管来显示温度。本文详细阐述了单片机和LED数码显示器的内部结构,系统硬件电路和软件程序的设计及调试过程,同时给出了原理图、流程图等。涵盖了从需求分析,系统设计,编程,原理图,PCB图以及最后的试验板焊制等产品开发的基本过程。关键词: AT89C51 ADC0808 温度检测 报警1绪论目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用必须重视。温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。在控制领域中,对温度的控制有着举足轻重的作用。例如陶瓷的烧烤,只有控制住温度的适度,才能制作出一件完美的艺术品,否则只是一件废品;还有如酿酒的过程,也需要对温度进行控制。可见,在生活的许多方方面面都有着对温度进行感知和控制的需要。本次设计的目的就是基于AT89C51单片机设计一个温度检测,报警的系统,该系统能实时采集周围的温度信息进行显示,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。该系统实现了对温度的自动监测,为设备的正常运行提供了条件,在工业中具有一定的实用价值和广泛的应用前景。2 系统设计2.1 设计任务与要求(1)用可调电阻调节电压值作为模拟温度的输入量,当温度低于30时,发出长嘀报警声和光报警,当温度高于60时,发出短嘀报警声和光报警。并将实时的温度显示在数码管上。(2)要求使用的元器件数目尽量少。(3)设计硬件电路原理图,合理选择元器件;编写使用说明书,说明使用方法。(4)设计在实验板上实现该功能的程序并进行调试。参考相关资料掌握将要使用的元器件的特性,性能和使用方法,再根据功能要求画出相应的电路图 ,利用proteus软件进行仿真实验。实验通过后,编写程序在单片机实验板上调试。最后编写课程设计说明书,附上电路原理图和程序源代码2.2方案的选择与论证2.2.1 总体设计方案方案一:基于STC89C51单片机通过读取温度传感器DS18B20测量温度后存储的数据,之后送去数码管显示。当高于或低于一定温度将分别利用红黄灯报警。此方案由于DS18b20测量温度范围为55+125,在工业生产中此范围较小。而且由于编程时采用I2C通信,因此读取数据是时序要求较高,程序编写复杂。本方案电路复杂,灵活性不高,效率低,不利于系统的扩展,对信号处理比较困难。方案二:采用51系列单片机作为整机的控制单元,将0-5V模拟电压信号通过AD0808模数转换成模拟温度值0-255,然后通过数码管显示其温度值。此方案设计简单,编程容易,并且增宽了测量温度范围。本设计采用第二种方案。为了能够使系统具备检测温度的大小,利用51系列单片机为主控制器,通过AD0808检测由电位器分压输出的的电压值,从而输出模拟温度值0-255送入单片机,并且由其送去数码管显示,其中数码管通过两位八段数码管显示。3 系统硬件设计本系统由主控模块、采样和A/D转换模块、报警模块、数码管显示模块4个模块组成,系统硬件组成框图如图1所示。系统总体电路原理图如图2所示。报警模块数码管显示模块主控模块 采样和A/D转换模块图1系统硬件组成框图2 系统电路原理图3.1主控器模块本系统控制器芯片采用AT89C51单片机,其管脚图如图3所示。AT89C51管脚介绍:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。 图3 AT89C51单片机引脚图P3口也可作为AT89C51的一些特殊功能口。 RST:复位输入。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器,是低电压,高性能CMOS8位微处理器,俗称单片机。如图4单片机电路连接图。 图 4 单片机电路连接图3.2 数码管显示模块图5为液晶显示电路模块,图中为一个两位八段数码管,其接法为共阴极接法。 图5数码管显示电路3.3 采样和A/D转换模块 图6 A/D转换电路图 图7 DAC0808引脚图A/D转换电路图、ADC0808引脚图分别如图6、7所示。DAC0808各引脚功能ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。各引脚功能如下: 15和2628(IN0IN7):8路模拟量输入端。 8、14、15和1721:8位数字量输出端。 22(ALE):地址锁存允许信号,输入,高电平有效。 6(START):AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 9(OE):数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。 12(VREF(+)和16(VREF(-):参考电压输入端 11(Vcc):主电源输入端。 13(GND):地。 2325(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路 3.4报警模块如图8图8 报警模块电路图4软件设计与仿真4.1主程序设计主程序流程图如图9所示。图9 主程序流程图4.2 仿真软件简介Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。Proteus7.5是目前最好的模拟单片机外围器件的工具,可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD、RAM、ROM、键盘、马达、LED、AD/DA、部分SPI器件、部分IIC器件等)。软件编译采用Keil uVision5软件,Keil uVision5软件是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil uVision5软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil uVision5生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。4.3 仿真结果 4.3.1 正常情况数码管显示的数字在3060范围内,且报警等都不亮,蜂鸣器不发出声音,结果如图10.图10 正常情况4.3.2 低于温度下限数码管显示温数字低于30,P3.1为低电平,故在这路上的LED灯亮,蜂鸣器发出声音,结果如图11。图11 低于下限4.3.3 高于温度上限数码管显示数字高于60,P3.0为低电平,故在这路上的LED灯亮,蜂鸣器发出声音,结果如图12。图11 高于上限4.4 系统调试在调试过程中主要是对程序的修改,特别是延时子程序。开始延时较短时,两个数码管同时显示但不稳定的显示这些温度。如果延时较长则温度数字不会同时显示出来。通过修改程序,将延时调到适中,系统正常工作。4.5 误差分析产生误差的因素主要有一下几点:(1)在参数选择的时候没有完全匹配;(2)数字电压表只能读出2位有效数字;(3)基准电压设定不适中;(4)转换位数不高。5实物展示5.1低于温度下限当温度低于30时,发出长嘀报警声和光报警,并将实时的温度显示在数码管上,如图12所示。图12低于温度下限效果图。常温度上限e 警声和光报警。5.2高于温度上限当温度高于60时,发出短嘀报警声和光报警,并将实时的温度显示在数码管上,如图13所示。图13高于温度上限效果图5.3正常温度当温度在3060之间,将实时的温度显示在数码管上,如图14所示。图14正常温度效果图6总结为期两周的课程设计就要结束了,将要迎来最后的答辩,回忆过去的这两周里,我真是感受颇多。从理论到实践,不仅仅是知识上的学习和掌握,同时也让我明白了很多的道理。这次的课程设计让我认识到了团队合作的重要性,也亲身体会了以前一个前辈对我讲的一句话“无论个人能力有多强,都强不过一个团结的团队”。另外,课程设计它是一个重要的教学环节,通过课程设计使我们了解到一些实际与理论之间的差异。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才真的实现它的价值,从而提高自己的实际动手能力和独立思考的能力。通过课程设计不仅可以巩固专业知识,为以后的工作打下了坚实的基础,而其还可以培养熟练使用资料,运用工具书的能力,把我们所学的课本知识与实践结合起来,起到温故而知新的作用。课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门设计课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。在课程设计过程中。我们要比较系统的了解运用单片机来设计温度测量系统中的每一个环节,包括从总体设计原则,本次设计综合所学的专业课程,以设计任务书的指导思想为中心,参照有关资料,有计划有头绪、有逻辑地把这次设计搞好!我在设计的过程中遇到了许多问题,同时也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对C语言掌握得不透彻,但我从来没有放弃过,甚至都到了废寝忘食的地步,遇到问题一直在思考,坚持学习,最后还是成功的设计出来了。这次课程设计使我收获很多、学会很多、比以往更有耐心很多。感谢学校及老师给我们这次课程设计的机会,最真挚的感谢我们的指导老师翁志刚老师,在设计过程中,老师精心的辅导和不厌其烦地的态度,有时不在办公室就在群里告诉我们该怎么做,才使得我们得以顺利的完成这次设计。最后再次衷心感谢我们的指导老师翁志刚老师,谢谢了!附录:程序清单#include#defineucharunsignedchar#defineuintunsignedintunsignedinttemp;unsignedchargetdata;unsignedchard;unsigned char DSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共阴数码管的段选09显示unsignedcharDSY_IDX=0xF7,0xFB,0xFD;/共阴数码管的低三位的位选unsignedcharTemperature=0,0;/定义把采集到的温度数据个位十位百位放到该数组。该数组初值为0;sbitST=P25;/AD0809转换启动信号与地址所存允许引脚注意:在使用时ALE和STRT信号引脚连在一起sbitOE=P27;/ADC0808输出允许信号sbitEOC=P26;/ADC0808转换结束信号引脚sbitCLK=P24;/ADC0808的时钟引脚sbitH_LED=P30;/超过60度时的灯光指示sbitL_LED=P31;/低于30度时的灯光指示sbitSPK=P37;/超过60度和低于30度时的蜂鸣器报警bitFlag0;bitFlag1;unsignedintcnta;unsignedintcntb;bitalarmflag;voidDelayMS(uintx)/N毫秒延时函数uchari;while(x-)for(i=0;i120;i+);voidShow_Temperature()/数码管显示函数uchari;for(i=0;i3;i+)P1=DSY_CODETemperaturei;/把采集回来的温度数字送入到P0显示P2&=DSY_IDXi;/相与是为了保证P2口的其它位的状态值保持不变,保持原来的值DelayMS(5);/延时5毫秒给硬件反应时间P2|=0x0F;/让数码管动态扫描显示voidInit()/定时器0和定时器1的初始化定时器0给ADC0808提供时钟让其工作IE=0x8a;TMOD=18;TH0=245;TL0=0;TH1=(65536-1000)/256;/给定时器1设置初值为1毫秒TL1=(65536-1000)%256;TR0=1;/开启定时器0给ADC0808提供时钟voidmain()/主函数Init();/定时器初始化H_LED=L_LED=1;/灯光提示灭while(1)ST=0;ST=1;ST=0;/寄存器SAR复位,及为ADC0809的起始信号while(1)if(EOC=1)/ADC0808转换结束后改引脚为高低平OE=1;/输出允许信号为1时表示把ADC0808采集的数据输出getdata=P0;/把采集到的数据送到P1口处理OE=0;/又打开ADC0808让继续开始转换temp=getdata*25;/因为有AD采集回来的数为0255;显 示 温 度 为 099;及255/100=25.5及25个步进值代表1摄氏度及为一个等差数列公差为25temp=te
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一建机电补考真题及答案
- 广东省招聘社区工作者试题及答案
- ERP工程师笔试复习题(题及答案已分开)
- 广东省韶关市继续教育公需科目试题及答案
- 吉林省《全科医学》测试卷(第681套)
- 《公共基础知识》考点中国的农业(含答案)
- 基孔肯雅热相关试题
- 国家开放大学电大《成本会计》形考任务二试题及答案
- 大学《数据库原理与应用》考试题库及答案
- 2023年重庆公务员行测考试真题
- 皮带输送机安全培训
- 仓库货位管理与定位策略
- 不完全性偏瘫教学查房课件
- YY/T 1906-2023一次性使用无菌闭合夹
- (4)-1.1 正确认识人的本质
- 8.12天津滨海新区爆炸事故带来的工程伦理思考
- 英美国家概况知到章节答案智慧树2023年成都文理学院
- 电厂安全生产事故应急预案模板
- midas Gen减震分析设计(上)
- GB/T 15843.3-2023信息技术安全技术实体鉴别第3部分:采用数字签名技术的机制
- GB/T 28704-2012无损检测磁致伸缩超声导波检测方法
评论
0/150
提交评论