ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:815.70KB ,
资源ID:41871      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-41871.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(毕业设计(论文):数字温度计的设计.doc)为本站会员(文****钱)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

毕业设计(论文):数字温度计的设计.doc

1、毕业设计论文数字温度计的设计设计者指导老师摘要在一些温控系统电路中,广泛采用的是通过热电偶、热电阻或PN结测温电路经过相应的信号调理电路,转换成AD转换器能接收的模拟量,再经过采样保持电路进行AD转换,最终送入单片机及其相应的外围电路,完成监控。但是由于传统的信号调理电路实现复杂、易受干扰、不易控制且精度不高。本文介绍单片机结合DS18B20温度控制系统设计,因此,本系统用一种新型的可编程温度传感器(DS18B20),不需复杂的信号调理电路和AD转换电路能直接与单片机完成数据采集和处理,实现方便、精度高,可根据不同需要用于各种场合。关键词单片机,AT89S51,MAX232,传感器DS18B2

2、0单片机汇编语言程序设计师培训毕业论文1目录摘要0第一章绪论111单片机概述112选题背景及设计意义213设计方案论证2第二章硬件设计321硬件电路的设计422各元器件介绍9第三章系统软件设计1331各部分流程图1332汇编语言程序17第四章调试2541终合调试25致谢26参考文献26附录27第一章绪论11单片机概述单片机的结构特征是将组成计算机的基本部件集成在一块晶体芯片上,构成一台功能独特的单片微型计算机。一台典型的单片机的基本组成结构包括中央处理器(CPU),存储器(ROM和RAM),并行I/O口,串行I/O口,定时器/计数器,定时电路及元件。由此可见,单片机在结构上突破了常规的按逻辑功

3、能划分芯片。由多片构成了微型计算机的设计思想,将构成计算机的许多功能集成在一块晶体芯片上。单片机的特点1受密度限制芯片存储器存储容量较小,一般ROM小于4/2KB,RAM小于256字节。2可靠性良好单片机是按照工业控制要求设计的,其抗工业噪声干扰优于一般的CPU,程序指令及常数数据都烧在ROM内,其许多信号通道均在同一芯片内,因此可靠性较高。3易扩充单片机具有一般微电脑所必须的器件,可以扩充为各种规模的微电脑系统。4控制功能强为了满足工业控制要求,单片机指令除了输入/输出控制指令,逻辑判断指令外,还有更为丰富的条件分支跳跃指令。单片机的应用领域如下单片机汇编语言程序设计师培训毕业论文21家用电

4、器领域目前国内各种家用电器已普遍采用单片机控制取代传统的控制电路,做成单片机控制系统。2办公自动化领域现代办公室所使用的大量通信,信息产品多数采用了单片机。3在商业营销系统已广泛使用的电子秤,收款机,条形码阅读器,仓库安全监控系统,商场保安系统,空气调节系统等,目前已纷纷采用单片机构成专用系统。4工业自动化如工业过程控制,过程监测,工业控制器及机电一体化系统等,这些系统除一些小型工控机之外,许多都是以单片机为核心的单机或多机网络系统。5智能仪表与集成智能传感器传统的控制电路目前各种变送器,电气测量仪表普遍采用单片机应用系统替代传统的测量系统,使测量系统具有各种智能化功能。将单片机和传感器相结合

5、可以构成新一代的智能传感器。他将传感器初级变换后的电量做进一步的变换,处理,输出能满足远距离传送,能与微机接口的数字信号。6汽车电子与航空航天电子系统通常在这些电子系统中的集中显示系统,动力监测控制系统,自动驾驭系统,通信系统,以及运行监视器(黑匣子)等,都要都成冗余的网络系统。12选题背景及设计意义一、选题背景最早的温度计是在1593年由意大利科学家伽利略发明的。他的第一只温度计是一根一端敞口的玻璃管,另一端带有核桃大的玻璃泡。使用时先给玻璃泡加热,然后把玻璃管插入水中。随着温度的变化,玻璃管中的水面就会上下移动,根据移动的多少就可以判定温度的变化和温度的高低。这种温度计,受外界大气压强等环

