ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:345.89KB ,
资源ID:9135525      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9135525.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于AD的流量控制器的设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于AD的流量控制器的设计.docx

1、基于AD的流量控制器的设计合肥学院计算机科学与技术系微型计算机原理与接口技术课程设计报告20092010学年第一学期课程 微型计算机原理与接口技术 课程设计名称基于AD的流量控制器的设计学生姓名任远蓉学号0704012020专业班级07计本(2)班指导教师何立新老师 龙夏老师2010年3月一.题义分析及解决方案1.题义需求分析用STAR ES598PCI 单板开发机设计一个模拟探流器。用电压信号模拟流量信号,采用A/D转换对模拟电信号进行数字量转换,转换结果通过LED显示,并和预设的阀值相比较,当流量达到预设阀值1后,探测器发出低频率声音报警,当流量达到预设阀值2后,探测流发出高频声音报警。根

2、据本设计给定的内容和要求,可知:1) 输入的是0-5V模拟电压,最终检测出的输出电压是数字信号,这就需要一个A/D转换器(ADC0809)将模拟信号转换为数字信号。2) 转换结果需要通过LED显示,则可选用8255A作为微处理器的输入输出接口芯片, 最后将8位数字信号量显示到LED显示器上。3) 要对信号进行阀值检测,可以自行设定阀值大小:预设阀值1为 2.0V,其所对应的数字量为(2.0/5)*255=102=66H);预设阀值2为4V,其所对应的数字量为(4/5)*255=204=0CCH),事先将其存储在某寄存器或存储单元中。4) 当流量达到预设阀值1后,探测器发出低频率声音报警,当流量

3、达到预设阀值2后,探测流发出高频声音报警。可用蜂鸣器发出报警声音。2.解决问题方法及思路1)硬件部分ADC0809模数转换器一片(将采集到的模拟电压信号转换成数字信号输出)可编程并行接口芯片8255一片(作为微处理器的输入输出接口芯片)七段LED显示器(用来显示电压值)蜂鸣器一个(用于发出报警声音)8086通过8255与ADC0809相连,由电位器将模拟电压输入到ADC0809中,由8255采用查询工作方式控制ADC0809工作。最后8086通过8255向报警系统蜂鸣器以及七段LED显示器发送控制信号。显示转换后的电压值,并且达到不同的阈值可发出不同频率的报警声音。2)软件部分首先应对8255

4、进行初始化设置,设置8255的工作方式和端口地址,为防止刚开始实验就报警,应对C口进行置。位然后启动ADC0809的程序进行模/数转换,将输入的0-5V的模拟电压信号转换成数字信号并将其保存在AL寄存器中,并将其转换成十进制数存放于BL寄存器中。然后比较BL的值与事先保存在AL寄存器中的阈值,如果是小于则继续进行采集电压信号并将其转换成十进制数,通过七段LED显示器显示出,当流量达到预设阀值1后,探测器发出低频率声音报警,当流量达到预设阀值2后,探测流发出高频声音报警,其中与蜂鸣器相连的PC1端口置低电平有效,即低电平时进行报警。报警频率的大小可以通过循环程序的不同次数来实现。二、硬件设计1.

5、ADC0809模数转换器1) ADC0809的作用 利用ADC0809进行模/数转换,将采样结果电压转换8086能应用的数字量。2) ADC0809的功能分析模/数转换是指通过一定的电路将模拟量转变为数字量,由于模拟量是连续的,而数字量是离散的,所以,一般在某个范围中的模拟量对应于某一数字量,这就是说,在A/D转换时,模拟量和数字量之间并不是一一对应的关系,即从理论上,有一个转换精度的问题,转换精度反映了A/D转换器的实际输出接近理想输出的精确程度,A/D转换的精度通常是用数字量的最低有效位(LSB)来表示的,设数字量的最低度有效位与对应与模拟量,这时,我们称为数字量的最低有效位的当量,ADC

