1、微机接口技术课程设计报告课题名称: 基于微机的热敏电阻测温系统学 院: 机械工程学院专 业: 机械设计制造及其自动化组 员: XSL CCB SJT HW GP指导老师: 日 期: 2016年7月5日 目 录1课程设计任务书-12报告正文-12.1 前 言-12.2 任务分析与方案设计-22.3 主要元器件及其说明-42.4 系统设计及仿真-72.5 接口电路板制作-122.6 系统联机调试-183. 心得体会-204. 参考文献-215. 附录-22 1.课程设计任务书 一、任务要求基于8086最小系统在Proteus软件中设计温度测量的控制系统,编制汇编程序实现利用热敏电阻和数码管测量并显
2、示实际温度值的系统仿真。完成热敏电阻信号采集及电压转换接口电路板的焊接制作。利用Dais微机实验箱组建微机硬件电路、连接接口电路板、调试汇编程序,达到实时测量、显示实际温度的目的。 二、技术要求1、测量温度范围:2080,精确到个位;2、温度显示要稳定并准确,不能闪烁或杂乱跳动; 为此,需要学习proteus软件、AD转换原理、元器件识别和电路焊接等关键技术。 proteus软件学习和使用及编程由徐顺浪负责,元器件识别和硬件焊接用陈财斌负责,AD转换原理的学习由沈江婷负责,实验箱的研究和搭建由胡雯和郭飘负责。2.报告正文 2.1 前 言微机原理是一门专业基础课程,它的主要内容包括微型计算机体系
3、结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。要求学生对微机原理中的基本概念有较深入的了解,能够系统地掌握微型计算机的结构、8086微处理器和指令系统、汇编语言程序设计方法、微机系统的接口电路设计及编程方法等,并具有综合运用所学知识分析问题和解决问题的能力。 本次热敏电阻测温放大电路PCB板课程设计采用汇编语言程序编写,要求设计者具备微机原理的理论知识和实践能力。微机原理和接口技术是一门实践性强的学科,不但要求有较高的理论水平,而且还要求有实际的动手能力。本课程设计的主要目的是提高实践能力,包括提高汇编等语言的编程能力及对接口等硬件的理解分析能力和设计接口
4、电路的能力,在进行课程设计的过程中,通过让学生体验自己分析解决问题,从而帮助学生系统地掌握微机原理的接口技术的相关知识。程序使用Dais实验台进行模拟,包括程序输入、调试、运行,最后进行结果分析,验证程序的正确性。学习微机原理与应用的理论知识后,通过本次课程设计加深对它的理解和掌握。在设计过程中,广泛查阅各种所需的资料,通过实践来加深和巩固理论,同时将自己对这门技术的理解应用在设计当中,提高实践水平和综合能力。 2.2 任务分析与方案设计(1)任务分析本课题需要设计对模拟量温度进行采集并将其转换为数字显示的系统。该系统应具备以下两个功能(任务):1。能实现温采集。2。能将温度在LED上显示出来
5、为完成功能1,需要有温度采集输入接口电路,即将热敏电阻阻值随温度的变化转换为电压变化信号,并经过必要的转换或信号的放大与处理,使之符合微机控制系统要求。接口电路的组成与传感器输出信号的形式有关,与微机处理系统功能要求有关,因此可根据输出信号的形式和系统的功能要求决定接口电路的类型。本次设计的接口电路所采用的元件有运算放大器 LM741CN、滑动变阻器、电阻、稳压管等。分别实现电压的转换放大、电压大小的调整、分压、稳压等功能。 为实现功能2,需要有能将接口电路输出的电压信号转化为数值的微机部件,即ADC0808或ADC0809。因而也需要能对AD转换部件进行控制的由一系列微机部件组成的最小系统。
6、该最小系统包括8086CPU、74LS138、74LS273、8255作用分别是处理指令、提供片选信号、地址锁存、控制LED等。为将数值显示出来,还需至少两位8段数码管。说明:分析本课题任务与功能,概述为完成任务所需的微机部件有哪些?各应起到何种功能?(2)方案设计 系统总体框图如图2-1热敏电阻PCB板、微机系统通电热敏电阻阻值随温度变化而变化变化测温电路将温度变化转换为电压信号 最小系统控制ADC0809 使其工作ADC0809采样,电压信号转为数字量最小系统读取数字量 LED显示 传感器部分CPU部分输出显示部分 图2-1系统总体框图 该系统主要由传感器部分、CPU部分和输出显示部分组成
7、。它们的各自工作原理如下:1.传感器部分工作原理: 将热敏电阻阻值随温度的变化经稳压电路、放大电路等转换为电压变化信号,并经过必要的转换或信号的放大与处理,转为合适微机电路的电压输出。2.CPU部分工作原理: 最小系统提供片选信号选中ADC0809,输出信号使其工作,ADC0809将传感器部分的输出电压信号转为数字量。最小系统读取数字量,数字量经由数据总线传输给8255,8255将其显示在LED上。3.输出显示部分工作原理: 将8255得到的数据通过指令显示具体数值。2.3 主要元器件及其说明 本系统主要原件有8086、8255、74LS138、74LS373、ADC08098、8段数码管。其
8、各功能和使用方法如下:1. 8086如图2-2为8086结构。8086由指令执行部件和总线接口部件组成。其主要功能为执行指令和形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行等。其使用方法是使VCC引脚接+5V电压,GND引脚接地,各个引脚根据指令输出信号。8086可以发出对I/O端口进行读、写的信号。 图2-2 8086结构2. 8255 如图2-3为8255结构及各引脚定义。本设计中8255主要作为CPU与外设(LED)之间的输出通道。其使用方法为将8255的D0D7口与数据总线对应相连,地址总线接A0、A1。A0、A1的组合与端口关系见图。另外要使8255工作还需有片
9、选信号输出到6引脚CS。其A1、A0真值表如图2-4 图2-38255结构 图2-4 A0、A1真值表 3. 74LS138 74LS138结构如图2-5,其功能为通过使能端输入信号,经输入端A、B、C产生片选信号选择YOY7中的一个引脚产生片选。其真值表如图2-6 图2-5 74LS138结构 图2-6 A、B、C口真值表4. 74LS37374LS373结构如图2-7,本次设计将其作为地址锁存器。1脚是输出使能(OC),输入端1D8D接AD复用总线,1Q8Q 提供输出地址线。真值表如图2-8 图2-7 74LS373结构 图2-8 74LS373真值表 5. ADC0809 ADC0809
10、结构如图2-9。IN0IN8通道为模拟量输入信号,ADDA、ADDB、ADDC为通道选择信号。当START和ALE通过或非门与WR信号及片选信号相连时,CPU输出信号使ADC0809工作,OE经过或非门与片选信号及RD信号相连输入CPU,ADC0809将数据通过D0D7输到数据总线上。 图2-9 ADC0809结构6. 8段数码管 8段数码管结构如图2-10若是共阴极数码管,则通过给需要亮的二极管的控制口置“1”,使其亮。如要显示数字“7”则要使a、b、c口为“1”。则要输入的字形字为07H。若是共阳极数码管,则通过给需要亮的二极管的控制口置“0”,使其亮。如要显示数字“7”则要使a、b、c口
11、为“0”。则要输入的字形字为F8H。对于同时选择多个数码管,则需要定义各个数码管的字位口“9”。 图2-10 8段数码管结构2.4 系统设计及仿真(1)系统电路设计 1.8086 CPU模块 8086 CPU模块如图2-11,它提供总线和各种控制信号如WR、RD等。 图2-11 8086 CPU模块2.地址锁存器部分 用74HC373将复用总线转化为地址总线,其结构如图2-12 图2-12 地址锁存器3.片选部分用74LS138的A、B、C口实现Y0Y7的片选,其结构如图2-13 图2-13 138译码器结构4.模数转换部分片选信号及WR信号通过或非门使ADC0809工作,片选信号及RD信号通
12、过或非门读取AD转换结果,使用ADC0809将接口电路JP1输出的模拟量转化为数字量,通过数据总线读出。通过ADDA、ADDB、ADDC选择通道IN0IN7(图中三个引脚接地,选择IN0)。参考电压为5 V,则转化值为输入电压V*256/5。模数转换部分结构如图2-14。 图2-14模数转换部分5热敏电阻接口电路热敏电阻接口电路由电源稳压电路、传感器模拟量转换电路、电压跟随器、反向电路和可调反向放大电路及输出电路组成。将热敏电阻接入后,通过调节各个滑动电阻来调节输出电压JP1的大小,提供合适的电压值给微机系统。热敏电阻接口电路结构如图2-15。 图2-15热敏电阻接口电路 主要元器件的清单和价
13、格如图2-16。名称型号数量/个单价/元电阻1K40.015.1K10.017.5K10.0110K70.01可变电阻5K10.5810K30.58运算放大器LM741CN42.00电容0.33uF10.081uF20.08稳压二极管6.8V10.18三极管C265510.16PCB板1 图2-16 主要元器件的清单和价格(2)软件设计开发 1.控制程序流程图 控制程序流程图见图2-17开始初始化8255启动ADC0808读取转化后模拟数值查表比较然后转化为实际读数分离十位和个位查找SEGDATA显示数值结束 图2-17控制程序流程图 2汇编程序设计 本程序采用查表法,即根据AD转换出来的十进
14、制数,与实际温度进行比较,列出两者之间的对应关系的表,通过将AD输出数据与表比较,查出实际温度。其中A/D转换接口电路采用延时等待接法。 程序见附录。(3)系统仿真运行 根据仿真结果(图2-18),每个对应的实际温度能很准确地在数码管上显示出来。 图2-18 仿真结果 如图,当热敏电阻所处环境实际温度为48度时,数码管显示温度也为48度,仿真结果达到要求。2.5 接口电路板制作1.接口电路板的工作原理 接口电路主要由6个部分组成,分别是传感器激励电源、传感器模拟量转换电路、电压跟随器、一倍放大器、可调电压放大器、传感器输出端口。(1)传感器激励电源 其功能是提供稳压源供电,否则热敏传电阻传感器
15、的激励电源引起的微小变化将严重印象测试的精度。在电路中R1、D1、C1为运算放大器同相输入端提供稳定的基准参考电压,输出电压经R2、RW1、R3分压,经RW1可调端反馈到运算放大器的反相输入端,这样调整RW1就能输出稳定的设定电压值。传感器激励电源结构如图2-19。 图2-19 传感器激励电源(2)传感器模拟量转换电路 传感器模拟量转换电路是连接传感器与放大器的端口,电路由R4、R5、R6、RW2、C2、Q1组成。热敏电阻传感器在温度变化场下将产生电阻率的变化,为获得对应的电压值,将热敏电阻传感器3脚设计放置在Q基极的上偏置;与下偏置RW2、R4、C2共同组成Q1基极的偏置电路,调整RW2就能
16、改基极电压VB,再由静态分析公式:Ie=Ic=(VB-VBEQ)/R6得随VB变化的Ie的值,Ie流经R6时产生随温度变化的对应电压值。传感器模拟量转换电路结构如图2-20。 图2-20 传感器模拟量转换电路(3)电压跟随器电压跟随器的输入阻抗很大,输出阻抗很小,可以看成是一个阻抗转换的电路,这样可以提高原来电路带负载的能力。电压跟随器部分如图2-21。 图2-21电压跟随器(4)一倍放大器、 将电路中的R7、R8、R9阻值设计为10k,这样运算放大器将组成一倍的反相运算放大器。一倍放大器结构如图2-22。 图2-22 一倍放大器 (5)可调电压放大器电路中R10、R12、RW5、R11组成可
17、调反相放大器,调整RW5就能微调输出电压放大倍数,其结构如图2-23。 图2-23可调电压放大器(6) 传感器输出端口 RW6、R13、C3、JP1组成了输出接口电路,调整RW6就可改变输出电压大小,这样能确保在最大量程时,输出电压不超过5V。传感器输出端口结构见图2-24。 图2-24传感器输出端口2调试过程热敏电阻测温电路调试方法:1正确连接正负12V电源,确认没有接错!2调节RW1,用万用表20V档测量热敏电阻插座RD的1脚电压,使其为10V;3用导线短接热敏电阻输入端RD的1、3引脚,此时对应NTC热敏电阻的最高测量值。用万用表20V档测量电路板信号输出端JP1的1脚,调节RW6万用表
18、读数控制在5V以内,如4.8V;4连接热敏电阻到RD,在室温下(25)调节RW2使三极管Q1的发射极输出电压为1V;5继续调节RW5使运放U4的输出引脚(6脚)输出为1V;6最后调节RW6使JP1的1脚为0.5V;7上述初始状态调节好后,可以实际测量不同温度下,电路板的输出电压,建立温度与电压之间的关系公式;注意事项: 1热敏电阻类型是NTC-3950,R25=10k,B=3950; 2电路板的输出电压不能高于5V,否则会烧坏微机实验箱电路!3电路板实物图片 以下是电路板实物图片,如图2-25 图2-25电路板实物图2.6 联机调试联机调试的关键点就是要知道Dias实验箱已经定义各个地址,不能
19、自己定义。 还需掌握联机调试的方法。实验箱中IOW和138译码器的Y0口通过02或非门电路来控制ADC0809的START和ALE来实现对其的控制。实验箱中IOR和138译码器的Y0口通过02或非门电路来控制ADC0809的OE来实现对数据的读取。实验箱内部6个八段共阴极数码管接74LS373,字形口定义为FFDCH,字位口定义为FFDDH。138译码器使能控制信号G接使能控制段GS,A、B、C片选口分别接地址总线A2、A3、A4。74LS273与数据总线D0D7相连。 联机调试总体图片如图2-26、图2-27、图2-28、图2-29。 图2-26 联机调试总体图片 图2-27 联机调试总体图
20、片 图2-28 联机调试总体图片3.心得体会本次课程设计我学会了proteus软件的使用和编程。从开始对这个软件的一无所知到慢慢学会使我明白只要用心去学习,我们就会有很大的提高,万事开头难,只要我们不打退堂鼓,困难最终会被我们以各个击破。而且绘图很考验我们的细心,在绘图的过程中少了什么关键微机元件、部分引脚没有定义或一些接口没有接信号输入等都会使后面编程产生错误,所以说做什么事情都要细心。这次的编程,书上的程序虽然都大体学过,可是它们是彼此分离的,没有形成一个整体,而且平时我们缺乏对其的使用,导致刚开始好一段时间我对程序的编制是一点头绪也没有的。不过随着资料查阅不断增多、程序阅读的增多及听别的
21、小组讨论产生的想法使我对汇编语言的基本知识更加熟悉同时也增加我对本次课程设计汇编语言设计的能力。通过这次课程设计,我明白,做好一个课程设计,需要我们的细心、耐心、好奇心,更需要恒心,课程设计更少不了同学之间的合作,虽然我们这组大部分的活是我一个人干的,但是在完成的过程中我常在那里听别组成员一起讨论编程与调试,一起发现问题、讨论问题,然后避免犯他们犯过的错误,吸收他们一些我没有的想法,大大提高了解决问题的速度。在做课程设计之前我觉得课程设计只是对着门课所学的知识单纯的总结,但通过这次课程设计我发现自己的观点太片面,课程设计不仅是对所学知识的一种检验,而且也是对能力的一种提高。在课程设计过程中,只
22、有把理论知识拿到实际运用中才能发现它的乐趣,才能发现它的价值,从开始的担心和害怕渐渐变成了享受,享受着一步步成功带给我们的快乐。看着自己做出来的东西,很开心。我想微机原理课程设计和其他课程设计有共同的地方,那就而且它也有它的独特的地方,那就是编程和自己做出实物,之前的课程设计基本都是计算而且没有实物,很无聊很枯燥。所以这次很有趣,也使我有更多的兴趣学习微机原理和其他的汇编。我还发现,我也一直都知道我存在一个很大的问题,那就是缺乏团队合作能力。身为组长,我独揽了大部分的工作。探其根本,大概是我对别人的不信任及自身缺乏沟通能力。这种性格给我带来了不少苦头,我自己也曾尝试改变,不过有点根深蒂固了。最
23、后感谢老师在课程设计中对我们的悉心指导与帮助。4.参考文献 1 周佩玲,彭虎,傅忠谦. 微机原理与接口技术(第3版).电子工业出版社,2011 2 李国栋,汪新中,陆志平,等. 微机原理与接口技术课程设计.浙江大学出版社,2007 3 顾晖等,微机原理与接口技术-基于8086和Proteus仿真(第2版),电子工业出版社,20155.附录:Proteus程序DATA SEGMENTSEGDATA DB 3FH,06H,5BH,4FH,66H,6DH,7DH, 07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;LED显示0FTABLE1 DB 18,19,21,22,24
24、,26,28,29,31;基准电压为5V, DB 33,35,37,39,41,43,46,48,50;模拟电压V DB 52,55,57,59,61,64,66,68,71;据公式N=V*256/5得 DB 73,76,78,80,83,85,87,90,92 ;AD转换十进制表 DB 94,97,99,101,103,106,108,110 DB 112,114,117,119,121,123,125,127 DB 129,131,133,135,137,139,140,142,144 TABLE2 DB 20,21,22,23,24,25,26,27,28,29;模拟值对应实际温度 DB
25、 30,31,32,33,34,35,36,37,38,39 DB 40,41,42,43,44,45,46,47,48,49 DB 50,51,52,53,54,55,56,57,58,59 DB 60,61,62,63,64,65,66,67,68,69 DB 70,71,72,73,74,75,76,77,78,79,80 A8255 EQU 40H;8255 A口、B口、C口、控制口定义B8255 EQU 42HC8255 EQU 44H Q8255 EQU 46H AD0808 EQU 50H ;ADC0808 口定义DATA ENDSCODE SEGMENT ASSUME DS:D
26、ATA,CS:CODESTART: MOV AX,DATA MOV DS,AX MOV DX,Q8255;对8255控制口赋值90H MOV AL,90H ;A、B、C口方式0 OUT DX,AL ;A输入,B、C输出HERE: MOV DX,AD0808 MOV AL,0 ;选择通道0 OUT DX,AL MOV CX,100H ;延时等待数据转换完成 LOOP $ IN AL,DX ;读取数据 MOV SI,0COMP : CMP AL,TABLE1SI ;将模拟量与模拟量表中数据 JNA A1 ;比较,得出模拟量 INC SI JMP COMPA1: MOV AL,TABLE2SI ;将
27、模拟量转化为实际温度 MOV AH,0 MOV BL,10 ;分离温度的十位和个位 DIV BL MOV BX,OFFSET SEGDATA ;对分离出的十位查表 XLAT MOV DX,B8255 ;查表结果赋给LED字形口 OUT DX,AL MOV AL,11110111B ;字位口选中第二个LED MOV DX,C8255 OUT DX,AL CALL DELAY MOV AL,0FFH ;结束选中LED OUT DX,AL MOV AL,AH ;将个位赋给AL MOV AH,0 ;个位清零 MOV BX,OFFSET SEGDATA ;对个位进行查表 XLAT MOV DX,B825
28、5 ;将查表结果赋给LED字形口 OUT DX,AL MOV AL,11101111B ;字位口选中第三个LED MOV DX,C8255 OUT DX,AL CALL DELAY MOV AL,0FFH ;结束选中LED OUT DX,AL MOV AL,11011111B ;选中第四个LED OUT DX,AL MOV AL,01100011B ;显示单位“o” MOV DX,B8255 OUT DX,AL CALL DELAY MOV DX,C8255 MOV AL,0FFH ;结束选中LED OUT DX,AL CALL DELAY MOV AL,0FFH OUT DX,AL MOV AL,10111111B ;选中第五个LED OUT DX,AL MOV AL,00111001B ;显示单位“ C” MOV DX,B8255 OUT DX,AL CALL DELAY MOV DX,C8255 MOV AL,0FFH ;结束选中LED OUT DX,AL CALL DELAY JMP HERE ;继续读取数据DELAY PROC ;延时程序 PUSH BX PUSH CX MOV BX,1LP2: MOV CX,10LP1: LOOP LP1 DEC BX JNZ LP2 POP CX POP BX RETDELAY ENDPCODE ENDS END START24