空调单暖温度控制器 (2)_第1页
空调单暖温度控制器 (2)_第2页
空调单暖温度控制器 (2)_第3页
空调单暖温度控制器 (2)_第4页
空调单暖温度控制器 (2)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、合肥学院计算机科学与技术系页:1写明课程名称课程设计报告2008 2009 学年第 一 学期页:1课程 微型计算机原理与接口技术课程设计名称空调单暖温控器的设计与功能实现学生姓名黄蓉学号0604031049专业班级06网络工程(1)指导教师张向东2009 年 2月空调单暖温度控制器的设计与功能实现页:2题目可以不写设计要求:页:2这部分可以放到题意需求分析中(1) 使用DS18B20制作一个数字温度计,使用数码管交替显示当前温度值和设定温度值;(2) 使用键盘设定某一温度,通过DAC0832输出电压供给发热电阻RT1,使发热电阻RT1固定在该温度。1、 题意分析及解决方案 1. 题意需求分析为

2、了实现课题所要求的功能,本设计需要解决以下问题:(1) 如何通过DS18B20读出环境温度并显示在LED上;(2) 利用何种方法解决键盘输入和LED灯的显示问题;(3) 如何实现“单暖空调”的功能,即:当环境温度低于设定值的时候启动发热电阻加热以使温度升高到设定水平;(4) 运行过程中其他可以扩充的功能。2. 解决问题的思路及方法(1) 硬件部分结合题意要求以及实际需要,在硬件上笔者提供解决问题的方案如下。首先需要解决的是温度测控问题,因此温度传感器DS18B20必不可少,而DS18B20将温度信息传递给芯片8255A页:2不该加粗的不要加粗,其他地方雷同;当温度低于设定值时利用发热电阻RT1

3、给系统加热,为了演示比较明显的加热效果此处可增设一个功能放大电路(实验板上为E2区),同时利用逻辑笔(B2区)来测量发热电阻的工作情况;由于要从键盘设定温度值和通过LED显示温度,所以这一部分电路也是必备的(同时需要专用芯片8279)。考虑到节省芯片和紧凑系统规模,DAC0832的功能可以由8255A代为实现。综上所述列出硬件清单如下:硬件8255A8279DS18B20键盘LED灯发热电阻功能放大器逻辑笔主要功能控制温度传感器及发热电阻工作控制键盘和LED工作温度传感器,测量温度输入设定温度显示环境温度和设定值实现加热功能放大电路测试发热电阻的工作情况表1-1硬件清单页:2放在表格的上方(2

4、) 软件部分软件应该具备以下几个主要部分:(1) 对温度传感器DS18B20的操作(初始化/启动,读写温度,温度转换/显示);(2) 对控制芯片8255A的控制及操作(如读出DS18B20的温度,控制发热电阻产生加热所需的热量);(3) 对通用控制芯片8279的操作(如8279的初始化,从键盘输入温度设定值,显示温度,清除显示等功能);(4) 对发热电阻RT1的操作(控制其加热与否);(5) 另外还要设置一定的延时程序以满足不同芯片及元器件的工作时序;(6) 进制之间的转换等。二、硬件设计1.可编程并行接口芯片8255A(1)8255A在本设计中的作用 在本设计中8255A作为对DS18B20

5、进行操作的主要部件肩负着向温度传感器发送操作指令实现诸如:初始化DS18B20,读取温度值,对温度值进行十进制转换以及其他一些必要操作;同时8255A全权控制着发热电阻RT1的工作情况。(2)8255A功能分析及技术参数页:3分两部分写8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、口和口。三个端口都可以作为输入端口或输出端口。口三种工作方式:即方式0、方式1和方式2,而口只能工作在方式0或方式1下,口通常作为联络信号使用。8255A的工作只有当片选CS效时才能进行。而控制逻辑端口实现对其他端口的控制。端口A:包含一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器,输