6、0809采用的是逐位逼近A/D转换,逐位逼近A/D转换时,也用D/A转换器的输出电压来驱动运算放大器的反相端,不同的是用逐位式进行转换时,要用一个逐位逼近寄存器存放转换好的数字量,转换结束时,将数字量送到缓冲寄存器中,当启动信号由高电平变为低度电平时,逐位逼近寄存清零,这时D/A转换器输出电压V0也为0,当启动信号变为高电平时,转换开始,同时,逐位逼近寄存器进行计数。逐位逼近寄存器通常工作是从最高位开始,通过设置试探值来计数,在第一个时钟脉冲时,控制电路反最高位送到逐位逼近寄存器,使它输出为1000 0000,则D/A转换器输出电压V0为满量程值128/255,若V0大与Vi,则作为比较器的运

7、算放大器的输出成为低电平,控制电路据此清楚逐位寄存器中的最高位;若V0小于Vi,则比较器输出高电平,控制电路使最高位的1保留下来,如果最高位被保留,则值1000 0000下一个时钟脉冲使次高位D6为1,于是逐位逼近寄存器值为1100 0000,V0为满量程值192/255,此后,若V0大于Vi,则比较输出低电平,从而使次高位D6复位,如果V0小于Vi,则比较器输出高电平,从而保留高位D6为1,在下一个时钟脉冲D5置1,比较直到D0为1,再与输入电压比较,经N次比较,寄存器中得到的值就是转换后的数据,转换以后,控制电路送出一个低电平作为结束信号,这个信号的下降沿将逐位逼近寄存器中的数字量送入缓冲

8、寄存器,从而得到数字量输出。ADC0809原理图如下所示:3) ADC0809的技术参数分辨率:8位是指ADC对输入电压微小变化响应能力的量度,它是数字输出的最低位(LSB)所对应的模拟输入电平值。若输入电压满刻度值为VFS,转换位数为N。分辨率1/2NVFS当模拟电压低于此值时,ADC不予响应。绝对精度:是指在输出端产生给定的数字代码,实际需要的模拟输入值与理论上需求的模拟输入值之差。相对精度:是指满刻度值校准后,任意数字输出所对应的实际模拟输入值与理论值之差。转换时间:是指ADC完成一次转换所需时间,既从启动信号开始到转换结束并得到稳定的数字输出量所需时间,通常us级。量程:0-5V,指所

9、能转换的输入电压范围。4) ADC0809的主要性能 8位逐次逼近型A/D转换器,所有引脚的逻辑电平与TTL兼容; 带有锁存功能的8路模拟量转换开关,可对8路05V模拟量进行分时转换; 输出具有三态锁存/缓冲功能; 分辨率:8位,转换时间:100us; 不可调误差:1LSB,功耗:15mW;5) ADC0809的引脚功能D7D0:8位数据输出线; IN7IN0:8路模拟信号输入; ADDC、ADDB、ADDA:8路模拟信号输入通道的地址选择线; 6) ADC0809的内部结构 有模拟多路转换开关和A/D转换两大部分。模拟多路转换开关由8路模拟开关和3位地址锁存与译码器组成,地址锁存允许信号AL

10、E将三位地址信号ADDC、ADDB和ADDA进行锁存,然后由译码电路选通其中一路摸信号加到A/D转换部分进行转换。A/D转换部分包括比较器、逐次逼近寄存器SAR、256R电阻网络、树状电子开关、控制与时序电路等,另外具有三态输出锁存缓冲器,其输出数据线可直接连CPU的数据总线。2. 选择芯片8255A1) 8255A的作用利用8255将转换后的数字量传送到8086CPU,同时8255A也通过其某些输出量控制ADC0809工作,8255A也用来输出控制量来控制LED显示和报警系统发生报警。2) 8255A的功能分析8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。

