硬件课程设计修改2.docx

上传人:b****8 文档编号:9826923 上传时间:2023-05-21 格式:DOCX 页数:31 大小:848.09KB
下载 相关 举报
硬件课程设计修改2.docx_第1页
第1页 / 共31页
硬件课程设计修改2.docx_第2页
第2页 / 共31页
硬件课程设计修改2.docx_第3页
第3页 / 共31页
硬件课程设计修改2.docx_第4页
第4页 / 共31页
硬件课程设计修改2.docx_第5页
第5页 / 共31页
硬件课程设计修改2.docx_第6页
第6页 / 共31页
硬件课程设计修改2.docx_第7页
第7页 / 共31页
硬件课程设计修改2.docx_第8页
第8页 / 共31页
硬件课程设计修改2.docx_第9页
第9页 / 共31页
硬件课程设计修改2.docx_第10页
第10页 / 共31页
硬件课程设计修改2.docx_第11页
第11页 / 共31页
硬件课程设计修改2.docx_第12页
第12页 / 共31页
硬件课程设计修改2.docx_第13页
第13页 / 共31页
硬件课程设计修改2.docx_第14页
第14页 / 共31页
硬件课程设计修改2.docx_第15页
第15页 / 共31页
硬件课程设计修改2.docx_第16页
第16页 / 共31页
硬件课程设计修改2.docx_第17页
第17页 / 共31页
硬件课程设计修改2.docx_第18页
第18页 / 共31页
硬件课程设计修改2.docx_第19页
第19页 / 共31页
硬件课程设计修改2.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

硬件课程设计修改2.docx

《硬件课程设计修改2.docx》由会员分享,可在线阅读,更多相关《硬件课程设计修改2.docx(31页珍藏版)》请在冰点文库上搜索。

硬件课程设计修改2.docx

硬件课程设计修改2

中国矿业大学计算机学院

2012级本科生课程报告

 

课程名称硬件课程设计

课程题目压力控制系统

报告时间2014年12月

学生姓名白文芳

学号08123241

专业计算机科学与技术

任课教师王凯

 

目录

1.概述1

1.1设计任务1

1.2设计要求1

2.需求分析1

3.各个芯片工作原理及功能2

3.18255A2

3.2ADC0809原理及接线图4

3.3LED图形显示屏工作原理6

3.4步进电机工作原理10

4.电路原理图与说明11

5.软件主要模块与说明14

5.1主程序流程图14

5.2软件功能模块图15

5.3系统详细设计15

5.3.1模块设计15

5.3.2流程图16

6.源程代码与注释17

7.结论与体会27

8.参考文献28

1.概述

1.1设计任务

我们经常要控制压力在某一范围内变化,是压力不超过某以上限值也不低于某一下限值。

而压力控制系统在实际中也有较广泛的应用。

为此,我们目前很需要开发一种简单的压力控制系统来替代人的工作。

这样既可以节省人力资源,又可以使这项繁琐而又难实现的工作变得简单又轻松。

真正实现我们所谓的监测和控制。

1.2设计要求

(1)利用压力传感器输入一个压力值,当该压力值超过一定的限度值时,系统会发出警报,红灯闪烁,然后使用压力控制系统进行减压,直至变为合理范围之内。

(2)当该压力值低于下限值时,黄灯闪烁,再通过电机系统进行加压。

(3)当压力值在限定范围之内时,LED显示屏显示内容为P=XXX,即此时压力值。

2.需求分析

压力测试系统的设计,必然要牵涉到压力的感应与转化,所以必须要有压力传感器与A/D转换器。

将自然中的模拟量转化为电压信号,再转化位数字信号进行处理。

一个小型的微机系统,必须要有8086CPU来进行整体的控制,将其通过8255与A/D传感器进行连接。

这就是这个系统的主要框架。

而具体的应用框架则是在主要的框架上添加。

要当压力低于下限值时,黄灯闪烁。

当压力高于上限值时,红灯闪烁。

则应添加8255模块。

通过编程来控制黄灯与红灯的亮灭情况,考虑到要进行比较,所以我用了两个比较器进行数据的比较。

而利用LED图形显示器进行显示输出,显示内容为四行,包括时间,当前压力及状态。

3.各个芯片工作原理及功能

3.18255A

(1)8255原理及接线图

8255A是Intel系列的并行接口芯片,常作为微机系统与外部设备接口。

由于它是可编程的,可以通过软件来设置芯片的工作方式,因此,用它连接外部设备时,一般不需要在附加外部电路,给使用带来很大方便。

如下图所示

(2)芯片8255A在本设计中的功能作用

8255是并行的I/0接口芯片,内部有三个相互独立的8位数据端口。

8255实现了外设与8086之间的数据传输。

8255的A口工作于方式0,作为输出口,其PA0~PA7分别与LCD液晶显示屏端口相连,PC5~PC7接相应端口,工作在并行模式。