6、入输出数据均受到锁存。端口B和C: 都包含一个8位数据输入缓冲器和一个8位的数据输出锁存器/缓冲器,输出数据能锁存,输入数据不锁存。 端口C:可分成两个4位端口,分别定义为输入或输出端口,还可定义为控制、状态端口,配合端口A和端口B工作。8255A是可编程外围设备接口(Programmable Peripheral Interface, 简写为PPI)其内部结构如图所示:页:3图片要居中不要超出界限,其他雷同图2-18255内部结构RESETB组控制部件CSA0A1WRRDD7D0双向PB7PB0PC3PC0PC7PC4PaPA7PA0B组端口C低4位A组控制部件A组端口A8位B组端口B8位A

7、组端口C高4位读/写控制部件数据总线缓冲器(3)8255A工作在方式0页:4调整文章的结构,使之更有条理方式0的工作特点:这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。其功能为:两个8位通道:通道A、B。两个四位通道:通道C高4位和低四位;任何一个通道可以作输入/输出;输出是锁存的;输入是不锁存的;在方式0时各个通道的输入/输出可有16种不同的组合。方式0的使用场合:同步传送是在外设控制过程的各种动作时间为固定,且已知的条件下使用的。因此,传送中不要应答信号。输入时,执行程序只要给出IN指令;而输出时,也只给出OUT指令,就能实现数据的输入或输出。优

8、点是程序简单,接口的硬件开销小。查询式传输时,要先查询一个外设的状态,当该状态表示外设已准备好时,方能开始查询传输,否则CPU将继续查询。但在方式0,没有规定固定的应答信号,所以,这时将通道A、B作为数据通道,把通道C的4个位(高4位或低4位)规定为输出口,用来输出一些控制信号,而把通道C的另外4个位规定为输入口,用来输入外设的状态。这样,利用通道C来配合通道A和B的输入/输出操作。8255方式选择控制字说明: 控制字格式如下:图2-28255A控制字格式D7=1工作方式控制标志。D5D6组合设定A口工作方式:00方式0;01方式1;1011方式2。D4设定A口的输入输出,D41时A口输入,D

9、40时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输出低电平电

10、压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表2-18255A主要技术参数2. DS18B20温度传感器(1) DS18B20在本设计中的作用本实验设计中DS18B20作为唯一的温度传感器,其作用是测量出试验中各种所需温度并经由可编程接口芯片8255A以及专用接口芯片8279将温度显示于LED上,最终实验温度的比较

11、,制热等功能。(2) DS18B20的功能特点和内部结构DS18B20可编程温度传感器有三个管脚:GND为接地线;DQ为数据输入输出接口,通过一个较弱的上拉电阻与CPU相连;VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.05.5V。本系统中使用外部电源供电。其主要特点为: 用户可以自行设定报警上下限温度值; 不需要外部组件,能测量-55+125°C范围内的温度; 在-10+85°C范围内的测温准确度为±0.5°C; 通过编程可以实现912位的数字读数方式,可在至多750MS内将温度转换成12位数字,测温分辨率可达到0.0625

12、76;C; 独特的单总线接口方式,与微处理器连接时仅需要一条线既可实现和微处理器的双向通讯。 图2-3 DS18B20内部结构图DS18B20的内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,配置寄存器。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18

13、B20的目的。(3) DS18B20测温原理和技术参数斜率累加器预置比较LSB置位/清除低温度系数晶振计数器 1预置加1= 0温度寄存器高温系数晶振计数器 2= 0图2-4DS18B20测温原理 DS18B20的测温原理如图所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对

14、应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55  所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B

15、20的测温原理。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。 下表显示了DS18B20用12位来存放温度的存储方式,其中最高位为符号位,负温度时 S=1,正温度时 S=0。表2-212位存放温度时的格式这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。DS18B2

16、0的存储器:DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。    暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。该字节各位的意义如下:8 76 5 4 32 1 TMR1R011111表2-3暂存器格式字低五

17、位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)分辨率设置表:R1R0分辨率温度最大转换时间009位93.75ms 0110位187.5ms 1011位375ms 1112位750ms 表2-4分辨率表页:8表标要放在表格的上方,其他雷同根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B2