6、境因素的影响较大,所以测量误差大。荷兰人华伦海特在1709年利用酒精,在1714年又利用水银作为测量物质,制造了更精确的温度计。把一定浓度的盐水凝固时的温度定为0,把纯水凝固时的温度定为32,把标准大气压下水沸腾的温度定为212,用代表华氏温度,这就是华氏温度计。二、设计意义本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。它具有结构简单,不需外接元件,采用一根I/O数据线既可供电又可传输数据、并可由用户设置温度报警界限等特点,可广泛用于食品库、冷库、粮库等需要控制温度的地方。该设计控制器使用

7、单片机AT89S51,测温传感器使用DS18B20,,实现温度显示,能准确达到以下要求测温范围55125精度误差小于05LED数码管直读显示可以任意设置温度的上下限报警功能13设计方案论证方案一本电路是温度计的设计,在测温电路中利用热敏电阻器件的感温效应,将随被测温变化的电压或电流采集过来,进行A/D转换后,用单片机进行数据处理,经显示电路就可以显示出来。方案二在日常生活及工农业生产中经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。而单片机汇编语言程序设计师培训毕业论文3热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作

8、成本高。方案三基于单片机的温度传感器设计的数字温度计已经很成熟,各种精度很高的温度计不断推出。数字温度计要求检测的精度必须高于控制的精确度,否则无从实现控制的精度要求。所以精度已经成为数字温度计的一项重要的性能参数。因此追求高精度是数字温度计的一个目标。不仅如此,检测还涉及国计民生各个部门,可以说在所以科学技术领域无时不在进行检测。科学技术的发展和检测技术的发展是密切相关的。现代化的检测手段能达到的精度、灵敏度及测量范围等,在很大程度上决定了科学技术的发展水平。同时,科学技术的发展达到的水平越高,又为检测技术、传感器技术提供了新的前提手段。目前市场上出现了很多传感器,很多精度高的传感器已经出现

9、,而且精度越来越高。数字温度计未来将会更精确、更人性化,为我们做出更多贡献。为此我们选择方案三的设计,框图如下温度计电路设计总体设计方框图如图所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用四位LED数码管以串行口传送数据实现温度显示。第二章硬件设计单片机复位报警点按键时钟振荡主控制器LED显示温度传感器单片机汇编语言程序设计师培训毕业论文421硬件电路的设计123456ABCD654321DCBATITLENUMBERREVISIONSIZEBDATE23NOV2007SHEETOFFILECDOCUMENTSANDSETTINGSADMINISTRATOR桌面温度计D

10、DBDRAWNBYEA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD1074F00R1330KR2330KR3330KR4330KR7330KR8330KR5330KR6330KQ2PNPQ4PNPQ3PNPQ1PNP10KR610K10K10KVCCVCC3DQ2GND1260DS1

11、8B20U2R247KVCCX1CRYSTALC222PC122PVCCR110KC710UC410UC610UC310UC510UVCCVCC162738495P1COMPIMC1C2U3C2C11345VS6VS2R2IN8T2OUT7R1IN13T1OUT14R2OUT9T3IN10R1OUT12T1IN11MAX232JABCDEFGDP1234JSHUMAGUAN本设计系统共由四部分组成AT89S51为控制装置,负责各部分的控制和数据采集。DB9和MAX232组成了通讯系统,负责和上位机通讯的TTL/RS232电平转换。DS18B20为温度测量装置,负责对温度进行采集并转换为数字信号

12、送AT89S51进行处理。共阳极数码管为显示装置,负责显示工作状态和DS18B20采集到的数据。注LED数码管驱动电路中采用P0口加上拉电阻的形式,为方便焊接,本设计中电阻使用了排阻的方式,三极管使用的是S90121、时钟电路时钟电路用于产生单片机工作所需的时钟信号,时序是指令执行中各信号之间的相互关系。单片机本身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。在AT89S51单片机内部带有时钟电路,因此,只需要在片外通过XTAL1和XTAL2引脚接入定时控制元件晶体振荡器和电容,即可构成一个稳定的自激振荡器。在AT89S51芯片内部