(3)芯片8255的功能分析

①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位的输入输出口,各个端口都可独立地用作输入或输出。

②数据总线缓冲器是一个8位双向三态缓冲器,三态是由读/写控制逻辑控制的,它可与系统的DB直接相连,实现CPU和8255A之间的信息传送;读写控制器用于管理数据、控制字或状态字的传送,接收来自CPU的地址信息及一些控制信号,然后向A组、B组控制电路发送命令,控制端口数据的传送方向。

③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时,控制寄存器被选择.

(4)8255A具有3种基本的工作方式

①工作方式0:

这是8255A中各端口的基本输入/输出方式。

它只完成简单的并行输入/输出操作,CPU可从指定端口输入信息,也可向指定端口输出信息,如果三个端口均处于工作方式0,则可由工作方式控制字定义16种工作方式的组合

②工作方式1:

被称作选通输入/输出方式。

在这种工作方式下,数据输入/输出操作要在选通信号控制下完成。

③工作方式2:

被称作带选通的双向传送方式。

8255A中只允许端口A处于工作方式2,可用来在两台处理机之间实现双向并行通信。

其有关的控制信号由端口C提供,并可向CPU发出中断请求信号。

3.2ADC0809原理及接线图

ADC0809是采用分辨率为8位的、以逐次逼近原理进行模数转换的器件。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

(1)ADC0809的主要特性

①8路输入通道,8位A/D转换器,即分辨率为8位。

②具有转换起停控制端。

③转换时间为100μs

④单个+5V电源供电。

⑤模拟输入电压范围0~+5V,不需要零点和满刻度校准。

⑥工作温度范围为-40~+85摄氏度。

⑦低功耗,约15mW.

(2)内部结构

ADC0809的内部逻辑结构

由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三台输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三台输出锁存器取走转换完的数据。

ADC0809的内部逻辑结构

(3)外部特性(引脚功能)

ADC0809引脚图

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.3LED图形显示屏工作原理

(1)液晶屏简介和主要特性

液晶显示屏是一种内置128×64-12汉字图形点阵的液晶显示控制模块,用于显示汉字及图形。12864A-1汉字图形点阵液晶显示模块集成ST7920驱动器,可显示汉字及图形,内置8192个中文汉字(16×16点阵)、128个字符(8×16点阵)及64×256点阵显示RAM(GDRAM)。

主要技术参数和显示特性:

电源:

VDD3.3V~+5V(内置升压电路,无需负压);

显示内容:

128列×64行;

显示颜色:

黄绿;

显示角度:

6:

00钟直视;

LCD类型:

STN;

与MCU接口:

8位或4位并行/3位串行;

2MHZ时钟频率;

配置LED背光;

多种软件功能:

光标显示、画面移位、自定义字符、睡眠模式等

(2)试验原理图

(3)液晶显示屏引脚说明

逻辑工作电压(VDD):

4.5~5.5V

电源地(GND):

0V

工作温度(Ta):

0~60℃(常温)/-20~75℃(宽温)

(4)汉字编码查询表

(5)液晶显示流程图:

(6)具体指令介绍

3.4步进电机工作原理

(1)基本原理介绍

按原理图连接线路,利用8255输出脉冲序列,开关K0~K6控制步进电机转速,K7控制步进电机转向。

8255CS接288H~28FH。

PC0~PC3接BA~BD;PA口接逻辑电平开关。

步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转。

驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。

本实验使用的步进电机用直流+5V电压,每相电流为0.16A,电机线圈由四相组成:

即:

_1(BA);_2(BB);_3(BC);_4(BD)

实验可通过不同长度的延时来得到不同频率的步进电机输入脉冲,从而得到多种步进速度。

(2)试验原理图

(3)试验流程图

4.电路原理图与说明

(1)电路连接图与说明:

①0809的通道0的地址为298H,通道0与0~+5V相连接,片选地址为280H~287H

②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。

(2)系统运行过程的详细分析

①压力控制系统由以下几个部分组成,包括输入部分,转换部分,显示部分,报警部分和相应加压减压措施。

输入部分:

首先由压力传感器输入一个压力值(利用滑动变阻器模拟)

转换部分:

通过ADC0809芯片,将模拟信号转换为数字信号,再通过8255芯片送入8086CPU

显示部分:

通过8255连接LED灯和液晶电子显示屏,用液晶电子显示屏显示该压力值

报警部分:

当高于上限值时,LED红灯闪烁报警;当低于下限值时,LED黄灯闪烁报警

相应措施:

当高于上限值时,利用电机减压控制,直至黄灯熄灭,当低于下限值时,利用电机加压控制,直至红灯熄灭。

②系统软件实现

(3)硬件接线实物图

(4)运行成果

压力为3MPa时为正常,显示压力正常