18、0进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。3.七段LED显示器(1)七段LED显示器在本设计中的作用本实验设计用7段LED显示器的左四位来显示温度的设定值,剩下四位来显示实时的温度值,其中温度设定值的显示方法是从右到左依次显示设定值的低位到高位;而实时的温度值则采用动态的效果,并有小数位,能准确地反映温度的变化情况。(2) 七段LED显示器功能分析七段LED显示器可以控制在哪几个数位上,哪几个发光二极管亮,从而显示数字。其工作原理:如果发光二极管共阳极,则输

19、入为0时亮,为1时不亮,反之如果发光共阴极,则输入1时亮,0时不亮。发光二极管时一种外加电压超过额定电压时发生击穿,并因此能产生可发光的器件,数码显示器通常由多个发光二极管来组成七段或八段笔画显示器,当段组合发光时,便会显示某一个数码管或字符,七段代码的各位用作ag和DP的输入(3) 七段LED显示器主要技术参数注:此时的驱动电流为25mAPCWLFVrIrIfP对应变量散射颜色BT235702551.52.5200SEL-10红BT1441004050.52.5565绿BT1341004050.52.5585蓝表2-5七段LED显示器的技术参数(4) 七段LED显示器的内部结构图2-5七段L

20、ED显示器内部结构当七段数码管点亮其中几段可显示数字和简单的西文文字,将七段数码管连接到一起称为公共端,而放光二级管的正极则分别由引脚引出,便于控制哪个发光二级管点亮.(5)七段LED显示器的真值表定义的十六进制发光二极管显示的数字3FH00111111006H0000011015BH0101101124FH01001111366H0110011046DH0110110157DH01111101607H0000011177FH0111111186FH01101111977H01110111A7CH01111100B46H01000110C5EH01011110D7BH01111011E71H0

21、1110001F表2-6LED真值表4. 键盘(1) 键盘在本实验中的作用由于本设计需要向系统输入一个温度设定值,所以键盘起到了输入温度设定值的作用。(2) 小键盘的电路结构及其与逻辑开关的比较右图显示的是小键盘的电气结构,右图可以看出只有当行线和列线逻辑值相同时,按键才会显示正确的值 图2-6小键盘的电路结构下表显示了小键盘与逻辑开关在实际应用中的区别: 逻辑开关 小键盘连线较简单,以逻辑开关的上下切换来表示,易实现,易观察所输入的是哪8位二进制数据;用时短连线较复杂,实现需编程实现CPU对键盘电路的扫描,察看是否有键按下,是哪个键。扫描占用大量CPU时间,是CPU的效率降低。表2-7键盘和

22、逻辑开关的比较5. 专用接口芯片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-78279内部逻辑框图8279采用单±5V电源供电,4

23、0脚封装。 DB0DB7:双向数据总线,用来传送8279与CPU之间的数据和命令。CLK:时钟输入线,用以产生内部定时的时钟脉冲。RESET:复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式程序 时钟前置分频器被置为31,RESET信号为高电平有效。CS:片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。A0:缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态,当为 低 电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。RD:读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。WR:写信号输入线,低电平有效,将缓

24、立器读出,将数据从外部数据总线写入8279的缓冲器。IRQ:中断请求输出线,高电平有效,在键盘工作方式下,当FIFO/传感器RAM中有数据时,此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM中还有信息,则此线重又变为高电平。在传感器工作方式中, 每当探测到传感器信号变化时,中断线就变为高电平。SL0SL3:扫描线,用来扫描按键开关,传感器阵列和显示数字, 这些可被编程或被译码。RL0RL7:回送线,经过按键或传感器开关与扫描线联接, 这些回送线内部设置有上拉电路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;无按键闭合时,均保持高电平。

25、SHIFT:换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关时,SHIFT输入端保持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。CNTL/STB:当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平,对于键盘输入方式,此线用作控制输入端,当键被按下时,按键位置就和控制输入状态一起被存贮起来,在选通输入方式中,作选通用,把数据存入FIFO RAM中。OUTA3OUTA0及OUTB3OUTB0:显示输出A口及B口,这两个口是16×4切换的数字显示。这两个端口可被独立控制,也可看成一个8位端口。BD:空格显示,此输出端信号用于在数字转换