13、有一个高增益反相放大器,而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容。在单片机的XTAL1脚和XTAL2脚之间并接一个晶体振荡器就构成了内部振荡方式。AT89S51单片机内部有一个高增益的反相放大器,XTAL1为内部反相放大器的输入端,XTAL2为内部反相放大器的输出端,在其两端接上晶振后,就构成了自激振荡电路,并产生振荡脉冲,振荡电路输出的脉冲信号的频率就是单片机汇编语言程序设计师培训毕业论文5晶振的固有频率。在实际应用中通常还需要在晶振的两端和地之间各并上一个小电容。AT89S51的时钟电路如图22所示图22AT89S51的时钟电路图中,电容器C1、C2常称为微调电容

14、,其作用有三个快速起振、稳定振荡频率、微调振荡频率。AT89S51单片机允许外接033MHZ的晶振,电容器C1、C2可取5PF33PF。一般情况下,使用频率较低的晶振时,C1、C2的容量可选大一点。为了更好地保证振荡器稳定可靠地工作,在实际装配电路时,晶振X和电容C1、C2应尽可能地安装在XTAL1、XTAL2引脚附近。内部振荡方式所得到时钟信号比较稳定,在实际电路中,一般是选用内部振荡方式。用晶振和电容构成谐振电路。电容大小与晶振频率和工作电压有关。但电容的大小影响振荡器的稳定性和起振的快速性,为了提高精度,本实验板采用30PF的电容作为微调电容。在设计电路板时,晶振、电容等均应尽可能靠近芯

15、片,以减小分布电容,保证振荡器振荡的稳定性。2、复位电路复位的功能复位是单片机的初始化操作,其目的是使CPU和系统中各部分处于一个确定的状态,并从这一状态开始工作。系统上电路或死机后都要进行复位操作。单片机复位时,将程序计数器PC初始化为0000H,表明复位后程序从0000H地址单元开始执行,同时复位时输出控制信号ALE,PSEN均为高电平。复位后,P0P3口输出高电平,且使准双向口均处于输入状态。复位不改变片内RAM单元的内容,但使各特殊功能寄存器SFR回复到初始状态,复位后各特殊功能寄存器值如表26所示表26主要特殊功能寄存器复位初始值特殊功能寄存器初始值特殊功能寄存器初始值单片机汇编语言

16、程序设计师培训毕业论文6ACC00HTCON00HB00HTMOD00HPSW00HTL000HSP07HTH000HDPTR0000HTL100HP0P3FFHTH100HPCON0XXX0000BT2CON00HAUXRXXX00XX0BT2MODXXXXXX00BAUXR1XXXXXXX0BRCAP2L00HIE0X000000BRCAP2H00HIPXX000000BTL200HSCON00HTH200HSBUFXXXXXXXXXBWDTRSTXXXXXXXXB表26中部分符号的含义如下PSW00H表明复位后自动选择第0组工作寄存器组为当前工作寄存器组SP07H表明堆栈指针指向片内RA

17、M07H单元,堆栈的压入操作为先加后压,所以第一个被压入的数据存放在08H单元中P0P3FFH表明各端口写入1,此时各端口既可作输入口,也可以作输出口AUXRXXX00XX0表明ALE引脚在CPU不访问外部存储器期间有脉冲信号输出AUXR1XXXXXXX0表明选择DPTR0作数据指针IE00H表明各中断均关闭TCON00H表明T0,T1均被停止SCON00H表明串口处于方式0,允许发送,不允许接收PCON00H表明SMOD0,波特率不加倍。PD0,IDL0,单片机处于正常工作方式。单片机的RST引脚为复位引脚,振荡电路正常工作后,RST端加上持续两个机器周期的高电平后,单片机就被复位。复位电路

