微机课程设计—电压采集电路培训讲学.doc

上传人:1595****071 文档编号:52302471 上传时间:2022-10-22 格式:DOC 页数:15 大小:6.46MB
返回 下载 相关 举报
微机课程设计—电压采集电路培训讲学.doc_第1页
第1页 / 共15页
微机课程设计—电压采集电路培训讲学.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《微机课程设计—电压采集电路培训讲学.doc》由会员分享,可在线阅读,更多相关《微机课程设计—电压采集电路培训讲学.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、微型计算机课程设计电压采集电路设计 自动化 尹虹毅200930611424微型计算机原理及应用课程设计电压采集电路设计一、 设计内容利用微型计算机原理课程中所学的主要可编程接口芯片74LS138、8253、8255A、ADC0809和中断控制器8259设计一个模拟电压采集电路。采用ADC0809设计一个单通道模拟电压采集电路,要求对所接通道变化的模拟电压值进行采集,采集来的数字量送至数码管LED指示,采集完100个数据后停止采集过程。二、 设计任务1、 选用8088CPU和适当的存储器芯片、接口芯片完成相应的功能。2、 画出详细的硬件连接图。3、 画出各程序的详细框图。4、 给出RAM地址分配

2、表及接口电路的端口地址。5、 给出设计思路。6、 给出程序所有清单并加上必要的注释。7、 完成设计说明书。三、 设计目的1、主要掌握74LS138、8253、8255A、ADC0809和中断控制器8259等可编程器件的使用。2、学会用汇编语言编写一个较完整的实用程序。3、掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。4、通过本设计,使学生综合运用微型计算机原理等课程的内容,为以后从事计算机工作奠定一定的基础。四、 所用器材:1、 中断控制器8259A中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级

3、排队、辨别中断源以及提供中断矢量的电路集于一片中。一个8259A芯片的可以接最多8个中断源,但由于可以将2个或多个8259A芯片级连(cascade),并且最多可以级连到9个,所以最多可以接64个中断源。早期,IBM PC/XT只有1个8259A,. 但设计师们马上意识到这是不够的,于是到了IBM PC/AT,8259A被增加到2个以适应更多外部设备的需要,其中一个被称作Master,另外一个被称作Slave,Slave以级连的方式连接在Master上。如今绝大多数的PC都拥有两个8259A,这样 最多可以接收15个中断源。2、8253定时/计数器 8253是24脚双列直插式芯片,使用的是5V

4、电源供电。芯片内有三个相互独立的16位定时/计数器。 8253由数据总线缓冲器、读/写逻辑、控制字寄存器以及3个独立的16位计数器组成。每个计数器包括一个8位的控制寄存器、一个16位的计数初值寄存器CR、一个16位的减1计数器CE和一个16位的输出锁寄存器OL。其中CR和OL同用一个I/O端口地址,CPU使用输出指令向CR预置计数初值,使用输入指令读回OL中的数值,这两个寄存器起到的是锁存作用。16位的减1计数器CE执行计数操作,其操作方式受控制寄存器控制。8253的功能是:1延时中断;2可编程频率发生器;3事件计数器;4二进倍频器;5实时时钟;6数字单稳;7复杂的电机控制器。3、8255A并

5、行接口芯片8255是为8080、8085、8088微型机系统设计的并行I/O接口芯片。对8255A输入不同的指令可改变IO口的工作方式。8255与单片机系统连接方式简单,工作方式由程序设定。8255内部有4个寄存器:分别为寄存器A、B、C和控制寄存器。A、B、C寄存器的数据就是引脚PA7PA0、PB7PB0、PC7PC0上输入或输出的数据。而控制寄存器的数据则表明PA、PB、PC的工作方式。8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种:方式0 :基本的输入输出方式,即无须联络就可以直接进行的 I/O方式。其中A、B、C口的高四位或低四位可分别设置成输入

6、或输出。4、ADC0809模数转换器ADC0809是一种比较典型的8位8通道逐次逼近式A/D转换器CMOS工艺,可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,其转换时间为100s左右,采用双排28引脚封装,如图所示。ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高

7、电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。五、 设计构想由设计的最终目标模拟电压采集电路设计而决定,本设计主要任务是怎样产生模拟电压,对模拟电压采集之后进行模数转换,之后将数字量送入LED数码管显示实际的电压值。本设计的主要问题是如何把模拟量转化为数字量和输出的数字量转换为十进制数字,再通过七段数码管显示出实际的电压值。所以我们可以将电路图分解开,使得各个部分有各种的功能。一下是几个部分的说明:1模拟电压的产生,读入及A/D转换,可选择ADC0809作为A/D转换器,由于ADC0809的模拟输入范围为单极性0-5V,故可用4.7K电位器一端接+5V,一端接地,调节电位器得到变