26、时将显示空格或者用显示空格命令控制其显示空格字符。VCC:5V电源输入线。 VSS:地线输入线。(3)8279的编程方法1)8279可按其功能分为:键盘功能块;显示功能块;控制功能块;与CPU接口功能块控制功能块包括控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作。 控制和定时寄存器:用于存贮来自CPU的编程命令,CPU对8279编程以确定键盘与显示器工作方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使A0=1,WR=0,CS=0,并在WR上升沿把命令键存在控制和定时寄存器中,经译码,建立适当功能。 控制:它含基本的定时计数器,第一个计数器是一个分

27、频系数为2-31的前置定时器,分频系数可由程序预置,使内部频率为100KHz,从而能给出5.1ms键盘扫描时间和10.3ms反跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描、行扫描、键盘阵列扫描、以及显示器扫描次数。 扫描计数器:扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二进制计数,通过管脚SL0-SL3输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式时,扫描计数器对最低二位进行译码,SL0-SL3输出4选1的译码信号,作为显示器和键盘的译码扫描。 键盘功能块包括:返回缓冲器,键盘反跳及控制,8x8 FIFO传感器RAM,FIFO/传感器RAM状态。2

28、)返回缓冲器与键盘反跳及控制8条返回线被返回缓冲器缓冲,在键盘工作方式中,这几条线被逐个检测,以找出该行键中闭合的键。如果反跳电路测知某键闭合,则它等待10.3ms,然后重核此键是否仍然闭合。如果仍闭合,那么该键在矩阵中的行列地址以及SHIFT和CNTL的状态一起被送到FIFORAM中,其在FIFO RAM中的数据格式如下:D7D6D5D4D3D2D1D0 CNTL SHIFT SCAN RETURN 数据格式中,最高位CNTL,次高位为SHIFT状态,D5-D3来自扫描计数器,D2-D0来自返回计数器,扫描线计数器和回扫线计数器的值分别反映出被按下键的行、列的值,如果在传感器阵列中,返回线上

29、的数据直接进入传感器RAM中相应于阵列中正被扫中的那行,这样每个开关位置就直接反映为一个传感器RAM的位置。 显示RAM和显示寄存器8279内部有16X8的显示RAM,通过显示寄存器和两个四位端口0UTA0-3,OUTB0-3来刷新显示。显示器可以是白炽灯,也可以是8段数码管,显示RAM可以是16X8的形式,也可以构成两个16x4的RAM形式。显示RAM可由CPU进行读写,被读写的RAM字节地址由显示地址寄存器指示。显示地址寄存器保存当前CPU读或写的那个RAM地址,以及正显示着的那两个4位半字节的地址。读写地址由CPU命令编程,也可置为每次读写后地址自动加1的工作方式。在设置了正确的工作方式

30、后,显示RAM可直接由CPU读出,半字节A和半字节B地址自动由8279更新,以适应由CPU送入的数据,A和B半字节可独立送入,也可作为一个字送入,随CPU所设置的工作方式而定。3)FIFO/传感器RAM及其状态寄存器FIFO/传感器RAM是一个双重功能的8×8位RAM。在键盘或选通工作方式时,它是FIFO RAM,其输入/输出遵循先入后出的原则。此时,FIFO状态寄存器存放FIFO的工作状态,若FIFO不空,IRQ信号为高电平,向CPU申请中断。在传感器矩阵方式工作时,该存储器用于存放传感器矩阵中每一个传感器的状态。在此方式中,若检出传感器发生变化,则IRQ信号变为高电平,向CPU申