18、有3种基本方式上电复位,开关复位和看门狗复位。这里只介绍上电复位和开关复位。单片机汇编语言程序设计师培训毕业论文7(1)上电复位所谓上电复位就是单片机只要一上电就自动实现复位操作。常用的上电复位电路如图1所示82K10PFMCS51RSTVCCGND10PFMCS51RSTVCCC1R1C1(A)B图1单片机上电复位电路图图A、图B所示电路在本质上是一样,它们都是RC微分复位电路。由于单片机的RST端对地存在一个等效电阻R,图A中的微分电阻为R1与R的并联电阻,图B中的微分电阻取至RST端的等效电阻R。上电时,电源通过微分电阻对电容充电,由于电容两端电压不能突变,所以RST端出现一个正脉冲。过

19、一段时间后,电容两端电荷充满,电容等效为开路,于是RST端所加电压为低电平,单片机完成复位。从图中可以看出,RST端高电平持续时间取于RC电路的充电时间常数。合理选择C1和R1就可以实现上电复位。由于上电后,振荡电路起振要经历一个振荡建立时间,不同频率的振荡器,起振荡建立时间不同,所以不同振荡频率下,上述上电复位电路的参数不同。通常要求上电时RST复位高电平能持续10MS以上,R、C的取值一般为C11030F,R11K10K当晶振频率为6MHZ时,可取R11K,C122F晶振频率为12MHZ时,可取C110F,R182K(2)开关复位开关复位是指通过接通按钮开关,使单片机进入复位状态。开关复位

20、电路一般不单独使用。在应用系统设计中,若需使用开关复位电路,一般的做法是将开关复位与上电复位组合在一起形成组合复位电路,上电复位电路完成上电复位功能,开关复位电路完成人工复位。这种组合复位电路如图2所示单片机汇编语言程序设计师培训毕业论文851K10PFMCS51RSTGND1K5VKC1R1R2图23单片机组合复位电路图单片机组合复位电路图中C1,R1构成了上电复位电路。上电复位后,电源经R1对C1充满电源,C1等效于开路,RST端为低电平;单片机正常工作。按开关K后,C1两端电荷经R2迅速放电,K断开后,由C1、R1及电源完成对单片机的复位操作。在上述电路中,R2的取值一般为0200,C1

21、、R1按上电复位电路的设计而取值。复位电路的作用非常重要,能否成功复位关系但单片机系统能否正常运行的问题。如果振荡电路正常而单片机系统不能正常运行,其主要原因是单片机没有完成正常复位,程序计数器的值没有回0,特殊功能寄存器没有回到初始状态。这时可以适当地调整上电复位电路的阻容值,增加其充电时间常数来解决问题。本文采用上电复位电路。3、LED数码管显示电路单片机系统中常用的显示器有发光二极管LEDLIGHTEMITTINGDIODE显示器、液晶LCDLIQUIDCRYSTALDISPLAY显示器、CRT显示器等。LED、LCD显示器有两种显示结构段显示(7段、米字型等)和点阵显示(58、88点阵

22、等)。(1)静态显示方式LED显示器工作方式有两种静态显示方式和动态显示方式。静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字形码。送入一次字形码显示字形一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。(2)动态显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描单片机汇编语言程序设计师培训毕业论文9显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和

23、人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。图24七段LED显示器使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。用共阴LED显示器显示16进制数的编码已列在下表。共阴数码管码表0X3F,0X06,0X5B,0X4F,0X66,0X6D,0123450X7D,0X07,0X7F,0X6F,0X77,0X7C,6789AB0X39,0X5E,0X79,0X71,0X00CDEF无显

24、示22各元器件介绍AT89S51AT89S51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造计术制造,与工业标准的MCS51指令集和输出管脚相兼容,并有ISP管脚,只需要将单片机的ISP引脚接入专用的下载线上就可以编程。由于将多功能8位CPU和闪烁存储器组合在这个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89S51图如下ABCDEGGNDFDPGNDABCEFGDDPABCDEFGDPDPGFEDCBA5V(A)(B)单片机汇编语言程序设计师培训毕业论