压力大于等于4MPa时为过高,显示压力过高请降压,同时红灯报警,步进电机转

压力小于3MPa时为过低,显示压力过低请升压,同时黄灯报警,步进电机转

5.软件主要模块与说明

5.1主程序流程图

5.2软件功能模块图

5.3系统详细设计

5.3.1模块设计

(1)压力检测模块

压力检测模块需要用到8255I/O芯片、0809模数转换器。

由0809对压力值进行采集并且转换成数字化的压力值,获得的数字化的压力值后通过编码使得数字化的压力值标准化,经8086CPU传送给8255I/O芯片。

获得的压力值在编码部分完成比较,即压力检测。

(2)压力转换模块

压力转换模块由0809模数转换芯片单独完成,0809芯片将输入的电压信号转换成数字化的压力值。

(3)LCD显示模块

LCD液晶显示器由8255I/O芯片控制,其8路数据线和8255的PA0-PA7相连,8255的PC0,PC1,PC2分别与LCD液晶显示器的D/I,W/R,E相连。

通过编码完成压力值的判断,LCD将显示出对应的压力值的动作。

如压力值正常时,LCD液晶屏将显示:

系统时间、当前压力X兆帕、水塔内压力正常等的字样。

(4)压力控制模块

压力控制模块同样是由8255来进行控制的。

8255获得数字化压力值后,编码完成对采集到的压力值的判断。

压力控制系统将对压力值采取相应的措施。

如压力小于2兆帕时,系统中直流电机转动来增加压力,LCD液晶显示器将显示:

压力过低,请增压。

此外,红灯亮表示警示。

5.3.2流程图

(1)压力检测流程图

(2)压力转换流程图

(3)LCD显示流程图

(4)压力控制流程图

6.源程代码与注释

IO_ADDRESSequ288h

DATASEGMENT

NUMDW0A3B0H,0A3B1H,0A3B2H,0A3B3H,0A3B4H,0A3B5H,0A3B6H,0A3B7H,0A3B8H,0A3B9H

HZ_TABDW0B5B1H,0C7B0H,0A1C3H,0C1A6H,0A1C3H,0A1C3H,0A1A0H,0A1A0H;0-14

DW0B5B1H,0C7B0H,0D1B9H,0C1A6H,0A1A0H,0A3CDH,0A3D0H,0A3E1H;16-30

DW0A3B0H,0A3B0H,0A3B0H,0A3D0H,0A1A0H,0A1A0H,0A1A0H,0A1A0H;32-46

HZ_ADRDB?

;存放显示行起始端口地址

DATAENDS

CODESEGMENT

ASSUMEcs:

code,ds:

data

START:

MOVAX,DATA

MOVDS,AX

MOVDX,IO_ADDRESS

ADDDX,3

MOVAL,80H

OUTDX,AL;8255初始化

MOVAL,0FFh

MOVDX,300H

OUTDX,AL

CALLKEEP

CALLDELAYTIME

CALLDELAYTIME

callTIMEDISPLAY

CALLCLEAR;LCD清除

;CALLFUNCUP;LCD功能设置

LEABX,HZ_TAB

MOVCH,1;显示第1行信息

CALLLCD_DISP

LEABX,HZ_TAB

MOVCH,2;显示第2行信息

CALLLCD_DISP

LEABX,HZ_TAB

MOVCH,3;显示第3行信息

CALLLCD_DISP

 

l1:

JMPSTART;l1

 

CLEARPROC

MOVAL,0CH

MOVDX,IO_ADDRESS

OUTDX,AL;设置CLEAR命令

CALLCMD_SETUP;启动LCD执行命令

RET

CLEARENDP

KEEPPROC

MOVDX,298H

OUTDX,AL

MOVCX,0FFH

AGAIN:

LOOPAGAIN

INAL,DX

MOVBL,AL

MOVAH,0

MOVCL,51

DIVCL

MOVAH,0

ADDAX,0A3B0H

MOV[HZ_TAB+24],AX

CMP[HZ_TAB+24],0A3B4H

JNLYELLOW;大于等于4

CMP[HZ_TAB+24],0A3B2H

JNGRED;小于等于2

MOVDX,289H

MOVAL,00000100B

OUTDX,AL

MOV[HZ_TAB+32],0CBAEH;正常

MOV[HZ_TAB+34],0CBFEH

MOV[HZ_TAB+36],0C4DAH

MOV[HZ_TAB+38],0D1B9H

MOV[HZ_TAB+40],0C1A6H

MOV[HZ_TAB+42],0D5FDH

MOV[HZ_TAB+44],0B3A3H

MOV[HZ_TAB+46],0A1A0H

RET

KEEPENDP

FUNCUPPROC

;MOVAL,0fH;LCD功能设置命令

;OUTDX,AL

;CALLCMD_SETUP

MOVAL,34H;LCD显示状态命令

