(完整版)微机毕业课程设计之数据采集系统

上传人:E**** 文档编号:73787843 上传时间:2022-04-12 格式:DOC 页数:26 大小:575.50KB
返回 下载 相关 举报
(完整版)微机毕业课程设计之数据采集系统_第1页
第1页 / 共26页
(完整版)微机毕业课程设计之数据采集系统_第2页
第2页 / 共26页
(完整版)微机毕业课程设计之数据采集系统_第3页
第3页 / 共26页
点击查看更多>>
资源描述
微机原理及接口技术课程设计书学院:信息与通信工程学院专业:测控技术与仪器班级: xxx学号: xxx姓名: xxx指导教师: xxx目录1、摘要22、总体方案设计.22.1 设计目的22.2 设计任务与要求22.3 设计方案33、硬件原理图设计设计.33.1 总设计图说明33.2 各子硬件图说明4原理图所用芯片介绍4各子硬件电路说明94、程序设计 .134.1 程序流程图144.2程序设计说明145、课程设计收获与心得体会.176、参考文献 .187、附录19一、摘要本次课程设计,主要是了解可编程外围芯片 8255 的工作原理,以及学会对 ADC0809和 8255 芯片的应用和设计技术。对微型计算机基本的系统结构、对微型计算机硬软件的工作原理有个整体的认识。学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。二、总体设计方案2.1 设计目的1) 进一步建立微机系统的概念,加深对系统的理解和认识,培养学生应用微型计算机解决实际问题的能力;2) 进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。3) 进一步熟悉微机最小系统的构成及常用接口芯片的使用,提高系统设计的能力。2.2 设计任务和要求设计内容:以8088cpu 为核心设计一个采集系统,系统可以实现一路模拟电压信号进行采集,已知该电压信号的电压范围是 0255mv,选用 adc0809 作为 AD转换器,系统中有三位显示器显示所采集到电压的毫伏数。设计要求: 1) 画出电路原理图,说明工作原理2) 编写一个实现对输入模拟电压进行转换并在 LED 显示器显示当前采集数据的数字量程序2.3 设计方案数据采集系统的设计,要求使用微型计算机的最小系统,且具有 1 路的输入,输入信号在 0255mV,而且采用数码管显示输入(显示 10 进制的结果)。因此我们采用以下的设计方案: ADC0809是将各种被测的量转换成为模拟量 (电压)作为输入,经过一级放大器的放大,将电压放大至 AD转换模块,可以识别的范围,在将 AD转换的输出,用数码管显示出来(显示的结果为10 进制数),且将 AD转换的输出接入到并行接口8255,再将并口的输出接入的系统的总线,也就是对并口8255 的相应的输入进行存储。 当完成存储之后将会 CPU将存储的数据再通过8255 显示在数码管上,这个流程一直循环。三、硬件原理图设计设计3.1 总硬件设计图说明本设计以 8088 为核心,以存储器、总线、接口电路、外设为要素构成了一个最小系统。其中存储器用到了2764 和 6264 芯片,2764 是 EPRAM,用来存储数据。 6264 是 ROM芯片,用来存储程序。接口电路采用8255 芯片,这时一个可编程并行接口,采集电压信号采用了ADC0809,这是一个逐位逼近型8 位单片 AD转换芯片, 8088 的三大总线利用8282 锁存器锁存信号, 外设是三个数码管电路,显示电压信号,另外8088 与 0809 的时钟信号由 8282 来提供。总硬件设计图见附录。3.2 各子硬件图说明首先介绍原理图所用到的芯片:( 1)、 80888088 是一个 Intel以 8086 为基础的微处理器,拥有16位元暂存器和8 位元外部资料总线。引脚功能略( 2)、 82558255 是一个可编程并行接口芯片,管脚如图1、8255 的主要引脚功能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。A0,A1: 地址选择线 , 用来选择 8255 的 PA口 ,PB 口,PC 口和控制寄存器 .( 3)、 ADC0809ADC0809是美国国家半导体公司生产的CMOS工艺 8 通道, 8 位逐次逼近式 AD转换器。1、主要引脚功能:ALE:地址锁存允许信号,输入,高电平有效。START: AD 转换启动脉冲输入端, 输入一个正脉冲 (至少 100ns 宽)使其启动(脉冲上升沿使 0809 复位,下降沿启动 AD转换)。EOC: AD 转换结束信号,输出,当 AD转换结束时,此端输出一个高电平(转换期间一直为低电平) 。OE:数据输出允许信号, 输入,高电平有效。当 AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。2、ADC0809的工作过程首先输入 3 位地址,并使 ALE=1,将地址存入地址锁存器中。此地址经译码选通8 路模拟输入之一到比较器。 START上升沿将逐次逼近寄存器复位。 下降沿启动 AD 转换,之后 EOC输出信号变低,指示转换正在进行。直到AD转换完成, EOC变为高电平,指示 AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当 OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。 转换数据的传送AD 转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认 AD转换的完成,因为只有确认完成后,才能进行传送。(4) 、 8282图 3_4 是地址锁存器 8282 芯片的管脚功能和真值表。8282 有 8 位信号输入管脚DI7DI0 和 8 位三态信号输出管脚DO7DO0; OE#为输出允许信号,低电平有效;STB是锁存信号。下降沿有效。( 5)、 82848284 中,除具有时钟信号产生电路外,还有 RESET复位信号和提供时钟信号 CLK,以及被 CLK同步的复位信号 RESET和准备就绪信号 READY。如图 -3 所示( 6)、 6264Intel6264 的容量为 8KB,是 28 引脚双列直插式芯片,采用 CMOS工艺制造1、主要引脚功能:OE(output enable):读出允许信号,输入,低电平有效。WE(write enable):写允许信号,输入,低电平有效。CS(chip enable ):片选信号 1,输入,在读写方式时为低电平。CS2(chip enable):片选信号2,输入,在读写方式时为高电平。2、6264的工作过程Intel 6264的操作方式由 , CE1 , CE2的共同作用决定 写入:当和为低电平,且和CE2为高电平时,数据输入缓冲器打开,数据由数据线D7D0写入被选中的存储单元。 读出:当和为低电平,且和CE2为高电平时,数据输出缓冲器选通,被选中单元的数据送到数据线D7D0 上。 保持:当为高电平, CE2为任意时,芯片未被选中,处于保持状态,数据线呈现高阻状态。( 7)、 27642764 是 8K*8 字节的紫外线镲除、电可编程只读存储器。1、2764 主要引脚的含义 :OE:输出允许信号。低电平有效。当该信号为0 时,芯片中的数据可由D0D7端输出。 CE:选片信号。低电平有效。当该信号为 0 时表示选中此芯片。 PGM:编程脉冲输入端。对 EPROM编程时,在该端加上编程脉冲。读操作时该信号为1。(8) 、8286(引脚图如下)8286 具有两组对称的数据引线 A7A0 和 B7B0, 为双向的输入输出线,三态。OE#是输出允许信号, 输入,低电平有效。 当 OE# 为高电平时, A7A0 和 B7B0 输出高阻。 T 端则控制数据传送方向,T=1, 表示数据从 A 流向 B,T=0,表示数据从 B 流向 A。 因此,只需将 8086 的数据线连接 8286 的 A 组端口, 8086 的数据使能连接 8286 的 OE#,8086 的数据发送接收控制DTR#连接 8286的数据传送方向控制端T,便实现了 8086 和数据驱动器的连接。、各子硬件电路说明:首先给各个芯片分配的地址RAM276470000H 71FFFHROM62643E000H 3FFFFH8255AA 口00378H1.B 口00379H2.C 口0037AH3.控制字0037BH一、存储器这是存储器电路,其中6264 存储程序, 2764 存储数据,这在程序里定义,它们的地址分别为3E000H3FFFFH,70000H71FFFH。当程序从 cpu 里写入 6264 时,WR变为低电平, 使 6264 的 WE有效,允许写入数据。当cpu 执行程序时从 6264 中读出数据,将使 RD有效,即 OE有效,这样 CPU才能读出数据。 2764 与此类似。二、接口电路与外设接口电路采用 8255,adc0809 从外面读取电压值,处理完后从D0D7送出数据, 0809 采用脉冲启动的方式,将START和 EOC取反连接在一起 , 当转换结束后下一轮转换马上开始,这样就实现了一直采集数据的功能。 我们只读一路端口的值, 所以将 ADD、ADDB、ADDC都置为 0,这样从 IN0 读取数据。为了不影响信号的输入,将其他输入口接地。根据 0809 的指标,可知道其量化间隔为 delta=Vmax(2n-1)=2.5V(256-1)=1mv ,Vmax是参考最大电压,我们从 8255 的 PA口输入,整个 0809 的工作过程就是这样。下面说明 8255 的工作过程:我们设置 8255 的 PA口为输入, PB 口为输出, PC口为输入。 D0D7接 CPU的数据总线, PB口接数码管的段选, PC口的 PC5PC7接数码管的位选。 8255 不断读入数据,将数据从 D0D7输出,将其存储在存储器中,并通过 CPU 进行数据处理,同时将处理完的数据通过 PB口送给数码管,同时 PC5PC7送位选信号,动态扫描,利用数码管的字形编码,将值显示出来。这是一个不断刷新的电路,只要 0809 有读取新数据,那么数码管就能立刻变化,显示新的数据。三、 CPU模块我们通过 8282锁存器将 8088的地址信息锁存,利用 8286将 8088 的数据信息锁存。其工作过程如下:系统需要独立的地址总线,并在整个总线周期维持地址有效。需外加地址锁存器来存储地址, 20 位地址要三片锁存器。锁存器由 ALE信号来控制, 即ALE作为锁存器的输入控制信号,控制地址的写入。除地址外,BHE#信号也要存入外接的地址锁存器。注意 ALE是高电平有效,必须和锁存器的控制信号的电平相一致(1)、地址总线形成。将8086 的 20 位地址和 BHE#信号分为 3组,和 3 片 8282 的 DI7DI0 连接, CPU的地址锁存使能ALE与8282 的 STB端相连。在 ALE的下降沿时, 对地址信号进行锁存。地址锁存器 8282 相当于 8 个 D触发器。从真值表可以看出,当 OE#为高, DO7DO0为高阻状态。当 OE#为低 STB为高时,8282 的输出等于输入,8282 的输出信号 DO7DO0与输入信号DI7DI0 相等。当 STB由 高变低,信号被锁存。 OE#为高电平时,8282 的输出为高阻态, OE#为低, DO7DO0有效。以其中的第一个 8282 为例,不难看出,只要将 8282 的 DI 7 DI0 与 8086CPU的 AD7AD0 相连,锁存号 STB与 CPU的 ALE端相连。就可实现地址锁存的功能。 而输出允许信号 OE#为什么直接接地?因为 OE#直接接地表示输出允许地址信号一直有效(无高阻态),在不带 DMA的单处理器系统中,完全可以这样处理。与此类似,第二、第三个锁存器的连接基本相同。地址 A 与数据 D的复用(片)总线信号作为锁存器的输入,由 ALE控制输入,输出为直通方式,锁存器输出为地址信号。ALE信号仅在新地址输出期间有效,使新地址输入锁存器,从而从复用总线上分离出地址信号;由于锁存器输出为直通方式,使地址信号期延长到整个总线周期。( 2)、数据总线的形成。 OE#是输出允许信号,或称三态控制信号, 低电平有效。 A 到 B 表示数据从 CPU传送到系统其他设备,是数据写的数据流向, B 到 A 是数据从系统的其他设备传送到 CPU, 是数据读的数据流向。而 CPU的数据发送接收控制DTR#=1时,正好是数据发送(写)状态,DTR#=0时,是数据接收(读)状态,所以可以将DTR#直接和 8286 的 T 相连。 8286的输出使能 OE#端则必须由 CPU的 DEN#控制。在前面我们已经提到了,在 CPU的存储器访问周期、 IO 访问周期以及中断响应周期 DEN#输出低电平, 即输出有效信号。 使能 8286 允许数据通过,完成数据的传输。 8286 不能象 8282 那样,将 OE#直接接地。当 G=0时,由 DIR 决定数据驱动的方向;当 G=1时总线高阻。由 DEN信号打开收发器,由 DTR#信号选择收发器的驱动方向(3)、系统控制信号的形成。注意在最小方式下,由 MIO#、RD#、WR#的组合来决定进行什么操作;系统的其它信号直接来自 CPU:MIO#RD#WR#操作101读存储器110写存储器001读外设010写外设四、程序设计1、程序流程图程序设计如下:DATA SEGMENTORG70000H ;数据段在 70000H中,数据存储在以此开始的单元中DATA1 DB 64DUP(?)LED DB 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; 定义一个共阳极数码管编码09ENDS DATACODE SEGMENTORG 3E000H ;定义代码段在3E000H开始的单元ASSUME CS:CODE,DA:DATAINTI_8255: PROC NEAR ;8255 初始化子程序MOV DX,37BH;将 8255 的控制字地址送到DX中OUT DX,AL ;将此控制字信息输出8255 的控制寄存器中INTI_8255 EDNP ;8255 初始化子程序结束START:;主程序开始MOV AX,DATAMOV DS,AXMOV AX,SEG DATA1;将变量 DATA1的首地址存入 AX中MOV DS,AXMOV SI,OFFSET DATA1;将变量 DATA1的偏移地址送到SI 中CALL INTI_8255;调用 8255 初始化程序MOV CX,0AGAIN:MOV DX,37AHOUT DX,CXOUT DX,AX ;给 ALE送一个上升沿NOP;等待MOV AX,0OUT DX,AX ;给 START送一个下降沿,让转换开始,以后转换开始信号就靠EOCMOV DX,37AH ;将 PC口得地址送到 DX OUT DX,AX ;将 PC2=1送到 OE口 MOV DX,378HIN AL,DX;读入转换结束MOV SI,AL;将转换的结果存入DATA1单元中MOV AX,DATA1XIANSHI:;显示部分MOV BX,OFFSET LED ;将 LED的偏移地址送到BXMOV DX,379H ;将数据从存储器内读回,送到PB口DIV 100;处理数据,将数值除完后取百位存入AL中XLAT LED OUT DX,AL MOV DX,37AH;将值换成数码管的字符码OUT DX,10H;位选,显示百位LOP:LOOP LOP;等待MOV DX,379H DIV 100;以下类似MOV AX,AH ;将值除以100 后取余数再除以10 取其值DIV 10XLAT LEDOUT DX,AL ;显示十位MOV DX,37AHOUT DX,20HLOP1:LOOP LOPMOV DX,379H ; 以下显示个位DIV 100MOV AX,AHDIV 10MOV AX,AHXLAT LEDOUT DX,AHMOV DX,37AHOUT DX,40HLOP2:LOOP LOPJMP AGAIN;下一轮数据转换采集不断循环直至复位或断电ENDS CODEEND STARTHLT;程序结束五、课程设计体会总结本次课程设计我觉得相当的有挑战。让我自己觉得有很多的东西学的很不够,不明白不了解的地方很多。在课程设计的过程,了解到了很多的东西,认识了很多的器件,如 8284、ADC0809等等一些在课堂上没有了解的很有用的器件。课程设计的最大作用是将自己学到的东西拿来使用。知道了,学了的器件使用起来也并不是那么简单的东西。要对器件分配相应的地址, 做初始化的工作, 写各种各样的之程序,去支持器件的工作。在将器件连接起来,一起使用,他们的搭配使用中管脚的连接,也是很重要的。最好是能够了解器件的内部结构,如果实在不行,那就必须搞清楚器件的管脚定义,以及使用的方法,以及初始化等等的注意事项。还有很重要的东西系统的误差,误差是影响系统的很重要的一件事情。只有明白误差的产生,才能更好的去消除误差和减小误差。才能做到更好的优化系统。本次课程设计让我学到了很多的东西,更重要的是让自己知道学的东西还有很多,还要继续的努力,才能很好的掌握所学到的东西。六、主要参考资料1) 微型计算机原理与接口技术冯博琴主编清华大学出版社2) 例说 51 单片机 张义和等主编 邮电出版社3) 8286+8288芯片介绍 百度文库4) 微型计算机原理及接口技术课程设计百度文库七、附录:总原理图
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!