25、文1010201918171615141312119876543212122232425262728293031323334353637383940P10P11P12P13P14MOSIP15MISOP16SCKP17RSTRXDP30TXDP31INT0P32INT1P33T0P34T1P35WRP36RDP37XTAL2XTAL1GNDVCCP00AD0P01AD1P02AD2P03AD3P04AD4P05AD5P06AD6P07AD7EA/VPPALE/PROGPSENP27A15P26A14P25A13P24A12P23A11P22A9P20A8P22A10(1)主要特性8031CPU

26、与MCS51兼容4K字节可编程FLASH存储器(寿命1000写/擦循环)全静态工作0HZ24KHZ三级程序存储器保密锁定1288位内部RAM32条可编程I/O线两个16位定时/器计数器6个中断源可编程串行通道低功耗的闲置和调电模式VCC供电电压GND接地(2)各引脚及功能说明P0口P0口为一个8位漏极开路双向I/O口。P0口能用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FALSH进行校验时,P0口输出原码,此时P0口外部必须被拉高。P1口P1口是一个内部提供上拉电阻的8位双向I/O口。P1口管脚写入1后,被内部上拉为高,可用作输入,P1

27、口被外部下拉为低电平时,将输出电流。在FALSH编程和校验时,P1口作为第八位地址接收。P2口P2口为一个内部上拉电阻的8位双向I/O口。当P2口被写入“1”时,其管脚被内部上拉电阻拉高,且作为输入。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口P3口管脚是8个带内部上拉电阻的双向I/O口。当P3口写入“1”后,它们被内部上拉为高电平并用作输入。P3口除作I/O口使用外,还有特殊功能如图所示P30RXD串行输入口P31TXD串行输出口P32/INT0外部中断0P33/INT1外部中断1P

28、34T0计时器0外部输入单片机汇编语言程序设计师培训毕业论文11P3口同时为编程和校验接收一些控制信号。RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FALSH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6因此它可用作外部数据存储器时,将跳过一个ALE脉冲。如果想禁止ALE的输出可在SFR8EH地址上置0此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该指令被略微拉高。如果微处理器在外部执行状态ALE

29、禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有校。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器,注意加密方式1时,/EA将内部锁定为RESET当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入XTAL2来自反向振荡器的输出ISP在线编程引脚P15、P16、P17、RST四个引脚可以作为在系统编程引

30、脚(3)振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动件,XTAL2应不接。其余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证,脉冲的高低电平要求的宽度。MAX232MAX232是一种双组驱动器接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA232E电平,每个接收器将EIA/TIA232E电平输入转换为5VTTL/CMOS电平。这些接收器具有13V的典型门限及05V的典型迟滞,而且可以接收30的输入,每个驱动器将TTL/CMOS

31、输入电平转换为EIA/TIA232E电平,其主要特点为单5V电源工作LINBICMOSTM工艺技术两个驱动器及两个接收器30V输入电平低电源电流典型值是8MA符合ANSI标准EIA/TIA232E及ITU推荐标准V28ESD保护大于MILSTD883标准的2000VDS18B20DS18B20基本知识P35T1计时器1外部输入P36/WR外部数据存储器写选通P37/RD外部数据存储器读选通单片机汇编语言程序设计师培训毕业论文12DS18B20数字温度计是DALLAS公司生产的1WIRE,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多

32、这样的数字温度计,十分方便。DS18B20产品的特点(1)、只要求一个端口即可实现通信。(2)、在DS18B20中的每个器件上都有独一无二的序列号。(3)、实际应用中不需要外部任何元器件即可实现测温。(4)、测量温度范围在55。C到125。C之间。(5)、数字温度计的分辨率用户可以从9位到12位选择。(6)、内部有温度上、下限告警设置。DS18B20的引脚介绍TO92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。(底视图)图1表1DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源

