ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:85.54KB ,
资源ID:3890235      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3890235.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于8086的温度系统.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于8086的温度系统.doc

1、目录1引言12 设计方案与论证13 设计内容23.1系统扩展接口的选择23。2温度传感器与AD转换器的选择23。3显示接口芯片33。4设计原理及功能说明33。5系统软件设计43.6单元电路的设计(计算与说明)54.8086微处理器及其体系结构84.1 8086微处理器的一般性能特点84.2. 8086CPU的编程结构94.3 8255A并行IO接口94.4 ADC0809概述114。5 ADC0809与8255的连接134。6键盘/显示方式设置命令字134。7 LED显示器145硬件的制作与调试146 结束语:17参考文献19附录1:元器件清单:20附录2:电路总图20附录3:程序201引言为

2、了实现计算机对生产过程及对象的控制,需要将对象的各种测量参数按照要求转换成数字信号送入计算机。计算机运算处理后再转换成适合于对生产过程进行控制的量。所以在微机和生产过程之间,须设置信息的变换和传递通道。主要功能就是随时间变化的模拟输入信号变成数字信号送入计算机,主要由AD590温度传感器,8088CPU,8255A, A/D转换器和数码管显示器等组成。本实验通过设计一个微机控制的温度控制系统旨在能做到以下几点:1了解微机控制的温度采集系统软硬件设计原理和方法。2进一步掌握并行接口芯片和模数转换的工作原理与使用方法。以8088 CPU 为核心设计一个温度采集系统,系统可以实现一路温度的采集,在3

3、位LED显示器上显示当前温度。本设计所用器件主要有传感器,A/D转换器,8088CPU,可编程并行接口8255,显示器等.首先传感器把所测的温度转换为电压,输入A/D转换器中进行转换,然后再把得到的二进制数经过CPU在数码管上显示出来。本设计共分以下几个模块:8088主控模块、A/D转换模块、并行接口模块、显示模块.2 设计方案与论证采用铂电阻温度传感器的电阻与温度的关系是非线性的,用电桥实现温度升高引起的电阻变化对应于电压的变化。经A/D转换器后,送入锁存器锁存,在经译码器输出后,再在数码管上显示,由于74LS373具有锁存功能就能实现四位的温度显示。由于铂电阻与温度的关系是非线性的,因此输

4、出的结果测试精度较低,并且不能达到我们对温度控制的要求。电桥测温电路放大电路A/D转换电路锁存器74LS373译码器7448LED数码显示图21设计方案3 设计内容3。1系统扩展接口的选择本次设计采用的是8086微处理器,选择8255A可编程并行接口作为系统的扩展接口,8255A的通用性强,适应灵活,通过它CPU可直接与外设相连接。3。2温度传感器与AD转换器的选择本系统选用温度传感器AD590构成测温系统.AD590是一种电压输入、电流输出型集成温度传感器,测温范围为55150,非线性误差在0.30,其输出电流与温度成正比,温度每升高1K(K为开尔文温度),输出电流就增加1uA。其输出电流I

5、=(273+T)uA.本设计中串联电阻的阻值选用2K,所以输出电压V+=(2730 + 10T)MV。另外,为满足系统输入模拟量进行处理的功能,对其再扩展一片ADC0809,以进行模拟数字量转化.3。3显示接口芯片为满足本次设计温度显示的需要,我们选择了8279芯片,INTEL8279芯片是一种通用的可编程的键盘、显示接口器件,单个芯片就能完成键盘键入和数码管显示控制两种功能.3。4设计原理及功能说明本系统采用的是8086微处理器,选择8255A可编程并行接口作为系统的扩展接口,8255A的通用性强,适应灵活,通过它CPU可直接与外设相连接。对温度进行检测,然后通过A/D转换器(ADC0809

6、)转换成数字信号输入主机。使用Intel8279可编程序的键盘、显示接口功能,完成键盘输入和显示控制两种功能。针对各模块的硬件功能,对各模块设定子程序,通过主程序对这些子程序模块的调用,完成软件设计。(1)温度测量显示部分温度通过AD590温度传感集成芯片,将温度变化量转换成电压值变化量,经过OP07一级跟随后输入到电压放大电路,放大后的信号输入到A/D转换器将模拟信号转换成数字信号,然后将该数字信号通过然间编程转化为十进制BCD码,并送到8279进行温度值的显示.图 3-1主程序流程图3.5系统软件设计本设计的目的是以8086微处理器为控制器,将温度传感器输出的小信号经过放大和低通滤波后,送