31、请中断。4)显示RAM和显示地址寄存器显示RAM用于存储显示数据,容量为16×8。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分为A、B两组,OUTA30、OUTB30。它们即可以单独送数,也可以组成一个8位的字,OUT A输出高4位,OUTB输出低4位。显示寄存器的输出与显示扫描配合,轮流驱动被选中的显示器件,实现稳定的动态显示。显示地址寄存器用来寄存CPU读/写显示RAM的地址,它可以由命令设定,也可以设置成在每次读出或写入之后自动递增。(4)8279工作方式 1)键盘工作方式通过命令字可将键盘工作方式设定为双键互锁与N键巡回两种工作方式。双键互锁:若有两个键或多

32、个键同时按下,8279电路只识别最后一个释放的键,并把键值送入FIFO/传感器RAM中。N键巡回:若有多个按键同时按下时,键盘扫描将各键键值依按下顺序依次存入FIFO/传感器RAM中。2)显示器工作方式通过设置键盘/显示命令字和写显示RAM命令字,显示数据写入显示缓冲器时可置为左端送入和右端送入两种方式。左端送入为依次填入方式,右端送入为移入方式。3)传感器矩阵方式 通过设置读FIFO/传感器命令字,8279可工作于传感器矩阵方式,此时传感器的开关状态直接送到传感器RAM。CPU对传感器阵列扫描时,如果检测到某个传感器状态发生变化,则产生中断请求信号IRQ。(4)8279命令字1)键盘/显示方

33、式设置命令D7D6D5D4D3D2D1D0000DDKKK D7、D6、D5是方式设置的特征位。D4、D3为显示方式设定位,D2、D1、D0位键盘/显示工作方式设定位。2)时钟编程命令D7D6D5D4D3D2D1D0001PPPPPD7、D6、D5是时钟编程命令的特征位,D4、D3、D2、D1用于设定对CLK输入端输入的外部时钟信号进行分频的分频系数N。3) 读FIFO/传感器RAM命令D7D6D5D4D3D2D1D0010AI×AAAD7、D6、D5是读FIFO/传感器RAM命令的特征位,D4自动递增设置位,D2、D1、D0为FIFO/传感器RAM地址。4) 读显示RAM命令D7D

34、6D5D4D3D2D1D0011AIAAAAD7、D6、D5是读显示RAM命令的特征位,D4自动递增设定位,D3、D2、D1、D0为显示RAM的存储单元地址。5)写显示RAM命令D7D6D5D4D3D2D1D0100AIAAAAD7、D6、D5是写显示RAM命令的特征位,D3、D2、D1、D0为写入显示RAM的存储单元地址。6)显示禁止写入/消隐命令D7D6D5D4D3D2D1D0101×IWAIWBBLABLBD7、D6、D5是显示禁止写入/消隐命令的特征位,D3、D2为A、B组显示RAM写入屏蔽位,当D3=1时,A组的显示RAM禁止写入,从CPU写入显示RAM数据时,这种情况通常

35、用于双4位显示器,当D2=1时,可屏蔽B组显示器。D1、D0位A 、B组的消隐设置位。7)清除命令D7D6D5D4D3D2D1D0110CDCDCDCFCAD7、D6、D5是清除命令的特征位,D4、D3、D2为清除显示RAM方式设定位,D1为置空FIFO存储器设定位,D0为总清楚设定位。8)结束中断/出错方式设置命令D7D6D5D4D3D2D1D0111E××××D7、D6、D5为111是结束中断/出错方式设置命令的特征位,D4为1时,N键轮回工作方式可工作得特殊出错方式,对传感器工作方式,此命令使IRQ变低,结束中断,并允许对RAM进一步写入。(5)

36、芯片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

37、(note 2)VOH2Other Outputs2.4IOH=-400A 8279-5 -100A 8279IIL1Input Current On Shift,Control And Return Lines+10100AAVIN=VCCVIN=0VIIL2Input Leakage Current On All Others±10AVIN=VCC to 0VIOFLOutput Float Leakage±10AVOUT=VCC to 0.45VICCPower Supply Current120mACINInput Capacitance10pFfC=1MHZ Un

