




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
合肥学院计算机科学与技术系微机原理与接口技术课程设计2012 2013学年第 1 学期课程 微型计算机原理与接口技术课程设计名称畜舍通风换气风机自动控制设计学生姓名邵磊学号1004013006专业班级10计本(2)指导教师高玲玲 、肖连军2013年 1月1、 题意分析与解决方案1.1 题意需求分析 根据本设计给定的内容和要求,可以得出以下结论:本设计中需要用到的主要是有控制输入和控制输出的芯片,实现DS18B20的温度采集以及用于显示的LED管。其中最核心的是要DS18B20对当前温度的采集以及从DS18B20中讲温度传给CPU,然后就是扫描你设置的预设温度,当温度高于设定值时,电机转动,降温。为了观察方便,我们通过LED数码管显示当前测得温度和预设的温度值,通过小键盘输入预设温度值。1.2 解决问题方法及思路1.2.1硬件部分结合题意要求,以下是我对这次试验所需硬件的分析。首先需要解决的是温度测控问题,因此温度传感器DS18B20必不可少,而DS18B20将温度信息传递给芯片8255A;当温度高于设定值时利用功能放大电路以带动电机转动;由于要从键盘设定温度值和通过LED显示温度,所以这一部分电路也是必备的(同时需要专用芯片8279)。综上所述列出硬件清单如下:表1-1硬件清单硬件8255A8279DS18B20键盘LED灯电动机功能放大器逻辑笔主要功能控制温度传感器及电机工作控制键盘和LED工作温度传感器,测量温度输入设定温度显示环境温度和设定值加大空气流速,以实现降温放大电路测试电机的工作情况1.2.2软件部分软件应该具备以下几个主要部分:(1) 对控制芯片8255A的控制及操作(如读出DS18B20的温度,控制电机转动);(2) 对通用控制芯片8279的操作(如8279的初始化,从键盘输入温度设定值,显示温度,清除显示等功能);(3) 对温度传感器DS18B20的操作(初始化/启动,读写温度,温度转换/显示); 另外还要设置一定的延时程序以满足不同芯片及元器件的工作时序;2、硬件设计2.1选择芯片82551.可编程并行接口芯片8255A(1)8255A在本设计中的作用 在本设计中8255A作为对DS18B20进行操作的主要部件肩负着向温度传感器发送操作指令实现诸如:初始化DS18B20,读取温度值,对温度值进行十进制转换以及其他一些必要操作;然后传个8255A的PC口,同时8255A全权控制着电机RT1的工作情况。(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)其内部结构如图所示:RESETB组控制部件CSA0A1WRRDD7D0双向PB7PB0PC3PC0PC7PC4PaPA7PA0B组端口C低4位A组控制部件A组端口A8位B组端口B8位A组端口C高4位数据总线缓冲器读/写控制部件图2-18255内部结构方式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方式选择控制字说明: 控制字格式如下:图2-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主要参数说明:表2-18255A主要技术参数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- 10mA2. 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; 独特的单总线接口方式,与微处理器连接时仅需要一条线既可实现和微处理器的双向通讯。 图2-3 DS18B20内部结构图温度传感器,非挥发的温度报警触发器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图2-4DS18B20测温原理 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。表2-212位存放温度时的格式这是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的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。该字节各位的意义如下:表2-3暂存器格式字8 76 5 4 32 1 TMR1R011111低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)分辨率设置表:表2-4分辨率表R1R0分辨率温度最大转换时间009位93.75ms 0110位187.5ms 1011位375ms 1112位750ms 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。DS18B20的读写时序: 图2-5 DS18B20的读写时序图DS18B20的ROM指令: 表2-5 DS18B20的ROM指令指令约定代码功能读ROM33H读DS1820 温度传感器ROM 中的编码(即64 位地址)符合 ROM55H发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读写作准备。搜索 ROM0F0H用于确定挂接在同一总线上 DS1820 的个数和识别64 位 ROM 地址。为操作各器件作好准备。跳过 ROM0CCH忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作。告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。DS18B20的RAM指令:表2-6 DS18B20的RAM指令指令约定代码功能温度变换44H启动DS1820 进行温度转换,12 位转换时最长为750ms(9 位为93.75ms)。结果存入内部9 字节RAM 中。读暂存器0BEH读内部RAM 中9 字节的内容写暂存器4EH发出向内部RAM 的3、4 字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器4BH将RAM 中第3 、4 字节的内容复制到EEPROM 中。重调 EEPROM0B8H将EEPROM 中内容恢复到RAM 中的第3 、4 字节。读供电方式0B4H读DS1820 的供电模式。寄生供电时DS1820 发送“ 0 ”, 外接电源供电 DS1820发送“ 1 ”。2.3 七段LED显示器2.3.1 七段LED显示器在本设计中的作用本实验设计用7段LED显示器的左四位来显示温度的设定值,剩下四位来显示实时的温度值,其中温度设定值的显示方法是从右到左依次显示设定值的低位到高位;而实时的温度值则采用动态的效果,并有小数位,能准确地反映温度的变化情况。2.3.2 七段LED显示器功能分析七段LED显示器可以控制在哪几个数位上,哪几个发光二极管亮,从而显示数字。其工作原理:如果发光二极管共阳极,则输入为0时亮,为1时不亮,反之如果发光共阴极,则输入1时亮,0时不亮。发光二极管时一种外加电压超过额定电压时发生击穿,并因此能产生可发光的器件,数码显示器通常由多个发光二极管来组成七段或八段笔画显示器,当段组合发光时,便会显示某一个数码管或字符,七段代码的各位用作ag和DP的输入2.3.3 七段LED显示器主要技术参数注:此时的驱动电流为25mA表2-7七段LED显示器的技术参数PCWLFVrIrIfP对应变量散射颜色BT235702551.52.5200SEL-10红BT1441004050.52.5565绿BT1341004050.52.5585蓝图2-6七段LED显示器内部结构当七段数码管点亮其中几段可显示数字和简单的西文文字,将七段数码管连接到一起称为公共端,而放光二级管的正极则分别由引脚引出,便于控制哪个发光二级管点亮.表2-8七段共阳LED显示器的真值表定义的十六进制发光二极管显示的数字3FH00111111006H0000011015BH0101101124FH01001111366H0110011046DH0110110157DH01111101607H0000011177FH0111111186FH01101111977H01110111A7CH01111100B46H01000110C5EH01011110D7BH01111011E71H01110001F2.4矩阵键盘2.4.1矩阵键盘在本设计中的作用 实现对温度界限值的输入设定,矩阵键盘在工作时,是按照行线和列线交叉点的电平值来识别按键的,由人手按动键盘。当键释放后,该键就有效。矩阵键盘将0F这16哥键按行和列排列成矩阵形式。对于mn个键的键盘,只需要m+n位I/O端口,我们的实验采用的是44键盘。2.4.2矩阵键盘的功能分析在矩阵键盘中,通过行列交叉点上的电平值来识别按键,而行列线通过键盘数据格式确定,键盘数据格式如下:表2-9 键盘数据格式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列线也输出低电平。矩阵式键盘工作时,就是按行线和列线的电平来识别闭合键的。 图2-7 44键盘矩阵图行扫描法识别按键的原理如下:先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合。这是通过检查列线电位来实现的,即在第0行接低电平时,看是否有哪条列线变成低电平。如果有某列线变为低电平,则表示第0行和此列线相交位置上的键被按下;如果没有任何一条列线为低电平,则说明第0行没有任何键被按下。此后,再将第1行接低电平,检测是否有变为低电平的列线。如此重复地扫描,直到最后一行。在扫描过程中,当发现某一行有键闭合时,也就是列线输入中有一位为0时,便退出扫描,通过组合行线和列线即可识别此刻按下的是哪一键。下表显示了小键盘与逻辑开关在实际应用中的区别:表2-10键盘和逻辑开关的比较 逻辑开关 小键盘连线较简单,以逻辑开关的上下切换来表示,易实现,易观察所输入的是哪8位二进制数据;用时短连线较复杂,实现需编程实现CPU对键盘电路的扫描,察看是否有键按下,是哪个键。扫描占用大量CPU时间,使CPU的效率降低。2.5专用接口芯片82792.5.18279在本设计中的作用在本设计中,8279作为专用接口芯片连接着七段LED显示器和键盘,实现对输入温度设定值和显示实时温度的控制。2.5.2 8279功能分析 控制字寄存器数据缓冲存储器FIFO/传感器RAM状态寄存器地址寄存器16字节显示RAM控制与定时传感器RAM键盘控制显示输出消隐输出寄存器扫描计数键盘输入图2-8 8279内部结构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:地线输入线。2.5.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中的数据格式如下:FIFORAM数据格式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的地址,它可以由命令设定,也可以设置成在每次读出或写入之后自动递增。2.5.48279工作方式 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进一步写入。2.5.5芯片8279的技术参数表2-88279主要性能参数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 Capacitance20pF2.6数/模转换器DAC08322.6.1DAC0832在本设计中的作用DAC0832是National Semiconductor生产的一款D/A(数字/模拟)转换器,其采用CMOS工艺和R2RT形电阻解码网络, 转换结果为一对差动电流 I01和 I02输出。在本设计中主要用来将开关打入的数字信号转换为相应的模拟信号。2.6.1DAC0832的功能分析 DAC0832是8位D/A转换器,转换周期为1s。它由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成。当ILE为高电平,CS为低电平,WR1为负脉冲时,在LE1产生正脉冲;LE1为高电平时,输入寄存器的状态随数据输入线状态变化,LE1的负跳变将输入数据线上的信息存入输入寄存器。当Xfer为低电平,WR2输入负脉冲时,则在LE2产生正脉冲;LE2为高电平时,DAC寄存器的输入与输出寄存器的状态一致,LE2的负跳变,输入寄存器内容存入DAC寄存器。DAC0832的输出是电流型的。在微机系统中,通常需要电压信号,电流信号和电压信号之间的转换可由运算放大器实现。2.6.2DAC0832的技术参数DAC0832芯片采用CMOS工艺,四象限乘法型DAC,与微机兼容,数据输入能与双缓冲、单缓冲或直接通过三种方式工作。是一个8位D/A转换器,输入电平与TTL、CMOS兼容,单电源+5+15V工作,基准电压的范围为 10V,电流建立时间为1s,低功耗200mw,20引脚,双列直接式封装。 2.7直流电机和逻辑测试灯2.7.1直流电机和逻辑笔在本设计中的作用直流电机本身作为输入器件,输入不同的电流会有不同的转速,而另一方面它又是输出器件,其内的光电开关有脉冲从REV引脚输出。由于单板机中电流大小的限制,电机的转速最大可达到95r/s,而一转有四个脉冲产生逻辑笔则是利用两种颜色的发光二极管来区别高低电平,通过这种直观的方法能及时的掌握整个系统的工作情况。2.8 硬件总逻辑图及其说明硬件原理图:M图2-8 硬件连接图对于上面的硬件总逻辑图说明如下:首先利用和主机直接相连的可编程接口芯片8255的PC0口接到温度传感器DS18B20的TOUT端,来控制其工作;8255A的PC7口通过运算放大器再经由电机RT1接到DS18B20的Tctrl端,实现对温度传感器的加热(RT1接收到高垫片则发热,反之若接收到低电平则停止加热)。另一方面,通过专用接口芯片8279来控制键盘的输入接收与LED灯的显示,反映温度的变化情况和实现对其的控制。注:原理图中作了部分简化,省去了接地端与时钟输入以使整张图紧凑,分布合理。温度的变化情况和实现对其的控制。接线说明:E5:CS-A3: CS5G5:A.B.C.D-E5:A.B.C.DE5:A0-ES-PCI:A0B4:A0.A1-ES-PCI:A0.A1B4:CS(8255)-A3:CS1B4:PC0-G1:OUTF3:CS-A3:CS3F3:OUT-F1:CTRLE5:CLC-B2:2M 表2-9 主机连线说明3、 控制程序设计1. 控制程序设计思路说明本程序采用模块化的程序设计思想,将完成整个作业所需要的全部功能按要求划分为若干子模块。具体到本设计而言,控制程序主要有:主程序块,设定温度初值子模块,初始化18B20子模块,读温度子模块,显示读出的温度值子模块,初始化8279子模块,扫描按键子模块,显示输入的温度设定值子程序,启动加热子程序及其他一些初始化程序和延时子程序。总的程序设计思路是首先通过温度传感器DS18B20测量出环境温度,利用8255来接收并通过芯片8279的控制使其显示到LED上;同时利用8279控制键盘是用户能够输入一个两位数的温度值(温度设定值),也显示到LED上;利用软件实现将这两个部分温度进行比较,当测得的温度值低于用户所设定的值时则有控制程序发出指令到发热电机上,此时实现温度控制功能;与此同时,控制程序还在对两部分的温度值做着比较,当发现测量的温度值高于或者等于所设定的温度时便停止给电机供电。这样一个完整的温度控制就可以实现了。以下是笔者在设计及调试程序过程中所遇到的一些问题,在此就作为对部分控制程序的说明:由于DS18B20采用串行数据传送和单总线数据传输方式,其数据输入输出都由同一条线完成。因此,对读写的操作时序要求严格。为了保证DS18B20有严格的读写时序,需要做较精确的延时。在操作中用到的延时有8us,50us,501us,等,可以在程序设计时用延时子程序来读写延时操作。值得注意的是,首先要对8255A进行初始化,否则可能和笔者遇到的情况一样但DS18B20的温度就已经开始传送到数据端口等待输出了,这务必会造成极大的麻烦。从DS18B20读出数据时也采用每位传输的方法经过PC0口传输到8255A中,每次传输一位后暂存在AL寄存器中,再把AL寄存器中数据向右循环移位一次,数据被移动到标志位中,此时在用带标志位的循环移位指令把数据移动到另一个寄存器BL里,这样就完成了一位数据的读出。在移位的时候也需要注意读写时序的问题,所以采用专门的延时程序控制。循环移位8次即表示传输了一个字节的数据,最后把BL中的数据再传送到AL寄存器中,完成数据的读出操作。对8279进行操作时要注意与实际情况相结合修改控制字选择不同的显示方式,同时应注意左入口和右入口的区别。程序中显示温度值和界限值需要数码管不断显示,同时还需要电机可以正常工作,所以加热部分的延时程序即显示子程序中的延时。这样会在操作中保证在电机转动的同时温度值能动态的显示出来,且界限值也能够实时显示出来。2. 控制程序流程图(1) 主程序流程图开始 写入8279端口命令字清LED显示分别输入温度设定值的十位和个位并显示向DS18B20发送读温度指令将读出的温度转换成BCD码并显示JMP调用名为HOT的子函数图3-1主程序流程图33(2)DS18B20初始化子程序流程图开始主机发出延时501us低脉冲等待15次DS18B20回复NO回复?15次等待结束YES18B20存在,置复位18B20不存在,结束(3)启动DS18B20开始复位DS18B20CF=0?NY控制字写入DS18B20发读温度指令结束(4)读出DS18B20的温度存放在AX开始首先复位DS18B20跳过ROM匹配发出度温度指令读出温度,存放至AX;还原寄存器RET结束(5)初始化8279开始写入端口地址、命令字及入口方式调用函数清除LED显示设置显示方式RET结束(6)读温度字操作流程图开始开始时让PC0口维持低电平写入新的控制字,准备接收温度值调用延时子程序,温度经由PC0口写入AL右移AL最低位至标志位CF标志位转移至BL,备份AL中的值,PC0口置低电平准备读下一位RET结束(7)启动加热子程序流程图开始将温度设定值写入AX将键入的值转化成16进制数,便于与存在BX中的测得的温度进行比较将温度设定值与测量的温度值进行比较YES设定值高于测量值? NO启动加热无需操作调用延时,是加热维持一段时间RET结束(8)扫描按键子函数流程图开始写入8279控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子产品销售合同范本
- 国际演出演出排练合同要求
- 2025年中国彩盒吊牌项目投资可行性研究报告
- 2025年中国实木卧室家具数据监测报告
- 2025年中国圆形散流器数据监测报告
- 应对2025年汽车芯片短缺汽车企业产品研发策略报告
- 2025年食品与饮料行业食品行业食品安全监管政策完善策略报告
- 互联网医疗平台2025年在线问诊平台与患者健康数据安全治理政策环境分析报告
- 节能改造工程合同10篇
- 劳务合同纠纷民事上诉状10篇
- 旅游景区餐饮服务食品安全培训课件:为游客提供放心饮食
- 2022输变电工程档案管理实施细则表
- 低空经济专业教学资源的建设与优化策略
- 行政赔偿决定书格式和范文
- AIAG手册FMEA第四版资料
- XXXX小区物业费欠费台账(自动更新到当前日期)
- 《胶体与界面化学》课件
- 台球店员工合同范例
- 池塘淤泥脱水固化施工方案
- 商业银行信息系统等级保护政策
- 基底节脑出血护理查房
评论
0/150
提交评论