全自动豆浆机.docx
- 文档编号:24360112
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:25
- 大小:477.35KB
全自动豆浆机.docx
《全自动豆浆机.docx》由会员分享,可在线阅读,更多相关《全自动豆浆机.docx(25页珍藏版)》请在冰豆网上搜索。
全自动豆浆机
一、题义分析与解决方案
1.1题义与需求分析
1)设计并开发能检测温度信号;
2)能判断所检测的温度值是否越界;
3)若温度值越界则停止加热;
4)若温度达到合适温度,则电机能够转动,并且转4次停4次;
5)能够通过按键模拟水位的溢出和合适
6)能够检测到模拟水位的溢出并做相应的处理;
说明:
界限值是自行设定的,合适温度18°C,其所对应的数字量为0120H;上限35°C,其所对应的数字量为0230H;
1.2解决问题的方法与思路
1.2.1硬件部分
温度传感器DS18B20用于检测温度值,可编程并行接口芯片8255一片,七段LED显示器,芯片8279,继电器,DAC0832
1.2.2软件部分(汇编语言编写程序)
1)首先要对8255进行初始化设计,设置8255的工作方式并确定8255的端口地址;
2)检测水位是否合适,通过按键模拟
3)水位合适则加热,并与合适温度进行比较,如果合适开始打浆,否则继续加热;
4)启动DS18B20,发出温度检测命令,将温度值在LED上显示出来;
5)打浆四次,停四次
6)检测水位是否溢出,如果溢出停止加热,否则继续加热;
二、硬件设计
2.1选择芯片可编程并行接口芯片8255A
2.1.18255A的作用
利用8255A将界限值和温度值通过LED显示出来,同时8255A的PC0与DS18B20相连,向其发出温度检测命令及接受温度数据,PC5和蜂鸣器及发光二极管相连,用于声光报警。
2.1.28255A的功能分析及技术参数
8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。
三个端口都可以作为输入端口或输出端口。
A口有三种工作方式:
即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。
8255A的工作只有当片选CS效时才能进行。
而控制逻辑端口实现对其他端口的控制。
2-1-18255A的内部框图
2.1.38255A的方式控制字
D7D6D5D4D3D2D1D0
1
0
0
0
1
0
0
1
1:
工作方式A口方式0输出B口方式0输出
C口高4位输入C口低4位输入
图2-1-28255A的方式控制字表
1方式0的工作特点:
是这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。
2通道的功能为:
两个8位通道:
通道A和B。
两个四位通道:
通道C高4位和低四位,任何一个通道可以作输入/输出,输入是不锁存的,输出是锁存的,在方式0时各个通道的输入/输出可有16种不同的组合。
标识符
最小
最大
测试条件
输入低电平(VIL)
-0.5V
0.8V
输入高电平(VIH)
2.0V
5V
输出低电平(VOL)DB
0.45V
IOL=2.5mA
输出低电平(VOL)PER
0.45V
IOL=1.7mA
输出高电平(VOH)DB
2.4V
IOH=-400μA
输出高电平(VOH)PER
2.4V
IOH=-200μA
驱动电流
-1.0mA
-4.0mA
REXT=750Ω,VEXT=1.5V
供应电流
120mA
IIL(INPUTLOADCURRENT)
±10μA
VIN=0V~5V
IOFL(OUTPUTFLOATLEAKAGE)
±10μA
VOUT=0.45~5V
图表2-18255A的技术参数表
其中PER为peripheralport的缩写
参数说明:
输入最低电压:
min=-0.5V,max=0.8V
输入最高电压:
2.0V
输出最低电压:
0.45V
输出最高电压:
2.4V
2.2.选择芯片DS18B20温度传感器
2.2.1DS18B20温度传感器的作用
利用温度传感器检测温度,并转换为数字量和设定的界限值比较。
2.2.2DS18B20的功能特点
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;
⑤独特的单总线接口方式,与微处理器连接时仅需要一条线既可实现和微处理器的双向通讯。
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选择芯片8279的相关参数
8279的内部结构框图如下所示:
(1)数据缓冲器
它连接内、外总线,暂时CPU与8279芯片之间传送的命令、数据或状态。
(2)I/O控制
它用于控制信息的流向及区分信息的特征。
CS=1时,由RO或WR控制从8279读出或向8279写入;A0=0时,选中数据寄存器,输入/输出均为数据。
A0=1时,选中命令、状态寄存器,输入时位命令,输出时位状态。
(3)控制与定时寄存器
它用来寄存键盘和显示的工作方式,以及由CPU编程的其他操作方式,并通过译码产生
相应的控制信号,完成规定的控制功能。
图2_1:
8279的内部结构框图
(4)定时控制
它对外部时钟信号CLK分频至内部所需要的100kHz时钟。
(5)扫描计数器
它可根据编程命令按编码或译码方式工作。
编码方式:
4位计数器按二进制计数,计数状态从扫描线SL0~SL3输出,经外部译码器译码后,为键盘和显示器提供16个扫描信号。
译码方式:
扫描计数器最低两位被译码后从SL0~SL3输出,可直接作为键盘和显示器扫描信号。
此时键盘矩阵为4×8,显示字符为4位。
(6)键盘去抖与控制
键盘去抖电路:
在键盘扫描方式中,当有键闭合时,按命令指定方式去抖动后读入键值。
控制电路:
按命令指定方式控制去抖电路的工作过程,以及对返回信号进行处理。
(7)返回缓冲器
它锁存来自RL0~RL7的回复信号,在键盘扫描方式中,返回线与键盘矩阵列线相连,在逐行扫描时搜寻一行中闭合键所在的列。
当有键闭合时,经去抖动后经行、列编码和附近的移位、控制状态一起形成键盘数据送至FIFO存储器,供CPU读取。
其中,控制和移位由两个独立的附加开关决定;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(中断请求):
输出线。
高电平有效。
图2_2:
外部引脚图
在键盘工作方式中,当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的基本频率。
(2)读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个字符待取走。
2.4选择七段LED显示器
2.4.1七段LED显示器的作用
本次设计需要用到LED显示器显示预设的温度界限值以及测定的温度值。
2.4.2七段LED显示器功能分析
七段LED显示器可以控制在哪几个数位上,哪几个发光二极管亮,从而显示数字。
其工作原理:
如果发光二极管共阳极,则输入为0时亮,为1时不亮,反之如果发光共阴极,则输入1时亮,0时不亮。
发光二极管时一种外加电压超过额定电压时发生击穿,并因此能产生可发光的器件,数码显示器通常由多个发光二极管来组成七段或八段笔画显示器,当段组合发光时,便会显示某一个数码管或字符,七段代码的各位用作a—g和DP的输入
2.4.3七段LED显示器技术参数
表2-5-1LED显示的技术参数
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。
2.4.4七段LED显示器内部结构
图2-5-1LED显示器内部结构
2.4.5七段LED显示器真值表
2.5、选择数/模转换器DAC0832
2.5.1DAC0832在本设计中的作用
DAC0832是NationalSemiconductor生产的一款D/A(数字/模拟)转换器,其采用CMOS工艺和R-2RT形电阻解码网络,转换结果为一对差动电流I01和I02输出。
在本设计中主要用来将开关打入的数字信号转换为相应的模拟信号。
2.5.2DAC0832的功能分析
DAC0832是8位D/A转换器,转换周期为1μs。
它由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成。
当ILE为高电平,CS为低电平,WR1为负脉冲时,在LE1产生正脉冲;LE1为高电平时,输入寄存器的状态随数据输入线状态变化,LE1的负跳变将输入数据线上的信息存入输入寄存器。
当Xfer为低电平,WR2输入负脉冲时,则在LE2产生正脉冲;LE2为高电平时,DAC寄存器的输入与输出寄存器的状态一致,LE2的负跳变,输入寄存器内容存入DAC寄存器。
DAC0832的输出是电流型的。
在微机系统中,通常需要电压信号,电流信号和电压信号之间的转换可由运算放大器实现。
2.5.3DAC0832的技术参数
DAC0832芯片采用CMOS工艺,四象限乘法型DAC,与微机兼容,数据输入能与双缓冲、单缓冲或直接通过三种方式工作。
是一个8位D/A转换器,输入电平与TTL、CMOS兼容,单电源+5~+15V工作,基准电压的范围为±10V,电流建立时间为1µs,低功耗200mw,20引脚,双列直接式封装。
2.6继电器
继电器在本实验中主要用于控制直流电机,当CTRL端输入1时,直流电机
工作,输入0时,直流电机停止工作。
其CTRL连接到8255A的PC4口。
图9继电器工作原理图
2.7硬件总逻辑图及说明
、
三、控制程序设计
3.1控制程序设计思路说明
首先初始化8255,8279,DAC832等器件。
通过键盘的按键来模拟豆浆机的水位是否合适,如果按的键与预先设置的水位合适键一样,则说明水位合适,否则程序将不断的检测水位。
然后通过DS18B20来检测温度,并通过8279将温度显示在LED显示器上,将其与豆浆机可以打浆的合适温度相比较,如果大于或等于说明温度合适可以打浆,否则继续加热知道温度合适。
由于DS18B20采用串行数据传送和单总线数据传输方式,其数据输入输出都由同一条线完成。
因此,对读写的操作时序要求严格。
为了保证DS18B20有严格的读写时序,需要做较精确的延时。
在操作中用到的延时有15us,在写数据操作时首先把数据放入一个寄存器中,再一次写一位数据到DS18B20内,用循环移位指令将上一次传输的数据循环右移,每传输一位采用设定的延时程序保证读写时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全自动 豆浆机
![提示](https://static.bdocx.com/images/bang_tan.gif)