38、measuredPins Returned to Vss(6)COUTOutput Capacitance20pF表2-88279主要性能参数6. 功能放大器LF351(1) LF351在本设计中的作用由于所设计的系统中并不包含功能放大器,在实际应用时应该外接运算放大器。本设计中采用的同样是National Semiconductor生产的运算放大器LF351,使由8255A传递到发热电阻的信号效果增强,使演示效果更明显。(2) LF351功能分析LF351是一款低价位高速度、具有内部电压平衡功能的JFET(Junction Field Effect Transistor,结晶型场效应晶体管)

39、运算放大器。它只需要微量的电流,就可以产生并保持宽带高速的回转电流。另外,它可以很好的匹配输入,产生相当电压伏度。LF351可以用在高速求积器、快速数/模转换、抽样保持电路及诸多要求低输入偏移电压、低输入偏转电流、高回转速率和广带宽的场合。总的来说,LF351是一个很好的选择。本实验要用LF351将8255A给出的信号放大使发热电阻能很快上升温度,缩短由于等待实验现象所花费的时间。7. 发热电阻RT1和逻辑测试灯对于发热电阻和逻辑笔本实验没有特殊要求,但应注意的是,发热电阻与温度传感器DS18B20一定要良好接触,只有这样才能较准确的测量其温度。逻辑笔则是利用两种颜色的发光二极管来区别高低电平

40、,通过这种直观的方法能及时的掌握整个系统的工作情况。8. 硬件总逻辑图及其说明图2-8硬件总逻辑图对于上面的硬件总逻辑图说明如下:首先利用和主机直接相连的可编程接口芯片8255的PC0口接到温度传感器DS18B20的TOUT端,来控制其工作;8255A的PC7口通过运算放大器再经由发热电阻RT1接到DS18B20的Tctrl端,实现对温度传感器的加热(RT1接收到高垫片则发热,反之若接收到低电平则停止加热)。另一方面,通过专用接口芯片8279来控制键盘的输入接收与LED灯的显示,反映温度的变化情况和实现对其的控制。注:原理图中作了部分简化,省去了接地端与时钟输入以使整张图紧凑,分布合理。STA

41、R ES598PCI试验仪接线说明:G1区:TOUT-B4区:PC0(8255)G1区:TCtrl-E2区:OUT1E2区:IN1-B4区:PC7(8255);B2区:TESTB4区: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表2-9主机连线说明3、 控制程序设计1. 控制程序设计思路说明本程序采用模块化的程序设计思想,将完成整个作业所需要的全部功能按要求划分为若干子模块。具体到本设计而言,控制程序主要有:主程序块,设定温度初值子模

42、块,初始化18B20子模块,读温度子模块,显示读出的温度值子模块,初始化8279子模块,扫描按键子模块,显示输入的温度设定值子程序,启动加热子程序及其他一些初始化程序和延时子程序。总的程序设计思路是首先通过温度传感器DS18B20测量出环境温度,利用8255来接收并通过芯片8279的控制使其显示到LED上;同时利用8279控制键盘是用户能够输入一个两位数的温度值(温度设定值),也显示到LED上;利用软件实现将这两个部分温度进行比较,当测得的温度值低于用户所设定的值时则有控制程序发出指令到发热电阻RT1上,此时实现”空调“的制暖功能;与此同时,控制程序还在对两部分的温度值做着比较,当发现测量的温

43、度值高于或者等于所设定的温度时便停止给发热电阻RT1供电,也即停止其加热。这样一个完整的空调单暖系统就实现了。以下是笔者在设计及调试程序过程中所遇到的一些问题,在此就作为对部分控制程序的说明:由于DS18B20采用串行数据传送和单总线数据传输方式,其数据输入输出都由同一条线完成。因此,对读写的操作时序要求严格。为了保证DS18B20有严格的读写时序,需要做较精确的延时。在操作中用到的延时有15us,90us,270us,540us等,可以在程序设计时用延时子程序来读写延时操作。值得注意的是,首先要对8255A进行初始化,否则可能和笔者遇到的情况一样但DS18B20的温度就已经开始传送到数据端口

