压力控制系统课程设计Word格式文档下载.docx
- 文档编号:16518618
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:33
- 大小:928.69KB
压力控制系统课程设计Word格式文档下载.docx
《压力控制系统课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《压力控制系统课程设计Word格式文档下载.docx(33页珍藏版)》请在冰豆网上搜索。
实现电子秤的基本功能,达到模拟压力控制系统课程设计的基本要求。
1.2设计要求
(1)模拟电子秤开机后,改变模拟信号的大小,模拟重量的值必须实时的显示在液晶显示屏上;
(2)模拟的单价初始值默认为零,从键盘输入单价完成后,需在液晶显示器上显示输入的单价;
(3)模拟价格必须随模拟重量改变,并实时的显示在液晶显示器上。
2.总体方案与说明
本次试验需要要使用ADC0809数模转换器,四乘四键盘,可编程控制接口8255,0~5V直流电压,128*64LCD字符图形液晶显示屏。
2.1模拟信号的转换与显示
用滑动变阻器代替压力传感器,模拟压力的变化。
将模拟电压输入ADC0809通道0(IN0),ADC0809的IN0口地址为280H,CS接地址译码输出的280h~287h。
8255的A口接LCD的D7~DO.8255CS接地址译码输出的288h~28fh。
8255的PB0~PB2分别接LCD的D/I、RW、E接口。
编程采集IN0输入的电压,将压力传感器的模拟信号转化为数字信号,之后进行转换,换算为设定量程下实际情况的值,然后将模拟重量的电压数据存放到CPU寄存器中用于下一步计算。
同时将模拟重量的电压数据从8255的A口输出并在LCD屏幕的第一行作为重量显示出来。
2.2键盘数据的输入与显示
8255的C0~C3接键盘的列0~列3,C4~C7接键盘的行0~行3),从键盘输入两位数,然后在LCD的第二行作为单价显示出来,并存放到CPU寄存器中用于下一步计算。
2.3数据的处理与显示
通过编程将第一步与第二步寄存在CPU中的模拟重量与模拟价格相乘处理后输入到LCD的第三行作为总价显示出来。
2.4LCD显示说明
液晶显示屏是一种内置128×
64-12汉字图形点阵的液晶显示控制模块,用于显示汉字及图形。12864A-1汉字图形点阵液晶显示模块集成ST7920驱动器,可显示汉字及图形,内置8192个中文汉字(16×
16点阵)、128个字符(8×
16点阵)及64×
256点阵显示RAM(GDRAM)。
如图2.4。
液晶显示屏共显示四行字符,每行可以显示八个字符。
0-14重量:
****斤
16-30价格:
****元
32-46总价:
*****
48-62值班人员:
***
图2.4LCD接线图
3.硬件框图与说明
3.18086原理简介
3.1.18086CPU
8086是Intel系列的16位微处理器,它采用HMOS工艺技术制造,芯片采用40系列线封装,单一的+5V电源,时钟频率为5~10MHz。
8086有16根数据线和20根地址线,可以处理8位和16位数据,寻址1MB的储存单元和64KB的I/O端口。
如图3.1.1。
图3.1.18086引脚图
3.1.28086CPU的编程结构
编程结构:
是指从程序员和使用者的角度看到的结构,亦可称为功能结构。
从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。
8086CPU的内部功能结构如图图3.1.2所示:
图3.1.2
3.28255原理简介
3.2.18255原理及接线图
8255A是Intel系列的并行接口芯片,常作为微机系统与外部设备接口。
由于它是可编程的,可以通过软件来设置芯片的工作方式,因此,用它连接外部设备时,一般不需要在附加外部电路,给使用带来很大方便。
如图3.2.1
图3.2.1
3.2.2芯片8255A在本设计中的功能作用
8255是并行的I|O接口芯片,内部有三个相互独立的8为数据端口。
8255实现了外设与8086之间的数据传输。
8255的A口地址为288H,B口地址为289H,C口地址为28AH,
控制口地址为28BH,A口作为LED显示屏数据总线D0~D7,B口控制LED灯,蜂鸣器,电机,C口的低三位分别接LED显示屏的D/I,RW,E。
3.2.3芯片8255的功能分析
1、8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。
三个端口都可以作为输入端口或输出端口。
A口有三种工作方式:
方式0、方式1和方式2;
B口可以工作在方式0或方式1下;
C口通常作为联络信号使用。
8255的工作只有当片选CS有效时才能进行工作,而控制逻辑端口实现对其他端口的控制。
当8255工作在方式0时,即基本输入输出方式时,可将三个数据端口划分为四个独立的部分:
A口和B口作为两个8位端口,C口的高4位和低4位可以用作两个4位的输入输出口,各个端口都可独立地用作输入或输出。
2、数据总线缓冲器是一个8位双向三态缓冲器,三态是由读/写控制逻辑控制的,它可与系统的DB直接相连,实现CPU和8255A之间的信息传送;
读写控制器用于管理数据、控制字或状态字的传送,接收来自CPU的地址信息及一些控制信号,然后向A组、B组控制电路发送命令,控制端口数据的传送方向。
3、8255引脚:
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;
/CS=1时,8255无法与CPU做数据传输.
RD:
读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
A0,A1:
地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器. 当A0=0,A1=0时,PA口被选择;
当A0=0,A1=1时,PB口被选择;
当A0=1,A1=0时,PC口被选择;
当A0=1.A1=1时,控制寄存器被选择。
3.2.48255具有三种基本的工作方式
基本输入/输出方式(方式0)
选通工作方式(方式1)
双向传送方式(方式2)
方式0:
相当于三个独立的8位简单接口各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。
C端口可以是一个8位的简单接口,也可以分为两个独立的4位端口常用于连接简单外设(适于无条件或查询方式)。
方式1:
利用一组选通控制信号控制A端口和B端口的数据输入输出A口、B口作输入或输出口,C口的部分位用作选通控制信号A口、B口在作为输入和输出时选通信号不同
方式2:
双向输入输出方式-------可以既作为输入口,又作为输出口只有A端口可工作在方式2下。
3.30809的应用
3.3.10809内部特性
(1)8路输入通道,8位A/D转换器,即分辨率为8位。
如图3.3.1。
(2)具有转换起停控制端。
(3)转换时间为100μs
(4)单个+5V电源供电。
(5)模拟输入电压范围0~+5V,不需要零点和满刻度校准。
(6)工作温度范围为-40~+85摄氏度。
(7)低功耗,约15mW
图3.3.1
3.3.2外部特性(引脚功能)
图3.3.2
ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路。
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
地。
3.3.3量程转换方法:
INO单极性输入电压与转换后的数字的关系为:
N=Ui/(UREF/256)
3.4液晶显示屏
3.4.1液晶屏简介和主要特性
主要技术参数和显示特性:
电源:
VDD3.3V~+5V(内置升压电路,无需负压);
显示内容:
128列×
64行;
显示颜色:
黄绿;
显示角度:
6:
00钟直视;
LCD类型:
STN;
与MCU接口:
8位或4位并行/3位串行;
2MHZ时钟频率;
配置LED背光;
多种软件功能:
光标显示、画面移位、自定义字符、睡眠模式等
3.4.2液晶显示屏引脚说明
引脚号
引脚名称
电平
功能说明
1
VSS
-
模块的电源地
2
VDD
模块的电源正端
3
V0
LCD驱动电压输入端
4
RS(/CS)
H/L
并行的指令/数据选择信号,L-指令;
串行的片选信号
5
R/W(SID)
并行的读写选择信号;
串行的数据口
6
E(CLK)
并行的使能信号;
串行的同步时钟
7
DB0
数据0
8
DB1
数据1
9
DB2
数据2
10
DB3
数据3
11
DB4
数据4
12
DB5
数据5
13
DB6
数据6
14
DB7
数据7
15
PSB
并/串行接口选择:
H-并行;
L-串行
16
NC
空脚
17
/RET
复位低电平有效
18
19
LED_A
背光源正极(LED+5V)
20
LED_K
背光源负极(LED-OV)
表128X64引脚说明
逻辑工作电压(VDD):
4.5~5.5V
电源地(GND):
0V
工作温度(Ta):
0~60℃(常温)/-20~75℃(宽温)
3.4.3汉字编码查询表
图3.4.3
3.4.4液晶显示流程图:
图3.4.4
3.4.5液晶显示原理图:
图3.4.5
3.5键盘
键盘的工作原理是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×
4个。
这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。
3.5.1键盘原理流程图
图3.5.1
3.5.2键盘电路图
图3.5.2
3.5.3键盘的扫描过程
(1)检测是否所有键都松开了,若没有则继续检测。
(2)档所有键都松开了,在检测是否有键按下,若无这继续检测。
(3)若有键按下,要消除键盘抖动,确认有键按下。
(4)对压下的键进行编码,将该键的行列信号转换成16进制,由此确定有哪个键按下了。
如果出现有多个键重复按下的情况,只有在其他键全部释放后,仅剩一个键按下时,才把此键当作按下的键。
(5)该建释放后在回到
(2)
4.电路原理图与说明
4.1电路原理图
4.1.1电路连接图与说明:
(1)0809的通道0的地址为298H,通道0与0~+5V相连接,片选地址为280H~287H
(2)8255的片选地址为288H~29DH,A口地址为288H,B口地址为289H,C口地址为28AH,PA0~PA7接LCD数据总线D0~D7,PB0~PB2接LCD的D/I、RW、E。
PC0~PC7接键盘的DO~D7。
图4.1.1
4.1.2硬件接线实物图
图4.1.2
4.2硬件运行过程说明
4.2.1过程说明
初始化压力传感器,将压力传感器的信号传至A/D转换器(由于没有压力传感器,试验中用滑动变阻器替代),然后将压力传感器的模拟信号转化为数字信号,之后进行转换,换算为设定量程下实际情况的值,将值送到8255,8255控制液晶屏显示,将换算之后的值显示出来。
并使当前数据随时间一直不断变化。
当压力大小相对稳定时,从4*4键盘输入一个2为数,通过8255链接的LCD显示器显示在显示屏的第二行。
然后计算模拟重量乘以价格得到总价输出到LCD液晶显示屏的第三行。
5.软件主要模块与说明
程序软件模块分为主程序,键盘程序,0809转换程序,液晶显示程序,计算子程序五个部分,键盘程序,液晶显示程序流程图在硬件部分已有叙述,下面主要描述主程序,0809转换程序的详细过程,主程序完成8255初始化,调用0809转,完成LCD准备工作,调用键盘函数,调用计算函数等一系列主干过程。
5.1主程序流程图
图5.1
5.20809转换及数据处理流程
5.2.1数据处理流程图
图5.3.1
5.2.2数据转换代码如下
TRANSFORMPROC;
启动0809
MOVDX,280H
OUTDX,AL
MOVCX,0FFH
AGAIN:
LOOPAGAIN
INAL,DX;
读取0809的值
MOVBL,2;
量程转换,100-1000
MOVAH,0
MULBL
MOV[HUANCH+64],AX
MOVDX,0
MOVCX,100;
将转换量程后的值进行拆分,使之能在LED屏上显示
DIVCX
ADDAX,0A3B0H
MOV[HUANCH+6],AX;
储存百位数值,显示
MOVAX,DX
MOVCX,10
MOV[HUANCH+8],AX;
储存十位数值,显示
MOV[HUANCH+12],AX;
储存个位数值至缓冲区
RET
TRANSFORMENDP
6.源程序清单与注释
IO_ADDRESSEQU288h
IO_ADDRESSEQU288H
a8255equ288H;
8255A口
c8255equ28aH;
8255C口
k8255equ28bH;
8255控制口分
DATASEGMENT
HUANCH
DW0D6D8H,0C1BFH,0A3BAH,0C1A6H,0A1C3H,0A3AEH,0A3CBH,0BDEFH
;
0-14显示kg,+6,最后一个存数据,+16
DW0BCDBH,0B8F1H,0A3BAH,0A3B0H,0A3AEH,0A3B0H,0A1A0H,0D4AAH
16-30单价XXX.X帕
DW0D7DCH,0BCDBH,0A3BAH,0A3AEH,0A3AEH,0A3AEH,0A3AEH,0A3AEH
32-46显示状态
DW0D6B5H,0B0E0H,0C8CbH,0D4B1H,0A1C3H,0D1EEH,0BDA8H,0A1A0H
48-52显示值班人员
DW64,66,68,0,72;
CCDB10;
HZ_ADRDB?
table1DW0770h,0B70h,0D70h,0E70h,07B0h,0BB0h,0DB0h,0EB0h
DW07D0h,0BD0h,0DD0h,0ED0h,07E0h,0BE0h,0DE0h,0EE0h;
键盘扫描码表
charDB'
0123456789ABCDEF'
;
字符表
DATAENDS
STACKSSEGMENTSTACK;
堆栈空间
DB100DUP(?
)
STACKENDS;
jianpan
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACKS,ES:
DATA
START:
CLI
MOVAX,DATA
MOVDS,AX
MOVES,AX;
?
MOVAX,stacks
MOVSS,AX
MOVDX,IO_ADDRESS+3
MOVAL,81H
OUTDX,AL;
8255初始化
CALLTRANSFORM;
调用0809ok
CALLCLEAR;
LCD清除
LEABX,HUANCH
MOVCH,1;
显示第1行信息
CALLLCD_DISP
CALLJISUAN
LEABX,HUANCH
MOVCH,2;
MOVCH,3;
MOVCH,4;
显示第4行信息
MOVDX,c8255
MOVAL,0fh
读行扫描值
ANDAL,0fh
CMPAL,0fh
JZSTART;
未发现有键按下则转
MOVDL,3fh
MOVAH,2
INT21h
CALLJIANPAN
MOVDL,[CC]
ADDDL,30H
MOVAH,02
INT21h;
显示查找到的键盘
MOVBL,[CC];
MOVBH,0;
MOV[HUANCH+66],BX
ADDBX,0A3B0H
MOV[HUANCH+22],BX
INT21h;
MOVBH,0
MOV[HUANCH+68],BX
MOV[HUANCH+26],BX
MOVBL,10
MOVAX,[HUANCH+66]
MOVAH,0;
ADDAX,[HUANCH+68]
MOV[HUANCH+70],AX;
8255初始
MOVCH,2;
显示第2行信息
MOVCH,3;
显示第3行信息
l1:
JMPSTART
CLEARPROC
MOVAL,0CH
MOVDX,IO_ADDRESS
设置CLEAR命令
CALLCMD_SETUP;
启动LCD执行命令
CLEARENDP
TRANSFORMPROC;
LOOPAGAI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 压力 控制系统 课程设计