7、至A/D转换器;微控制器实时采集、显示温度值(要求以摄氏度显示),同时系统还应可设定、控制温度值,使系统工作在设定温度。通过开始界面,显示提示信息,调用温度子程序,设置温度。通过模数转换器采集AD值并求其平均值.调用BCD码转换子程序将其转换为十进制温度值;调用显示子程序,如果温度高于实际温度,就加热,反之拨动开关关闭,停止加热.在此过程中,还可以重复设置温度值.(1) BCD码转换子程序设定温度为0摄氏度时变换放大电路送出的模拟量为0.0V,此时A/D输出的数字量为00H;温度为68时变换器送出对应电压4.98V,此时A/D输出的数字量为FFH,即每0。3对应1LSB的变化量,对应电压值为1

8、9。5mV。报警温度设定为68,此时,输出电压约为5。0V左右。(2)温度值设置子程序为了避免加热温度过高,在程序设计中加了一条,即设定值不能大于68,否则就认为有错系统报警。3。6单元电路的设计(计算与说明)(1)温度检测系统温度信息由温度传感器测量并转换成微安级的电流信号,经过运算放大电路将温度传感器输出的小信号进行跟随放大,输入到A/D转换器(ADC0809)转换成数字信号输入主机.数据经过标度转换后,一方面通过数码管将温度显示出来;另一方面,将该温度值与设定的温度值进行比较,调整电加热炉的开通情况,从而控制温度。在断开电加热器,温度仍然异常,报警器发出声音报警,提示采取相应的调整措施.

9、(2)温度测量部分AD590是AD公司生产的一种精度和线度较好的双端集成传感器,其输出电流与绝对温度有关,对于电源电压从510V变化只引起1uA最大电流的变化或1摄氏度等效误差。图41给出了用于获得正比于绝对温度的输出电流的基本温度敏感电路。AD590输出的电流I=(273+T)uA(T为摄氏温度)。因此测量的电压V为(273+T)uA10K=(2。73+T/100)V,为了将电压测量出来,又务必使电流I不分流出来.使用电压跟随器使其输出电压V2等于V 。由于一般电源供应多器件之后,电源是带杂波的,因此使用稳压二极管作为稳压元件,再利用可变电阻分压,其输出电压V1需调至2.73V.差动放大器其

10、输出V0 为(100K/10K)(V2-V1)=T/10,如果现在为摄氏28,输出电压为2.8V。输出电压接AD转换器,那么AD转换输出的数字量就和摄氏温度成线性比例的关系。图3-2输出电流的基本温度敏感电路图3-3 ADC0809与8255的连接模拟输入通道地址A,B,C直接接地,因此ADC0809只对通道IN0输入的电压进行模数转换。为了减少输入噪声其他通道直接接地。ADC0809的数据线D0-D7与8255的PB0PB7相连接。其片选CS与8086的地址/数据总线AD14相连接。图34 8086的可编程外设接口电路8255的数据口D0D7与CPU的6根控制线相连接,控制8255A内部的各

11、种操作.控制线RESET用来使8255A复位。CS和地址线A1及A0用于芯片选择和通道寻址。分别与8086的高位地址线A19,A1,A0相连接.数据显示部分中我们采用功能强大的可编程设置型显示器8279来对控制温度和实际温度进行显示.我们用8段数码管显示。8279显示功能介绍:8279内部有16X8的显示RAM,通过显示寄存器和两个四位端口0UT A03,0UT BO-3来刷新显示, 显示器可以是8段数码管,图35 电路工作原理:AD转换器将转换结果由十六进制转换为十进制后分别存储在54H,55H,56H,57H,58H,59H.中。8279连接一个74ls38译码器,经过译码再接6个8段数码