11、三个端口都可以作为输入端口或输出端口。A口有三种工作方式:即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。8255A的工作只有当片选CS有效时才能进行。而控制逻辑端口实现对其他端口的控制。CPU接口(数据总线缓冲器和读/写控制逻辑)数据总线缓冲期:这事一个8位双向三态缓冲器,三态是由读/写控制逻辑控制的。这个缓冲器是8255A与CPU数据总线的接口。所有数据的输入/输出,以及CPU用输出指令向8255A发出的控制字和用输入指令从8255A读入的外设状态信息,都是通过这个缓冲器传递的。读/写控制逻辑:它与CPU的6根控制线相连,控制8255A内部的各种操作

12、。控制线RESRT用来使8255A复位。和地址线A1及A0用于芯片选择和通道寻址。控制线和用来决定8位内部和外部数据总线上传送的方向,即控制把CPU的控制命令或输出的数据送到相应的通道,或把状态信息或输入数据送到CPU。8255A的读/写控制逻辑的作用,是从CPU的地址和控制总线上接受输入的信号,转变成各种命令送到A组或B组控制电路进行相应的操作。3) 8255A的引脚信号与外设相连的PA7PA0:A口数据信号线PB7PB0:B口数据信号线PC7PC0:C口数据信号线与CPU相连的RESET:复位信号。当此信号来时,所有寄存器都被清除。同时三个数据端口被自动置为输入端口。D7D0:片选信号。在

13、系统中,一般根据全部接口芯片来分配若于地位地址(比如A5、A4、A3)组成各种芯片选择码,当这几位地址组成某一个低电平,于8255A被选中。只有当有效时,读信号写才对8255A进行读写。RD:读信号。当此信号有效时,CPU可从8255A中读取数据。WR:写信号。当此信号有效时,CPU可向8255A中写入数据。A1、A0:端口选择信号。8255A内部有3个数据端口和1个控制端口,共4个端口。规定A1、A0:为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。4) 8255A的基本操作 WR CS A1 A0 RD 功能 0 0 0 0 1 对端口A读输入 0

14、0 1 0 1 对端口B读 0 1 0 0 1 对端口C读 0 1 1 0 1 非法,不能对D口读 0 0 0 1 0 对端口A写输出 0 0 1 1 0 对端口B写 0 1 0 1 0 对端口C写 0 1 1 1 0 对端口D写 1 数据缓冲器为三态 断开 118255A有三种工作方式,用户可以通过编程来设置。本设计用到工作方式0。5) 8255A的技术参数 其中PER为peripheral port 的缩写输入最低电压:min-0.5V,max-0.8V,输入最高电压:2.0V。输出最低电压:0.45V。输出最高电压:2.4V 。6) 8255A的方式控制字8255A的控制字有两种:一种是

15、方式选择控制字,另一种是C口按位置位/复位控制字1 方式选择控制字方式0的工作特点:这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。通道的功能为:两个8位通道:通道A和B。两个四位通道:通道C高4位和低四位,任何一个通道可以作输入/输出,输入是不锁存的,输出是锁存的,在方式0时各个通道的输入/输出可有16种不同的组合。2 C口按位置位/复位控制字3. 七段LED显示器1) 七段LED显示器作用显示设定的界限值及输入的电压值2) 七段LED显示器的功能分析 七段LED显示器通过汇编语言的控制,可以控制在哪几个数位上,哪几个发光二极管亮,从而显示数字。其工

16、作原理:如果发光二极管共阳极,则输入为0时亮,为1时不亮,反之如果发光共阴极,则输入1时亮,0时不亮。发光二极管是一种外加电压超过额定电压时发生击穿,并因此能产生可发光的器件,数码显示器通常有多个发光二极管来组成七段或八段笔画显示器,当段组合发光时,便会显示某一个数码管或字符,七段代码的各位用作ag和DP的输入。3) 七段LED显示的技术参数 表2-6七段LED显示的技术参数PCWLFVrIrIfp对应变量散射颜色BT235702551.52.5200SEL-10红BT1441004050.52.5565绿BT1341004050.52.5585蓝主要参数:此时的驱动电流为25mA。4) LE

17、D原理图5) LED显示管段选码编码表dpgfedcba显示数码数值101111110.0BFH100001101.86H110110112.0DBH110011113.0CFH111001104.0E6H111011015.0EDH111111016.0FDH100001117.87H111111118.0FFH111011119.0EFH0011111103FH00000110106H0101101125BH01001111347H01100110466H0110110156DH0111110167DH00000111707H0111111187FH0110111196FH4. 蜂鸣器图

18、蜂鸣器原理图1) 蜂鸣器在本设计中的作用:在本设计中,蜂鸣器用于电压值越界时声音报警。2) 蜂鸣器的功能分析:扬声器是将电能转化成声能,并将声能辐射到空气中去的一种电声转换器件。3) 蜂鸣器的技术参数:它一般包括灵敏度、频率响应、额定功率、额定阻抗、指向性、失真、音质听感评价等。本实验电压范围为05V。5.总硬件逻辑图及其说明硬件总逻辑图如下图所示:说明:实验硬件原理图由8086CPU、8255A、ADC0809、七段LED显示器构成,8086CPU的地址线经锁存器后与各个芯片相连,A1、A2分别与8255A、ADC0809的A0、A1相连, CS1、CS2分别接8255A、ADC0809的C

19、S端,ADC0809的IN0为通道输入信号,ADC0809转换后的数据从ADDA、ADDB、ADDC输出到A0、A1、A2口,8255A的A口作为二位七段LED的段选码,B口作为位选码,C口控制蜂鸣器。三、控制程序设计1. 控制程序设计思路说明 本实验中,通过电位器输入的为模拟电压信号,必须通过ADC0809芯片将模拟信号转换成数字信号,并将其保存在BL寄存器中。比较BL中值与预设阈值的大小,并通过8255控制LED显示出转换后的电压值和控制报警系统,实现越界提示报警。因此先需要对8255A进行初始化,使A、B、C口均为输出口,C口置位,防止刚开始实验就报警。然后启动ADC0809开始转换,等

20、待0809转换完毕,将电压采集到al中,并转换为十进制数。接着将转换后的电压值与事先所设置的阈值相比较,当采样电压值大于或等于阈值1时,系统将产生低频报警,大于等于阈值2时,系统将产生高频报警。反之,则只是在LED显示,不产生报警。其中通过8255对七段LED显示器位选、段选,将转换值以十进制形式输出。报警系统的频率大小通过软件设计实现让让蜂鸣器实现低频和高频声音报警,PC1置为0,系统产生报警。并且通过延时子程序控制报警时间。2控制程序流程图主程序流程图如下图所示:启动ADC0809开始转化的流程如下图所示:LED显示子程序的流程图如下所示:3. 控制程序.MODEL TINY PCIBAR

21、3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址, 也为DMA & 32 BIT RAM板卡上的8237提供基地址) Vendor_ID EQU 10EBH ;厂商ID号Device_ID EQU 8376 ;设备ID号 .STACK 100 .DATA IO_Bit8_BaseAddress DW ? msg0 DB BIOS不支持访问PCI $msg1 DB 找不到Star PCI9052板卡 $msg2 DB 读8位I/O空间基地址时出错$ COM_ADD DW 00F3H PA_ADD DW 00F0H PB_ADD DW 00F1H PC_ADD DW 00F2H A

22、DDR_0809 DW 00E0H X1 DB 66HX2 DB 0CCHBUFFER DB $A DB ?B DB ?LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;代码段 .CODESTART: mov ax,DATA mov ds,ax nop call InitPCI call ModifyAddress ;根据PCI提供的基地址,将偏移地址转化为实地址 mov dx,COM_ADD mov al,80h ;初始化8255,PA,PB,PC输出 out dx,al mov al,0ffh m

23、ov dx,PC_ADD ;C口置位,防止刚开始实验就报警 out dx,alSTART1: mov A,2 mov al,00H mov dx,ADDR_0809 ;启动ADC0809开始转换 out dx,al mov dx,IO_Bit8_BaseAddress mov cx,50DELAY1: in al,dx loop DELAY1 ;等待0809转换完毕 mov dx,ADDR_0809 in al,dx ;电压采集到al push ax xor ah,ah mov bl,51 ;255/51 (16进制的1 = 1/51V) div bl mov BUFFER,al ;整数部分

24、mov al,10 mul ah div bl mov BUFFER+1,al ;第一位小数 mov al,10 mul ah div bl mov BUFFER+2,al ;第二位小数 pop bx mov al,X2 cmp bl,al ;和阈值2比较 ja HIGH0 mov al,X1 cmp bl,al ;和阈值1比较 ja LOW0 mov B,0 jmp display1HIGH0: ;高频报警 mov B,2 jmp display1LOW0: ;低频报警 mov B,1 jmp display1 display1:mov cx,10DISPLAY2: ;LED显示电压 mov

25、 dx,PC_ADD mov al,a out dx,al mov ah,20display3:mov bx,offset LED mov al,BUFFER xlat mov dx,PA_ADD ;A口显示数字段码 or al,80h ;显示小数点 out dx,al mov dx,PB_ADD ;B口LED位选 mov al,0FBH out dx,al call DELAY01 ;延时使人眼能分辨 mov al,BUFFER+1 xlat mov dx,PA_ADD out dx,al mov dx,PB_ADD mov al,0FDH out dx,al call DELAY01 mo

26、v al,BUFFER+2 xlat mov dx,PA_ADD out dx,al mov dx,PB_ADD mov al,0FEH out dx,al call DELAY01 dec ah je display3 mov al,B add A,al loop DISPLAY2 jmp START1DELAY01 PROC NEAR push cx mov cx,65535 ;延时loop1: NOP loop loop1 pop cx retDELAY01 endp;*控制程序结束*;InitPCI PROC NEAR MOV AH,00H MOV AL,03H INT 10H ;清屏

27、 MOV AH,0B1H MOV AL,01H INT 1AH CMP AH,0 JZ InitPCI2 LEA DX,msg0InitPCI1: MOV AH,09H INT 21H JMP ExitInitPCI2: MOV AH,0B1H MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在Star PCI9052板卡 LEA DX,msg1 JMP InitPCI1InitPCI3: MOV DI,PCIBAR3 MOV AH,0B1H MOV AL,09H INT 1AH ;读

28、取该卡PCI9052基地址 JNC InitPCI4 LEA DX,msg2 JMP InitPCI1InitPCI4: AND CX,0FFFCH MOV IO_Bit8_BaseAddress,CX RETInitPCI ENDPModifyAddress PROC NEAR ADD COM_ADD,CX ADD PA_ADD,CX ADD PB_ADD,CX ADD PC_ADD,CX ADD ADDR_0809,CX RET RETModifyAddress ENDPExit: MOV AH,4CH INT 21H END START 四. 上机调试过程1.硬件调试 1) 按照原来预习时所设计的实验原理图接好线后,装载程序完毕后运行,发现LED显示器显示的每一位数字都无法辨认出来于是我尝试将连接LED的两根排线重新换了新的排线; 2) 实验刚开始我是用了8255A的PC0端口控制蜂鸣器的报警的,但是实验刚运行时就一直开始报警不停;2.软件调试 1)原来编写的显示程序的子程序HIGH和LOW中用到的al和dx没有入栈保存,在调试过程中将其入栈保存起来了; 2)在调节电位器的电压过程中,当LED显示器显示的电压大于2V即开始低频报警时,LED显示的最后一位数字总是停留

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1