OUTDX,AL

CALLCMD_SETUP

RET

FUNCUPENDP

 

REDPROCnear;红灯,报警,电机

MOVDX,289H

MOVAL,11000001B

OUTDX,AL

MOV[HZ_TAB+32],0D1B9H;过低

MOV[HZ_TAB+34],0C1A6H

MOV[HZ_TAB+36],0B9FDH

MOV[HZ_TAB+38],0B5CDH

MOV[HZ_TAB+40],0A1A0H

MOV[HZ_TAB+42],0C7EBH

MOV[HZ_TAB+44],0C9FDH

MOV[HZ_TAB+46],0D1B9H

RET

REDENDP

 

YELLOWPROCNEAR;黄灯,报警,电机

MOVDX,289H

MOVAL,11000010B

OUTDX,AL

MOV[HZ_TAB+32],0D1B9H;过高

MOV[HZ_TAB+34],0C1A6H

MOV[HZ_TAB+36],0B9FDH

MOV[HZ_TAB+38],0B8DFH

MOV[HZ_TAB+40],0A1A0H

MOV[HZ_TAB+42],0C7EBH

MOV[HZ_TAB+44],0BDB5H

MOV[HZ_TAB+46],0D1B9H

RET

YELLOWENDP

LCD_DISPPROC

LEABX,HZ_TAB

CMPCH,1

JZDISP_SEC1

CMPCH,2

JZDISP_SEC2

CMPCH,3

JZDISP_SEC3

MOVBYTEPTRHZ_ADR,98H;第三行起始端口地址

ADDBX,48;指向第二行信息

JMPnext

DISP_SEC1:

MOVBYTEPTRHZ_ADR,80H

JMPNEXT

DISP_SEC2:

MOVBYTEPTRHZ_ADR,90H

ADDBX,16

JMPNEXT

DISP_SEC3:

MOVBYTEPTRHZ_ADR,88H

ADDBX,32

JMPNEXT

NEXT:

MOVCL,8

CONTINUE:

PUSHCX

MOVAL,HZ_ADR

MOVDX,IO_ADDRESS

OUTDX,AL

CALLCMD_SETUP;设定DDRAM地址命令

MOVAX,[BX]

PUSHAX

MOVAL,AH;先送汉字编码高位

MOVDX,IO_ADDRESS

OUTDX,AL

CALLDATA_SETUP;输出汉字编码高字节

CALLDELAY;延迟

POPAX

MOVDX,IO_ADDRESS

OUTDX,AL

CALLDATA_SETUP;输出汉字编码低字节

CALLDELAY

INCBX

INCBX;修改显示内码缓冲区指针

INCBYTEPTRHZ_ADR;修改LCD显示端口地址

POPCX

DECCL

JNZCONTINUE

RET

LCD_DISPENDP

CMD_SETUPPROC

MOVDX,IO_ADDRESS;指向8255端口控制端口

ADDDX,2

NOP

MOVAL,00000000B;PC1置0,pc0置0(LCDI端=0,W端=0)

OUTDX,AL

calldelay

NOP

MOVAL,00000100B;PC2置1(LCDE端=1)

OUTDX,AL

NOP

calldelay

MOVAL,00000000B;PC2置0,(LCDE端置0)

OUTDX,AL

calldelay

RET

CMD_SETUPENDP

DATA_SETUPPROC

MOVDX,IO_ADDRESS;指向8255控制端口

ADDDX,2

MOVAL,00000001B;PC1置0,PC0=1(LCDI端=1)

OUTDX,AL

NOP

calldelay

MOVAL,00000101B;PC2置1(LCDE端=1)

OUTDX,AL

NOP

calldelay

MOVAL,00000001B;PC2置0,(LCDE端=0)

OUTDX,AL

NOP

calldelay

RET

DATA_SETUPENDP

DELAYPROC

pushcx

pushdx

MOVCX,0fffh

x1:

loopx1

popdx

popcx

RET

DELAYENDP

DELAYTIMEPROC

MOVCX,0FFFFH

D1:

LOOPD1

RET

DELAYTIMEENDP

TIMEDISPLAYPROCNEAR

MOVAH,2CH

INT21H

MOVBX,10

MOVAL,CH;CH存时

XORAH,AH

DIVBL

MOVDL,AH

MOVAH,00

ADDAX,0A3B0H

MOV[HZ_TAB+0],AX

MOVAL,DL

MOVAH,00

ADDAX,0A3B0H

MOV[HZ_TAB+2],AX

MOVAL,CL;CL存分

XORAH,AH

DIVBL

MOVDL,AH

MOVAH,00

ADDAX,0A3B0H

MOV[HZ_TAB+6],AX

MOVAL,DL

MOVAH,00

ADDAX,0A3B0H

MOV[HZ_TAB+8],AX

MOVAL,DH

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2