33、。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。单片机汇编语言程序设计师培训毕业论文13第三章系统软件设计31各部分流程图开始设备初始化PC发送工作命令开始工作(测温、显示)PC发送命令按照命令进行操作PC发停机命令NYNYNY系统工作流程图单片机汇编语言程序设计师培训毕业论文14开始是否收中断是否命令字符停机命令非停机命令发送温度数据结束开中断,使能标志置1结束结束写入ROM关中断,能标志归0错误,发送E为发送数据命令串行口中断流程YN,发中断YYYYNNN,停机N,为数据单片机汇编语言程序设计师培训毕业论文15开始初值重装从18B20读温度并存储到RAMDS18B20存在

34、低于报警高温限高于报警低温限对读取数据进行处理结束发送低温警报到PC发送高温警报到PCT0口中断流程YYNYN单片机汇编语言程序设计师培训毕业论文16开始DS18B20复位程序DS18B20存在标志位为1发温度转化指令并做750MS延迟复位DS18B20发送取温度数据命令读取温度数据结束清DS18B20存在标志位,数码管显示000F,跳出程序GET_TEMPER子程序流程YN单片机汇编语言程序设计师培训毕业论文1732汇编语言程序;汇编语言程序ENABLEEQU00HDTSIGNEQU01HSDSIGNEQU02HHAVEEQU03HPSHUEQU04HLED0EQUP00LED1EQUP01

35、LED2EQUP02LED3EQUP03WR1820EQUP11SEGEQUP2WARNH0EQU31HWARNH1EQU32HTEMP0EQU34HTEMP1EQU35HDIS0EQU36HDIS1EQU37HDIS2EQU38HDIS3EQU39HSDATEQUDWORKEQUWPAUSEEQUPERREQUEORG0000HAJMPMAINORG000BHAJMPT0INTORG0023HAJMPS_INT主程序ORG0030HMAINMOVSP,40H堆栈栈底放50HMOVWARNH0,30HMOVWARNH1,00单片机汇编语言程序设计师培训毕业论文18CALLT0INIT初始化T0

36、CALLT1INIT初始化T1CALLSINIT初始化串口CLRENABLE清使能标志CLRDTSIGN清数据标志JNBENABLE,查询使能,无效则停机LCALLINT_ENLOOPCALLDISPLY调用显示子程序JNBENABLE,查询使能,无效则停机AJMPLOOPT0初始化T0INITORLTMOD,01HANLTMOD,0F1HMOVTH0,3CHMOVTL0,0B0HMOVR7,15H软件记数初值RETT1初始化T1INITORLTMOD,20HANLTMOD,02FHMOVTH1,0FDHMOVTL0,0FDHCLRET1关T1中断SETBTR1T1开始计数RET串口初始化SI

37、NITANLPCON,7FHMOVSCON,50HSETBEA开全局中断SETBES开串口中断RET开中断子程序INT_ENSETBET0开T0中断SETBTR0RETT0开始计数关中断子程序INT_DSCLRET0关T0中断CLRTR0T0停止计数RET单片机汇编语言程序设计师培训毕业论文19显示子程序DISPLYPUSHACC保护现场PUSH06HMOVA,TEMP1温度整数部分送AMOVB,100HDIVAB相除取百位MOVDIS3,A百位送DIS3MOVA,B余数送AMOVB,10DIVAB相除取十位MOVDIS2,A十位送DIS2MOVDIS1,B个位送DIS1MOVDIS0,TEM

38、P0小数部分送DIS0MOVDPTR,ZIXING送字型码首地址MOVA,DIS0取小数MOVCA,ADPTR取对应字型码SETBLED0SETBLED1SETBLED2SETBLED3CLRLED0MOVSEG,A送字型码CALLDELAY0MOVA,DIS1取各位MOVCA,ADPTR取对应字型码CLRACC7清最高位显示小数点SETBLED0SETBLED1SETBLED2SETBLED3CLRLED1MOVSEG,A送字型码CALLDELAY0MOVA,DIS2取十位MOVCA,ADPTR取对应字型码SETBLED0SETBLED1SETBLED2SETBLED3CLRLED2MOVS

