单片机八路温度测试系统设计_第1页
单片机八路温度测试系统设计_第2页
单片机八路温度测试系统设计_第3页
单片机八路温度测试系统设计_第4页
单片机八路温度测试系统设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE2自动化工程训练课程设计报告设计题目:八路温度测试系统的设计专业班级:自动化学生学号:学生姓名:指导老师:完成时间:目录第一章 概述 31.1多路温度测试系统设计的目的和意义 31.2系统技术指标 41.3系统整体设计方案 4第二章 硬件电路的设计 42.1微控制器电路 42.2温度检测电路 52.2.1温度传感器的选择 52.2.3A/D转换器的选择 72.3人机对话部分 102.3.1键盘部分 102.3.2显示部分 102.3.3报警部分 12第三章 软件设计部分 143.1程序总体结构设计 143.2功能软件设计 183.2.1温度检测模块 183.2.2温度转换部分 193.2.3二进制转化为BCD码 203.2.4上下限报警部分 213.2.4通道号及温度显示部分 23第四章8路温度测试电路原理图 24第五章 多路温度测试系统设计的特色 25第六章 系统设计时遇到的问题及解决方法 26第七章 心得体会 27第八章参考文献 28附:完整的汇编语言程序概述1.1多路温度测试系统设计的目的和意义温度是表征物体冷热程度的物理量。在工业生产过程中,温度检测非常重要,因为很多化学反应或物理变化都必须在规定的温度下进行,否则将得不到合格的产品,甚至会造成生产事故。因此,可以说温度的检测与控制是保证产品质量,降低生产成本、确保安全生产的重要手段。

