模拟电压采集电路设计

上传人:第** 文档编号:36287978 上传时间:2018-03-27 格式:DOC 页数:15 大小:394.26KB
返回 下载 相关 举报
模拟电压采集电路设计_第1页
第1页 / 共15页
模拟电压采集电路设计_第2页
第2页 / 共15页
模拟电压采集电路设计_第3页
第3页 / 共15页
模拟电压采集电路设计_第4页
第4页 / 共15页
模拟电压采集电路设计_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《模拟电压采集电路设计》由会员分享,可在线阅读,更多相关《模拟电压采集电路设计(15页珍藏版)》请在金锄头文库上搜索。

1、1微型计算机技术课程设计题目:模拟电压采集电路设计题目:模拟电压采集电路设计2目 录一设计目的二实验平台和所用器材三设计内容四设计原理五程序流程图六调试分析七原理图设计八收获、体会和建议9程序清单3一设计目的1.通过本设计,使学生综合运用微型计算机技术 、 汇编语言程序设计以及电子技术等课程的内容,为以后从事计算机检测与控制工作奠定一定的基础。2.主要掌握并行 I/O 接口芯片 8253、8255A、ADC0809 及中断控制芯片 8259A 等可编程器件的使用,掌握译码器 74LS138 的使用。3.学会用汇编语言编写一个较完整的实用程序。4.掌握微型计算机技术应用开发的全过程:分析需求、设

2、计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。二实验平台和所用器材本实验是在 windows XP 操作系统上下实现的,程序的开发环境是用实验室的课设平台,所用到的器材如下:一台微机原理与接口实训平台。可编程芯片 8253、8255A 、ADC0809 和译码器芯片 74LS138、数据总路线缓冲器 74LS245 各一片。可调电位器 4.7K 一个、发光二极管 8 个、74LS06 芯片 2 个、排电阻 1 个。其它逻辑器件、导线若干。示波器、万用表、常用工具等。三设计内容采用 ADC0809 设计一个单通道模拟电压采集电路,要求对所接通道变化的模拟电压值进行采集,采集来的数字量一

3、路送至发光二极管指示,一路送至计算机显示到屏幕上,每行显示 5 个数据,采集完 100 个数据后停止采集过程,采集过程中按下 ESC 键也可中断采集过程。首先要求我们定义出选择菜单,给出显示界面。1.8255 的自检测这部分要求我们初始化 8255,为了能够正确的看出 8255 已经初始化,当 8255 初始化后向 B 口送数据0FH 到发光二管上显示,如果能够正确显示就说明 8255 已经被初始化。2.8253 的自检测这部分要求我们初始化 8253,8253 初始化后可以通过示波器观察输出的波形是否满足要求。进行 A/D 转换这部分是本次课设的关键部分,在做此之前,必须保证 8255 和

4、8253 都被正确的初始化,通过 8255 的C 口控制 ADC0809 对模拟数据的采集,然后从 A 口读取转换后的数据,一路送发光二极管显示,一路送显示器上显示,这里模拟量由电位器得到。3.退出系统想结束程序的时候,从菜单上选择此键就可以退出程序.四设计原理1.要用要用 Protues 设计出正确电路原理图设计出正确电路原理图:a 4.7K 电位器一端接+5V,一端接地,调节电位器得到变化的模拟电压,该电压接至 ADC0809 的某一通道输入端(如 IN0) ,ADC0809 的时钟为 500KHz,可由总线直接提供,用 8253 进行定时中断,中断后进行 A/D转换,要求定时为 100m

5、s,8253 的端口地址:304H307Hb. 编程启动 ADC0809 转换(ADC0809 完成一次转换的时间大约为 120s) ,在中断服务程序中读入模数转换结果,一路送至发光二极管指示,一路送至计算机显示到屏幕上。c. 8255A 用做 CPU 和 ADC0809 间的接口芯片,ADC0809 的控制信号(如 OE、ALE、START 等)可由8255A 提供,8255A 端口地址:300H303H。模数转换后的数字量也可经 8255A 的 PA 口读入。d. 译码电路由 74LS138 提供,在总线和其它接口芯片之间还必须加入 74LS245,起到隔离总线的作用。4MFPT PCI

