精品完整版微机原理课程设计全自动豆浆机设计.docx
- 文档编号:6202094
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:46
- 大小:455.06KB
精品完整版微机原理课程设计全自动豆浆机设计.docx
《精品完整版微机原理课程设计全自动豆浆机设计.docx》由会员分享,可在线阅读,更多相关《精品完整版微机原理课程设计全自动豆浆机设计.docx(46页珍藏版)》请在冰豆网上搜索。
精品完整版微机原理课程设计全自动豆浆机设计
(此文档为word格式,下载后您可任意编辑修改!
)
一、题义分析及解决方案
1.题义需求分析
用STARES598PCI单板开发机设计一款全自动豆浆机,豆浆机的工作原理如下:
上电-水位检测-水位合适开始加热-加热到80°C开始打浆(打15秒,停15秒,共4次)-继续加热一定时间(溢出到时暂时停止加热)。
打浆后继续加热,检测到4次溢出完成。
具体要求:
(1)加热温度可以不到80度,设为35度;
(2)水位合适由按键模拟;
(3)打浆过程由电机模拟
(4)温度要求显示
由上述的需求可以分析如下:
根据设计内容要求可知:
1)用STARES598PCI单板开发机设计一个全自动豆浆机。
接口可以使用8255A或8279,考虑该设计要求实现的功能较多,这里我们选择同时使用8255A和8279芯片,用于系统控制电路。
其中8255芯片主要用于控制把直流电机的控制信号输出到继电器来控制电机,接收水位测量的两个按键信号。
8279芯片用于控制温度的测量,控制LED数码管的温度显示。
2)水位合适检测和水位溢出检测由按键模拟,考虑到方便性,我们选择二进制开关,用1表示水位合适或溢出,0表示水位不合适或不溢出。
3)加热使用温度传感器DS18B20,DS18B20在本设计中主要是测量加热的温度并将接收的模拟信号转化为数字信号输出至8255A中。
4)打浆过程由直流电机模拟,打浆时,打15秒,停15秒,共四次,由软件用汇编语言编程来实现。
5)温度的显示用七段LED显示器
2.解决问题方法及思路
1)硬件部分
为了完成这个实验,PC机和ES-PCI固然不可少,另外,为了能使各个功能
模块更好的实现,我们选择8255和8279作为我们的主控芯片。
打浆功能由直流电机来实现,温度的测量由DS18B20来实现,温度的显示由LED来实现,水位的合适与溢出由两个二进制开关来实现,直流电机的控制由继电器来实现。
我们用8279的B口连接LED数码管段码,用于控制显示那一段,C口连接LED数码管选择脚。
我们把8255的PC0-PC3设置为输入口,PC0连接DS18B20的TOUT,PA口连接二进制开关,PC4-PC7设置为输出口,PC4口连接继电器(用于控制直流电机),PC5连接DS18B20的TCtrl,用于控制加热和暂停加热,到此,硬件设计基本完成。
2)软件部分
除了必需的硬件之外,合理的程序设计也是本实验的重中之重,为了完成本实验中的所有功能,需要5大程序段。
1、温度测量程序模块。
2、电机循环打浆程序模块。
3、温度的显示程序模块(包括段选和位选)。
4、加热程序模块。
5、水位的检测由二进制开关模拟,只需输入一个信号即可(包括水位合适和水位溢出)。
二、硬件设计
1、选择芯片8255A
1)芯片8255A在本设计中的作用
8255在本实验作为控制芯片,把直流电机的控制信号输出到继电器来控制直流电机,接收水位测量的两个按键信号。
2)芯片8255A的功能分析
8255A是一种可控制编程的并行接口芯片,采用40脚双列直插式封装,单一+5V电源,全部输入/输出均与TTL电平兼容。
它有A、B、C三个并行输入/输出端口,其功能全部由程序设定,每个端口都有自己的特点。
本设计中8255A工作于方式0,即基本输入输出方式,其中PA口作为输入口,PB口作为输出口,PC0作为输入,C口的其他位不用。
8255A在方式0下可将三个数据端口划分为4个独立的部分,A、B口分为两个8位端口,C口高4位和低4位分别用作两个4位端口。
在此方式下,输出的数据被锁存,而输入的数据是不锁存的。
1 8255A的内部结构图如下:
图18255A的内部结构图
2 8255A的方式控制字:
D7D6D5D4D3D2D1D0
1
A组工作方式
A口I/O
C7-C4I/O
B组工作方式
B口I/O
C3-C0I/O
|||||||
特征位00:
方式01:
输入1:
输入0:
方式01:
输入1:
输入
01:
方式10:
输出0:
输出1:
方式10:
输出0:
输出
10:
方式2
图28255A的方式控制字
3 8255A的置位/复位控制字:
D7D6D5D4D3D2D1D0
0
×
×
×
写入位编码
写入内容
写入位|编码|
PC00000:
写入0
PC10011:
写入1
PC2010
PC3011
PC4100
PC5101
PC6110
PC7111
图38255A的方式控制字:
3)芯片8255的技术参数
表1_1 8255A主要技术参数
参数名称
符号
测试条件
最大规范值
最小规范值
输入低电平电压
VIL
0.8V
-0.5V
输入高电平电压
VIH
Vcc
2.0V
输入低电平电压
(数据总线)
VOL
IOL=2.5MA
0.45V
输入低电平电压
(外部端口)
VOL
IOL=1.7MA
0.45V
输入高电平电压
(数据总线)
VOH
IOH=-400MA
2.4V
输入高电平电压
(外部端口)
VOH
IOH=-200MA
2.4V
达林顿驱动电流
IDAR
REXT=750
VEXT=1.5V
-0.4MA
1.0MA
电源电流
ICC
120MA
输入负载电流
IIL
I=Vcc—0V
+10MA
-10MA
输出浮动电流
IOFL
Vout=Vcc--0
+10MA
-10MA
8255A主要参数分析:
8255A的达林顿驱动电流最大为4.0mA,当电流超过达林顿驱动电流是芯片就有可能会被损坏,而LED的驱动电流要比它高的多发光,在保证8255A芯片安全的同时又能让LED管显示就会需要外加器件。
8255有A、B、C三个并行输入输出端口(简称为A口、B口、C口),其功能全部由程序设定,每个端口都有自己的特点。
A口、B口通常作为独立的I/O的端口使用,C口也可以作为独立的I/O端口使用,但当A口、B口作为应答式的I/O端口使用时,C口分别用来为A口、B口提供应答控制信号。
各端口的功能如表1-2所示。
表1_28255A的端口功能
工作方式
A口
B口
C口
0
基本输入/输出端口,输入不锁存,输出锁存。
同A口
同A口
1
选通输入/输出端口,输入/输出均可锁存。
同A口
C口3位作为A口的应答线;C口另3位作为B口的应答线。
2
应答式双向输入/输出端口,均可锁存。
不用
C口5位作为A口的应答线。
2、选择芯片8279
1).8279在本设计中的作用:
8279是专用键盘、数码管显示接口芯片,它可以自动维持7段显示器的刷新,不需要主机的干预,并且可以同时完成矩阵键盘的扫描,通过译码器获得8个显示器的选通信号,即位选通信号。
8279芯片用于控制温度的测量,控制LED数码管的温度显示。
2)芯片8279的功能分析:
A.8279的内部结构框图如下所示:
(1)数据缓冲器
它连接内、外总线,暂时CPU与8279芯片之间传送的命令、数据或状态。
(2)I/O控制
它用于控制信息的流向及区分信息的特征。
CS=1时,由RO或WR控制从8279读出或向8279写入;A0=0时,选中数据寄存器,输入/输出均为数据。
A0=1时,选中命令、状态寄存器,输入时位命令,输出时位状态。
(3)控制与定时寄存器
它用来寄存键盘和显示的工作方式,以及由CPU编程的其他操作方式,并通过译码产生
相应的控制信号,完成规定的控制功能。
图48279的内部结构框图
(4)定时控制
它对外部时钟信号CLK分频至内部所需要的100kHz时钟。
(5)扫描计数器
它可根据编程命令按编码或译码方式工作。
编码方式:
4位计数器按二进制计数,计数状态从扫描线SL0~SL3输出,经外部译码器译码后,为键盘和显示器提供16个扫描信号。
译码方式:
扫描计数器最低两位被译码后从SL0~SL3输出,可直接作为键盘和显示器扫描信号。
此时键盘矩阵为4×8,显示字符为4位。
(6)键盘去抖与控制
键盘去抖电路:
在键盘扫描方式中,当有键闭合时,按命令指定方式去抖动后读入键值。
控制电路:
按命令指定方式控制去抖电路的工作过程,以及对返回信号进行处理。
(7)返回缓冲器
它锁存来自RL0~RL7的回复信号,在键盘扫描方式中,返回线与键盘矩阵列线相连,在逐行扫描时搜寻一行中闭合键所在的列。
当有键闭合时,经去抖动后经行、列编码和附近的移位、控制状态一起形成键盘数据送至FIFO存储器,供CPU读取。
表3键盘数据格式
D7D6D5D4D3D2D1D0
CNTL
SHIFT
SL2
SL1
SL0
R2
R1
R0
控制
移位
行编码
列编码
其中,控制和移位由两个独立的附加开关决定;SL2SL1SL0为按下键的行编码,来自扫描计数器的低3位;R2R1R0是根据返回信号确定的列编码。
(8)FIFORAM
它是一个8×8RAM,在键盘输入方式时遵循先入先出(FIFO)原则。
(9)FIFORAM的状态寄存器
它用来存放FIFORAM的状态,例如RAM空、满等。
当工作在键盘方式FIFO存储器不空时,将产生IRQ=1信号向CPU申请中断。
(10)显示RAM、显示地址寄存器
显示RAM用来存储显示数据。
容量为168位。
在显示过程中,存储的显示数据轮流从显示寄存器输出。
显示寄存器分别为A、B两组,OUTA0~3和OUTB0~3可以单独送数,也可以组成一个8位的字。
显示寄存器的输出与显示扫描配合,不断从显示RAM中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定的显示状态。
显示地址寄存器用来寄存由CPU进行读/写显示RAM的地址,它可以由命令设定,也可以设置成每次读写或写入之后自动递减。
(11)显示寄存器
它存放显示内容。
在显示过程中它与显示扫描配合,轮流从显示RAM中读出显示信息并依次驱动被选中的显示器件,循环不断地刷新显示字符编码,使显示器件呈现稳定的显示字符。
8位显示寄存器分为A、B两组,OUTA0~3和OUTB0~3可以单独送树,显示4个字符也可以组成一个8位字符。
(12)显示地址寄存器
它寄存读/写显示RAM地址,即对应显示字符从哪一位开始。
它由命令设定,并可设置成每次读出或写入之后自动加1。
B.芯片8279是一种具有40条引脚的双列直插式芯片,它的外部引脚如下图所示:
CS(片选):
输入线,当CS=0时8279被选中,允许CPU对其读、写,否则被禁止。
D0~D7(数据总线):
双向、三态总线,和系统数据总线相连;用于CPU和8279间的数据/命令传递。
A0:
地址线,进行片内端口选择。
为0时,选中数据寄存器;为1时选中命令/状态寄存器。
RD、WR(读、写信号):
输入线。
低电平有效,来自CPU的控制信号,控制8279的读、写操作。
CLK:
系统时钟,为8279芯片提供内部定时。
RESET:
复位线,高电平时复位8279到:
16个字符显示(左进方式);编码扫描键盘(双键锁定);时钟设置为31。
IRQ(中断请求):
输出线。
高电平有效。
图5外部引脚图
在键盘工作方式中,当FIFO/传感器RAM存有数据时,IRQ为高电平。
CPU每次从RAM中读出数据时,IRQ变为低电平。
若RAM中仍有数据,则IRQ再次恢复高电平。
在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现高电平。
SL0~SL3:
扫描线,用来扫描键盘或显示器,可编程设定为编码输出或译码输出。
RL0~RL7:
返回线,用作键盘矩阵列线的返回信号输入。
SHIFT:
移位信号,高电平有效,是键盘数据的D6位,用于扩充键的控制功能,如作为上、下档功能键。
CNTL:
控制线,高电平有效,键盘工作方式时,是键盘数据的D7位,用于扩充键的控制功能——控制功能键。
OUTA0~OUTA3,OUTB0~OUTB3:
A组、B组显示信号输出线,与扫描线SL0~SL3同步,实现分时数据显示,即刷新各位显示字符。
两组可独立使用,也可合并使用。
BD(显示消隐):
输出线。
低电平有效。
该信号在数字切换显示或使用消隐命令时,将显示消隐。
C.8279的工作过程通过确定其方式字/命令字来实现。
当A0=1时,CPU向8279芯片写入命令。
(1)设置键盘/显示方式
表2_2设置命令字
D7D6D5D4D3D2D1D0
0
0
0
D
D
K
K
K
其中:
D7、D6、D5=000方式设置命令特征位。
DD(D4、D3):
来设定显示方式,其定义如下:
00:
8个字符显示,左入口
01:
16个字符显示,左入口
10:
8个字符显示,右入口
11:
16个字符显示,右入口
所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;所谓右入口,即显示位置从最右一位(最低位)开始,以后逐次输入的显示字符时,已有的显示字符逐个向左顺序移动。
KKK(D2、D1、D0):
用来设定七种键盘、显示工作方式:
000 编码扫描键盘,双键锁定
001 译码扫描键盘,双键锁定
010 编码扫描键盘,N键轮回
011 译码扫描键盘,N键轮回
100 编码扫描传感器矩阵
101 译码扫描传感器矩阵
110 选通输入,编码显示扫描
111 选通输入,译码显示扫描
双键锁定与N键轮回是多键按下时的两种不同的保护方式。
双键锁定为两键同时按下提供的保护方法。
再消颤周期里,如果有两键同时按下,则只有其中一个键弹起,而另一个键保持在按下位置时,才被认可。
N键轮回为N键同时按下的保护方法。
当有若干键按下时,键盘扫描能够根据发现他们的顺序,依次将它们的状态送入FIFORAM中。
(2)设置程序时钟命令
表2_3命令格式
D7D6D5D4D3D2D1D0
0
0
1
P
P
P
P
P
其中:
D7、D6、D5=001为时钟命令特征位。
PPPPP( D4、D3、D2、D1、D0)用来设定外部输入CLK端的时钟进行分频的分频数N。
N取值为2~31。
例如外部时钟频率为2MHZ,PPPPP被置为10100(N=20),则对输入的外部时钟20分频,以获得8279内部要求的100KMZ的基本频率。
(3)读FIFO/传感器RAM命令
表2_4命令格式
D7D6D5D4D3D2D1D0
0
1
0
AI
X
A
A
A
其中:
D7D6D5=010为读FIFO/传感器RAM命令特征位。
该命令字只在传感器方式时使用。
在CPU读传感器RAM之前,必须使用这条命令来设定传感器RAM中的8个地址(每个地址一个字节)。
AAA(D2、D1、D0)为传感器RAM中的八个字节地址。
AI(D4)为自动增量特征位。
当AI=1时,每次读出传感器RAM后地址自动加1使地址指针指向下一个存储单元。
这样,下一个数据便从下一个地址读出,而不必重新设置读FIFO/传感器RAM命令。
在键盘工作方式中,由于读出操做严格按照先入先出顺序,因此,不需使用此命令。
(4)读显示RAM命令
表2_5命令格式
D7D6D5D4D3D2D1D0
0
1
1
AI
A
A
A
A
其中:
D7D6D5=011为读显示RAM命令字的特征位。
该命令用来设定将要读出的显示RAM地址。
AAAA(D3、D2、D1、D0)用来寻址显示RAM命令字的特征位。
由位显示RAM中有16个字节单元故需要4位寻址。
AI(D4)为自动增量特征位。
当AI=1时,每次读出后地址自动加1指向下一地址。
(5)写显示RAM命令
表2_6命令格式
D7D6D5D4D3D2D1D0
1
0
0
AI
A
A
A
A
其中:
D7D6D5=100为写显示RAM命令字的特征位。
在写显示器RAM之前用该命令用来设定将要写入的显示RAM地址。
AAAA(D3、D2、D1、D0)为将要写入的存储单元地址,AI(D4)为自动增量特征位。
当AI=1时,每次写入后地址自动加1指向下一次写入地址。
(6)显示禁止写入/消隐命令特征位
表2_7命令格式
D7D6D5D4D3D2D1D0
1
0
1
X
IWA
IWB
IWC
IWD
其中:
D7D6D5=101为显示禁止写入/消隐命令特征位。
IWA、IWB(D3、D2)为A、B组显示RAM写入屏蔽位。
由于显示寄存器分成A、B两组,可以单独送数,故用两位来分别屏蔽。
当A组的屏蔽位D3=1时,A组的显示RAM禁止写入。
因此,从CPU写入显示器RAM数据时,不会影响A的显示。
这种情况通常在采用双4位显示器时使用。
因为两个双四位显示器是相互独立的。
为了给其中一个双四位显示器输入数据而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。
IWC、IWD(D1、D0)为消隐显示位。
用于对两组显示输出消隐。
若BL=1时,对应组的显示输出被消隐。
当BL=0时,则恢复显示。
(7)清除命令
表2_8命令格式
D7D6D5D4D3D2D1D0
1
1
0
CD
CD
CD
CF
CA
其中:
D7D6D5=110清除命令特征位。
CDCDCD(D4D3D2)用来设定清除显示RAM方式。
共有四种消除方式,见表6-10-1。
CF(D1)用来置空FIFO存储器,当=1时,执行清除命令后,FIFORAM被置空,使中断输出线复位。
同时,传感器RAM的读出地址也被置0。
CA(D0)为总清的特征位。
它兼有CD和CF的联合效能。
在CD=1时,对显示的清除方式由D3、D2的编码决定。
清除显示RAM约需160S。
在此期间FIFO状态时的最高位DU=1,表示显示无效。
CPU不能向显示RAM写入数据。
(8)结束中断/错误方式设置命令
表2_9命令格式
D7D6D5D4D3D2D1D0
1
1
1
E
X
X
X
X
其中:
D7D6D5=111为该命令的特征位。
此命令有两种不同的作用:
①作为结束中断命令。
在传感器工作方式中使用。
每当传感器状态出现变化时,扫描检测电路将其状态写入传感器RAM,并启动中断逻辑,使IRQ变高,向CPU请求中断,并且禁止写入传感器RAM。
此时,若传感器RAM读出地址的自动递增特征没有置位(AI=0),则中断请求IRQ在CPU第一次从传感器RAM读出数据时就被清除。
若自动递增特征已置位(AI=1),则CPU对传感器RAM的读出并不能清除IRQ,而必须通过给8279写入结束中断/错误方式设置命令才能使IRQ变低。
因此在传感器工作方式中,此命令用来结束传感器RAM的中断请求。
②作为特定错误方式设置命令。
在8279已被设定为键盘扫描N键轮回方式以后,如果CPU给8279又写入结束中断/错误方式设置命令(E=1),则8279将以一种特定的错误方式工作。
这种方式的特点是:
在8279的消颤周期内,如果发现多个按键同时按下,则FIFO状态字中的错误特征位S/E将置1,并产生中断请求信号和阻止写入FIFORAM。
上述八种用于确定8279操作方式的命令字皆由D7D6D5特征位确定,输入8279后能自动寻址相应的命令寄存器。
因此,写入命令字时唯一的要求是使数据选择信号A0=1。
8279芯片的状态字主要用于键盘和选通工作方式,以指示FIFORAM中的字符数和有无错误发生。
表2_10键盘和选通工作方式格式
D7D6D5D4D3D2D1D0
DU
S/E
0
U
F
N
N
N
其中:
DU(D7)为显示无效特征位。
当DU=1表示显示无效。
当显示RAM由于清除显示或全清命令尚未完成时,DU=1。
D6(S/E):
在键盘工作方式中为特殊错误方式标志位。
S/E=1表示出现多键同时按下的错误。
D5(0):
超出标志位,当向已满的FIFORAM中写入,致使FIFORAM中的字符个数n>8而产生重叠时,0被置为1。
D4(U):
“空”标志位,当FIFORAM中的字符个数n=0时,U被置为1。
D3(F):
“满”标志位,当FIFORAM中的字符个数n=8时,F被置为1。
D2D1D0(NNN):
表示FIFORAM中有n个字符待取走。
3.选择DS18B20温度传感器
1)DS18B20温度传感器在本设计中的作用
利用温度传感器检测温度,并转换为数字量和设定的界限值比较。
2)DS18B20的功能分析
DS18B20可编程温度传感器有三个管脚。
GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与CPU相连。
VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.0—5.5V。
本系统中使用外部电源供电。
其主要特点为:
①用户可以自行设定报警上下限温度值;
②不需要外部组件,能测量-55—+125°C范围内的温度;
③在-10—+85°C范围内的测温准确度为±0.5°C;
④通过编程可以实现9—12位的数字读数方式,可在至多750MS内将温度转换成12位数字,测温分辨率可达到0.0625°C;
⑤独特的单总线接口方式,与微处理器连接时仅需要一条线既可实现和微处理器的双向通讯。
图6DS18B20内部结构图
图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的目的。
DS18B20的测温原理:
图7DS18B20的测温原理图
DS18B20的测温原理如图所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 完整版 微机 原理 课程设计 全自动 豆浆机 设计