8、化的模拟电压。该电压接至ADC0809的IN0通道输入端,ADC0809的时钟为500KHz,由8253对面包板上时钟8MHz分频后得到,8253的端口地址:300H303H2 对由ADC0809转换来的数字信号可用8255A及七段数码管实现对其的读入和显示。8255A用作8088CPU和ADC0809之间的接口芯片,ADC0809的控制信号(如OE、ALE、START等)可由8088提供,模数转换后的数字量经8255A的PA口读入,再由B口送至七段数码管的八个输入端,C口的低四位可用于对四位数码管的片选信号 。3 由于ADC0809的测量范围为0-5V,输出范围为00000000B-1111

9、1111B,则其测量的精度为52560.02V, 故为了显示能够达到足够精度,至少需要三个七段数码管,本设计中用四个七段数码管,第一个显示个位数及小数点,后三位显示小数点后三位。4 编程启动ADC0809转换(ADC0809完成一次转换的时间大约为120s),将ADC0809的EOC引脚信号作为中断信号,若转换结束则进入中断服务程序。在中断服务程序中读入模数转换结果,七段数码管指示,74LS138提供译码电路。六、 电路硬件原理图(为了方便一点,管脚的连接采用标号的形式,省去了连线的麻烦)1、 CPU连接:采用一个74LS138译码器给两个8255分配不同的地址,74LS138的A0,A1,A

10、2端口接CPU的A8,A9,A10三根地址线,译码器输出端Y1,Y2,Y3分别接采集部分的8259A、8253、8255A的片选信号CS。8088的32与28脚接或门并送入两个8255的RD端,28与29脚也接或门接入8255的WR端(这里图上没有显示),故与ADC0809连接的8255的端口地址为0000H00FFH,与七段数码管连接的8255的端口地址为0100H01FFH。 2、 采集信号及数码管显示:模拟电压的产生,读入及A/D转换,可选择ADC0809作为A/D转换器,由于ADC0809的模拟输入范围为单极性0-5V,故可用4.7K电位器一端接+5V,一端接地,调节电位器得到变化的模

11、拟电压。该电压接至ADC0809的IN8通道输入端,ADC0809的时钟为500KHz,由8255A对面包板上时钟8MHz分频后得到,8255A的端口地址:300H303H模数转换后的数字量经8255A的PA口读入,再由B口送至七段数码管的八个输入端,C口的低四位可用于对四位数码管的片选信号。由于ADC0809的测量范围为0-5V,输出范围为00000000B-11111111B,则其测量的精度为52560.02V, 故为了显示能够达到足够精度,至少需要三个七段数码管,本设计中用四个七段数码管,第一个显示个位数及小数点,后三位显示小数点后三位。3、 全局原理图如下:总的连线图:七、 程序流程图

12、 1、主程序流程图:2、子程序流程图:八、 程序因为ADC0809的测量范围为0-5V,输出范围为00000000B-11111111B,即转换后的数字跟输入电压关系为:N=(Ui/UREF)*256,输入电压跟转换后的数字关系为:Ui=(N/256)*5V,测量精度为:52550.02V,把输出数字的一个1代表0.02V,则0.1V有5个1,1V有50个1。则把输出的数字量除以50,得出的商就是实际电压中个位数上数字,再把余数除以5,所得的商就是实际电压小数点后第一位的数字,所得余数就是小数点后第二位的数字。这三个数字也就是数码管要显示的数字。这种转换方法的误差是由于5255并不完全等于0.

13、02造成的,属于积累误差,最大误差发生在最大电压处,当输入5V时,输出255,用上述转化方法计算得结果为5.10V,即最大误差为0.1V,可见误差很小,此方法仍可保持一定的精度。具体程序如下:DATASEGMENTLEDDB40H, 79H, 24H, 30H, 19H, 12H, 02H, ;定义七段显示码表 78H, 00H, 10H RESULT DB 3 DUP(?) ;定义RESULT数据段用来 ;存放计算结果DATAENDSSTACKSEGMENT PARA STACKSTACKDB 100 DUP(?)CODESEGMENTASSUME CS:CODE DS:DATA SS:ST

