电烤箱温度控制器的设计与功能实现.docx
《电烤箱温度控制器的设计与功能实现.docx》由会员分享,可在线阅读,更多相关《电烤箱温度控制器的设计与功能实现.docx(47页珍藏版)》请在冰豆网上搜索。
电烤箱温度控制器的设计与功能实现
合肥学院
计算机科学与技术系
微机原理与接口技术
课程设计报告
2012~2013学年第1学期
课程
微机原理与接口技术
课程设计名称
电烤箱温度控制器的设计与功能实现
学生姓名
学号
专业班级
指导教师
高玲玲肖连军
2012年12月
1、题义分析与解决方案
1、1题义与需求分析
①如何通过键盘直接设置温度和加热时间;
②如何检测温度并转换成数字量;
③如何采用七段数码管显示;
④如何实现声、光报警。
说明:
加热时间和加热的温度是自行设定的。
1、2解决问题的方法与思路
1.1.1硬件部分
(1)通过键盘设置温度和加热时间。
(2)使用ds18b20采集温度,采用七段数码管显示当前温度和剩余时间,并和设置的温度进行比较。
(3)用8255A作为温度和时间的现实输出接口。
(4)使温度恒定在设定温度附近,时间到停止加热,并且提示操作完毕。
(5)声音提示可以用蜂鸣器或光提示用发光二极管显示。
(6)通过DAC0832输出电压供给发热电阻RT1,使发热电阻RT1固定在该温度。
(7)在STARES598PCI单板开发机中,用户程序在存储器共32KB。
在PC机上调试,使用WINXPXINGYAN集成环境。
实验采用:
温度传感器DS18B20用于检测温度值,可编程并行接口芯片8255A和8279各一片,并行DA0832、七段LED显示器,发光二极管一只,蜂鸣器一个。
1.1.2软件部分(汇编语言编写程序)
(1)首先要对8255A和8279进行初始化设计,设置8255A和8279的工作方式并确定8255A和8279的端口地址;
(2)将限定温度、时间和加热时间在LED上显示出来;
(3)启动DS18B20,发出温度检测命令,将温度值在LED上显示出来;
(4)把测得的温度值和设定值相比较,若小于设定值,则进行加热,若相等,则报警;
(5)设定的加热时间倒计时显示,显示为0时,则发出鸣叫声。
2、硬件设计
2.1可编程并行接口芯片8279
2.1.18279的作用
在本设计中用8279芯片控制键盘输入和LED显示。
2.1.28279的功能分析
8279A芯片是一种通用的可编程序的键盘/显示接口器件,单个芯片就能完成键盘输入和LED显示控制两种功能。
可与任何8位机接口。
8279A芯片包括键盘输入和显示输出两个部分。
若采用8279作为键盘/显示器接口,则可以实现对键盘、显示器自动扫描,8279主要是管理键盘输入和显示器输出的。
8279可编程键盘显示器接口芯片具有动态显示驱动电路简单、不占用CPU的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点.当今已成为设计计算机应用系统,特别是实时性较高的测控系统的首选器件之一。
图2-18279的内部框图
图中,IRQ:
中断请求输出线,DB0~DB7:
双向数据总路线(传送命令、数据、状态),
、
:
读写控制输入端,RESET:
复位输入端,CLK:
时钟输入端,
:
片选,C和/D(A0):
片内寄存器选址,OUTA0~A1、OUTB0~B3:
8位显示输出端,
:
熄灭显示输出端,SL0~SL3:
公用扫描输出线,RL0~RL7:
键盘回馈输入线,SHIFT:
抵挡键输入线,CNTL/STB:
控制/选通输入线。
另外,8279的键盘接口部分内部有一个8×8位先进先出的堆栈(FIFO),用来存放键盘输入代码,显示器接口部分内部有一个16×8位显示RAM,用来显示段数据,能为16位LED显示器(或其它显示器)提供多路扫描接口。
2.1.38279的引脚信号和功能
8279可编程键盘显示器接口芯片具有动态显示驱动电路,不占用CPU的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点。
8279A是可编程的键盘/显示接口芯片。
它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。
8279A内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8×8=64BRAM,键盘控制部分可控制8×8=64个按键或8×8阵列方式的传感器。
该芯片能自动消抖并具有双键锁定保护功能。
显示RAM容量为16×8,即显示器最大配置可达16位LED数码显示。
2.1.48279的命令字及其格式
8279三种工作方式:
键盘工作方式、显示工作方式和传感器工作方式。
键盘工作方式:
双键互锁和N键轮回。
双键互锁是指当有两个以上按键同时按下时,只能识别最后一个被释放的按键,并把其键值送入内部FIFORAM中。
N键轮回是指当有多个按键同时按下时,所有按键的键值均可按扫描顺序依次存入FIFORAM中。
显示工作方式:
是指CPU输入至8279内部FIFORAM的数据的输出格式,有8个字符左端入口显示、16个字符左端入口显示、8个字符右端入口显示、16个字符右端入口显示四种方式。
传感器方式:
是指扫描传感器阵列时,一旦发现传感器的状态发生变化就置位INT向CPU申请中断。
选择不同的工作方式均是通过CPU对8279送入命令来进行控制。
8279共有8种命令,命令寄存器为8位,其中D7~D5为命令特征位,D4~D0为命令的控制位。
CPU对8279写入的命令数据为命令字,读出的数据为状态字。
8279共有八条命令,其功能及命令字格式分述如下。
(1)键盘/显示方式设置命令字
命令格式:
D7D6D5D4D3D2D1D0
0
0
0
D
D
K
K
K
其中:
D7、D6、D5=000为方式设置命令特征位。
DD(D4、D3):
用来设定显示方式,如表1-2所示。
表2-1显示方式选择
D4
D3
显示方式
0
0
8个字符显示,左端入口
0
1
16个字符显示,左端入口
1
0
8个字符显示,右端入口
1
0
16个字符显示,右入口
所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;所谓右入口,则是显示位置从最右一位(最低位)开始,以后逐次输入显示字符时,已有的显示字符依次向左移动。
KKK(D2、D1、D0):
用来设定七种键盘/显示扫描方式,如表2-2所示。
表2-2键盘/显示扫描方式
D2
D1
D0
键盘/显示扫描方式
0
0
0
编码扫描键盘,双键锁定
0
0
1
译码扫描键盘,双键锁定
0
1
0
编码扫描键盘,N键轮回
0
1
1
译码扫描键盘,N键轮回
1
0
0
编码扫描传感器矩阵
1
0
1
译码扫描传感器矩阵
1
1
0
选通输入,编码显示扫描
1
1
1
选通输入,译码显示扫描
(2)时钟编程命令
命令格式:
D7D6D5D4D3D2D1D0
0
0
1
P
P
P
P
P
其中:
D7、D6、D5=001为时钟命令特征位。
PPPPP(D4、D3、D2、D1、D0)用来设定外部输入CLK时钟脉冲的分频系数N。
N取值范围为2~31。
如CLK输入时钟频率为2MHZ,PPPPP应被置为10100(N=20),才可获得8279内部要求的100KHZ的时钟频率。
(3)读FIFO/传感器RAM命令
命令格式:
D7D6D5D4D3D2D1D0
0
1
0
AI
X
A
A
A
其中:
D7、D6、D5=010为读FIFO/传感器RAM命令特征位。
该命令字只在传感器方式时使用。
在CPU读传感器RAM之前,必须用这条命令来设定所读传感器RAM中的地址。
AAA(D2、D1、D0)为传感器RAM中的八个字节地址。
AI(D4)为自动增量特征位。
当AI=1时,每次读出传感器RAM后地址自动加1使地址指向下一个存储单元。
这样,下一个数据便从下一个地址读出,而不必重新设置读FIFO/传感器RAM命令。
在键盘工作方式中,由于读出操作严格按照先入先出顺序,因此,不需使用这条命令。
(4)读显示RAM命令
命令格式:
D7D6D5D4D3D2D1D0
0
1
1
AI
A
A
A
A
其中:
D7、D6、D5=011为读显示RAM命令字的特征位。
该命令字用来设定将要读出的显示RAM地址。
AAAA(D3、D2、D1、D0)用来寻址显示RAM中的存储单元。
由于位显示RAM中有16个字节单元,故需要4位寻址。
AI(D4)为自动增量特征位。
AI=1时,每次读出后地址自动加1,指向下一地址。
(5)写显示RAM命令
命令格式:
D7D6D5D4D3D2D1D0
1
0
0
AI
A
A
A
A
其中:
D7、D6、D5=100为写显示RAM命令字的特征位。
在写显示RAM之前用这个命令字来设定将要写入的显示RAM地址。
AAAA(D3、D2、D1、D0)为将要写入的显示RAM中的存储单元地址。
AI(D4)为自动增量特征位。
AI=1时,每次写入后地址自动加1,指向下一次写入地址。
(6)显示禁止写入/消隐命令
命令格式:
D7D6D5D4D3D2D1D0
1
0
1
X
IW/A
IW/B
BL/A
BL/B
其中:
D7、D6、D5=101为显示禁止写入/消隐命令特征位。
IW/A、IW/B(D3、D2)为A、B组显示RAM写入屏蔽位。
当A组的屏蔽位D3=1时,A组的显示RAM禁止写入。
因此,从CPU写入显示器RAM数据时,不会影响A的显示。
这种情况通常在采用双4位显示器时使用。
因为两个四位显示器是相互独立的。
为了给其中一个四位显示器输入数据而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。
BL/A、BL/B(D1、D0)为消隐设置位。
用于对两组显示输出消隐。
若BL=1,对应组的显示输出被消隐。
当BL=0,则恢复显示。
(7)清除命令
命令格式:
D7D6D5D4D3D2D1D0
1
1
0
CD
CD
CD
CF
CA
其中:
D7、D6、D5=110为清除命令特征位。
表2-3显示RAM清除方式
D4
D3
D2
清除方式
1
0
×
将全部显示RAM清为00H
1
1
0
将全部显示RAM置为20H,A组输出0010,B组输出0000
1
1
1
将全部显示RAM置为FFH
0
×
×
D0=0不清除,D0=1按上述方法清除
CF(D1)用来置空FIFO存储器,当CF=1时,执行清除命令后,FIFORAM被置空,使INT输出线复位。
同时,传感器RAM的读出地址也被置为0。
CA(D0)为总清的特征位。
它兼有CD和CF的联合效能。
在CF=1时,对显示的清除方式由D3、D2的编码决定。
显示RAM清除时间约需160us。
在此期间状态字的最高位Du=1,表示显示无效。
CPU不能向显示RAM写入数据。
(8)结束中断/错误方式设置命令
命令格式:
D7D6D5D4D3D2D1D0
1
1
1
E
X
X
X
X
其中:
D7、D6、D5=111为该命令的特征位。
此命令有两种不同的作用。
①作为结束中断命令。
在传感器工作方式中使用。
每当传感器状态出现变化时,扫描检测电路就将其状态写入传感器RAM,并启动中断逻辑,使INT变高,向CPU请求中断,并且禁止写入传感器RAM。
此时,若传感器RAM读出地址的自动递增特性没有置位(AI=0),则中断请求INT在CPU第一次从传感器RAM读出数据时就被清除。
若自动递增特征已置位(AI=1),则CPU对传感器RAM的读出并不能清除INT,而必须通过给8279写入结束中断/错误方式设置命令才能使INT变低。
因此,在传感器工作方式中,此命令用来结束传感器RAM的中断请求。
②作为特定错误方式设置命令。
在8279已被设定为键盘扫描N键轮回方式以后,如果CPU给8279又写入结束中断/错误方式设置命令(E=1),则8279将以一种特定的错误方式工作。
这种方式的特点是:
在8279的消抖周期内,如果发现多个按键同时按下,则FIFO状态字中的错误特征位S/E将置1,并产生中断请求信号和禁止写入FIFORAM。
上述八种用于确定8279操作方式的命令字皆由D7D6D5特征位确定,输入8279后能自动寻址相应的命令寄存器。
因此,写入命令字时唯一的要求是使数据选择信号A0=1。
2.1.58279的状态字及其格式
8279的FIFO状态字,主要用于键盘和选通工作方式,以指示FIFORAM中的字符数和有无错误发生。
其格式为:
D7D6D5D4D3D2D1D0
DU
S/E
O
U
F
N
N
N
其中:
Du(D7)为显示无效特征位。
当Du=1表示显示无效。
当显示RAM由于清除显示或全清命令尚未完成时,Du=1,此时不能对显示RAM写入。
S/E(D6)为传感器信号结束/错误特征位。
该特征位在读出FIFO状态字时被读出。
而在执行CF=1的清除命令时被复位。
当8279工作在传感器工作方式时,若S/E=1,表示传感器的最后一个传感器信号已进入传感器RAM;而当8279工作在特殊错误方式时,若S/E=1则表示出现了多键同时按下错误。
O、U(D5、D4)为超出、不足错误特征位。
对FIFORAM的操作可能出现两种错误:
超出或不足。
当FIFORAM已经充满时,其它的键盘数据还企图写入FIFORAM,则出现超出错误,超出错误特征位O(D5)置1;当FIFORAM已经置空时,CPU还企图读出,则出现不足错误,不足错误特征位U(D4)置1。
F(D3)表示FIFORAM中是否已满标志,若F=1表示已满。
NNN(D2、D1、D0)表示FIFORAM中的字符数据个数。
2.1.6数据输入/输出格式
对8279输入/输出数据不仅要先确定数据地址口,而且数据存放也要按一定格式,其格式在键盘和传感器方式有所不同。
(1)键盘扫描方式数据输入格式
键盘的行号、列号及控制键格式如下:
图2-2键盘控制键格式
控制键CNTL、SHIFT为单独的开关键。
CNTL与其它键连用作特殊命令键,SHIFT可作上、下挡控制键。
(2)传感器方式数据输入格式
此种方式8位输入数据为RL0~RL7的状态。
格式如下:
D7D6D5D4D3D2D1D0
RL7
RL6
RL5
RL4
RL3
RL2
RL1
RL0
2.2可编程并行接口芯片8255A
2.2.18255A的作用
利用8255A将界限值和温度值通过LED显示出来,同时8255A的PC0与DS18B20相连,向其发出温度检测命令及接受温度数据,PC5和蜂鸣器及发光二极管相连,用于声光报警。
2.2.28255A的功能分析
8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。
三个端口都可以作为输入端口或输出端口。
A口有三种工作方式:
即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。
8255A的工作只有当片选CS效时才能进行。
而控制逻辑端口实现对其他端口的控制。
2.2.38255A的方式控制字
D7D6D5D4D3D2D1D0
1
0
0
0
1
0
0
1
1:
工作方式A口方式0输出B口方式0输出
C口高4位输入C口低4位输入
图2-38255A的方式控制字表
1方式0的工作特点:
是这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。
2通道的功能为:
两个8位通道:
通道A和B。
两个四位通道:
通道C高4位和低四位,任何一个通道可以作输入/输出,输入是不锁存的,输出是锁存的,在方式0时各个通道的输入/输出可有16种不同的组合。
D7D6D5D4D3D2D1D0
0
X
X
X
写入位编码
写入内容
写入位编码0写入0
D0-D7000-1111写入1
图2-48255A的置位/控制字表
2.3DS18B20温度传感器
2.3.1DS18B20温度传感器的作用
利用温度传感器检测温度,并转换为数字量和设定的界限值比较。
2.3.2DS18B20的功能特点
DS18B20可编程温度传感器有三个管脚。
GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与CPU相连。
VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.0—5.5V。
本系统中使用外部电源供电。
其主要特点为:
(1)用户可以自行设定报警上下限温度值;
(2)不需要外部组件,能测量-55—+125°C范围内的温度;
(3)在-10—+85°C范围内的测温准确度为±0.5°C;
(4)通过编程可以实现9—12位的数字读数方式,可在至多750MS内将温度转换成12位数字,测温分辨率可达到0.0625°C;
(5)独特的单总线接口方式,与微处理器连接时仅需要一条线既可实现和微处理器的双向通讯。
图2-5DS18B20引脚图
DS18B20的内部结构主要由四部分组成:
64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,配置寄存器。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
2.3.3DS18B20的测温原理和技术参数
DS18B20的测温原理:
见图2—6
DS18B20的测温原理如图2-6所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 ℃ 所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
表2-4DS18B20温度值格式表
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
这是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的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。
第六、七、八个字节用于内部计算。
第九个字节是冗余检验字节。
该字节各位的意义如下:
TM
R1
R0
1
1
1
1
1
低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如下表所示:
(DS18B20出厂时被设置为12位)
分辨率设置表:
表2-5分辨率表
R1
R0
分辨率
温度最大转换时间
0
0
9位
93.75ms
0
1
10位
187.5ms
1
0
11位
375ms
1
1
12位
750ms
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
2.4蜂鸣器
2.4.1蜂鸣器的作用
在本实验中,蜂鸣器用作声音报警。
2.4.2蜂鸣器的功能
蜂鸣器是将电能转化成声能,并将声能辐射到空气中去的一种电声转换器件。
2.4.3蜂鸣器的技术参数
图2-7蜂鸣器内部结构图
它一般包括灵敏度、频率响应、额定功率、额定阻抗、指向性、失真、音质听感评价等。
2.5七段LED显示器
2.5.1七段LED显示器的作用
本次设计需要用到LED显示器显示预设的温度界限值以及测定的温度值。
2.5.2七段LED显示器功能分析
LED显示器有共阳极和共阴极两类。
其中共阴极原理图如下:
图2-8LED显示器原理图
七段LED显示器可以控制在哪几个数位上,哪几个发光二极管亮,从而显示数字。
其工作原理:
如果发光二极管共阳极,则输入为0时亮,为1时不亮,反之如果发光共阴极,则输入1时亮,0时不亮。
发光二极管时一种外加电压超过额定电压时发生击穿,并因此能产生可发光的器件,数码显示器通常由多个发光二极管来组成七段或八段笔画显示器,当段组合发光时,便会显示某一个数码管或字符,七段代码的各位用作a—g和DP的输入
2.5.3七段LED显示器技术参数
表2-6LED显示的技术参数
PCW
LF
Vr
Ir
If
p
对应变量
散射颜色
BT235
70
25
5
≥1.5
≤2.5
200
SEL-10
红
BT144
100
40
5
≥0.5
≤2.5
565
绿
BT134
100
40
5
≥0.5
≤2.5
585
蓝
主要参数: