计算机硬件课程设计 压力控制系统 实验报告_第1页
计算机硬件课程设计 压力控制系统 实验报告_第2页
计算机硬件课程设计 压力控制系统 实验报告_第3页
计算机硬件课程设计 压力控制系统 实验报告_第4页
计算机硬件课程设计 压力控制系统 实验报告_第5页
已阅读5页,还剩16页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、硬件课程设计实验报告班级: 姓名:学号: 指导教师: 时间:2016年1月摘要 我们经常要控制压力在某一范围内变化,是压力不超过某以上限值也不低于某一下限值。而压力控制系统在实际中也有较广泛的应用。实例1:某大型化肥厂辅助锅炉生产10Mpa 的高压蒸汽。在正常情况下,高压蒸汽全部通过高压蒸汽透平,然后抽气得4Mpa 的中压蒸汽。中压蒸汽又分别通过空压机、原料压 缩机、冰机等蒸汽透平,充分利用了整齐的能量。为了确保蒸汽透平整长运转,要求高压蒸汽压力不致过高(<10.2Mpa),要求低压蒸汽不致锅底(>3.8)但并不要求压力维持在某一 值不变。 实例2:如果要控制水塔内的水在一定的范围

2、内,当管线水压低于设定的下限时,控制 补水泵开启,自动补水。当管线水位上升至上限时,控制补水泵停止工作 由此,我们想到,如何控制其压力大小,使其在一定的范围内按照我们的期望变化。对于在由风门控制的风道系统中,由人工来监测和控制风门附近的压力是一项很繁琐的工作,因为监测要求监测者进到再次行连续的不间断的循环工作。监测之后要进行判断,并在数据不符合要求的情况下进行循环控制,直监测时所得的数据符合要求为止。而且,在某 些情况下人工控制是很难实现的,例如,当监测对象的压力很大的时候,或者是监测对象很难接近的时候。 为此,我们目前很需要开发一种简单的压力控制系统来替代人的工作。这样既可以节省人力资源,又

3、可以使这项繁琐而又难实现的工作变得简单又轻松。真正实现我们所谓的监测和控制。目 录1 设计任务与要求-41.1选题报告-4 1.2提出问题-42 需求分析-42.1设计思想-43 硬件方案-43.1设备器材-43.2硬件的选择以及芯片说明-73.3实验连线图-84 软件方案-84.1功能模块-84.2系统各模块程序流程图-95 源程序清单和注释-106 运行结果-187 问题分析与解决方案-197.1实验设计前的问题与解决方案-207.2实验过程中的问题与解决方案-208 结论与体会-21参考文献-211设计任务与要求分析1.1、 选题报告选择题目:压力控制系统1.2、 提出问题使用可变电压源

4、模拟压力输入,ADC0809进行A/D转换, 8255将信息显示在液晶屏上,并控制步进电机转动。2需求分析2.1设计思想使用05V电源输入,用0809 in0口采集数据,in1口输出数据,并将所采集数据量程转换为0.0010.00Mpa,设置最低(2Mpa)最高(8Mpa)限定压力,8255接收数字信号,8255 a口将信息在液晶屏上显示,b口(pb0pb3)控制步进电机正反转。c口对液晶屏进行控制。3硬件方案3.1、设备器材 微机接口实验箱,8086,ADC0809,8255,液晶屏,步进电机3.2、硬件选择及芯片说明8086CPU外部具有16根数据总线,可并行传送16位数据信息;它具有20

5、根地址总线,能直接寻址1MB的内存空间;用低16位地址线访问I/O端口,可以访问64k个I/O端口。8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个寄存器。从程序员和使用者的角度看到的结构,亦可称为功能结构。从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(Bus Interf

6、ace Unit)和执行部件EU(Execution Unit)。8086CPU的内部功能结构如图3-2所示:ADC0809 是8 位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成(见图1)。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁存器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。8255A是一种通用的可编程并行I/O接口芯片,具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大

7、规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。它是为Intel系列微处理器设计的配套电路,也可用于其它微处理器系统中。通过对它进行编程,芯片可以工作于不同的工作方式。在微型计算机系统中,用8255A作为接口时,通常不需要附加外部逻辑电路就可直接为CPU与外设之间提供数据通道。液晶显示屏是一种内置128×64-12汉字图形点阵的液晶显示控制模块,用于显示汉字及图形12864A-1汉字图形点阵液晶显示模块集成ST7920驱动器,可显示汉字及图形,内置8192个中文汉字(16×16点阵)、128个字符(8×16点阵)及64×25

8、6点阵显示RAM(GDRAM)。步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。3.3硬件接线芯片主要连接0809的片选信号CS接Y3(298h29fh),in0 接05V电压源,clock接8255的PA0,8255d