39、EG,A送字型码CALLDELAY0单片机汇编语言程序设计师培训毕业论文20MOVA,DIS3取百位JNBFSHU,ZHENG判断是否为正数MOVA,16如果不是正数送ZHENGMOVCA,ADPTR取对应字型码SETBLED0SETBLED1SETBLED2SETBLED3CLRLED3MOVSEG,A送字型码CALLDELAY0OUTDISPOP06HPOPACCRETZIXINGDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H共阳数码管字型码DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH延迟子程序DELAY0MOVR6,1FH

40、DEL0MOVR5,0BHDEL1NOPDJNZR5,DEL1DJNZR6,DEL0RET串口中断S_INTPUSHACCJNBTI,RINT若不是发送中断则转接收中断处理程序CLRTI清发中断标志RINTJBCRI,RXD判断是否收中断,若不是退出OUTSINTPOPACCRETIRXDMOVA,SBUF将输入缓冲送AJNBDTSIGN,COMMEND0判断是否为上位机发送数据MOVR0,A若是数据送A里面的数到警报温度RAMINCR0DJNZR6,OUTSINT未送完则退出等待CLRDTSIGN送完,清数据标志位AJMPOUTSINTCOMMEND0CJNEA,SDAT,COMMEND1判

41、断PC是否开始发送数据单片机汇编语言程序设计师培训毕业论文21SETBDTSIGN数据标志位置1MOVR6,04HMOVR0,WARNH0R0送警报温度首地址AJMPOUTSINTCOMMEND1CJNEA,WORK,NOTWORK判断是否为允许工作命令SETBENABLE若允许工作使能标志置1LCALLINT_EN开中断AJMPOUTSINTNOTWORKCJNEA,PAUSE,NOTPAU判断是否为暂停工作命令CLRENABLE若暂停工作使能标志清0LCALLINT_DS关中断MOVP0,0FFHMOVP1,0FFHAJMPOUTSINTNOTPAUCJNEA,ERR,ISERR0判断数据

42、是否错误JBSDSIGN,NOERR判断发送数据为第一个字节还是第二个MOVR6,02H若为第一个,置发送计数SETBSDSIGN发送标志置1MOVR0,TEMP0温度数据指针NOERR1MOVA,R0温度数据送AMOVSBUF,A发送温度数据INCR0指针加1DJNZR6,OUTSINTCLRSDSIGN清发送标志AJMPOUTSINTISERR0MOVA,45H错误,发E的ASCII码MOVSBUF,AAJMPOUTSINTT0中断子程序T0INTPUSHACC保护现场PUSH06HPUSH05HMOVTL0,0B0H初值重装MOVTH0,3CHDJNZR7,OUTSINTMOVR7,15

43、HLCALLGET_TEMPER读取温度JNBHAVE,OUTT0INTMOVA,TEMP1单片机汇编语言程序设计师培训毕业论文22CLRCSUBBA,WARNH0将读取的温度与高温限比较TINT0JNCTINT1判断是否大于高温限AJMPTINT2不大于转TINT2TINT1MOVA,H大于高温限发送H到PCMOVSBUF,AAJMPTINT4TINT2SUBBA,WARNH1将读取的温度与低温限比较JCTINT3判断是否小于低温限AJMPTINT4不小于转TINT4TINT3MOVA,L小于低温限发送L到PCMOVSBUF,ATINT4CALLPRO处理数据OUTT0INTPOP05HPO

44、P06HPOPACCRETI从18B20获得温度数据程序GET_TEMPERCALLINI_18B20操作前先复位JBHAVE,GET0若1820存在则转MOVTEMP0,0FH数码管显示000EMOVTEMP1,00HMOVA,N发送N到计算机MOVSBUF,AAJMPOUTGET退出GET0MOVA,0CCH跳过ROM匹配CALLWR_18B20MOVA,44H开始转换CALLWR_18B20MOVR6,11H延迟约800MSGET1LCALLDISPLYDJNZR6,GET1CALLINI_18B20操作前先复位MOVA,0CCH跳过ROM匹配CALLWR_18B20MOVA,0BEH读