44、等待输出了,这务必会造成极大的麻烦。从DS18B20读出数据时也采用每位传输的方法经过PC0口传输到8255A中,每次传输一位后暂存在AL寄存器中,再把AL寄存器中数据向右循环移位一次,数据被移动到标志位中,此时在用带标志位的循环移位指令把数据移动到另一个寄存器BL里,这样就完成了一位数据的读出。在移位的时候也需要注意读写时序的问题,所以采用专门的延时程序控制。循环移位8次即表示传输了一个字节的数据,最后把BL中的数据再传送到AL寄存器中,完成数据的读出操作。对8279进行操作时要注意与实际情况相结合修改控制字选择不同的显示方式,同时应注意左入口和右入口的区别。程序中显示温度值和界限值需要数码

45、管不断显示,同时还需要发热电阻可以正常工作,所以加热部分的延时程序即显示子程序中的延时。这样会在操作中保证在加热的同时温度值能动态的显示出来,且界限值也能够实时显示出来。2. 控制程序流程图(1) 主程序流程图开始 写入8279端口命令字清LED显示分别输入温度设定值的十位和个位并显示向DS18B20发送读温度指令将读出的温度转换成BCD码并显示JMP调用名为HOT的子函数图3-1主程序流程图27(2) DS18B20初始化子程序流程图页:18流程图要放在同一页面上开始主机发出延时501us低脉冲等待15次DS18B20回复回复?NO15次等待结束YES18B20存在,置复位18B20不存在,

46、结束(3) 启动DS18B20开始复位DS18B20CF=0?NY控制字写入DS18B20发读温度指令结束(4) 读温度字操作流程图开始开始时让PC0口维持低电平写入新的控制字,准备接收温度值调用延时子程序,温度经由PC0口写入AL右移AL最低位至标志位CF标志位转移至BL,备份AL中的值,PC0口置低电平准备读下一位RET结束(5) 读出DS18B20的温度存放在AX开始首先复位DS18B20跳过ROM匹配发出度温度指令读出温度,存放至AX;还原寄存器RET结束(6) 初始化8279开始写入端口地址、命令字及入口方式调用函数清除LED显示设置显示方式RET结束(7) 扫描按键子函数流程图开始

47、写入8279控制字有键按下?NOYESNO KEY读FIFO/ROM,键号转化为键值并输出RET结束(8)显示温度设定值开始保护寄存器SI,BX将键入的温度值存入中间量buffer2调用显示子函数,显示值寄存器出栈RET结束(9) 启动加热子程序流程图开始将温度设定值写入AX将键入的值转化成16进制数,便于与存在BX中的测得的温度进行比较将温度设定值与测量的温度值进行比较YES设定值高于测量值? NO启动加热无需操作调用延时,是加热维持一段时间RET结束注:以上为主要程序(主要有笔者自己动手编写,调试,修改)的流程图;其他部分(如初始化PCI卡,延时子程序,转化BCD等)均来在所查阅的文献及参

48、考其他的程序,因此流程图未给出 3.控制程序.MODELTINYPUBLIC SCAN_KEYPUBLIC CMD_8279,DATA_8279PCIBAR3EQU1CH;8位I/O空间基地址(它就是实验仪的基地址,也为DMA & 32 BIT RAM板卡上的8237提供基地址)Vendor_IDEQU10EBH;厂商ID号Device_IDEQU8376;设备ID号.STACK300 .DATAIO_Bit8_BaseAddress DW?msg0DB'BIOS不支持访问PCI $'msg1DB'找不到Star PCI9052板卡 $'msg2DB&#

49、39;读8位I/O空间基地址出错$'Con_8255DW00F3HPC_8255DW00F2HPA_8255DW00F0HbufferDB8 DUP(0);温度临时存放buffer2DB8 DUP(0);温度设定值buffer3DW?;中间量CMD_8279 DW 00B1H;8279命令字、状态字地址DATA_8279 DW 00B0H;8279读写数据口的地址LED_TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB 080H,90H,88H,83H,0C6H,0A1H,86H,8EH DB0FFH,0BFH.CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXNOPCALLInitPCICALLMod

温馨提示

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

评论

0/150

提交评论