毕业设计-基于at89s51单片机的语音温度计的设计_第1页
毕业设计-基于at89s51单片机的语音温度计的设计_第2页
毕业设计-基于at89s51单片机的语音温度计的设计_第3页
毕业设计-基于at89s51单片机的语音温度计的设计_第4页
毕业设计-基于at89s51单片机的语音温度计的设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学士学位论文基于单片机的语音温度计的设计系别计算机科学与技术系学科专业计算机科学与技术姓名王磊指导教师朱铭琳运城学院2007年6月语音温度计的设计摘要随着人们生活水平的提高,各电子产品突飞猛进的发展,电子测量仪也逐渐丰富起来,原来的模拟产品逐步向数字化综合化转化,并且不断走向人性化。该设计的实现在工农业生产以及科学实验中起到不可忽视的作用,发挥了它灵活轻巧使用方便的特点。该设计语音播报系统能够充分发挥人性化的性质,利用AT89S51作为单片机的主芯片,配合DS18B20温度传感器,实现带语音播报功能的温度测试仪。并且在实现语音播报当前温度的同时,也实现了数字液晶显示的功能,功能更形象使用更方便智能。本设计所介绍的语音温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。关键词单片机;温度计;温度传感器;设计THERMOMETEROFDESIGNABSTRACTALONGWITHTHETIMEPROGRESSANDTHEDEVELOPMENT,THEMONOLITHICINTEGRATEDCIRCUITTECHNOLOGYALREADYPOPULARIZEDTOUSLIVES,THEWORK,THESCIENTIFICRESEARCH,EACHDOMAIN,WILLALREADYBECOMEONEKINDOFQUITEMATURETECHNOLOGY,THISARTICLEINTRODUCEDONEKINDTHEDIGITALTHERMOMETERWHICHCONTROLLEDBASEDONTHEMONOLITHICINTEGRATEDCIRCUITTHISDESIGNINTRODUCEDTHEDIGITALTHERMOMETERANDTHETRADITIONALTHERMOMETERCOMPARES,HASTHEREADINGTOBECONVENIENT,MEASUREDTHEWARMSCOPEISBROAD,MEASUREDWARMACCURATE,ITSOUTPUTTEMPERATUREUSESTHENUMERALTODEMONSTRATE,MAINLYUSESINTOMEASUREDTHEWARMQUITEACCURATEPLACE,ORTHESCIENTIFICRESEARCHLABORATORYUSE,THISDESIGNCONTROLLERUSEMONOLITHICINTEGRATEDCIRCUITAT89S51,MEASUREDTHEWARMSENSORUSESDS18B20,THISTHERMOMETERMAYADJUSTTHEDEMONSTRATIONDATE,THETIME,MAYESTABLISH,THEMAXIMUMTEMPERATURELOWLYREPORTSTOTHEPOLICETHEVALUETHESURVEYTEMPERATURESURPASSESTHEHYPOTHESISTHETEMPERATUREBOUND,STARTSTHEBUZZERANDTHEINDICATINGLAMPREPORTSTOTHEPOLICETHETEMPERATUREDEMONSTRATIONISSTABLETHEREALIZATIONTEMPERATUREDEMONSTRATEDTHAT,CANABOVEACHIEVEACCURATELYREQUESTSKEYWORDSSCMTHERMOMETERTEMPERATURESENSORDESIGN目录引言1第1章绪论211课题背景212语音温度计的国内外状况213温度参数、语音播报3131温度参数3132语音播报3第2章硬件设计421方案论证和比较422设计原理4221主控制器4222温度传感器5223DS18B20温度传感器与单片机的接口电路6224主板电路6225语音温度计显示模块723设计过程7231总体设计7232各模块设计1224单片机的简介和发展趋势14241单片机的特点14242单片机的应用领域和发展趋势15第3章软件设计1631设计思路16311语音温度计设计的基本原理16312读出温度子程序16313显示数据刷新子程序18314软件结构设计1832程序设计19321程序总设计19322LED显示程序模块19第4章系统调试2041硬件调试20411硬件静态的调试20412系统硬件调试2042软件调试2143软硬联调21结论22致谢23参考文献24附录25引言随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,本温度计可调整显示日期、时间,可设定最低、最高温度报警值。测量温度超过设定的温度上、下限,启动蜂鸣器和指示灯报警。温度显示稳定。实现温度显示,能准确达到以上要求。本论文正是以此为出发点,对单片机控制的交通信号灯模型作了较详尽的介绍。近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。第1章绪论11课题背景在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用MCS51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,为自动化和各个测控领域中广泛应用的器件,在工业生产中称为必不可少的器件,尤其是在日常生活中发挥的作用也越来越大。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。本论文以上述问题为出发点,设计实现了温度实时测量、显示、控制系统。本设计方案具有较高的测量精度,更加适合对温度精度要求较高的化工生产、电力工程等行业,并希望通过本设计得到举一反三和触类旁通的效果。事实证明,现代化的温度监测控制是社会人性化发展的有力表现之一。12语音温度计的国内外状况通过网上查询、翻阅图书了解到目前国内外市场以单片机为核心的温度控制系统很多,而且方案灵活,且应用面比较广,可用于工业上的加热炉、热处理炉、反应炉,在生活当中的应用也比较广泛,如热水器,室温控制,农业中的大棚温度控制。以上出现的温度控制系统产品,根据其系统组成、使用技术、功能特点、技术指标。选出其中具有代表性的几种如下虚拟仪器温室大棚温度测控系统在农业应用方面虚拟仪器温室大棚温度测控系统是一种比较智能,经济的方案,适于大力推广,改系统能够对大棚内的温度进行采集,然后再进行比较,通过比较对大棚内的温度是否超过温度限制进行分析,如果超过温度限制,温度报警系统将进行报警,来通知管理人员大棚内的温度超过限制,大棚内的温控系统出现故障,从而有利于农作物的生长,提高产量。工业方面具有时事监控的应用在工业方面带有语音播报功能的温度计是一种比较人性智能,应用广泛,它轻巧灵活,操作方便简单,适于广泛推广。13温度参数、语音播报131温度参数基本范围50110精度误差小于05132语音播报先录音,能分160段地址为00H0A0H。我们说话平均语速4字/秒,所以20秒我们录80字。经过计算,每个字占2个地址。我们录音13段。录音用S1键,放音控制用S2键。录音时按下键后开始录音,录完每段后放开按键,录音停止。共录13段,录每段时同时用数码管提示,分别用数字0F来表示。按语音提示键播报温度,不按不播报。第2章硬件设计21方案论证和比较方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案二进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。22设计原理方案二的总体设计框图温度计电路设计总体设计方框图如图21所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。主控制器LED显示温度传感器单片机复位时钟振荡报警点按键调整图21总体设计方框图221主控制器单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。显示电路显示电路采用3位共阳LED数码管,从P3口RXD,TXD串口输出段码。硬件电路的设计DS18B20DS18B20DS18B2047KGNDGNDGNDVCCVCC单片机图22DS18B20与单片机的接口电路222温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。DS18B20的性能特点如下独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3055;零待机功耗;温度以或位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;223DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图22所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10US。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。224主板电路系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,如图23所示。图23中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。图23中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。图23单片机主板电路225语音温度计显示模块24语音温度计显示模块23设计过程231总体设计基础设计要求分模块设计每部分电路,要求各模块工作的可靠性好,抗干扰能力强,可扩展余地充足;模块与模块间要求独立性高。系统总框图如图25所示键盘控制模块单片机系统LCD信息演示模块接口电路LED计时模块温度计录放音演示模块图25系统总框图系统工作流程先录音,能分160段地址为00H0A0H。我们说话平均语速4字/秒,所以20秒我们录80字。经过计算,每个字占2个地址。我们录音13段。录音用S1键,放音控制用S2键。录音时按下键后开始录音,录完每段后放开按键,录音停止。共录13段,录每段时同时用数码管提示,分别用数字0F来表示。按语音提示键播报温度,不按不播报。一、语音温度计温馨提示您,当前温度(00H27H)三、一(28H2FH)四、二(30H37H)五、三(38H3FH)六、四(40H47H)七、五(48H4FH)八、六(50H57H)九、七(58H5FH)十、八(60H67H)十一、九(68H6FH)十二、十(70H77H)十三、度(78H7FH)P33为录音。P27为放音。P36为按键模块说明;A主控制单片机主控单片机采用一片ATMELAT89S51。根据题目要求,充分利用了单片机灵活控制的优点,发挥其优势功能,采用单片机控制显示信号灯,提高了系统的灵活性,设置方便。AT89S51芯片本身集成了看门狗(WDT)电路,这是为了系统更加的稳定可靠,避免了系统因为死机而停止工作的情况发生这种做法对于实际上长时间运行在恶劣状况的交通灯控制系统来说是十分必要的。它可以完成自动加载复位,省去人工调整的麻烦,可以做到无人职守。AT89S51芯片简介AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4KBYTESISPINSYSTEMPROGRAMMABLE的可反复擦写1000次的FLASH只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFLASH存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点40个引脚,4KBYTESFLASH片内程序存储器,128BYTES的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。(如图26所示)。图26AT89S51芯片此外,AT89S51设计和配置了振荡频率可为0HZ并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。主要功能特性兼容MCS51指令系统32个双向I/O口2个16位可编程定时/计数器全双工UART串行中断口线,2个外部中断源中断唤醒省电模式看门狗(WDT)电路灵活的ISP字节和分页编程4K可反复擦写1000次)ISPFLASHROM4555V工作电压时钟频率033MHZ128X8BIT内部RAM低功耗空闲和省电模式3级加密位软件设置空闲和省电功能双数据寄存器指针AT89S51的引脚功能介绍VCCAT89S51电源正端输入,接5V。VSS电源地端。XTAL1单芯片系统时钟的反相放大器输入端。XTAL2系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一个20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。RESETAT89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。EA/VPP“EA“为英文“EXTERNALACCESS“的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用8751内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(VPP)。ALE/PROGALE是英文“ADDRESSLATCHENABLE“的缩写,表示地址锁存器启用信号。AT89S51可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0A7)锁进锁存器中,因为AT89S51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN此为“PROGRAMSTOREENABLE“的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P00P07)端口0是一个8位宽的双向输出入端口,共有8个位,P00表示位0,P01表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当作I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。设计者必须外加一个锁存器将端口0送出的地址锁住成为A0A7,再配合端口2所送出的A8A15合成一个完整的16位地址总线,而定址到64K的外部存储器空间。PORT2(P20P27)端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了用做一般I/O端口使用外,若是在AT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当作I/O来使用了。PORT1(P10P17)端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P10又当作定时器2的外部脉冲输入脚,而P11可以有T2EX功能,可以做外部中断输入的触发脚位。PORT3(P30P37)端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下P30RXD,串行通信输入。P31TXD,串行通信输出。P32INT0,外部中断0输入。P33INT1,外部中断1输入。P34T0,计时计数器0输入。P35T1,计时计数器1输入。P36WR外部数据存储器的写入信号。P37RD,外部数据存储器的读取信号。B信号显示对于数字显示系统,我们使用串行移位寄存器74HC164来控制LED数码管,每2片为1组,用来构成数码管的099秒的数字提示,还有4个LCD二极管,用来控制信号灯的亮与暗。使用这样4组串行连接,这种布局设计便于我们PCB板的布局和制作,而且能够更形象的模拟出温度的测控功能。74HC164静态显示接口芯片简介M74HC164为串行输入、并行输出移位寄存器,74HC164为单向总线驱动器。在串行口为方式0状态,即工作在移位寄存器方式,波特率为振荡频率的十二分之一。器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时,允许从TXD端输出移位脉冲。第一帧(8位)数据发送完毕时,各控制信号均恢复原状态,只有TI保持高电平,呈中断申请状态。第一个74HC164把第一帧数据并行输出,LED1显示该数据。然后,用软件将TI清零,发送第二帧数据。第二帧数据发送完毕,LED1显示第二帧数据,第一帧数据串行输入给第二个74HC164,LED2显示第一帧数据。依此类推,直到把数据区内所有数据发送出去。应该注意,数据全部发送完后,第一帧数据在最后一个LED显示。由于TXD端口最多可以驱动8个TTL门。232各模块设计1电源模块采用单片机控制模块提供电源。优点是系统简明扼要,节约成本;缺点是输出功率不高。其电路图如图27所示图27电源模块2单片机及复位键控制模块单片机采用89S51,其中有8K内存可用。对交通灯的控制主要用其中的计数器定时来完成。一方面要完成对各模块的控制,另一方面也要协调好各模块的时序及口线冲突问题。单片机复位电路是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从该状态开始工作,例如复位后PC0000H,使单片机从第一个单元取指令。无论是在单片机刚接上电源时,还是断电后或者发生故障后都要复位。单片机复位的条件是使RST/VPD引脚加上持续两个机器周期(即24个振荡周期)的高电平。若时钟频率为12MHZ,每机器周期为1US,则只需2US以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位电路如图28按键复位电路所示。图28按键复位电路该电路除了具有上电复位电路功能,还可以使用中复位,只要按下图29中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。单片机复位期间不产生ALE和PSEN信号,即ALE1,这表明单片机复位不会有任何取值操作。按键复位电路,易掌握,好操作。(3)显示模块LED用来实现倒计时功能,可直接从74HC164的接口上接过来。其控制较为简单。其电路图如图37所示。LED显示器的简单介绍简单的LED显示器有LED状态显示器(俗称发光二极管)、LED七段显示器(俗称数码管)和LED十六段码显示器。发光二极管用于显示系统的两种状态数码管用于显示数字,LED十六段显示器用于字符显示。本文采用LED七段显示器。数码管的结构由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字09,字符AF等符号及小数点“”。有共阳极和共阴极两种类型。共阳极数码管中8个发光二极管的阳极(二极管正端)连在一起。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输入端为低电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阴极数码管中8个发光二极管的阴极(二极管负端)连在一起。通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。我采用共阴极LED数码管图29LED显示发光二极管的作用发光二极管是一种由磷化镓(GAP)等半导体材料制成的、能直接将电能转变成光能的发光显示器件。当其内部有一定电流通过时,它就会发光。二极管是用来控制哪个灯亮,12个二极管分别接在AT89S51芯片上的P10,P11,P12,P13口。如下图210所示。图210二极管显示24单片机的简介和发展趋势单片机全称为单片微型计算机(SINGLECHIPMICROCOMPUTER),又称微控制器或嵌入式控制器。它是将计算机的基本部件微型化并集成到一块芯片上的微型计算机,通常片内都含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线等。随着技术的发展,单片机片内集成的功能越来越强大,并朝着片上系统方向发展。单片机有着体积小、功耗低、功能强、性能价格比高、易于推广应用等显著优点,在自动化装置、智能仪器仪表、过程控制、通信、家用电器等许多领域得到日益广泛的应用。241单片机的特点单片机与通用微机相比较,在结构,指令设置上均有其独特之处,其主要特点如下1单片机的存储器ROM和RAM是严格区分的ROM称为程序存储器,只存放程序,固定常数及数据表格RAM则为数据存储器,用作工作区及存放用户数据这样的结构主要是考虑到单片机用于控制系统中,有较大的程序存储空间,把开发成功的程序固化在ROM中,而把少量的随机数据存放在RAM中这样,小容量的数据存储器能以高速RAM形式集成在单片机内,以加速单片机的执行速度但单片机内的RAM是作为数据存储器用,而不是当作高速缓冲存储器CACHE使用2采用面向控制的指令系统为满足控制的需要,单片机有更强的逻辑控制能力,特别是具有很强的位处理能力3单片机的I/O引脚通常是多功能的由于单片机芯片上引脚数目有限,为了解决实际引脚和需要的信号线的矛盾,采用了引脚功能复用的方法引脚处于何种功能,可由指令来设置或由机器状态来区分4单片机的外部扩展能力强在内部的各种功能部分不能满足应用需求时,均可在外部进行扩展如扩展ROM,RAM,I/O接口,定时器/计数器,中断系统等,与许多通用的微机接口芯片兼容,给应用系统设计带来极大的方便和灵活性242单片机的应用领域和发展趋势单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴在智能仪器仪表上的应用在工业控制中的应用在家用电器中的应用在计算机网络和通信领域中的应用单片机在医用设备领域中的应用纵观单片机的发展过程,可以预示单片机的发展趋势,大致有低功耗CMOS化微型单片化主流与多品种共存第3章软件设计31设计思路311语音温度计设计的基本原理主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1S进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图41所示。初始化调用显示子程序1S到初次上电读出温度值温度计算处理显示数据刷新发温度转换开始命令NYNY图31主程序流程图312读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图42示Y发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完CRC校验正确移入温度暂存器结束NNY图32读温度流程图313显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图43及图44温度数据移入显示寄存器十位数0百位数0十位数显示符号百位数不显示百位数显示数据(不显示符号)结束NNYY图33显示数据刷新流程图发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束图34温度转换流程图314软件结构设计程序总体执行过程是上电后系统自动进行初始化,定时/计数器开始工作,检测标志单元3CH,根据3CH单元中的内容让交通灯处于对应的状态,然后调用显示子程序,将3AH和3BH地址内的数据在七段数码管上显示出来。接着循环检测3CH单元中的内容以及特殊情况控制信号和调用显示子程序,让交通灯处于对应的状态,将3AH地址内的数据送七段数码管上显示出来,在整个过程中定时/计数器中断始终打开等待定时/计数器中断。中断服务程序完成状态的变换(3CH的值的改变)以及LED显示内容(3AH)的改变。32程序设计321程序总设计软件设计本系统的软件包括主程序,以及十三段录音和播报的子程序。(总程序代码见附录)322LED显示程序模块LED显示程序就是将3AH单元的内容在两个LED显示器上显示出来。当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值,重新进入循环。LED显示SGLJBF0,SGL1;F0位为1则转移到SGL1执行,判断F0来控制程序流程MOVA,R0;把R0的内容20给了寄存器ALCALLDY1;调用显示控制子程序DY1MOVA,R1;把R1的内容40给了寄存器ALCALLDY1;调用显示控制子程序DY1MOVA,R0LCALLDY1MOVA,R1LCALLDY1LCALLDELAY;调用DELAY子程序SJMPDIAOY;跳到标号DIAOY执行SGL1MOVA,R1;把R1的内容40给了寄存器ALCALLDY1;调用显示控制子程序DY1MOVA,R0;把R0的内容20给了寄存器ALCALLDY1;调用显示控制子程序DY1MOVA,R1LCALLDY1MOVAR0LCALLDY1LCALLDELAY;调用DELAY子程序第4章系统调试近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。根据方案设计的要求,调试过程共分三大部分硬件调试、软件调试和软硬联调。单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。41硬件调试411硬件静态的调试1排除逻辑故障这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。2排除元器件失效造成这类错误的原因有两个一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。3排除电源故障在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V48V之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。412系统硬件调试电路的调试主要看接口以及连线是否正确。依次检查,直到正常工作。42软件调试本系统的软件系统较大,全部采用汇编语言编写,除语法与逻辑差错外,当确认程序没问题时,直接下载到单片机仿真调试。采取自下到上的方法,单独调好每一个模块,最后完成一个完整的系统调试。软件调试在WAVEE2000编译器下进行,源程序编译及仿真调试应分段或以子程序为单位一个一个进行,最后可结合硬件实时调试。伟福仿真器采用大规模可编程芯片及专用仿真芯片制造,集仿真器、逻辑分析仪、跟踪器、逻辑笔、波形发生器、影子存储器、代码覆盖、记时器、程序时效分析、数据时效分析、硬件测试仪、事件触发器于一体的通用仿真器。WAVE6000软件在以前的版本基础上做了增加了许多功能,特别是在窗口管理、项目管理和源文件编辑工具上做了较大改进,在WAVE6000环境下的所有窗口均可以放在窗口的同一块区域,各窗口可以直接切换,节省了窗口的面积,使窗口管理更有效。WAVE6000还增强了项目管理和源文件编辑方面的功能,使得项目、文件切换更方便,有效地后退、前进功能使得修改程序更方便。新增加的书签窗口和断点窗口可以有效地管理断点和书签,使得程序员无需在众多的代码和断点中逐行查询,断点信息和书签信息在各自的窗口中显示一目了然。应用WAVE6000软件进行编译调试程序,使程序生成十六进制文件。43软硬联调系统做好后,进行系统的完整调试。联机仿真必须借助仿真开发装置、示波器、万用表等工具。这些工具是单片机开发的最基本工具。信号线是联络80S51和外部器件的纽带,如果信号线连结错误或时序不对,那么都会造成对外围电路读写错误。51系列单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号(PSEN)、地址锁存信号(ALE)、复位信号等几大类。这些信号大多属于脉冲信号,对于脉冲信号借助示波器(这里指通用示波器)用常规方法很难观测到,必须采取一定措施才能观测到。应该利用软件编程的方法来实现。(1)初始化后,开始运行。(2)如果运行过程中出现问题,按复位键后,重新开始。结论经过查阅资料与各位老师的精心指导,终于完成了我的语音温度计的设计。在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。从这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次毕业设计中的最大收获。致谢通过本次毕业设计,我在指导老师朱铭琳老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。另外,此次毕业设计还获得了计科系各位领导和老师的大力支持。在此,我衷心感谢朱铭琳老师以及物理系孙老师的指导和支持。在未来的工作和学习中,我将以更好的成绩来回报各位领导和老师。同时,我要感谢我们学院的各位老师,正是由于他们的传道、授业、解惑,让我学到了专业知识,并从他们身上学到了如何求知治学、如何为人处事。特别要要感谢赵润林老师在毕业设计阶段给我的帮助,也要感谢我的母校运城学院,是她提供了良好的学习环境和生活环境,让我的大学生活丰富多姿,为我的人生留下精彩的一笔。最后,向我的亲爱的家人和亲爱的朋友表示深深的谢意,他们给予我的爱、理解、关心和支持是我不断前进的动力。最后,衷心地感谢所有关心和帮助过我的所有恩师、所有亲朋好友,衷心地祝愿他们永远幸福、快乐参考文献1全国大学生电子设计竞赛组委会第三届全国大学生电子设计竞赛获奖作品选编北京北京理工大学出版社,19982余锡存、曹国华,单片机原理及接口技术,陕西西安电子科技大学出版社,200283李建忠,单片机原理及应用,陕西西安电子科技大学出版社,200414谢瑞和、翁虹,32位微型计算机原理与接口技术,北京高等教育出版社,200475肖来胜、冯建兰,单片机技术实用教程,武汉华中科技大学出版社,2004106蔡美琴、张为民,MSC51系列单片机系统及其应用,北京高等教育出版社(第二版),北京,20057V7李华MCS51系列单片机实用接口技术M北京北京航空航天大学出版社,19938周航慈单片机应用程序设计技术M北京北京航空航天大学出版社,19919曹巧媛单片机原理及应用M北京电子工业出版社,199710何立民MCS51系列单片机应用系统设计M北京北京航空航天大学出版社,199511YANJR,QIANXZOSCILLATIONANDCOMPARISIONRESULTSFORDELAYDIFFERENCEEQUATIONSJJMATHANAAPPL,1992,165234636012WEIZHOU“SYSTEMATICRESEARCHONHIGHACCURACYFRE2QUENCYMEASUREMENTSANDCONTROL”DSHIZUOKAUNIVERSI2TY,DOCTORDISSERTATION,FEB2000,PP2632,4653附录程序设计总代码如下TEMPER_LEQU29HTEMPER_HEQU28HFLAG1EQU38H是否检测到DS18B20标志位A_BITEQU20H数码管个位数存放内存位置B_BITEQU21H数码管十位数存放内存位置XSEQU40H时间累积单元MS500EQU41HORG0000HLJMPZHUORG0003HRETIORG000BHRETIORG0013HRETIORG001BHLJMPDSHIORG0030HZHUMOVA,00HMOVXS,AMOVMS500,AMOVTMOD,10HMOVTH1,20HMOVTL1,00HSETBET1SETBEAMOVP1,AMOVP0,AMOVR5,ACLRP36开第二个数码管显示1CMOVP1,3FHMOVA,02HJNBP21,XSWD显示温度LOOPJNBP20,LUYINJNBP21,XSWD显示温度SETBP25关录音AJMPLOOPLUYINLCALLD10MSJBP20,LOOPMOVDPTR,LYADD录音地址加一MOVA,R5INCR5MOVCA,ADPTRMOVP0,ACLRP25准备录音MOVDPTR,NUMTAB录音数码管显示加一MOVA,R5MOVCA,ADPTRMOVP1,ALYJBP20,LOOPSJMPLYXSWDMOVA,00HMOVP0,AMOVR5,01HMAINJNBP21,FYIN播报语音JBF0,FYINNSJMPBEGINFYINLCALLD10MSJBP21,MAINJNBP21,SETBF0SETBTR1开定时器MOVP0,00HCLRP27开始放音FYINNMOVA,MS500CJNEA,9,STILL1CLRTR0关定时器SETBP27关放音LCALLD10MS第一段完MOVDPTR,LYADDMOVA,B_BIT取十位数MOVCA,ADPTRMOVP0,ACLRP27SETBTR0MOVA,MS500STILL1CJNEA,11,STILL2CLRTR0关定时器SETBP27关放音LCALLD10MS第二段完MOVP0,70HCLRP27MOVA,MS500STILL2CJNEA,13,STILL3SETBP27关放音LCALLD10MS第三段完MOVDPTR,LYADDMOVA,A_BIT取个位数MOVCA,ADPTRMOVP0,ACLRP27MOVA,MS500STILL3CJNEA,14,STILL4SETBP27关放音LCALLD10MS第四段完MOVP0,78HCLRP27MOVA,MS500STILL4CJNEA,15,BEGINSETBP27关放音LCALLD10MSCLRTR1CLRF0第五段完MOVMS500,00HLJMPMAINBEGINLCALLGET_TEMPER调用读温度子程序MOVA,29HMOVB,ACLRCRLCACLRCRLCACLRCRLCACLRCRLCASWAPAMOV31H,AMOVA,BMOVC,40H将28H中的最低位移入CRRCAMOVC,41HRRCAMOVC,42HRRCAMOVC,43HRRCAMOV29H,ALCALLDISPLAY调用数码管显示子程序AJMPMAIN这是DS18B20复位初始化子程序INIT_1820SETBP34NOPCLRP34主机发出延时537微秒的复位低脉冲MOVR1,3TSR1MOVR0,107DJNZR0,DJNZR1,TSR1SETBP34然后拉高数据线NOPNOPNOPMOVR0,25HTSR2JNBP34,TSR3等待DS18B20回应DJNZR0,TSR2LJMPTSR4延时TSR3SETBFLAG1置标志位,表示DS1820存在LJMPTSR5TSR4CLRFLAG1清标志位,表示DS1820不存在LJMPTSR7TSR5MOVR0,117TSR6DJNZR0,TSR6时序要求延时一段时间TSR7SETBP34RET读出转换后的温度值GET_TEMPERSETBP34LCALLINIT_1820先复位DS18B20JBFLAG1,TSS2RET判断DS1820是否存在若DS18B20不存在则返回TSS2MOVA,0CCH跳过ROM匹配LCALLWRITE_1820MOVA,44H发出温度转换命令LCALLWRITE_1820这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒LCALLDISPLAYLCALLINIT_1820准备读温度前先复位MOVA,0CCH跳过ROM匹配LCALLWRITE_1820MOVA,0BEH发出读温度命令LCALLWRITE_1820LCALLREAD_18200将读出的温度数据保存到35H/36HRET写DS18B20的子程序有具体的时序要求WRITE_1820MOVR2,8一共8位数据CLRCWR1CLRP34MOVR3,6DJNZR3,RRCAMOVP34,CMOVR3,23DJNZR3,SETBP34NOPDJNZR2,WR1RET读DS18B20的程序,从DS18B20中读出两个字节的温度数据READ_18200MOVR4,2将温度高位和低位从DS18B20中读出MOVR1,29H低位存入29HTEMPER_L,高位存入28HTEMPER_HRE00MOVR2,8数据一共有8位RE01CLRCSETBP34NOPNOPCLRP34NOPNOPNOPSETBP34MOVR3,9RE10DJNZR3,RE10MOVC,P34MOVR3,23RE20DJNZR3,RE20RRCADJNZR2,RE01MOVR1,ADECR1DJNZR4,RE00RETDISPLAYMOVA,29HMOVB,1010进制/1010进制DIVABMOVB_BIT,A十位在AMOVA_BIT,B个位在BMOVR0,4DPL1MOVR1,250显示1000次DPLOPMOVDPTR,NUMTABMOVA,A_BIT取个位数MOVCA,ADPTR查个位数的7段代码MOVP1,A送出个位的7段代码CLRP36开个位显示ACALLD1MS显示1MSSETBP36MOVDPTR,NUMTABMOVA,B_BIT取十位数MOVCA,ADPTR查十位数的7段代码MOVP1,A送出十位的7段代码CLRP37开十位显示ACALLD1MS显示1MSSETBP37DJNZR1,DPLOP250次没完循环DJNZR0,DPL14个250次没完循环RET1MS延时按12MHZ算D1MSMOVR7,80DJNZR7,RETDSHIINCXSMOVA,XSCJNEA,10,TGUOMOVXS,00HINCMS500TGUOMOVTH1,20HMOVTL1,00HRETID10MSMOVR3,20D1MOVR4,250DJNZR4,DJNZR3,D1RETLYADDDB00H,28H,30H,38H,40H,48H,50H,58H,60H,6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论