工业生产中需要测量温度的对象既可以是气体、液体,也可以是固体。气体、液体大都可以通过热电阻、双金属温度计、膨胀式温度计、热电偶、光电比色高温计进行测量。而固体的温度不能直接测量,目前一般用远红外扫描技术测量固体表面的温度。工业生产需要测量温度的范围较宽,水泥生产中需要测定的最高温度达1400度,但几十度的低温也需要测量。在日常生活中,电烤箱、微波炉、电热水器、烘干箱等电器也需要进行温度检测与控制。采用MCS-51单片机对温度进行控制,不仅具有控制方便、简单和灵活等优点,而且可以大幅度提高温度控制的技术指标。1.2系统技术指标通过工程训练课程设计课题6中的技术要求要点,我们列出以下几点的技术指标:=1\*GB2⑴八路温度测量,测温范围为100-1000摄氏度;=2\*GB2⑵温度控制精度≤±3摄氏度;=3\*GB2⑶检测显示实时温度,显示精度到1摄氏度;=4\*GB2⑷温度超过温度上下限时声光报警;1.3系统整体设计方案本系统是需要完成的功能是温度设定、检测与显示以及温度的声光报警等。温度的检测可以通过热电阻或热电偶或集成温度传感器等器件完成;温度显示功能可以通过显示电路部分完成;温度超限报警可以利用蜂鸣器等实现。从技术指标可以看出,系统对控制精度不高。另外,对于本次课程设计,由于实验条件的限制,我们采用的完成方式为protues仿真软件仿真硬件电路的形式。各部分的控制电路会在以下的章节中详细论述。硬件电路的设计系统的硬件电路包括微控制器部分(主机)、温度检测、温度控制、人机对话(显示、报警)几个主要部分。89C5189C51AD转换变送器热电偶t显示声光报警图1温度控制系统结构图2.1微控制器电路AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微图2处理器,俗称单片机。由于系统控制方案简单,数据量也不大,因此选用89C51微控制器作为系统的核心,晶振频率选用6M赫兹。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。2.2温度检测电路2.2.1温度传感器的选择温度传感器和变送器的选择与被测温度的范围和精度等级有关。热电偶和热电阻的区别:热电偶与热电阻均属于温度测量中的接触式测温,尽管其作用相同都是测量物体的温度,但是他们的原理与特点却不尽相同。首先,介绍一下热电偶,热电偶是温度测量中应用最广泛的温,他的主要特点就是测温范围宽,性能比较稳定,同时结构简单,动态响应好,更能够远传4-20mA电信号,便于自动控制和集中控制。其测量温度的最低可测零下270℃,最高可达1800℃,其中B,R,S属于铂系列的热电偶,其次我们介绍一下热电阻,热电阻不仅广泛应用于工业测温,而且被制成标准的基准仪。但是由于他的测温范围使他的应用受到了一定的限制,热电阻的测温原理是基于导体或半导体的电阻值随着温度的变化而变化的特性。其优点也很多,也可以远传电信号,灵敏度高,稳定性强,互换性以及准确性都比较好,但是需要电源激励,不能够瞬时测量温度的变化。工业用热电阻一般采用Pt100,Pt10,Cu50,Cu100,铂热电阻的测温的范围一般为零下200-800℃,铜热电阻为零下40到140℃。热电阻和热电偶一样的区分类型,但是他却不需要补偿导线,而且比热电偶便宜。热电阻与热电偶的选择最大的区别就是温度范围的选择,热电阻是测量低温的温度传感器,一般测量温度在-200-800℃,而热电偶是测量中高温的温度传感器,一般测量温度在400~1800℃,在选择时如果测量温度在200℃左右就应该选择热电阻测量。热电阻与热电偶相比有以下特点:(1)同样温度下输出信号较大,易于测量。(2)测电阻必须借助外加电源。(3)热电阻感温部分尺寸较大,而热电偶工作端是很小的焊点,因而热电阻测温的反应速度比热电偶慢;本课程设计的测温范围是100-1000摄氏度,热电阻的测温范围无法满足,初步确定为热电偶。再继续查相关资料。S型(铂铑)热电偶系列为贵金属热电偶。偶丝直径规定为0.5mm,允许偏差-0.015mm,其正极(RP)的名义化学成分为铂铑合金,其中含铑为13%,含铂为87%,负极(RN)为纯铂,长期最高使用温度为1300℃,短期最高使用温度为1600℃。S型(铂铑热电偶)系列在热电偶系列中具有准确度最高,稳定性最好,测温温区宽,使用寿命长等优点。其物理,化学性能良好,热电势稳定性及在高温下抗氧化性能好,适用于氧化性和惰性气氛中。测量范围及基本误差限热电偶类别代号分度号测量范围基本误差限镍铬-康铜WRKE0-800℃±0.75%t镍铬-镍硅WRNK0-1300℃±0.75%t铂铑13-铂WRBR0-1600℃±0.25%t铂铑10-铂WRPS0-1600℃±0.25%t铂铑30-铂铑6WRRB0-1800℃±0.25%t表1注:t为感温元件实测温度值(℃)由上表可知,除了第一项不能满足外,其余的均可根据实际情况来选择,都能满足本设计的要求。变送器将电阻信号转换成温度成正比的电压,当温度在100-1000摄氏度时变送器输出0到5伏左右的电压。2.2.3A/D转换器的选择A/D转换器的选择主要取决于温度的控制精度。本系统要求温度控制误差小于等于±3摄氏度,采用8位A/D转换器,其最大量化误差为1/2(900/255)≈2摄氏度,能够满足精度要求。因此,本设计采用ADC0809作为A/D转换器。但在实际设计中我们为了简化标度变换的工作量,另一方面避免标度变换带来的计算误差。本设计将温度变化范围调制0-1275摄氏度,即假设需要检测的环境温度,而我们的安全温度为100-1000摄氏度,超过上下限的话,我们将会进行声光报警。电路设计好后,调整变送器的输出,使0~1275摄氏度的温度变化对应于0~VCC,则A/D转换的对应数字量为00H~FFH,转换结果乘以5正好是温度值。但在仿真器中0809模数转换器无法通过仿真,我们用与它在功能管脚上差异不大的0808模数转换芯片代替了。ADC0808和ADC0809除精度略有差别外(前者精度为8位、后者精度为7位),其余各方面完全相同。它们都是CMOS器件,不仅包括一个8位的逐次逼近型的ADC部分,而且还提供一个8通道的模拟多路开关和通道寻址逻辑,因而有理由把它作为简单的“数据采集系统”。利用它可直接输入8个单端的模拟信号分时进行A/D转换,在多点巡回检测和过程控制、运动控制中应用十分广泛。1)主要技术指标和特性(1)分辨率:8位。(2)总的不可调误差:ADC0808为±二分之一LSB,ADC0809为±1LSB。(3)转换时间:取决于芯片时钟频率,如CLK=500kHz时,TCONV=128μs。(4)单一电源:+5V。(5)模拟输入电压范围:单极性0~5V;双极性±5V,±10V(需外加一定电路)。(6)具有可控三态输出缓存器。(7)启动转换控制为脉冲式(正脉冲),上升沿使所有内部寄存器清零,下降沿使A/D转换开始。(8)使用时不需进行零点和满刻度调节。2)内部结构和外部引脚ADC0808/0809的内部结构和外部引脚分别如图11.19和图11.20所示。内部各部分的作用和工作原理在内部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下:图3ADC0808/0809内部结构框图(1)IN0~IN7——8路模拟输入,通过3根地址译码线ADDA、ADDB、ADDC来选通一路。(2)D7~D0——A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。8位排列顺序是D7为最高位,D0为最低位。(3)ADDA、ADDB、ADDC——模拟通道选择地址信号,ADDA为低位,ADDC为高位。地址信号与选中通道对应关系如表11.3所示。(4)VR(+)、VR(-)——正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。在单极性输入时,VR(+)=5V,VR(-)=0V;双极性输入时,VR(+)、VR(-)分别接正、负极性的参考电压。(5)ALE——地址锁存允许信号,高电平有效。当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。(6)START——A/D转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。图4ADC0808/0809外部引脚图表2地址信号与选中通道的关系地址选中通道ACBCA0000111100110011010101010IN1IN12IN23IN34IN45IN56IN67IN7(7)EOC——转换结束信号,高电平有效。该信号在A/D转换过程中为低电平,其余时间为高电平。该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。(8)OE——输出允许信号,高电平有效。当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。3)工作时序与使用说明ADC0808/0809的工作时序如图11.21所示。当通道选择地址有效时,ALE信号一出现,地址便马上被锁存,这时转换启动信号紧随ALE之后(或与ALE同时)出现。START的上升沿将逐次逼近寄存器SAR复位,在该上升沿之后的2μs加8个时钟周期内(不定),EOC信号将变低电平,以指示转换操作正在进行中,直到转换完成后EOC再变高电平。微处理器收到变为高电平的EOC信号后,便立即送出OE信号,打开三态门,读取转换结果。2.3人机对话部分2.3.1键盘部分键盘按结构的不同可分为独立式按键和行列式键盘两类,每类按译码方式的不同又分为编码式和非编码式两种。本设计采用独立式按键方式,如图5所示,主要通过4个键,S1、S2、S3、S4来实现指定显示某一路的温度,当S1断开时,为巡回检测电路,当S1闭合时,指定显示电路的通道数与S2、S3、S4的关系见下表3。地址选中通道S2S3S4000011110011001101010101012334567表3(0表示开关闭合,1表示开关断开)图5本设计中,对于八路通道的温度检测,有两种模式:第一种为八路循环检测显示;第二种为特定通道的温度显示,这部分通道的选择是由S2、S3、S4这三个按键控制的。而模式的选择是由S1控制的,当S1闭合时,选择模式一,当S1断开时,选择模式二。2.3.2显示部分本设计需要显示的包括八路通道号以及测得的温度值。LED的显示有静态显示方式和动态显示方式。在静态显示方式下,N块显示器件都处于选通状态;每一块显示器件的段选线和一个8位的并行口相连,只要控制显示位的段选码,就可显示出相应的字幅。由于显示器件由不同的I/O控制,所以静态显示方式中的每一位都可以独立显示,在同一时刻每一位显示的字符可以各不相同。LED动态显示就是将所有显示位的段选线并联在一起,有一个8位I/O口控制,而位选线则有其他的I/O口控制,通过程序控制,不断循环输出相应的段选码和位选码,由于人的视觉暂留效应,就可以获得视觉稳定的显示状态。本设计选用的是串行口静态显示,其电路图如6所示。74LS164为串行输入/8位并行输出的移位寄存器,那么就需要5个七段数码管,在仿真器中我们选择了7SEG-COM-CATHODE。74HC164是高速硅门CMOS器件,与低功耗肖特基型TTL(LSTTL)器件的引脚兼容。74HC164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位(MR)输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。1.特性•门控串行数据输入•异步中央复位•符合JEDEC标准no.7A•静电放电(ESD)保护:·HBMEIA/JESD22-A114-B超过2000V·MMEIA/JESD22-A115-A超过200V。•多种封装形式•额定从-40°C至+85°C和-40°C至+125°C。2.功能图图6逻辑符号图774HC164芯片本设计通过5片74HC164串行连接,而各片的并行输出端接到数码管各段位线上,而通道选择的数码管的1、2管脚接到AT89C51的RXD管脚,利用AT89C51的串行接口的工作方式0向其输送各温度和通道号的信息。例如:下图8为四个温度值的显示电路的连接:图8温度显示电路2.3.3报警部分报警功能由三个不同颜色的led灯显示实现报警功能,另外,我们还可以加蜂鸣器进行声光报警,这部分比较简单,我们就只进行了光报警的电路连接。图9灯的阴极分别接单片机的P1.1,P1.2,P1.3口进行控制,绿灯亮表示高于1000摄氏度,为高温报警;黄灯亮表示低于100摄氏度,为低温度报警;红灯亮表示正常温度范围之内,为正常温度指示灯。软件设计部分3.1程序总体结构设计系统程序采用模块化设计方法,程序由主程序、中断服务程序和各功能模块程序等组成,各功能模块可直接调用。主程序完成系统的初始化、定时器T0的初始化程序,存储通道号的存储单元R2赋初始值FFH,堆栈指针SP赋初值。中断服务程序是温度检测的体系的主体,中断由采样通道模式的选择,采样数据,越限报警,温度转换,温度等信息显示程序组成。中断由T0产生,根据需要15s中断一次,即15s采样控制一次。由于系统采用在本设计中,晶体振荡器频率为6MHz,T0定时时间为100ms,T0工作于方式1,则T0的初值为:X=(最大计数值M―定时时间t/及其周期Tm)=216-100ms/2us=15536=3CB0H按以上任务分析设计出的源程序如下:ORG0000H;跳转到主程序LJMPMAIN;ORG000BH;LJMPT0INT;跳转到T0中断服务程序;主程序如下;MAIN:MOVR1,#20;T0定时溢出计数寄存器R1赋初值20MOVP1,#0FFH;所有指示灯灭MOVSP,#60H;堆栈指针赋初值60HMOVTMOD,#01H;T0定时、方式1、软启动MOVTL0,#0B0H;T0赋初值MOVTH0,#3CH;MOVIE,#82H;开放T0中断SETBTR0;启动T0MOVR2,#0FFH;MOVDPTR,#INTTAB;SJMP$;主程序流程图如下:主程序主程序计数寄存器R1赋初值20TMOD赋初值01HT0工作于定时方式1软启动堆栈指针SP赋初值60HSETBTR0启动T0工作P1口赋初值FFH,所有指示灯全灭TH0赋初值3CH,TL0赋初值B0H,T0定时100msIE赋初值82H,T0允许中断动态停机图10主程序图定时器0中断服务子程序INTT0:T0INT:DJNZR1,NEXT;T0溢出20次,即2s进行一次采样处理;INCR2; 通道号值加1 CJNER2,#08H,M3 ;若还未检测到第八路,则不用归0MOVR2,#00H ;若检测到第八路,则通道值重新归0M3:JNBP1.4,M0 ;P1.4为低电平,则选择用键盘操作选择特定检测通道;高电平,则循环检测八路通道并显示JMPM6 ;M0:MOVR2,#00H ;根据键盘选择相应通道M2:JNBP1.5,M4INCR2M4:JNBP1.6,M5INCR2INCR2M5:JNBP1.7,M6INCR2INCR2INCR2INCR2M6:LCALLADC;调用温度采样及模数转换子程序LCALLZH;调用温度转换程序LCALLBCD;调用16位二进制转化为十进制BCD码LCALLKZ;调用报警子程序LCALLXIANSHI;调用数码管显示子程序MOVR1,#20;R1重赋值10NEXT:MOVTL0,#0B0H;T0重装初值MOVTH0,#3CH;RETI;中断服务子程序流程图:T0中断服务程序T0中断服务程序温度采样时间间隔到否T0重装初值调用数码管显示子程序XIANSHI调用十进制转换子程序BCD调用温度转换子程序ZH调用温度检测及模数转换子程序ADC中断返回YN图11中断服务程序流程图3.2功能软件设计3.2.1温度检测模块A/D转换采用查询方式(由P3.3查询ADC0809的EOC转换结束信号)。温度检测子程序ADC如下:ADC:MOVDPH,R2;选通ADC0808通道 MOVDPL,#0FFH;MOVA,#00H;MOVX@DPTR,A;启动A/D转换HERE:JNBP3.3,HERE;判断数据转换是否结束,没结束则等待MOVXA,@DPTR;读取转换后的数据MOV20H,A;将从ADC0809中读取的当前温度下的转换值存于20H单元RET温度检测子程序流程图如下:温度采样及模数转换子程序将ADC0809温度采样及模数转换子程序将ADC0809启动A/D转换读取转换数据将转换数据存于片内RAM20H单元返回转换结束否图12温度检测子程序流程图3.2.2温度转换部分由模数转换得到的数据在20H单元中,我们要将其按照一定的规律还原成环境的检测温度值,并在后续子程序中显示出来,温度传感器部分我们如果实际做的话,需要用到热电偶,转化为电动势信号,再经过信号调理电路放大至0~5V左右的电压信号作为ADC0808的模拟量输入。由于采用的是仿真软件,我们直接在ADC0808的模拟量输入端接入了放大后的电压信号,而且这里为了方便显示,我们将转换后的值直接乘以五作为检测的温度进行显示。希望老师能够谅解。温度转换子程序:ZH: MOV A,20HMOVB,#05HMULABMOVR3,BMOVR0,ARET 由于程序比较简单,流程图就不再这里赘述了。二进制转化为BCD码由于在控制器中所有的信息都是采用的二进制码进行存储的,当我们要将其输出显示的时候,为了便于观察和读取,我们需要将二进制码转化为十进制的BCD码。这里的温度需要用16位二进制码表示,就涉及到16位二进制码转化的问题,这是一个十分经典的问题。BCD转化程序:;两个字节的二进制数转换成BCD码的程序如下:;功能:16位二进制数变换成为BCD码;;入口:R0R3中是16位二进制数,其中R3中是高8位;;出口:34H存通道号值,33H存千位值,32H存百位,31H存十位,各位存30H BCD: MOV R4,#00H MOV R5,#00H MOV R6,#00H MOV R7,#10H;一共16位,循环16次 LOOP: CLR C MOV A,R0 RLC A MOV R0,A MOV A,R3 RLC A MOV R3,A将16位二进制数循环左移一位 MOV A,R4;ADDC A,R4 ;自身相加,并加上cy位,在cy第一次出现1之前R4一直为零,相当于每移一位R4中的值翻一倍 DA A ;十进制调整指令,十位超出时会产生进位 MOV R4,A MOV A,R5 ADDCA,R5 DA A MOV R5,A MOV A,R6 ADDCA,R6 MOV R6,A;R6中只有万位,并且不会超过7,不需要调整 DJNZR7,LOOPMOV A,R4;R4R5R6中是BCD码,其中R6中是万位,R5中是千、百位,R4中是十、个位 MOV B,#10H DIV AB MOV 31H,A MOV 30H,B MOV A,R5 MOV B,#10H DIV AB MOV 33H,A MOV 32H,B MOV 34H,R2 RET上下限报警部分报警功能由三个不同颜色的led灯显示实现报警功能,灯的阴极分别接单片机的P1.1,P1.2,P1.3口进行控制,绿灯亮表示高于1000摄氏度,为高温报警;黄灯亮表示低于100摄氏度,为低温度报警;红灯亮表示正常温度范围之内,为正常温度指示灯。报警控制子程序:KZ:MOVA,20H CJNEA,#200,J1 AJMPJ3 J1:JNCJW;高于1000摄氏度,进行高温报警 CJNEA,#20,J2 AJMPJ3 J2:JCSW;低于100摄氏度,进行低温报警 J3: CLRP1.2;当处于100到1000摄氏度中间时则正常指示灯亮 SETBP1.1 SETBP1.3 AJMPBC JW:CLRP1.1 SETBP1.2 SETBP1.3 AJMPBC SW:CLRP1.3 SETBP1.1 SETBP1.2 AJMPBC BC:RET上下限报警流程图:上下限报警上下限报警子程序高温报警T高温报警T小于等于1000?T大于等于100?低温报警返回NN图133.2.4通道号及温度显示部分该子程序利用89C51串口的方式0串行移位寄存器工作方式,将片内RAM的30H、31H、32H、33H、34H单元的BCD码查表转换为七段码后由RXD端串行发出去,然后经74LS164串并转换,将七段值传送给数码管,以十进制形式显示出当前温度值。通道号及温度显示子程序如下:XIANSHI;:MOVR7,#05H;将存于34H,33H,32H,31H,30H单元中的通道号和温度BCD码查表转换为七段码MOVR0,#30H;通过串行通信方式0输出驱动5个数码管,显示当前温度MOVDPTR,#TAB;LOOP:MOVA,@R0;MOVCA,@A+DPTR;MOVSBUF,A;WAIT:JNBTI,WAIT;CLRTI;INCR0;DJNZR7,LOOP;RET;SEGTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;INTTAB:DB0F0H,0F1H,0F2H,0F3H,0F4H,0F5H,0F6H,0F7H第四章8路温度测试电路原理图图说明:这是我们最初的设计原理图,在我们实际仿真中,我们又加了键盘以选择不同的温度通道显示模式以及通道号的显示数码管。多路温度测试系统设计的特色本设计有两种温度显示的模式:任意单通道的设定和显示和八路温度的循环扫描和显示。在温度显示环节,我们采用的是89C51串口的方式0串行移位寄存器工作方式,将片内RAM的30H、31H、32H、33H、34H单元的BCD码查表转换为七段码后由RXD端串行发出去,然后经74LS164串并转换,将七段值传送给数码管,以十进制形式显示出当前温度值。在但通道的显示和循环扫描之间转换时,将从设定通道的下一通道继续显示。系统设计时遇到的问题及解决方法首先我们在设计本次实验方案时,准备通过硬件在实验室做,但是由于实验室开放时间有限,我们最后只能以protues仿真平台作为完成本次实验的方式。在软件设计上,我们选择的是更加繁琐的汇编语言,理由很简单,C语言我们用的比较多,也比较熟悉,而汇编需要经常刻意温习下,借此机会再熟悉一下。本设计为多路温度测试系统的设计,首先面临的问题是温度传感器的选择,由设计任务书给出的测温范围是100到1000摄氏度,我们对比了热电阻和热电偶的测温原理和特点,选择了热电偶类型的传感器,由模数转换得到的数据在20H单元中,我们要将其按照一定的规律还原成环境的检测温度值,并在后续子程序中显示出来,温度传感器部分我们如果实际做的话,需要用到热电偶,转化为电动势信号,再经过信号调理电路放大至0~5V左右的电压信号作为ADC0808的模拟量输入。由于采用的是仿真软件,我们直接在ADC0808的模拟量输入端接入了放大后的电压信号,而且这里为了方便显示,我们将转换后的值直接乘以五作为检测的温度进行显示。希望老师能够谅解。AD转换器,我们最先想到的就是熟悉的ADC0809,当我们将仿真图一步步都连好之后,在DEBUG之后显示错误:NomodelsecifiedforU2,这里即指的是ADC0809,这下我们就很疑惑了,居然出现了不能仿真的问题,那我们只能找替代元件了,还好有一个和它长得很像的芯片,主要是内在也像啊,就是ADC0808了。接下来的问题中是没有了无法仿真的问题,但是整体的显示结果还是不对,我们将各个分立模块分别进行调试,最后排查至了模数转换部分,想不到还是在这里出现了问题,那这次又是什么原因呢?我们各种查资料和尝试,发现原来ADC0808的CLKS所需接的外部时钟允许的最高频率是1280赫兹,而典型的是640赫兹,转换时间为0.00001s.原来是心律不振啊,那我们就给他换了最典型的频率之后,哈,发现问题原来是这么回事。在温度显示上设计到16进制转化为十进制的的程序,这里我们也费了一些时间,让我们好好熟悉了一下单片机指令系统,很有价值的程序。通过这些问题的发现与解决,我发现其实很多问题都是细节问题,以后要更多的重视细节。心得体会通过近两个星期的设计和调试,我对8051的结构及编程语言有了更多的认识,更深的了解了8051的工作方式,并能对硬件调试时出现的一些故障进行合理的分析与改正,保证控制系统的正常控制要求外,我们还尽量使设计的系统符合实际的需求。通过对控制系统的控制要求的分析,理解控制其控制思想,构思、编写控制程序,并通过调试,修改,使其具备系统要求的功能。这次的课程设计让我把理论知识用在实践中,实现了理论和实践相结合,从中更懂得理论的是实践的基础,实践有能检验理论的正确性,让我受誉非浅,同时提高了自己的发现问题,分析问题与解决问题的能力。对我以后参加工作或者继续学习将会产生巨大的帮助和影响。由我们自己设计和完成的设计,既锻炼了我们自己独立思考解决问题的能力,又锻炼了我们团队协作的能力,增强了我们的团队意识。这些对我们将来踏上工作岗位以后也是非常受益的,因为这是对我们踏上工作岗位前的一次综合演练,也是我们一次真正的理论转化为实践的契机。尽管在我们设计的这个课题上有一定的成功案例可以去参考去借鉴,并且这些案例很成功也很出色,但是我们仍然希望通过我们自己的努力来完成这个设计并希望有所突破。这也是对我们自己的能力和人品的一种考验。所以在本次设计过程中我们完全是按照系统的整体设计的要求来进行,从课题分析开始,再进行总体设计、详细设计,最后到系统实现,每一步我们都非常细心非常用心,每一步都让我们将理论学习的知识应用到实践中去。使我们自己掌握了一整套规范的设计操作流程,相信会使我们以后受益匪浅的由于本次课程设计时间有限,我们所做的工作可能还不够完善和细致,但是我们确实付出了一些努力和坚持,也收获了很多。这次是二人一组进行设计,这让我也知道了合作的重要性和关键。我知道,以后我们真正在实际生活中做设计工作时,很多时候是团队的合作,我们需要分清楚自己扮演的角色,把握好自己工作的重点,要解决的问题,能够方便别人的下一步工作,我也很感谢我的合作伙伴在设计中做的工作。我们最后的设计可能还有很多需要改进,我们在今后的学习中将不断增进,和改善,希望老师对我们有信心,我们一定会加油的!这段时间谢谢老师抽出时间来指导我们本次课程设计。第八章参考文献1.贾好来主编.MCS-51单片机原理及应用.北京:机械工业出版社,2006.2.江太辉,石秀芳主编.MCS-51单片机原理及应用.广东:华南理工大学出版社,2004.3.曹龙汉,刘安才主编.MCS-51单片机原理及应用.重庆:重庆出版社,2004.4.劳动和社会保障部教材办公室主编.单片机应用技术(汇编语言).北京:中国劳动社会保障出版社,2006.5.何立民主编.MCS-51单片机应用系统设计.北京:北京航天航空大学出版社,1990.6.朱定华主编.单片机原理及接口技术实验.北京:北京大学出版社,2002.附:完整的汇编程序ORG0000H;跳转到主程序AJMPMAIN;ORG000BH;AJMPT0INT;跳转到T0中断服务程序; ORG0100H;MAIN:MOVR1,#20;T0定时溢出计数寄存器R1赋初值20MOVP1,#0FFH;所有指示灯灭MOVSP,#60H;堆栈指针赋初值60HMOVTMOD,#01H;T0定时、方式1、软启动MOVTL0,#0B0H;T0赋初值MOVTH0,#3CH;MOVIE,#82H;开放T0中断SETBTR0;启动T0MOVR2,#0FFH;MOVDPTR,#INTTAB;SJMP$;T0INT:DJNZR1,NEXT;T0溢出20次,即2s进行一次采样处理;INCR2; 通道号值加1 CJNER2,#08H,M3 ;若还未检测到第八路,则不用归0MOVR2,#00H ;若检测到第八路,则通道值重新归0M3:JNBP1.4,M0 ;P1.4为低电平,则选择用键盘操作选择特定检测通道;高电平,则循环检测八路通道并显示JMPM6 ;M0:MOVR2,#00H ;根据键盘选择相应通道M2:JNBP1.5,M4INCR2M4:JNBP1.6,M5INCR2INCR2M5:JNBP1.7,M6INCR2INCR2INCR2INCR2M6:LCALLADC;调用温度采样及模数转换子程序LCALLZH;调用温度转换程序LCALLBCD;调用16位二进制转化为十进制BCD码LCALLKZ;调用报警子程序LCALLXIANSHI;调用数码管显示子程序MOVR1,#20;R1重赋值10NEXT:MOVTL0,#0B0H;T0重装初值MOVTH0,#3CH;RETI;ADC:MOVDPH,R2;选通ADC0808通道 MOVDPL,#0FFH;MOV

温馨提示

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

评论

0/150

提交评论