12、管分别显示每个存储单元的内容4。8086微处理器及其体系结构4.1 8086微处理器的一般性能特点(1) 16位的内部结构,16位双向数据信号线;(2)20位地址信号线,可寻址1M字节存储单元;(3)较强的指令系统;(4)利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口;(5)中断功能强,可处理内部软件中断和外部中断,中断源可达256个;(6)单一的5V电源,单相时钟5MHz。4.2. 8086CPU的编程结构图4-1 8086/8088CPU内部功能结构图编程结构:是指从程序员和使用者的角度看到的结构,亦可称为功能结构。从功能上来看,8086CPU可分为两部分,即总线接口

13、部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。4。3 8255A并行IO接口8255A芯片内包含有3个8位的端口,它们是A口,B口和C口。这3个端口均可作为CPU与外设通讯时的缓冲器或锁存器,当需要“状态或“联络”信号时,C口可以提供,此时,将C口的高4位为A口所用,C口的低4位为B口所用。3个端口通过各自的输入/输出线与外设联系.并行输入/输出端口:一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口。它们又可分为两组12位的I/O口

14、,A组包括A口及C口(高4位,PC4PC7),B组包括B口及C口(低4位,PC0PC3)。A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。8255引脚功能:RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即=0时,表示芯片被选中,允许8255与CPU进行通讯;=1时,8255无法与CPU做数据传输。RD:读信号线,当这个输入引脚为低电平时,即=0且=

15、0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,即=0且=0时,允许CPU将数据或控制字写入8255.D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送.PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。PB0PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数

16、据输入缓冲器.端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口.A0、A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。当A0=0,A1=0时,PA口被选择;当A0=0,A1=1时,PB口被选择;当A0=1,A1=0时,PC口被选择;当A0=1。A1=1时,控制寄存器被选择.4。4 ADC0809概述ADC0809是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转

17、换。(1) ADC0809的主要特性 1)8路输入通道,8位AD转换器,即分辨率为8位。2)具有转换起停控制端。 3)转换时间为100s 4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为4085摄氏度 7)低功耗,约15mW。(2) ADC0809的内部逻辑结构由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换.三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。图

18、4-2 ADC0809的内部逻辑结构(3)外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,下面说明各引脚功能。IN0IN7:8路模拟量输入端.2-12-8: 8位数字量输出端.ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效。START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当AD转换结

19、束时,此端输入一个高电平,才能打开输出三态门,输出数字量.CLK:时钟脉冲输入端.要求时钟频率不高于640KHZ.REF(+)、REF(-):基准电压.Vcc:电源,单一5V。 GND:地.4.5 ADC0809与8255的连接模拟输入通道地址A,B,C直接接地,因此ADC0809只对通道IN0输入的电压进行模数转换.为了减少输入噪声其他通道直接接地。ADC0809的数据线D0-D7与8255的PB0PB7相连接。其片选CS与8086的地址/数据总线AD14相连接。4。6键盘/显示方式设置命令字命令格式:D7 D6 D5 D4 D3 D2 D1 D0000DDKKK其中:D7、D6、D5=00

20、0方式设置命令特征位.D D(D4、D3):来设定显示方式,其定义如下:00:8个字符显示,左入口00:16个字符显示,左入口00:8个字符显示,右入口00:16个字符显示,右入口所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;所谓右入口,即显示位置从最右一位(最低位)开始,以后逐次输入的显示字符时,已有的显示字符逐个向左顺序移动. KKK(D2、 D1、 D0):用来设定七种键盘、显示工作方式4.7 LED显示器工作原理:发光二极管组成的显示器事单片机应用产品中最常用的廉价输出设备.它由若干个发光二极管按一定的规律排列而成。当某一个发光二极管导通时,相

21、应的一个点或一个比划被点亮,控制不同组合的二极管导通,就能显示出多种字符。常见LED数码管的两种接法如图3。8所示。图4-3 7段LED数码管的两种接法通过控制管脚a、b、c、d、e、f、g、dp的电平即可获得所需的符号显示.显示器的工作方式有两种,一种是静态显示:当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。另一种事本次设计中采用的动态显示方式:所谓动态显示即一位一位轮流的点亮各位显示器,对于每一位显示器来说,每隔一段时间点亮一次。但由于时间间隔很小,我们就可以看到完整的显示了。5硬件的制作与调试通过前一部分的介绍说明,我们对系统的工作情况有了大体的了解.为了进一步了解系统的工