6、总线驱动板逻辑结构如图所示总线驱动板逻辑结构如图所示芯片简介(1)74LS245 的功能表的功能表74LS245 数据总路线缓冲器数据总路线缓冲器(2).ADC0809 简介简介PCI 9052/9054PCI BusISA BusCPLD5提供一个 8 通道的多路开关和寻址逻辑IN0IN7:8 个模拟电压输入端ADDA、ADDB、ADDC:3 个地址输入线ALE:地址锁存允许信号ALE 的上升沿用于锁存 3 个地址输入的状态,然后由译码器从 8 个模拟输入中选择一个模拟输入端进行A/DD0D7OEDATA100 s2 s+8T(最大最大)200ns(最小最小)ADDA/B/CFSDAAAA/

7、C/EOCADC0809 的数字输出ADC0809 内部锁存转换后的数字量具有三态数字量输出端 D0D7配合输出允许信号 OEStart6当输出允许信号 OE 为高电平有效时,将三态锁存缓冲器的数字量从 D0D7 输出其它的芯片查阅微型计算机技术的书。(3).8255A 与与 ADC0809 的连接的连接(4).8253 定时定时/计数器计数器对 8253 进行编程,定时 100ms 后,产生中断,该定时信号(OUT0)送入到系统预留给用户的 IRQ2(或IRQ10)引脚产生中断,在中断服务子程序中,启动一次 ADC0809 模数转换,ADC0809 采用查询方式工作。IRQ10 中断向量号为

8、 72H8253 的时钟(CLK0)取自 MFID 实验平台。2.编写程序初始化编写程序初始化 8255 和和 8253(1)初始化 8255:8255 有四个寄存器,地址为 300h-303h,分别为 A 口,B 口,C 口,和控制口,首先要向 C 口写入控制字,控制字格式如下:工作方式控制D7 D6 D5 D4 D3 D2 D1 D0特征位1A 组方式选择端口 A 输入/输出C 口高四位输入/输出B 组方式选择端口 B 输入/输出端口 C 低四位输入/输出C 端口置位/复位控制D7 D6 D5 D4 D3 D2 D1 D0特征位 0任意位选择置位/复位 0 为复位,1 为置位可用如下代码初

9、始化 8255:mov dx,303hmov al,10011001Bout dx,al7(2)初始化 82538253 控制字格式如下D7 D6 D5 D4 D3 D2 D1 D0计数器选择读写格式工作方式计数方式输入时钟信号为 0.25MHZ,要得到 100MS 定时,需要写入的计数初值为 25000,选用计数器 0,工作方式 3,代码如下:mov dx,307hmov al,00110110Bout dx,almov ax,25000mov dx,304hout dx,almov al,ahout dx,al3.编写中断服务子程序编写中断服务子程序首先要设置好中断向量,这里是调用 72H

10、 号中断,在里面写入 A/D 转换的中断服务子程序地址,所以要保存原来72H 中断向量表里面的内容,最后在程序完成时要恢复 72H 里的内容,在执行这些操作的时候是不容许中断的,所以要关中断,操作完成后要开中断,可以用一下指令来完成:cli;获取原中断向量里的内容并保存mov ax,3572hint 21hmov intoff,bxmov intseg,espush dsmov dx,offset convert;设置新的中断向量mov ax,seg convertmov ds,axmov ax,2572hint 21hpop dssticli;恢复 72 号中断向量mov dx,intoff

11、mov ax,intsegmov ds,axmov ax,2572hint 21hsti中断服务子程序:要想启动 0809 进行转换,首先必须有一个 start 信号,该信号为:8在转换的时候通过 EOC 信号来判断转换是否结束,当 EOC 信号由 0 变为 1 时就代表转换结束,此时让OE 引脚为 1,这时转换出来的数据就输出了,部分代码如下:mov dx,303hmov al,10011001Bout dx,almov dx,303h;送启动信号mov al,00h out dx,alnopmov al,01hout dx,alnopmov al,00hout dx,almov dx,30