9、的片选信号CS接Y1(288h28fh),PA0PA7接液晶屏的D0D7,PC0PC2接液晶屏的三个控制端口(E,RW,I/O),PB0PB3接步进电机的DADB。硬件连接图4软件方案4.1、功能模块实验设备分为五个模块:输入模块,数模转换模块,压力显示模块,压力异常模块。(1)、压力传感模块:通过实验箱上的压力传感器(05V可变电压源模拟),给与压力传感器一定的压力,产生输入信号。输入信号将随着压力的不断变化而变化。(2)、数模转换模块:通过数模转换装置0809AD将输入的模拟信号转换为数字信号,使之能通过液晶屏显示出来。(3)、显示模块:通过显示屏显示压力传感器读取到的压力值,并与设定的上

10、下限进行比较,做出当前压力过高、正常、过低的判断。(4)、压力异常模块:压力值应当在一定的范围内变化,当压力高于或低于这一范围时,步进电机将做出反应,开始正/反转4.2、模块程序流程图压力控制系统A/D转换模块压力异常模块数值显示模块过低模块正常模块过高模块压力传感模块运行流程图5源程序IO_ADDRESS EQU 288hDATA SEGMENTHZ_TAB DW 0A1A0H, 0D1B9H,0C1A6H,0BFD8H,0D6C6H,0CFB5H,0CDB3H,0A1A0H;0-14 标题 DW 0C1A6H,0A3AEH,0A3AEH,0A3AEH,0A3AEH,0A1A0H,0D5D7

11、H,0C5C1H;16-30 力XX.XX帕DW 0A3B0H,0A3B0H,0A3B0H,0A3D0H,0A1A0H,0A1A0H,0A1A0H,0A1A0H;32-46 显示状态DW 0A1A0H,0CAB5H,0D1E9H,0C8CbH,0A1C3H,0CDF5H,0B9FAH,0BDF0H;48-62 实验人:王国金HOUR DB MINUTE DB SECOND DB TIME DB 0TEMP DB HZ_ADR DB ? ;存放显示行起始端口地址DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV D

12、S,AX MOV DX,IO_ADDRESS+3 MOV AL,80H OUT DX,AL ;8255初始化CALL TRANSFORM ;调用0809 CALL CLEAR ;LCD 清除LEA BX, HZ_TAB MOV CH,1 ;显示第1行信息 CALL LCD_DISP LEA BX, HZ_TAB MOV CH,2 ;显示第2行信息 CALL LCD_DISP LEA BX, HZ_TAB MOV CH,3 ;显示第3行信息 CALL LCD_DISPLEA BX, HZ_TAB MOV CH,4 ;显示第4行信息 CALL LCD_DISPl1: JMP START ;l1CL

13、EAR PROC MOV AL,0CH MOV DX, IO_ADDRESS OUT DX,AL ;设置CLEAR命令 CALL CMD_SETUP ;启动LCD执行命令 RETCLEAR ENDPTRANSFORM PROC ;启动0809 MOV DX,298H OUT DX,AL MOV CX,0FFHAGAIN: LOOP AGAIN IN AL,DX ;读取0809的值 MOV BL,AL ;量程转换,0.00-10.00 MOV AH,0 MOV BX,4 MUL BX MOV CX,1000 ;将转换量程后的值进行拆分,使之能在LED屏上显示 DIV CX MOV CX,AX A

14、DD CX,0A3B0H MOV HZ_TAB+18,CX ;储存十位数值,显示 MOV AX,DX MOV DX,0 MOV CX,100 DIV CX MOV CX,AX ADD AX,0A3B0H MOV HZ_TAB+20,AX ;储存个位数值,显示 MOV AX,DX MOV DX,0 MOV CX,10 DIV CX ADD AX,0A3B0H MOV HZ_TAB+24,AX ;储存第一位小数数值,显示 MOV AX,DX MOV DX,0 MOV CX,1 DIV CX ADD AX,0A3B0H MOV HZ_TAB+26,AX ;储存第二位小数数值,显示 CMP HZ_TA

15、B+20,0A3B2H JNG LOW ;比较下限,小于等于2 low CMP HZ_TAB+20,0A3B8H JNL HIGH;比较上限,大于等于8 high JMP NORMAL ;正常 LOW: MOV HZ_TAB+32,0A1A0H MOV HZ_TAB+34,0A1A0HMOV HZ_TAB+36,0D1B9H ;压力过低MOV HZ_TAB+38,0C1A6HMOV HZ_TAB+40,0B9FDHMOV HZ_TAB+42,0B5CDH MOV HZ_TAB+44,0A1A0H MOV HZ_TAB+46,0A1A0H MOV DX,289H ;PB口输出脉冲信号 CALL

16、DELAY00 MOV AL,00000011B ;步进电机反转 OUT DX,AL CALL DELAY00 MOV AL,00000110B OUT DX,AL CALL DELAY00 MOV AL,00001100B OUT DX,AL CALL DELAY00 MOV AL,00001001B OUT DX,AL JMP NEXTRHIGH: MOV HZ_TAB+32,0A1A0H MOV HZ_TAB+34,0A1A0HMOV HZ_TAB+36,0D1B9H ;压力过高 MOV HZ_TAB+38,0C1A6H MOV HZ_TAB+40,0B9FDH MOV HZ_TAB+4