22、作过程,介绍一下系统调试过程及调试过程中出现的一些具体的问题,软件仿真图(在仿真软件上运行,只是电路的一部分,通过硬件可以制作出来).按照要求,在仿真软件中画出一部分电路图:如下图通过电路的设计与链接在仿真软件中即可运行,在其中运行的时候要注意操作,通过TPC2003,EMU中运行后得到。exe文件,按照要求运行图5-1 数据显示部分实验调试软件运行于DOC环境下,其步骤如下:一、根据硬件图和原理图连接好线路。二、在PC机上敲入程序,对其进行的查错,编译,连接,最后生成可执行文件。三、接上电源,敲入可执行文件的文件名,系统就开始了工作过程。图52硬件原理图1)这是DOC屏幕上会出现的一些提示信

23、息,如ENTER ANY KEY TO BEGIN! LET PA0=0 TO ADJUST THE TEMPERATURE VALUE! LET PA0=1 TO INPUT A NEW TEMPERATURE VALUE!这里后两条只作注释用。2)然后敲任意一个键,系统就开始进行温度测量和显示,屏幕上就会显示INPUT THE TEMPERATURE:在这一条信息之后敲入一温度值.注意这里敲入的温度值不能大于76摄氏度,否则屏幕将会显示INPUT VALUE ERROR !并返回 DOC.(以后重新设定温度时也是如此)3)在正常情况下,敲入设定温度后系统就开始进行控制调节,当实际温度小鱼设

24、定值时,系统就开始进行加热,如果不加改变,它就会加热一直稳定到设定的温度值;如果这是想重新设置一温度,只要把8255的PA0读取拨动开关拨到1,屏幕上就会显示:INPUT A NEW TEMPERATURE:这里又得注意一下,在敲入一个新的设定温度之前,得先把PA0读取拨动开关拨到0,否则,在敲完设定温度之后,屏幕上又会显示同样一条信息。因为它是根据PA0是0还是1来决定是去重新输入设定温度还是去调节温度。如果不先把PA0拨为0,它就是一直让你输入却不进行调节。6 结束语:本设计采用的8086微处理器实现温度的控制.具有体积小、重量轻、抗干扰能力强、对环境要求不高、价格低廉、可靠性高、灵活性好

25、、易于推广应用等显著优点,通过软件逻辑控制实现对温度的控制和调节.温度控制系统,只是8086广泛应用于各行各业中的一例。本设计中应用了许多与微机接口技术的芯片和常用的外部设备,芯片如:ADC0809,8255等。外部设备如:温度检测元件AD590,键盘和显示系统中的LED显示器等.该系统的主要优点如下:一、本系统本着简单可靠的原则完成了设计要求,尽量做到线路简单,充分利用软件编程,安装比较灵活而且价格较低.二、在系统的硬件和软件设计中,都加有安全设计部分,避免加热过高造成设备的损坏。最后,通过这次设计,我发现还有很多知识并不牢固,因此在以后的学习中更应该多了解并掌握微机原理与接口技术的相关知识

26、,熟练掌握使用汇编语言编程实现微机芯片的控制,多积累经验为以后的工作打好基础,最后感谢王清珍老师的帮助与指点,对此我深表谢意。参考文献1 戴梅蕚微型计算机技术及应用2007 清华大学出版社2 何克忠计算机控制系统 2002 清华大学出版社3 朱善君汇编语言程序设计 1998。3 清华大学出版社4 颜永军protel99电路设计与应用2001.1 国防工业出版社5 康华光.电子技术基础(模拟部分)。高等教育出版社。2006。16 何希才。传感器及其应用电路M。 北京:电子工业出版社,2001. 7 沙占友.智能化集成温度传感器原理与应用M。 北京:机械工业出版社,2002。8 赵继文.传感器与应

