微机原理课程设计报告.doc_第1页
微机原理课程设计报告.doc_第2页
微机原理课程设计报告.doc_第3页
微机原理课程设计报告.doc_第4页
微机原理课程设计报告.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

二一二二一三学年 第一学期信息科学与工程学院自动化系课程设计报告课程名称: 微机原理及应用课程设计 班 级: 自动化1003班 姓 名: 黄金龙 学 号: 201004134102 指导教师: 孟志华 二一三年元月八日应用8255A和8位A/D变换器实现多路数据的采集一、设计目的巩固“微机原理”课程学过的知识,加强理论与实践的联系。通过本课程设计,初步了解微机系统的硬件设备,学会8086系列编程指令的基本功能。二、设计任务采用8086系列CPU构建控制系统,在IBM PC系统机的扩充槽上,利用8255A和8位ADC0809模数变换器实现数据采集系统,并编写程序完成多路数据的采集工作。三、设计要求(1)系统的基本原理及画出硬件原理图,并加以说明。(2)画出程序流程图。(3)编写应用程序,并注释。(4)A/D变换器通过8255A与计算机总线相连,完成数据的读取;系统中通过8259A可编程中断控制器,向8086申请中断。四、系统总体设计框架本设计采用AD转换器ADC0809, 把外界模拟信号转换为数字信号,通过并行接口8255连接到IBMPC扩展槽。从键盘输入数码选择A/D转换的通道,从显示器上得到转换成的数字量。8255PCI扩展槽计算机系统显示器ADC0809五、相关工作原理说明1、A/D转换的原理在我们所测控的信号中均是连续变化的物理量,通常需要用计算机对这些信号进行处理,则需要将其转换成数字量,A/D转换器就是为了将连续变化的模拟量转换成计算机能接受的数字量。根据A/D转换器的工作原理,常用的A/D转换器可分为两种,双积分式A/D转换器和逐次逼近式A/D转换器。(1)双积分A/D转换器工作原理双积分A/D转换器由电子开关,积分器,比较器,计数器和控制逻辑等部分组成,所谓双积分就是进行一次A/D转换需要两次积分。双积分A/D转换器采用间接测量的方法,它将被测电压转换成时间常数T,输入电压越大反向积分时间越长,用高频标准脉冲计数测此时间,即可得到相应于输入电压的数字量。特点:可以有效的消除干扰和电源噪声,转换精度高,但是转换速度慢。(2)逐次逼近型A/D转换器逐次逼近型A/D转换器由D/A转换环节,比较环节和控制逻辑等几部分组成。图示是逐次逼近型A/D转换器的电路原理图,其转换原理为:A/D转换器将一待转换的模拟输入电压Ui与一个预先设定的电压Ui(预定的电压由逐次逼近型A/D转换器中的D/A输出获得)电压相比较,根据预设的电压Ui是大于还是小于待转换成的模拟输入电压Uin来决定当前转换的数字量是“0” 还是“1”,据此逐位比较,以便使转换结果(相应的数字量)逐渐与模拟输入电压相对应的数字量接近。“预设的电压”值的算发如下:使逐次逼近型A/D转换器中的D/A的各位二进制数从最高位起依次置1,每变化一位就得到一个预设的电压Ui并使之与待转换的模拟输入电压Ui进行比较,若模拟输入电压Ui小于预设的电压Ui,则使比较器中相应的位为0,若模拟输入电压Ui大于预设的电压Ui,则使比较器中相应的输出位为1,无论哪钟情况,均应继续比较下一位,直到最低位为止,此时逐次逼近型A/D转换器中的D/A的数字输入即为对应模拟输入信号的数字量,将此数字量输出就完成了A/D的转换过程。特点:逐次逼近式的属于直接式A/D转换器,转换精度高,速度高,价格适中,是目前种类最多,应用最广的A/D转换器,典型的8位模数转换器有ADC0809。2.ADC0809芯片ADC0809是逐位逼近型8位单片A/D转换器件。片内含8路模拟开关,可允许8个模拟量输入,最大不可调误差小于1LSB,典型时钟频率为640kHz,每通道的转换时间约为100s。ADC0809没有内部时钟,必须由外部提供,其范围为101280kHz。片内带有三态输出缓冲器,因此可直接与系统总线相连。它的转换精度和转换时间都不是很高,但其性价比有较明显优势。(1) 外部引脚ADC0809共有28根引脚。如图所示:D0D7:8位转换结果输出端。三态输出,D7是最高位,D0是最低位。IN0IN7:8个通道的模拟量输入端。可输入05V待转换的模拟电压。A、B、C:通道选择端。当CBA=000时,IN0输入;当CBA=111时,IN7输入。ALE:地址锁存信号输入端。该信号在上升沿处把A、B、C的状态锁存到内部的多路开关地址锁存器中,从而选通8路模拟信号中的某一路。 ALE:通道地址说村信号。将三位地址线ADDA、ADDB、ADDC进行锁存,上升延有效。START:启动信号输入,下降延有效。EOC:转换结束状态信号,用来申请中断。当该引脚输出低电平时表示正在转换,输出高电平则表示一次转换已经结束。OE:读允许信号,高电平有效,有效期间,CPU将转换后的数字量读入。CLK:时钟信号。REF(+),REF(-):参考电压输入端。Vcc:5V电源输入。GND:地线。(2)内部结构ADC0809内部由3部分组成:模拟输入选择部分:包括一个8路模拟开关和地址锁存器译码电路。输入的三位通道地址信号由锁存器锁存,经译码电路译码后控制模拟开关选择相应的模拟输入。转换器部分:包括比较器,8位D/A转换器,逐位逼近寄存器以及控制逻辑电路等。输出部分:包括一个8位三态输出缓冲器。(3)工作过程 首先CPU发出三位通道地址信号C,B,A; 其次,在通道地址信号有效期间,使ALE引脚上产生一个由低到高的电平变化,即脉冲上跳延,它将输入的三位通道地址所存到内部地址锁存器; 接着给START引脚加上一个由高到低变化的电平,启动A/D变换; 再次,在变换开始后,EOC引脚呈现低电平,一旦变换结束,EOC又重新变为高电平; 最后,CPU再检测到EOC变高后,输出一个正脉冲到OE端,将转换结果取走。(4)A/D转换器的位数决定着信号采集的精度和分辨率。对于8通道的输入信号,要求分辨率为0.5%。8位的A/D转换器,其精度为: 输入为05V时,分辨率为A/D转换器的满量程值 ADC二进制位数量化误差为3.并行接口芯片82558255是可编程IO口扩展芯片。对8255输入不同的指令可改变IO口的工作方式。8255与单片机系统连接方式简单,工作方式由程序设定。8255内部有4个寄存器:分别为寄存器A、B、C和控制寄存器。A、B、C寄存器的数据就是引脚PA7PA0、PB7PB0、PC7PC0上输入或输出的数据。而控制寄存器的数据则表明PA、PB、PC的工作方式。通过CS、A0、A1、RD和WR对4个寄存器进行操作。 1)CS为低电平时选通8255;2)A1、A0为地址选通;3)RD和WR为读、写信号:RD为低、WR为高时为读方式,RD为高、WR为低时为写方式。4)D0D7为数据口。向控制寄存器写入不同的数据可以使8255工作在三种不同的方式下。这里只介绍应用最多的方式0。方式0下8255的PA、PB及PC口上半部分(PC7PC4)和下半部分(PC3PC0)中任何一个端口都可以设定为输入或输出,PC口还可以进行位操作。RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。 RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。8255方式0是基本输入/输出方式,A、B、C三个口中任何一个口都可提供简单的输入和输出操作,不需要应答联络信号,即可用于无条件传送的场合,也可以用作查询方式传送。当采用查询方式传送时,原则上可用A、B和C三个口的任一位充当查询信号,但通常都是选用C口充当查询信号,这和C口的编程有关。通常把C口的4位(高4位或低4位)规定为输出口,用以输出一些控制信号,把C口的另4位规定为输人口,用以输入外设的状态。方式1是一种选通输人偷出方式,A口和B口均可工作在这种方式。方式1可作为查询式传送方式,此时握手联络信号,C口要用6位(分成两个3位)分别作为A口和B口的应答联络信号。方式1也可用作中断方式,此时要写对应的C口的按位置位字,打开中断。方式2是A口独有的双向传送方式,一般使用中断传送方式。4.PC/XT总线扩展槽PC/XT总线扩展槽是PC系列机的扩充插槽在系统板上,一般共5个或8个。它实际上是系统总线的扩充和经过重新驱动,也称I/O通道。引脚有62条引线,用双列插槽引脚连接,分A面和B面,规定又成为IBMPC总线标准。IBM-PC扩展总线图及各引脚定义如下:在本设计中用到了以下引脚,并作出功能说明:A1A9:D7D0与ADC0809的八根数据线相连,当中断允许信号发出,由这八根线进行数据读取。A23A28:A8A0与74LS138相连,其输出通过或门电路控制ADC0809的START,EOC,OE三个引脚。BO1,B31:GND接地。B13,B14:读写信号控制线。低电平有效。B20:CLK时钟脉冲信号。周期为210ns的时钟输出信号,频率为477MHZ,一个周期内高电平持续70ns,低电平持续140ns。B04:IQR2中断请求输入信号。5.8086简介Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。Intel 8086有四个内存区段(segment) 寄存器,可以从索引寄存器来设定。区段寄存器可以让 CPU 利用特殊的方式存取1 MB内存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制分段,使在编程中使用指针 (如C 编程语言) 变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大于 1 MB 的困难。而 8086 的寻址方式改变让内存扩充较有效率。 8086处理器的时钟频率介于4.77MHz(在原先的IBM PC)和10 MHz之间。 8086 没有包含浮点指令部分(FPU),但是可以通过外接数学辅助处理器来增强浮点计算能力。6. 七段数码管发光二极管显示器LED是微型计算机应用系统中常用的输出装置。七段LED显示器内部由7个发光二极管和1个原点发光二极管组成(如图6所示)。根据各管的亮暗程度组合成16进制数,小数点和少数字符。常用的七段LED的管脚排列如下图所示。发光二极管显示器led根据内部发光二极管的接线形式可分为共阳极型和共阴极型。 七段数码管引脚图当为共阴型时,公共极低电平,段码高电平的段亮,低则灭;而共阳型则反之。实验中我们采用的是共阳极型的接法。共阳极型的七段数码表字形编码如下表所示D7D6D5D4D3D2D1D0七段代码dpgfedcba11000000C0H11111001F9H10100100A4H10110000B0H1001100199H1001001092H1000001082H11111000F8H1000000080H1001000090H1000100088H1000001183H11000110C6H10100001A1H1000111086H100011108EH七、功能实现1. 电路图2.程序流程图3.程序源代码DATA SEGMENT DATA1 DW 10 DUP(?) ;定义DATA1为字型 MAX DW ? MIN DW ? TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;09的段码(字形码) DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA ADDR_0809 EQU 8000H ;AD0809端口地址 PROC_A EQU 0FF28H PROC_B EQU 0FF29H PROC_C EQU 0FF2AH PROC_CTL EQU 0FF2BH ORG 1100HSTART0: MOV CX,10 ;采集10次数 MOV BX,0 MOV DI,OFFSET DATA1;把DATA1的首地址赋给DILP1: ;采集数据,进行A/D转换 CALL AD0809 XOR AH,AH ;高位清零 ADD BX,AX ;BX=BX+AX,求采集数据之和 MOV DI,AX ;DI存储10个数据 INC DI ;DATA1为字型 INC DI LOOP LP1 MOV SI, OFFSET DATA1 MOV AL,SI MOV CX,9 ;比较9次 P1: INC SI INC SI CMP AL,SI JAE NEXT MOV AL,SINEXT: LOOP P1 MOV AH,00H MOV MAX,AX ;求出最大值 MOV SI, OFFSET DATA1 MOV AL,SI MOV CX,9P2: INC SI INC SI CMP AL,SI JBE CONT MOV AL,SICONT: LOOP P2 MOV AH,00H MOV MIN,AX ;求出最小值 XOR AH,AH ;采集10个数据 MOV AX,BX MOV DX,MAX SUB AX,DX ;减去最大值 MOV DX,MIN SUB AX,DX ;减去最小值 MOV BL,8 DIV BL ;求剩余8位数的平均值 XOR AH,AH MOV BL,50 ;A/D的输出结果经过运算法则 DIV BL MOV BH,AL ;BH为整数部分 CMP AH,5 ;AH为小数部分 JAE LP3 ;大于等于5时跳转 MOV AH,0 ;小于5时置零 JMP LP4 ;无条件转移LP3:MOV BL,5MOV AL,AHXOR AH,AHDIV BLMOV AH,AL ;十进制小数LP4:MOV AL,BH ;十进制整数MOV CH,AH LEA BX,TAB ;装入有效地址MOV AH,0ADD BX,AX ;得到整数的段码字节MOV AL,BX ;整数段码显示MOV CL,AL ;完成整数部分换码 MOV AL,CHLEA BX,TABMOV AH,0ADD BX,AXMOV AL,BXMOV CH,AL ;完成小数部分换码 MOV BH,CH ;换码后小数MOV BL,CL ;换码后整数 AND BL,7FH ;得到整数和小数点的段码 MOV AL,80H ;8255控制字 ,方式0工作MOV DX,PROC_CTLOUT DX,ALMOV SI,05FH ;实现循环显示 LP:MOV AL,BH ;显示小数部分 MOV DX,PROC_AOUT DX,ALMOV AL,0FEHMOV DX,PROC_BOUT DX,ALMOV CX,0FFH ;延时 DELAY1:LOOP DELAY1 MOV AL,BL ;显示整数部分 MOV DX,PROC_AOUT DX,ALMOV AL,0FDHMOV DX,PROC_BOUT DX,ALMOV CX,0FFH ;延时 DELAY2:LOOP DELAY2DEC SI ;减1JNZ LPJMP START0

温馨提示

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

评论

0/150

提交评论