14、ACKSTARTMOV AX, DATAMOV DS, AX MOV AL, 30H ;8253初始化,0#计数器工作,方式0OUT 303H , ALMOV AL, 16 ;计数次数为16 (频率500KHz) OUT 300H, ALMOV AL, 90H ;8255初始化,A口输入,工作MOV DX, 00FFH ;于方式0,B口输出,工作于方式OUT DX, AL ; 0,C口输出 MOV AL, 8DH ;初始化8259A,OUT 220H,AL MOV AL,20HOUT 221H, ALMOV AL,00HOUT 221H,AL MOV AL,8FH OUT 221H,AL MO

15、V AL,7FH ;IQR7开中断 OUT 221H,AL MOV CX, 100 ;设置采集次数NEXT:MOV AL, 0BHMOV DX, 00FDH OUT DX, AL ;从B口输出信号MOV AL, 1BH ;STARTPB4=0OUT DX, AL ;启动A/D转换MOV DX, 00FEH TESTIN AL, DX ;读C口状态AND AL, 10H ;检测EOC状态JZ TEST ;如果未转换完,再测试;转完则继续MOV DX, 00FCH ;IN AL, DX ;读取A口转换结果MOV BL, AL ;将结果保存起来CALL A1 ;调用计算、显示子程序DEC CX AN

16、D CX, FFH ;查看CX结果JNZ NEXT ;不为0则继续采样A1 PROC MOV AL, BLMOV AH, 0 ;将转换结果扩展成16位作为被除数MOV BL, 32H ;设置除数50DIVBL ;将转换结果除以50,商ALMOV SI, OFFSET RESULT MOV SI, AL ;将商存于RESULT数据段的第一个单元MOV AL, AHMOV AH, 0 ;设置除数5DIV BL ;将余数再除以5MOV SI+1, AL ;将商存于RESULT数据段的第二个单元MOV SI+2, AH ;将余数存于RESULT数据段的第三个单元MOV BX, SEG LED ;把七段

17、显示码表的段地址送BXMOV AL, SI XLAT ;把结果的第一个数转换成七段显示码MOV DX, 01FCH OUT DX, AL ;把结果第一个数送数码管显示MOV AL, SI+1XLAT ;把结果的第二个数转换成七段显示码MOV DX, 01FDH OUT DX, AL ;把结果第二个数送数码管显示MOV AL, SI+2XLAT ;把结果的第三个数转换成七段显示码MOV DX, 01FEH OUT DX, AL ;把结果第三个数送数码管显示RET ;返回A1 ENDPCODEENDS ;程序结束。END START九、总结一开始在选择这个设计题目的时候看到是使用8088,但是平时

18、用的或者接触到比较多的是8086,所以一早还是先找了一些资料关于8086和8088的区别的资料,有上网有查微机原理书等,比较明显的区别就是8086是Inter系列的16位微处理器,芯片上有2.9万个晶体管,采用 HMOS工艺制造,用单一的+5V电源,时钟频率为5MHz10MHz,有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。可寻址的内存空间为1MB.8088的内部寄存器,运算部件及内部数据总线都是按16位设计的,单外部数据总线只有8条。8086与8088在寄存器结构,编程结构,存储器组织及I/O端口组织方面是完全一样的或稍有差别,所以在设计时还是挺注意8088特有的小差

19、别的。平时微机实验时候,也有机会接触关于硬件和软件,并且实验室里面都是采用宏汇编程序在DOS下运行,而且都是简单的小程序,或者是为了熟悉元件的工作方式,或者是实现摸个简单的控制,没有真正写这样的程序上机运行。所以这次对我们来说是一个挑战,也着实在各方面都摸索了好一阵子才开始上路,比如怎么用布线软件,仿真软件,编程软件啊,此次设计中虽然没有真正做出硬件成品,但是设计思路因该是比较明确的、软件跟硬件也都很好的结合在一起。同时在微机原理的学习中,我也还发现了汇编语言与c语言之间的异同点,各自的优缺点。用汇编语言对CPU、接口芯片操作过程中,会对芯片本身有更多的理解。比如,对CPU I/O操作,汇编语言要知道其对应的地址,c语言直接是Pn口赋值。此次设计中用到Masm、Keil编程软件,Protel、Proteus设计仿真软件。这些类似的软件都在电子设计中占有不可或缺的地位,特别是仿真软件,在硬件条件受到限制的情况下,比较容易实现各种仿真。本次设计除了应用微机原理,还用电路基础、模拟电路、数字电路等课程的知识。在平时的学习中,应打下扎实基础知识,各种知识才能灵活应用。这一次的设计着实让我重新深刻的学习了微机原理这门课:从理论和实践上掌握微型计算机处理器的工作原理,汇编语言程序设计,接口技术,硬件连接的知识,也使得自己有一定的开发能力了。 15 / 15

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