12、2hquery: in al,dxtest al,10hjz querymov dx,300hin al,dxinc dxout dx,al注意在每次转换完后都必须将 C 端口置位:mov dx,303h;将 C 口复位,以保证下次能正确转换数据mov al,90hout dx,almov dx,302hmov al,0ffhout dx,al在中断服务子程序结束之前,必须发中断结束命令:mov al,20h ;结束中断out 20h,alout 0a0h,al 在进入 A/D 转换之前,必须开发 72H 号中断:in al,0a1h;设置中断屏蔽寄存器,系统开放 72 号中断and al,0

13、fbhout 0a1h,al9五程序流程图 主程序 中断服务子程序 六调试分析进入主菜单后选择 1 进行 8255 的初始化,这时候会发现在实验板上的一半灯亮,一半灭,同时提示 8255 is ok ;选择 2 后进入 8253 的初始化,可以用示波器观察输出的波形,同时显示 8253 is ok ,选择 3 后进入 A/D 转换,将转换来的数据一路送二极管显示,一路送显示器。在调试的过程中,有很多技巧,刚开始的时候,我把所有的电路都连接好调试,结果那样带来了很多的麻烦,而且也不容易找出错误的所在,最后我把所以的线都拆掉,一个器件一个器件的调试,先从 8255 开始,直到 8255能正确输出数

14、据的时候才开始下一步的测试,然后再测试 0809,在测试 0809 的时候遇到了一个小问题,就是每次转换来的数据都一样,除非让 8255 复位,经过认真的分析,才知道是 8255 的 C 端口的控制信号没有置位,接下来10测试的是 8253,一开始,分频率总是不对,计数初值没有问题,经过仔细检查才发现 8253 的芯片出了问题,电源引脚断了,换芯片后就没有问题了,在设计中断的时候,一开始不能让其自动产生中断,后来查阅资料才知道是在中断服务子程序中没有结束中断引起的,这些故障调试通过后 ,整个设计就完成了。七原理图设计八收获、体会和建议本次课程设计,我学到了很多的东西,对汇编语言程序设计加深了理

15、解和掌握,我们这次设计的要求主要是熟悉微型计算机技术中所学到的几中芯片的使用,掌握它们的初始化编程,并学会他们的基本应用,这是一个比较全面的设计,和以前的实验相比较复杂很多,一方面要求我们设计硬件电路,另一方面需要对设计的硬件电路进行编程,这就需要软件和硬件相结合,具体的电路具体分析,在此次设计中还用到了中断,通常来说,中断是很复杂,很难的去调试。在此设计中遇到了很多困难,一开始的时候,硬件电路测试都没成功,最后把所有的电路都拆了,一个一个测试,进行数据转换的时候,开始转换出来的数据都一样的,无论电位是否发生变化,经过仔细分析才知道是8255 没有复位,在中断的产生过程中,由于没有写中断结束也

16、带来了一定的困难。这次课程设计后,我对学硬件有了一定的体会,它要求我们认真仔细的做好每个环节,对所有的问题要考虑周全,它和软件不同,对具体的电路要11编写适合该电路的程序,电路一改,程序也要跟着改,从中我也学会了很多实际应用的知识。最后,还要感谢程世旭老师、赵立辉老师、雷鸣在百忙之中抽出时间来对我的帮助和辅导,他们给我们讲授了一些编程的经验,这对于我以后做事帮助很大,由于他们的热情帮助和支持我才能顺利的完成这次课程设计的任务。九程序清单;作者:周小兵 日期:2008/3/3 .model small.386.stackstack .datadata intoff dwdw 0;存放原来中断向量里的偏移地址intseg dwdw 0;存放原来中断向

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号