17、2,0B8DFH MOV HZ_TAB+44,0A1A0H MOV HZ_TAB+46,0A1A0H MOV DX,289H CALL DELAY00 MOV AL,00001100B ;步进电机正传 OUT DX,AL CALL DELAY00 MOV AL,00000110B OUT DX,AL CALL DELAY00 MOV AL,0000011B OUT DX,AL CALL DELAY00 MOV AL,00001001B OUT DX,AL JMP NEXTRNORMAL:MOV HZ_TAB+32,0A1A0H ;压力正常MOV HZ_TAB+34,0A1A0HMOV HZ_T

18、AB+36,0D1B9HMOV HZ_TAB+38,0C1A6HMOV HZ_TAB+40,0D5FDHMOV HZ_TAB+42,0B3A3H MOV HZ_TAB+44,0A1A0HMOV HZ_TAB+46,0A1A0HNEXTR: RETTRANSFORM ENDPFUNCUP PROC MOV AL, 34H ;LCD显示状态命令 OUT DX, AL CALL CMD_SETUP RETFUNCUP ENDPLCD_DISP PROCLEA BX, HZ_TAB CMP CH, 1;判断是否为第一行 JZ DISP_SEC1 CMP CH,2 ;判断是否为第二行 JZ DISP_S

19、EC2 CMP CH,3;判断是否为第三行 JZ DISP_SEC3 MOV BYTE PTR HZ_ADR, 98H ;第四行起始端口地址 ADD BX,48 ;指向第四行信息 JMP NEXTDISP_SEC1: MOV BYTE PTR HZ_ADR,80H;第一行起始端口地址ADD BX,0 ;指向第一行信息JMP NEXTDISP_SEC2: MOV BYTE PTR HZ_ADR,90H ;第二行起始端口地址ADD BX,16;指向第二行信息JMP NEXTDISP_SEC3: MOV BYTE PTR HZ_ADR,88H;第三行起始端口信息 ADD BX,32;指向第三行信息J

20、MP NEXTNEXT: MOV CL,8CONTINUE: PUSH CX MOV AL,HZ_ADR MOV DX, IO_ADDRESS OUT DX, AL CALL CMD_SETUP ;设定DDRAM地址命令 MOV AX,BX PUSH AX MOV AL,AH ;先送汉字编码高位 MOV DX,IO_ADDRESS OUT DX,AL CALL DATA_SETUP ;输出汉字编码高字节 CALL DELAYTIME ;延迟 POP AX MOV DX,IO_ADDRESS OUT DX, AL CALL DATA_SETUP ;输出汉字编码低字节 CALL DELAYTIME

21、 INC BX INC BX ;修改显示内码缓冲区指针 INC BYTE PTR HZ_ADR ;修改LCD显示端口地址 POP CX DEC CL JNZ CONTINUE RETLCD_DISP ENDPCMD_SETUP PROC MOV DX,IO_ADDRESS ;指向8255端口控制端口 ADD DX,2 NOP MOV AL,00000000B ;PC1置0,pc0置0 (LCD I端=0,W端0) OUT DX, AL CALL DELAYTIME NOP MOV AL,00000100B ;PC2置1 (LCD E端1) OUT DX, AL NOP CALL DELAYTI

22、ME MOV AL, 00000000B ;PC2置0,(LCD E端置0) OUT DX, AL CALL DELAYTIME RETCMD_SETUP ENDPDATA_SETUP PROC MOV DX,IO_ADDRESS ;指向8255控制端口 ADD DX,2 MOV AL,00000001B ;PC1置0,PC0=1 (LCD I端=1) OUT DX, AL NOP CALL DELAYTIME MOV AL,00000101B ;PC2置1 (LCD E端1) OUT DX, AL NOP CALL DELAYTIME MOV AL, 00000001B ;PC2置0,(LC

23、D E端0) OUT DX, AL NOP CALL DELAYTIME RETDATA_SETUP ENDPDELAYTIME PROC ;延时子程序MOV CX,0FFFFHD1:LOOP D1 RETDELAYTIME ENDPDELAY00 PROC NEAR ;延时子程序DELAY10: MOV CX,00fffh;05A4HDELAY20: LOOP DELAY20 DEC BL JNZ DELAY10 RETDELAY00 ENDPCODE ENDS END START6运行结果按实验要求:液晶屏显示压力为0.0010.00Mpa,当压力大于8MPa时,液晶屏第三行显示压力过高,步进电机启动开始正转;当压力小于2Mpa时,液晶屏显示压力过低,步进电机启动反转;压力正常时,液晶屏显示压力正常,步进电机不启动。7问题分析与解决方案7.1实验设计前的问题与解决方案7.1.1、各芯片之间接线问题及显示字形码的查找7.1.2、各芯片接口地址问题根据片选地址确定8255及0809芯片各接口地址7.2实验过程中的问题与解决方案-7.2.1、液晶显示屏的显示四行字形地址不连续实验中的显示模块代码自液晶屏的自定义实验的基础上修改得来,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论