27、用电路设计M。 北京:科学出版社,2002。9 张洪润、刘秀英、张亚凡等。单片机应用设计200例M北京:航空航天大学出版社,2006。附录1:元器件清单:传感器,A/D转换器,8086|8088CPU,可编程并行接口8255A芯片,LED显示器(7SEGMPX2-CC),74LS138锁存器,8279等附录2:电路总图附录3:程序;DS18B20。ASM;*DS18B20g.ASM*;不用定时中断,用8253方式0延时,时钟1MHZ,计一个数1us;*ioport equ 0ec00h0280hio8255k equ ioport+28bh ;8255 控制口io8255c equ iopor

28、t+28ah ;8255 C口io8255a equ ioport+288h ;8255 A口io8253a equ ioport+283h ;8253 控制口io8253b equ ioport+280h ;8253 计数器0STACK SEGMENTSTA DB 20 DUP (?)TOP EQU LENGTH STASTACK ENDS;-DATA SEGMENTCSREG DW ?IPREG DW ?count0 db 00COUNT db 00COUNT1 DB 00COUNT2 DB 00qf db 0ehTEMP DB 00 ;温度,8位TEMPL DB 00 ;温度,低字节TE

29、MPH DB 00 ;温度,高字节TEMPD DB 00 ;温度,小数位MESS DB 8253A TIMERO IN MODEO0 10uS TIMER,0AH,0DHDB 8255 IN MODEO PA0 INPUT PC4PC7 OUTPUT,0AH,0DHDB Strike any key, to convert temperature!,0AH,0DHDB Strike ESC key, return to DOS!,0AH,0DH,$buff db 20hBUFF1 DB 20hbuff2 db 20hbuff3 db 20hbuff4 db 2ehbuff5 db 20h;17

30、2DATA ENDS;-CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK;-START: CLIMOV AX,DATAMOV DS,AXMOV DX,OFFSET MESSMOV AH,09HINT 21H ;显示提示信息;-MOV DX,io8255k ;8255初始化MOV AL,91HOUT DX,AL ;8255 PA0 IN PC7PC4CALL INI ;初始化MOV AH,0CCH ;跳过读ROM命令CALL WRITEMOV AH,4EH ;写暂存器命令CALL WRITEMOV AH,32H ;写高温度值50度CALL WRITEMOV

31、AH,00H ;写低温度值0度CALL WRITEMOV AH,1FH ;写配置字节CALL WRITEKEY: MOV AH,01H ;查有否键入INT 16Hjz keyMOV AH,00 ;有键入,读取键值INT 16HCMP Al,1BHJZ sss ;ESC 退出CALL INI ;初始化MOV AH,0CCH ;跳过读ROM命令CALL WRITEMOV AH,44H ;温度转换命令CALL WRITEconv: MOV DX,io8255kMOV AL,0eH ;PC7清另OUT DX,ALnopnopMOV DX,io8255kMOV AL,0fH ;PC7置1OUT DX,A

32、Lconv1: call delay1 ;延迟50mscall delay1MOV DX,io8255kMOV AL,0fH ;PC7置1OUT DX,ALCALL INI ;初始化MOV AH,0CCH ;跳过读ROM命令CALL WRITEMOV AH,0BEH ;读暂存器命令CALL WRITECALL READ ;读两个字节MOV TEMPL,ahCALL READMOV TEMPH,ahMOV AL,TEMPL ;合成一个十六位字MOV CL,04SAL AX,CL ;左移四位and ah,7fhMOV TEMP,AH ;温度值整数部分jmp jjjsss: jmp exitjjj:

33、 MOV BUFF,2BH ;+AGN: MOV AH,TEMPLAND AH,08H ;温度值小数部分JZ AGN1MOV BUFF5,35H ;.5JMP AGN2AGN1: MOV BUFF5,30H ;。0;-AGN2: mov dl,buffmov ah,02int 21hcall disp ;显示mov dl,0dhmov ah,02int 21hmov dl,0ahmov ah,02int 21hJMP KEY;-;恢复现场,返回DOSEXIT: MOV AX,4C00HINT 21H;-;延时子程序,延时时间长短由COUNT的值决定DELAY: push axpushfMOV

