电烤箱温度控制器的设计--微机原理与接口技术课程设计.docx_第1页
电烤箱温度控制器的设计--微机原理与接口技术课程设计.docx_第2页
电烤箱温度控制器的设计--微机原理与接口技术课程设计.docx_第3页
电烤箱温度控制器的设计--微机原理与接口技术课程设计.docx_第4页
电烤箱温度控制器的设计--微机原理与接口技术课程设计.docx_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

此文档收集于网络,如有侵权,请联系网站删除合肥学院计算机科学与技术系微机原理与接口技术课程设计 课程设计科目电烤箱温度控制器的设计学生姓名学号班级指导教师时间2017年02月25日电烤箱温度控制器的设计一、需求背景温度控制是工业生产过程中经常遇到的控制,有些工艺过程对其温度的控制效果直接影响着产品质量,因而设计一种较为理想的温度控制系统是非常有价值的。烤箱是热处理生产中应用最广的加热设备,它通过电流元件产生热量,借助辐射和对流的传递方式,将热量传递给所要加热的物品,使其加热到所需求的温度。采用烤箱的温度控制可以为我们的生活提供很多便利。它的适用范围也非常广泛,如工厂、餐厅、家庭,其适用的场合根据它的规格、功率及功能不同进行选择。对于家庭自用,一般选择功率较小500-1000W左右,烤箱的功能只要能满足基本的加热即可,容量也比较小:9-12L基本满足家用;但对于餐厅、工厂这些人流量比较大、对烤箱要求比较高的地方,一般会选择功率很大、功能齐全(比如控温定时型、三控自动型)而且容量也相对很大的电烤箱。二、 题意与需求分析在STAR ES598单板机开发机上实现对电烤箱温度和时间的控制功能。1.设计要求:() 通过键盘设定温度和加热时间() 使用DS18B20采集温度,采用七段数码管显示当前温度和剩余时间,并和设置的温度进行比较。(3)当温度低于设定值时,通过DAC0832输出电压供给发热电阻RT1,使其温度升高。(4)使温度恒定在设定温度附近,时间到了停止加热,并提示操作完毕2.提出问题(1)如何设置时间界限和目标温度(2)如何通过DS18B20读出环境温度并显示在LED上(3)当温度低于设定温度时,如何实现加热(4)DAC0832输出电压加热效果较弱,如何提高加热强度三、解决问题的方法与思路 根据上面提出的问题,给出如下解决方法:() 硬件部分选择8279芯片和七段LED显示器与键盘相连,设置矩阵键盘的功能,0-9数字键输入温度值,D键位启动键,F键位复位键。DS18B20与8255的PC0口相连,通过软件向PC0发出读命令,将温度从DS18B20读出,并通过8279芯片显示在数码管上。DAC0832输出的电压加热效果过弱,考虑添加一个功能放大器PW(实验板上为E2区)来提高加热效果。8255的PC7口连接逻辑笔(B2区)来测量发热电阻的工作情况,通过显示不同的颜色灯来反映是否加热到目标温度。() 软件部分对通用控制芯片8279进行编程以从实现从键盘输入温度设定值,显示温度,清除显示等功能);对温度传感器DS18B20进行编程以实现初始化/启动、读写温度、温度转换等功能。对控制芯片8255A的控制及操作(如读出DS18B20的温度,控制发热电阻产生加热所需的热量);通过将读出的温度与设定的温度比较来决定是否对发热电阻RT1的加热操作设置一定的延时程序以满足不同芯片及元器件的工作时序解决进制之间的转换问题四、硬件设计1.可编程并行接口芯片8255A(1)8255A在本设计中的作用 利用8255A将界限值和温度值通过LED显示出来,同时8255A的PC0与DS18B20相连,向其发出温度检测命令及接受温度数据,PC7和发光二极管相连,用于光报警,PC7口与功能放大区的IN1连接,加强加热效果。 (2)8255A功能分析及技术参数8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、口和口。三个端口都可以作为输入端口或输出端口。口三种工作方式:即方式0、方式1和方式2,而口只能工作在方式0或方式1下,口通常作为联络信号使用。8255A的工作只有当片选CS效时才能进行。而控制逻辑端口实现对其他端口的控制。端口A:包含一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器,输入输出数据均受到锁存。端口B和C: 都包含一个8位数据输入缓冲器和一个8位的数据输出锁存器/缓冲器,输出数据能锁存,输入数据不锁存。 端口C:可分成两个4位端口,分别定义为输入或输出端口,还可定义为控制、状态端口,配合端口A和端口B工作。8255A是可编程外围设备接口(Programmable Peripheral Interface, 简写为PPI)其内部结构如图所示:图1-18255内部结构RESETB组控制部件CSA0A1WRRDD7D0双向PB7PB0PC3PC0PC7PC4PaPA7PA0B组端口C低4位A组控制部件A组端口A8位B组端口B8位A组端口C高4位读/写控制部件数据总线缓冲器(3)8255A工作在方式0方式0的工作特点:这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。其功能为:两个8位通道:通道A、B。两个四位通道:通道C高4位和低四位;任何一个通道可以作输入/输出;输出是锁存的;输入是不锁存的;在方式0时各个通道的输入/输出可有16种不同的组合。方式0的使用场合:同步传送是在外设控制过程的各种动作时间为固定,且已知的条件下使用的。因此,传送中不要应答信号。输入时,执行程序只要给出IN指令;而输出时,也只给出OUT指令,就能实现数据的输入或输出。优点是程序简单,接口的硬件开销小。查询式传输时,要先查询一个外设的状态,当该状态表示外设已准备好时,方能开始查询传输,否则CPU将继续查询。但在方式0,没有规定固定的应答信号,所以,这时将通道A、B作为数据通道,把通道C的4个位(高4位或低4位)规定为输出口,用来输出一些控制信号,而把通道C的另外4个位规定为输入口,用来输入外设的状态。这样,利用通道C来配合通道A和B的输入/输出操作。8255方式选择控制字说明: 控制字格式如下:图1-28255A控制字格式D7=1工作方式控制标志。D5D6组合设定A口工作方式:00方式0;01方式1;1011方式2。D4设定A口的输入输出,D41时A口输入,D40时A口输出。D3为C口高4位输入输出选择,D31时为输入,D30时为输出。D2为B口工作方式选择,D21时B口方式1;D20时B口方式0。D1为B口输入输出选择,D11时输入;D10时输出。D0为C口低4位输入输出选择,D01时为输入,D00时为输出。(4)8255技术参数8255A工作最大电流为120MA,VCC=-5V+5V,I(DAR)工作电流最大为4MA。8255的输出电压不高,连接到LED时,最好加入一个驱动器起到电流放大的作用。下表为8255A主要参数说明:8255A技术参数测试条件规范值单位大小输入低电平电压VIL0.8-0.5V输入高电平电压VIHVCC2.0V输出低电平电压VOLOL2.5mA0.45V输出低电平电压VOLOL1.7mA0.45V输出高电平电压VOHOR- 400mA2.4V输出高电平电压VOHOH- 200mA2.4V达林顿驱动电流OAR-4.0-1.0mA电源电流CC120mA输入负载电流ILIN0 VCC10- 10mA输出浮动电流OFOR0.45 VCC10- 10mA表1-18255A主要技术参数2. 专用接口芯片8279(1)8279在本设计中的作用在本设计中,8279作为专用接口芯片连接着七段LED显示器和键盘,实现对输入温度设定值和显示实时温度的控制。IR0(2)8279功能分析 D0 D7FIFO/传感器RAM的状态寄存器时钟复位 RD WR CS A0I/O控制数据缓冲器8X8 FIFO/传感器RAM键盘去抖动与控制控制与定时寄存器16X8 显示RAM显示地址寄存器显示寄存器扫描计数器定时与控制回复OUTA0OUTA3BDCNTL/STBOUTB0OUTB3SL0SL3 shiftRL0RL7图2-18279内部逻辑框图8279采用单5V电源供电,40脚封装。 DB0DB7:双向数据总线,用来传送8279与CPU之间的数据和命令。CLK:时钟输入线,用以产生内部定时的时钟脉冲。RESET:复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式程序 时钟前置分频器被置为31,RESET信号为高电平有效。CS:片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。A0:缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态, 当为低电平时,表示数据总线上为数据。RD:读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。WR:写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。IRQ:中断请求输出线,高电平有效,在键盘工作方式下,当FIFO/传感器RAM中有数据时,此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM中还有信息,则此线重又变为高电平。在传感器工作方式中, 每当探测到传感器信号变化时,中断线就变为高电平。SL0SL3:扫描线,用来扫描按键开关,传感器阵列和显示数字, 这些可被编程或被译码。RL0RL7:回送线,经过按键或传感器开关与扫描线联接, 这些回送线内部设置有上拉电路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;无按键闭合时,均保持高电平。 SHIFT:换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关时,SHIFT输入端保持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。CNTL/STB:当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平,对于键盘输入方式,此线用作控制输入端,当键被按下时,按键位置就和控制输入状态一起被存贮起来,在选通输入方式中,作选通用,把数据存入FIFO RAM中。OUTA3OUTA0及OUTB3OUTB0:显示输出A口及B口,这两个口是164切换的数字显示。这两个端口可被独立控制,也可看成一个8位端口。BD:空格显示,此输出端信号用于在数字转换时将显示空格或者用显示空格命令控制其显示空格字符。VCC:5V电源输入线。 VSS:地线输入线。(3)8279的编程方法1)8279可按其功能分为:键盘功能块;显示功能块;控制功能块;与CPU接口功能块控制功能块包括控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作。 控制和定时寄存器:用于存贮来自CPU的编程命令,CPU对8279编程以确定键盘与显示器工作方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使A0=1,WR=0,CS=0,并在WR上升沿把命令键存在控制和定时寄存器中,经译码,建立适当功能。 控制:它含基本的定时计数器,第一个计数器是一个分频系数为2-31的前置定时器,分频系数可由程序预置,使内部频率为100KHz,从而能给出5.1ms键盘扫描时间和10.3ms反跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描、行扫描、键盘阵列扫描、以及显示器扫描次数。 扫描计数器:扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二进制计数,通过管脚SL0-SL3输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式时,扫描计数器对最低二位进行译码,SL0-SL3输出4选1的译码信号,作为显示器和键盘的译码扫描。 键盘功能块包括:返回缓冲器,键盘反跳及控制,8x8 FIFO传感器RAM,FIFO/传感器RAM状态。2)返回缓冲器与键盘反跳及控制8条返回线被返回缓冲器缓冲,在键盘工作方式中,这几条线被逐个检测,以找出该行键中闭合的键。如果反跳电路测知某键闭合,则它等待10.3ms,然后重核此键是否仍然闭合。如果仍闭合,那么该键在矩阵中的行列地址以及SHIFT和CNTL的状态一起被送到FIFORAM中,其在FIFO RAM中的数据格式如下:D7D6D5D4D3D2D1D0 CNTL SHIFT SCAN RETURN 数据格式中,最高位CNTL,次高位为SHIFT状态,D5-D3来自扫描计数器,D2-D0来自返回计数器,扫描线计数器和回扫线计数器的值分别反映出被按下键的行、列的值,如果在传感器阵列中,返回线上的数据直接进入传感器RAM中相应于阵列中正被扫中的那行,这样每个开关位置就直接反映为一个传感器RAM的位置。 显示RAM和显示寄存器8279内部有16X8的显示RAM,通过显示寄存器和两个四位端口0UTA0-3,OUTB0-3来刷新显示。显示器可以是白炽灯,也可以是8段数码管,显示RAM可以是16X8的形式,也可以构成两个16x4的RAM形式。显示RAM可由CPU进行读写,被读写的RAM字节地址由显示地址寄存器指示。显示地址寄存器保存当前CPU读或写的那个RAM地址,以及正显示着的那两个4位半字节的地址。读写地址由CPU命令编程,也可置为每次读写后地址自动加1的工作方式。在设置了正确的工作方式后,显示RAM可直接由CPU读出,半字节A和半字节B地址自动由8279更新,以适应由CPU送入的数据,A和B半字节可独立送入,也可作为一个字送入,随CPU所设置的工作方式而定。3)FIFO/传感器RAM及其状态寄存器FIFO/传感器RAM是一个双重功能的88位RAM。在键盘或选通工作方式时,它是FIFO RAM,其输入/输出遵循先入后出的原则。此时,FIFO状态寄存器存放FIFO的工作状态,若FIFO不空,IRQ信号为高电平,向CPU申请中断。在传感器矩阵方式工作时,该存储器用于存放传感器矩阵中每一个传感器的状态。在此方式中,若检出传感器发生变化,则IRQ信号变为高电平,向CPU申请中断。4)显示RAM和显示地址寄存器显示RAM用于存储显示数据,容量为168。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分为A、B两组,OUTA30、OUTB30。它们即可以单独送数,也可以组成一个8位的字,OUT A输出高4位,OUTB输出低4位。显示寄存器的输出与显示扫描配合,轮流驱动被选中的显示器件,实现稳定的动态显示。显示地址寄存器用来寄存CPU读/写显示RAM的地址,它可以由命令设定,也可以设置成在每次读出或写入之后自动递增。(4)8279工作方式 1)键盘工作方式通过命令字可将键盘工作方式设定为双键互锁与N键巡回两种工作方式。双键互锁:若有两个键或多个键同时按下,8279电路只识别最后一个释放的键,并把键值送入FIFO/传感器RAM中。N键巡回:若有多个按键同时按下时,键盘扫描将各键键值依按下顺序依次存入FIFO/传感器RAM中。2)显示器工作方式通过设置键盘/显示命令字和写显示RAM命令字,显示数据写入显示缓冲器时可置为左端送入和右端送入两种方式。左端送入为依次填入方式,右端送入为移入方式。3)传感器矩阵方式 通过设置读FIFO/传感器命令字,8279可工作于传感器矩阵方式,此时传感器的开关状态直接送到传感器RAM。CPU对传感器阵列扫描时,如果检测到某个传感器状态发生变化,则产生中断请求信号IRQ。(4)8279命令字1)键盘/显示方式设置命令D7D6D5D4D3D2D1D0000DDKKK D7、D6、D5是方式设置的特征位。D4、D3为显示方式设定位,D2、D1、D0位键盘/显示工作方式设定位。2)时钟编程命令D7D6D5D4D3D2D1D0001PPPPPD7、D6、D5是时钟编程命令的特征位,D4、D3、D2、D1用于设定对CLK输入端输入的外部时钟信号进行分频的分频系数N。3) 读FIFO/传感器RAM命令D7D6D5D4D3D2D1D0010AIAAAD7、D6、D5是读FIFO/传感器RAM命令的特征位,D4自动递增设置位,D2、D1、D0为FIFO/传感器RAM地址。4) 读显示RAM命令D7D6D5D4D3D2D1D0011AIAAAAD7、D6、D5是读显示RAM命令的特征位,D4自动递增设定位,D3、D2、D1、D0为显示RAM的存储单元地址。5)写显示RAM命令D7D6D5D4D3D2D1D0100AIAAAAD7、D6、D5是写显示RAM命令的特征位,D3、D2、D1、D0为写入显示RAM的存储单元地址。6)显示禁止写入/消隐命令D7D6D5D4D3D2D1D0101IWAIWBBLABLBD7、D6、D5是显示禁止写入/消隐命令的特征位,D3、D2为A、B组显示RAM写入屏蔽位,当D3=1时,A组的显示RAM禁止写入,从CPU写入显示RAM数据时,这种情况通常用于双4位显示器,当D2=1时,可屏蔽B组显示器。D1、D0位A 、B组的消隐设置位。7)清除命令D7D6D5D4D3D2D1D0110CDCDCDCFCAD7、D6、D5是清除命令的特征位,D4、D3、D2为清除显示RAM方式设定位,D1为置空FIFO存储器设定位,D0为总清楚设定位。8)结束中断/出错方式设置命令D7D6D5D4D3D2D1D0111ED7、D6、D5为111是结束中断/出错方式设置命令的特征位,D4为1时,N键轮回工作方式可工作得特殊出错方式,对传感器工作方式,此命令使IRQ变低,结束中断,并允许对RAM进一步写入。(5) 芯片8279的技术参数symbolParameterMinMaxUnitTest ConditionsVIL1Input Low Voltage For Return Line0.51.4VVIL2Input Low Voltage For All Other0.50.8VVIH1Input High Voltage For Return Lines2.2VVIH2Input High Voltage For All Others2.0VVOLOutput Low Voltage0.45V(note 1)VOH1Output high voltage on interrupt line3.5V(note 2)VOH2Other Outputs2.4IOH=-400A 8279-5 -100A 8279IIL1Input Current On Shift,Control And Return Lines+10100AAVIN=VCCVIN=0VIIL2Input Leakage Current On All Others10AVIN=VCC to 0VIOFLOutput Float Leakage10AVOUT=VCC to 0.45VICCPower Supply Current120mACINInput Capacitance10pFfC=1MHZ UnmeasuredPins Returned to Vss(6)COUTOutput Capacitance20pF表2-18279主要性能参数3.DS18B20温度传感器(1) DS18B20在本设计中的作用本实验设计中DS18B20作为唯一的温度传感器,其作用是测量出试验中各种所需温度并经由可编程接口芯片8255A以及专用接口芯片8279将温度显示于LED上,最终实验温度的比较,制热等功能。(2) DS18B20的功能特点和内部结构DS18B20可编程温度传感器有三个管脚:GND为接地线;DQ为数据输入输出接口,通过一个较弱的上拉电阻与CPU相连;VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.05.5V。本系统中使用外部电源供电。其主要特点为: 用户可以自行设定报警上下限温度值; 不需要外部组件,能测量-55+125C范围内的温度; 在-10+85C范围内的测温准确度为0.5C; 通过编程可以实现912位的数字读数方式,可在至多750MS内将温度转换成12位数字,测温分辨率可达到0.0625C; 独特的单总线接口方式,与微处理器连接时仅需要一条线既可实现和微处理器的双向通讯。 图3-1 DS18B20内部结构图DS18B20的内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,配置寄存器。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。(3) DS18B20测温原理和技术参数斜率累加器预置比较LSB置位/清除低温度系数晶振计数器 1预置加1= 0温度寄存器高温系数晶振计数器 2= 0图3-2DS18B20测温原理 DS18B20的测温原理如图所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。 下表显示了DS18B20用12位来存放温度的存储方式,其中最高位为符号位,负温度时 S=1,正温度时 S=0。表3-112位存放温度时的格式这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。DS18B20的存储器:DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。该字节各位的意义如下:8 76 5 4 32 1 TMR1R011111表3-2暂存器格式字低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)分辨率设置表:R1R0分辨率温度最大转换时间009位93.75ms 0110位187.5ms 1011位375ms 1112位750ms 表3-3分辨率表根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。4、LED显示器(1)芯片在本设计中的作用 LED发光二极管在本设计中采用7段数字发光二极管,作为终端显示。显示时间的分秒。(2)LED的功能分析 物理构造:LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,即可显示出定义数字。有段选码和位选码确定数字18的输出并在延时程序中保持复位。它是一种当外加电压超过额定电压时发生击穿,并因此而产生可见光的器件。这种数码管是有7段或8段笔画显示器组成一个字符而形成的。 图4-1 LED内部结构图4-2 LED显示表4-1 LED显示管段选码编码表数字dpgfedcba二进制编码011000000C0h111111001F9h210100100A4h310110000B0h41001100199h51001001092h61000001082h711111000F8h81000000080h91001000090h(3)LED的技术参数分析LED发光二极管的压降一般为1.5-2.0V,其工作电流一般取10-20Ma,发光二极管可应用于直流驱动电路、交流驱动电路和脉冲驱动电路。 由于8255A的最大驱动电流为4.0mA,而LED的工作电流一般为10-20mA,所以需要加一个驱动器74LS244。5、矩阵键盘(1)矩阵键盘在本设计中的作用 矩阵键盘在工作时,是按照行线和列线交叉点的电平值来识别按键的,由人手按动键盘。当键释放后,该键就有效。矩阵键盘将0F这16个键按行和列排列成矩阵形式。对于mn哥键的键盘,只需要m+n位I/O端口,我们的实验采用的是44键盘。(2)矩阵键盘的功能分析在矩阵键盘中,通过行列交叉点上的电平值来识别按键,而行列线通过键盘数据格式确定,键盘数据格式如下: 表5-1 键盘数据格式 D7 D6 D5 D4 D3 D2 D1 D0CNTLSSHIFTSL2SL1SL0R2R1R0控制移位行编码列编码其中,控制和移位由两个独立的附加开关决定;SL2 SL1 SL0为按下键的行编码,来自扫描计数器的低三位,R2 R1 R0是根据返回信号确定的列编码。通常使用的键盘是矩阵结构的。对于44=16个键的键盘,采用矩阵方式只要用8条引线和2个8位端口便完成键盘的连接。如图,这个矩阵分为4行4列,如果键5按下,则第1行和第1列线接通而形成通路。如果第1行线接低电平,则键5的闭合,会使第1列线也输出低电平。矩阵式键盘工作时,就是按行线和列线的电平来识别闭合键的。 图5-1 44键盘矩阵图行扫描法识别按键的原理如下:先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合。这是通过检查列线电位来实现的,即在第0行接低电平时,看是否有哪条列线变成低电平。如果有某列线变为低电平,则表示第0行和此列线相交位置上的键被按下;如果没有任何一条列线为低电平,则说明第0行没有任何键被按下。此后,再将第1行接低电平,检测是否有变为低电平的列线。如此重复地扫描,直到最后一行。在扫描过程中,当发现某一行有键闭合时,也就是列线输入中有一位为0时,便退出扫描,通过组合行线和列线即可识别此刻按下的是哪一键。6. 功能放大器LF351(1) LF351在本设计中的作用由于所设计的系统中并不包含功能放大器,在实际应用时应该外接运算放大器。本设计中采用的同样是National Semiconductor生产的运算放大器LF351,使由8255A传递到发热电阻的信号效果增强,使演示效果更明显。(2) LF351功能分析LF351是一款低价位高速度、具有内部电压平衡功能的JFET(Junction Field Effect Transistor,结晶型场效应晶体管)运算放大器。它只需要微量的电流,就可以产生并保持宽带高速的回转电流。另外,它可以很好的匹配输入,产生相当电压伏度。LF351可以用在高速求积器、快速数/模转换、抽样保持电路及诸多要求低输入偏移电压、低输入偏转电流、高回转速率和广带宽的场合。总的来说,LF351是一个很好的选择。本实验要用LF351将8255A给出的信号放大使发热电阻能很快上升温度,缩短由于等待实验现象所花费的时间。7、硬件总逻辑图及说明图7-1 总逻辑原理图对于上面的硬件总逻辑图说明如下:首先利用和主机直接相连的可编程接口芯片8255的PC0口接到温度传感器DS18B20的TOUT端,来控制其工作;8255A的PC7口通过运算放大器再经由发热电阻RT1接到DS18B20的Tctrl端,实现对温度传感器的加热(RT1接收到高垫片则发热,反之若接收到低电平则停止加热)。另一方面,通过专用接口芯片8279来控制键盘的输入接收与LED灯的显示,反映温度的变化情况和实现对其的控制。注:原理图中作了部分简化,省去了接地端与时钟输入以使整张图紧凑,分布合理。STAR ES598PCI试验仪接线说明:G1区:TOUT-B4区:PC0(8255)G1区:TCtrl-E2区:OUT1B4区:PC7(8255) - B2区:TEST E2区:IN1B4区:CS(8255)-A3区:CS1B4区:A0、A1-ESPCI:A0、A1E5区:CS-A3区:CS5E5区:A0-ESPCI:A0E5区:CLK-B2区:2ME5区:A、B、C、D-G5区:A、B、C、D表7-1主机连线说明五、控制程序设计1、控制程序设计思路说明本程序采用模块化的程序设计思想,将完成整个作业所需要的全部功能按要求划分为若干子模块。具体到本设计而言,控制程序主要有:主程序块,设定温度、时间初值子模块,倒计时子模块、初始化DS18B20子模块,读温度子模块,显示读出的温度值子模块,初始化8279子模块,扫描按键子模块,显示输入的温度设定值子程序,启动加热子程序及其他一些初始化程序和延时子程序。具体设计思路如下:() 首先对8279、8255进行初始化。() 编程让8279控制键盘输入两个值:时间和温度,在七段LED显示器前两位显示设定温度,后四位显示时间。() 初始化DS18B20,DS18B20采集温度传输到8255,将采集的温度显示在七段LED显示器的最后两位。() 将采集的温度显示在并与界限值比较,小于界限就通过功率放大器进行加热,大于或等于界线值则停止加热。温度和时间一秒刷新显示一次,通过调用延时,使主程序循环一次是一秒。输入的时间以分钟计时,60秒后时间减一,时间到停止加热。由于DS18B20采用串行数据传送和单总线数据传输方式,其数据输入输出都由同一条线完成,因此,对读写的操作时序要求严格,需要做较精确的延时。2、程序流程图开始(1)倒计时流程图显示分钟显示秒钟秒数减1秒数为0结束NY分数减1YN分数为0束倒计时退出结 束(2)DS18B20初始化子程序流程图开始主机发出延时501us低脉冲等待15次DS18B20回复回复? NO15次等待结束YES18B20存在,置复位18B20不存在,结束() 启动DS18B20开始复位DS18B20CF=0?NY控制字写入DS18B20发读温度指令结束() 读温度字操作流程图开始开始时让PC0口维持低电平写入新的控制字,准备接收温度值调用延时子程序,温度经由PC0口写入AL右移AL最低位至标志位CF标志位转移至BL,备份AL中的值,PC0口置低电平准备读下一位RET结束() 读出DS18B20的温度存放在AX开始首先复位DS18B20跳过ROM匹配发出度温度指令读出温度,存放至AX;还原寄存器结束RET() 扫描按键子函数流程图写入8279控制字有键按下?NOYESNO KEY读FIFO/ROM,键号转化为键值并输出RET结束(7)显示温度设定值开始保护寄存器SI,BX将键入的温度值存入中间量KEYCOUNT_NUM调用显示子函数,显示值寄存器出栈RET结束() 启动加热子程序流程图开始将温度设定值写入AX将键入的值转化成16进制数,便于与存在BX中的测得的温度进行比较将温度设定值与测量的温度值进行比较YES设定值高于测量值? NO启动加热无需操作调用延时,是加热维持一段时间RET结束() 主程序流程图初始化板卡子程序初始化8255和8279向DS18B20发送读温度命令延迟读出温度,放入AL中8279显示温度值倒计时(1S)向DS18B20发送读温度命令延迟读出温度,并且8279显示温度 倒计时结束Y N逻辑笔闪亮结 束注:以上为主要程序(主要有我自己动手编写,调试,修改)的流程图;其他部分(如初始化PCI卡,延时子程序,转化BCD等)均来在所查阅的文献及参考其他的程序,因此流程图未给出。3、主要控制程序 (1)-按键扫描-8279通过SL0SL2进行键盘扫描,如果有键按下,将通过8279控制端口读到的键号进行键值转换,判断是否有键按下,有键按下则通过8279的数据口读入,进行下一步的键值处理函数。反之一直扫描按键。SCAN_KEYPROCNEARMOVDX,CMD_8279IN AL,DX;读状态READ_FIFO:ANDAL,7JZNO_KEY;是否有键按下READ_8279: MOVAL,40HOUTDX,AL;读FIFO RAMMOVDX,DATA_8279INAL,DXSTC;有键 RETNO_KEY:CLC;无键按下,清CFRETSCAN_KEYENDP (2)-设置时间、温度-设置一个中间量KEYCOUNT来表示从键盘读取数字的个数,每次扫描到有键按下后,KEYCOUNT加1,最后将其和6进行比较,若等于6,说明已经输入了时间和温度,不需继续输入数据,将最后输入的第七个键和D比较(D此处设置为启动键),若相等启动程序运行,若不等,一直扫描键盘直至按下D键。SET_TIME PROC NEARSTART_T1: MOV KEYCOUNT,0LEADI,temp1 ;把DI指向temp1缓冲区的首地址START_T2:CALL SCAN_KEY ;键扫描JNC START_T2 ;没有按键CF等于零,无进位,无借位CMP KEYCOUNT,6JNZ SHOWKEYCMP AL,0CDH ;判断是否按下为键 JNZ START_T2RETSHOWKEY:INCKEYCOUNTCALL SHOW1JMP START_T2 SHOW1: CALL KEY_NUM ;键值转换为键号STOSB ;顺序存储键值,为以后的显示做准备LEA BX,LED_TAB;字型码表XLAT ;BX+AL-EA,LED_TAB1-ALCALL WRITE_DATA;显示键值,再去键下一个值JMP START_T2WRITE_DATAPROCNEARMOVDX,DATA_82

温馨提示

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

评论

0/150

提交评论