45、取命令CALLWR_18B20CALLRD_18B20开始读取ROMOUTGETRET18B20复位程序单片机汇编语言程序设计师培训毕业论文23INI_18B20SETBWR1820NOPCLRWR1820拉低数据线MOVR6,3延迟约500微秒INI1MOVR5,75DJNZR5,DJNZR6,INI1SETBWR1820然后释放NOPNOPNOPMOVR5,25HINI2JNBWR1820,INI3等待DS18B20回应DJNZR5,INI2AJMPINI4延时INI3SETBHAVE置标志位,表示DS1820存在AJMPINI5INI4CLRHAVE清标志位,表示DS1820不存在LJM

46、PINI7INI5MOVR5,90INI6DJNZR5,INI6时序要求延时一段时间INI7SETBWR1820RET18B20写程序(数据入口为A)WR_18B20MOVR6,8一共8位数据CLRCWR1CLRWR1820拉低数据线MOVR5,6延迟约17微秒DJNZR5,RRCA右移数据到CYMOVWR1820,C写入18B20MOVR5,25保持电平53微秒DJNZR5,SETBWR1820释放数据线NOPDJNZR6,WR1若未完成写入,继续SETBWR1820释放数据线RET18B20读程序(高位存TEMP1,低位存TEMP0)RD_18B20MOVR6,2需要读2个字节的数据MOV

47、R0,TEMP0送高位首地址单片机汇编语言程序设计师培训毕业论文24RD0MOVR5,8读8位数据RD1CLRC清CY,为读数据做准备SETBWR1820NOPNOPCLRWR1820拉低数据线NOPNOPNOPSETBWR1820;释放数据线MOVR4,08H稍做延迟DJNZR4,MOVC,WR1820读数据线数据到CMOVR4,23延迟DJNZR4,RRCA右移CY数据到ADJNZR5,RD1若8位没读完,转RD1MOVR0,A将读到数据送ROMINCR0ROM指针加1DJNZR6,RD0若2字节未读完,转RD0RET获得数据处理程序PROMOV21H,TEMP0温度低8位存位寻址区21H

48、MOV22H,TEMP1温度高8位存位寻址区21HMOVA,22H高8位数据送ASWAPA交换高低4位保护数据MOVC,0FH将21第7位送ACC第3位MOVACC3,CMOVC,0EH将21第6位送ACC第2位MOVACC2,CMOVC,0DH将21第5位送ACC第1位MOVACC1,CMOVC,0CH将21第4位送ACC第0位MOVACC0,CMOVTEMP1,A将合成后的数据送TEMP1MOVA,TEMP0ANLA,0FH将低8位数据的高4位清零合生成数据MOVDPTR,XIAOSHU查表得小数部分的BCD码(近似为1位)MOVCA,ADPTRMOVTEMP0,AMOVA,TEMP1单片

49、机汇编语言程序设计师培训毕业论文25CJNEA,128,FSHU判断是否为负温度CLRCFSHUJCNOTFU不是负数转NOTFUADDA,01HCPLASETBFSHU负数标志位置1NOTFUCLRFSHUOUTPRORETXIAOSHUDB00H,00H,01H,02H,03H,03H,04H,04H小数部分转化为BCD表DB05H,06H,06H,07H,08H,08H,09H,09HEND第四章调试41终合调试单片机系统的硬件调试和软件调试是不能分开的,去多硬件错误是在软件调试中被发现和纠正的,但是硬件的调试是基础,如果硬件调试不通过软件设计则是无从做起,所以我们是先排除明显的硬件故障以后,再和软件结合起来以进一步排除故障。硬件设计从布线到焊接安装完成之后,我就开始进入硬件调试阶段,调试大体分为以下几步1硬件静态的调试排除逻辑故障这类故障由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。我将其排除的方法是首先将焊制的电路板认真对照原理图,看两者是否一致,特别主意了电源系统的检查,以防止电源短路和极性错误,并利用数字万用表的短路测试功能重点检查了系统总线是否存在相互之间短路或

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。