34、DX,io8253aMOV AL,30H ;定时器0,模式0,16OUT DX,ALMOV DX,io8253bMOV Al,count ;8253 clk0 1MHZOUT DX,ALMov al,count0Out dx,alMOV DX,io8255clll: in al,dxand al,01hjz lllpopfpop axRET;-;DS18B20初始化子程序INI: MOV DX,io8255kMOV AL,0eHOUT DX,AL ;PC7置0 口清0MOV COUNT0,02hmov count,0bchCALL DELAY ;主机发复位脉冲持续700微妙MOV COUNT0

35、,00mov count,00MOV DX,io8255kMOV AL,0fHOUT DX,AL ;主机置位,为输入作准备MOV COUNT0,00mov count,28hCALL DELAY ;等待40微秒MOV COUNT,00ini1: MOV DX,io8255aIN AL,DXAND AL,80HJNZ INI ;数据线应变低,若没变低,重来。;数据线变高,初始化成功;初始化失败,重来L2:MOV COUNT0,02hmov count,0bchCALL DELAY ;DS18B20的应答过程至少需700mov count0,00MOV COUNT,00MOV DX,io8255k

36、MOV AL,0fHOUT DX,ALRET;-;写DS18B20子程序WRITE PROC NEARMOV COUNT1,08HW0:MOV DX,io8255kMOV AL,0fHOUT DX,AL ;PC7清1w1: MOV DX,io8255kMOV AL,0eHOUT DX,AL ;PC7置0,DS18B20数据线变低nopnopSHR AH,01JC W2MOV DX,io8255kMOV AL,0eHOUT DX,AL ;PC7置0,写0JMP W3W2: MOV DX,io8255kMOV AL,0fHOUT DX,AL ;PC7清1,写1W3: MOV COUNT0,00mo

37、v count,46hCALL DELAY ;延时70微秒,写时间为70微秒MOV COUNT,00MOV DX,io8255kMOV AL,0fHOUT DX,ALDEC COUNT1JNZ W1RETWRITE ENDP;-;读DS18B20子程序READ: MOV COUNT1,08Hmov ah,00RE1:MOV DX,io8255kMOV AL,0fHOUT DX,AL ;PC7置1,数据线为1nopwt0: MOV DX,io8255kMOV AL,0eHOUT DX,AL ;PC7置0,数据线为0mov cx,02hwt2: loop wt2MOV DX,io8255kMOV

38、AL,0fHOUT DX,AL ;PC7置1,数据线为1mov cx,08hwt1: loop wt1MOV DX,io8255aIN AL,DXAND AL,80H ;按位读数据RCL al,01 ;数据送CFRCR ah,01 ;数据通过CF送AHMOV COUNT0,00mov count,46hCALL DELAY ;读数据过程持续60微秒MOV COUNT,00DEC COUNT1JNZ wt0RET;-;转换成BCD码并显示disp PROC NEAR ;BCD转换并显示子程序mov al,tempmov ah,00hmov cl,100div cl ;除100mov buff1,

39、al ;百位值mov al,ahmov ah,00mov cl,10div cl ;除10mov buff2,al ;10位值mov buff3,ah ;个位值ttt:mov al,buff1call disp1mov al,buff2call disp1mov al,buff3call disp1mov dl,buff4mov ah,02int 21hmov al,buff5call disp1retDISP ENDP;-disp1 PROC NEAR ;显示一个字符and al,0fhadd al,30hmov dl,almov ah,02int 21hretdisp1 endp;-dis

40、p2 proc nearmov al,tempmov cl,04shr al,cland al,0fhadd al,30hcmp al,39hjbe ntadd al,07nt: mov dl,almov ah,02int 21hmov al,tempand al,0fhadd al,30hcmp al,39hjbe nt1add al,07nt1: mov dl,almov ah,02int 21hmov dl,0ahmov ah,02int 21hmov dl,0dhmov ah,02int 21hretdisp2 endp;-DELAY1 PROC NEARpush axpushfMOV DX,io8253aMOV AL,30H ;定时器0,模式0,十六位OUT DX,ALMOV DX,io8253bMov al,50h ;8253 clk0 1MHZOUT DX,AL ;50ms延时Mov al,0c3hOut dx,alMov dx,io8255cxxx: in al,dxand al,01hjz xxxpopfpop axRETDELAY1 endpCODE ENDSEND START26

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服