反应釜温度采集存储系统1.docx
《反应釜温度采集存储系统1.docx》由会员分享,可在线阅读,更多相关《反应釜温度采集存储系统1.docx(58页珍藏版)》请在冰豆网上搜索。
反应釜温度采集存储系统1
反应釜温度采集存储系统
一、题义分析及解决方案
1.题义需求分析
根据设计内容要求可知:
1)首先要理解反应釜温度采集系统的原理。
为监控反应釜的温度情况,需要每天至少40个时间点的温度信息。
反应釜是一个化学反应的容器,可通过一定的方法对其里面的反应温度进行采集并保存下来,以便对这些温度信息进行分析,因此,该系统可实现温度的采集并保存的功能。
2)题目要求模拟上述分析的系统,即由键盘输入来代替温度数据的采集,由存储器芯片实现温度信息的存储功能。
温度数据存储后,读出这些数据可用LED数码管将保存的数据显示出来,实现了监控温度情况。
3)用STARES598PCI单板开发机设计并开发能监控反应釜温度,每天监控至少40个时间点的温度信息,并将温度存储的系统
(1)由键盘输入10个数据做为模拟温度,并将10个数据存储,断电后判别是否有数据存储,若有数据将10个数据通过LED以5S的时间间隔显示出来;
(2)若有数据更新,应该能够更新存储系统。
分析:
本课题中,由于用键盘进行模拟温度的输入,不用进行实际的温度的采集,本设计中要解决的问题是如何解决温度的输入,怎么控制温度的输入结束,怎么控制输入结束,断电后温度数据怎么用LED灯显示,怎么解决温度数据的更新问题,怎么判断数据输入错误,发警报
2.解决问题方法及思路
1)硬件部分
用4X4小键盘进行模拟温度数据的输入,8279作为键盘和LED的驱动芯片,8255的pc6与pc1控制SCL与SDA的拉高或拉低并可以接受返回信号,用AT24C02作为温度的存储芯片。
断电后用LED间隔5S显示温度数据。
2)软件部分
首先要对8279进行初始化设计,设置8279的工作方式并确定8279的端口地址
由键盘输入10个数据,送入AT24CO2存储
断电后若有数据存储,将10个数据在LED中一一显示出来
键盘如再输入数据可进行存储更新
二、硬件设计
1.可编程并行接口芯片8279
1)8279的作用
在本设计中用8279芯片控制键盘输入和LED显示。
2)8279的功能分析
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显示器(或其它显示器)提供多路扫描接口。
3)8279的引脚信号和功能
8279可编程键盘显示器接口芯片具有动态显示驱动电路,不占用CPU的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点。
8279A是可编程的键盘/显示接口芯片。
它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。
8279A内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8×8=64BRAM,键盘控制部分可控制8×8=64个按键或8×8阵列方式的传感器。
该芯片能自动消抖并具有双键锁定保护功能。
显示RAM容量为16×8,即显示器最大配置可达16位LED数码显示。
4)8279的命令字及其格式
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。
5)8279的状态字及其格式
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中的字符数据个数。
6)数据输入/输出格式
对8279输入/输出数据不仅要先确定数据地址口,而且数据存放也要按一定格式,其格式在键盘和传感器方式有所不同。
(1)键盘扫描方式数据输入格式
键盘的行号、列号及控制键格式如下:
图2-2键盘控制键格式
控制键CNTL、SHIFT为单独的开关键。
CNTL与其它键连用作特殊命令键,SHIFT可作上、下挡控制键。
(2)传感器方式数据输入格式
此种方式8位输入数据为RL0~RL7的状态。
格式如下:
D7D6D5D4D3D2D1D0
RL7
RL6
RL5
RL4
RL3
RL2
RL1
RL0
2.可编程并行接口芯片8255A
1)8255A的作用
利用8255A的PC口,因为PC口可以进行位操作,pc0与scl连接,pc1与sda连接,完成对at24c02的读写。
2)8255A的功能分析
8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。
三个端口都可以作为输入端口或输出端口。
A口有三种工作方式:
即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。
8255A的工作只有当片选CS效时才能进行。
而控制逻辑端口实现对其他端口的控制。
3)8255A的方式控制字
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的置位/控制字表
3.选择芯片AT24C02
1)AT24C02的作用
利用AT24C02芯片将从键盘输入的数据(即模拟温度)进行存储。
2)AT24C02的功能分析
AT24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,AT24C02有一个16字节页写缓冲器。
该器件通过IIC总线接口进行操作,有一个专门的写保护功能。
AT24C02支持IIC,总线数据传送协议IIC,总线协议规定任何将数据传送到总线的器件作为发送器。
任何从总线接收数据的器件为接收器。
数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。
主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。
3)AT24C02的技术参数
(1)管脚配置
管脚封装如右图2-5所示。
图2-5管脚封装
(2)极限参数
工作温度工业级-55℃+125℃
商业级0℃+75℃
贮存温度-65℃+150℃
各管脚承受电压-2.0Vcc+2.0V
Vcc管脚承受电压-2.0+7.0V
封装功率损耗(Ta=25℃)1.0W
焊接温度(10秒)300℃
输出短路电流100mA
表2-4可靠性参数
符号
参数
最小
最大
单位
参考测试模式
NEND
耐久性
1,000,000
周期/字节
MIL-STD-883测试方法1033
TDR
数据保存时间
100
年
MIL-STD-883测试方法1008
VZAP
ESD
2000
V
MIL-STD-883测试方法3015
ILTH
上拉电流
100
mA
JEDEC标准17
(3)管脚描述
表2-5管脚描述
管脚名称
功能
A0A1A2
器件地址选择
SDA
串行数据/地址
SCL
串行时钟
WP
写保护
Vcc
+1.8V~6.0V工作电压
Vss
地
SCL串行时钟
AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。
SDA串行数据/地址
AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。
A0、A1、A2器件地址输入端
这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。
当使用AT24C02时最大可级联8个器件。
如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2)可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A2)必须连接到Vss。
WP写保护
如果WP管脚连接到Vcc,所有的内容都被写保护只能读。
当WP管脚连接到Vss或悬空允许器件进行正常的读/写操作
4.七段LED显示器
1)七段LED显示器的作用
本次设计需要用到LED显示器显示AT24C02中的温度数据,并当输入错误时有错误显示。
2)七段LED显示器功能分析
LED显示器有共阳极和共阴极两类。
其中共阴极原理图如下:
图2-6LED显示器原理图
七段LED显示器可以控制在哪几个数位上,哪几个发光二极管亮,从而显示数字。
其工作原理:
如果发光二极管共阳极,则输入为0时亮,为1时不亮,反之如果发光共阴极,则输入1时亮,0时不亮。
发光二极管时一种外加电压超过额定电压时发生击穿,并因此能产生可发光的器件,数码显示器通常由多个发光二极管来组成七段或八段笔画显示器,当段组合发光时,便会显示某一个数码管或字符,七段代码的各位用作a—g和DP的输入
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
蓝
主要参数:
此时的驱动电流为25mA。
七段LED显示器内部结构
图2-7LED显示器内部结构
七段LED显示器真值表
表2-7LED字型显示原理(共阳极)
数字
Dp
g
f
e
d
c
b
a
二进制编码
0
1
1
0
0
0
0
0
0
C0H
1
1
1
1
1
1
0
0
1
F9H
2
1
0
1
0
0
1
0
0
A4H
3
1
0
1
1
0
0
0
0
B0H
4
1
0
0
1
1
0
0
1
99H
5
1
0
0
1
0
0
1
0
92H
6
1
0
0
0
0
0
1
0
82H
7
1
1
1
1
1
0
0
0
F8H
8
1
0
0
0
0
0
0
0
80H
9
1
0
0
0
0
1
1
0
90H
5.选择器件(4)小键盘
1)小键盘在本设计中的作用
本设计中,小键盘用于输入模拟温度,用十进制表示。
温度从0~255,用温度用0~9,用a表示一个温度输入结束,用b表示输入十个温度数据完毕后再存储到AT24C02,用c表示温度数据要在led上显示。
2)小键盘的功能分析
通常使用的键盘是矩阵结构的。
对于4×4=16个键的键盘,采用矩阵方式只要用8条引线和2个8位端口便完成键盘的连接。
如图,这个矩阵分为4行4列,如果键5按下,则第1行和第1列线接通而形成通路。
如果第1行线接低电平,则键5的闭合,会使第1列线也输出低电平。
矩阵式键盘工作时,就是按行线和列线的电平来识别闭合键的。
图2-84×4键盘矩阵图
行扫描法识别按键的原理如下:
先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合。
这是通过检查列线电位来实现的,即在第0行接低电平时,看是否有哪条列线变成低电平。
如果有某列线变为低电平,则表示第0行和此列线相交位置上的键被按下;如果没有任何一条列线为低电平,则说明第0行没有任何键被按下。
此后,再将第1行接低电平,检测是否有变为低电平的列线。
如此重复地扫描,直到最