ADC0809单通道模拟电压采集电路_第1页
ADC0809单通道模拟电压采集电路_第2页
ADC0809单通道模拟电压采集电路_第3页
ADC0809单通道模拟电压采集电路_第4页
ADC0809单通道模拟电压采集电路_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上微型计算机技术课程设计指导教师: 程世旭 刘元超 学生班级: 计科10606班 学生姓名: 古 莹 学 号: 班内序号: 4 课设日期:2009年9月14日2009年9月27日 目 录一设计目的二实验平台和所用器材三设计内容四设计原理五程序流程图六调试分析七原理图设计八程序清单九收获、体会和建议一 设计目的1. 通过本设计,使学生综合运用微型计算机技术、汇编语言程序设计以及电子技术等课程的内容,为以后从事计算机检测与控制工作奠定一定的基础。2. 主要掌握并行I/O接口芯片8253、8255A、ADC0809及中断控制芯片8259A等可编程器件的使用,掌握译码器74LS

2、138的使用。3. 学会用汇编语言编写一个较完整的实用程序。4. 掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。二 实验平台和所用器材 本实验是在windows XP操作系统上实现的,程序的开发环境是用实验室的课设平台,所用到的器材如下: 一块实验面包版(内含时钟电路)。 可编程芯片8253、8255A 、ADC0809和译码器芯片74LS138、74LS245各一片。 可调电位器4.7K一个、发光二极管8个、74LS06芯片2个。 导线若干。 示波器、万用表、常用工具等。三 设计内容 采用ADC0809设计一个单通道模拟电压采集电路,

3、要求对所接通道的变化的模拟电压值进行采集,采集来的数字量一路送至发光二极管指示,一路送至计算机显示到屏幕上,每行显示5个数据,采集完100个数据后停止采集过程,采集过程中按下ESC键也可中断采集过程。 首先要求我们定义出选择菜单,给出显示界面。1. 8255的自检测这部分要求我们初始化8255,为了能够正确的看出8255已经初始化,当8255初始化后向B口送数据0FH到发光二管上显示,如果能够正确显示就说明8255已经被初始化。并且可以说明74LS245,8255,74LS06能够正常工作,并且他们的连线都正确。1. 8253的自检测这部分要求我们初始化8253,8253初始化后可以通过示波器

4、观察输出的波形是否满足要求。3. 进行A/D转换这部分是本次课设的关键部分,在做此之前,必须保证8255和8253都被正确的初始化,通过8255的C口控制ADC0809对模拟数据的采集,然后从A口读取转换后的数据,一路送发光二极管显示,一路送显示器上显示,模拟量由电位器得到。2. 退出系统如果用户需要结束程序,从菜单上选择此菜单即可退出程序.四 设计原理1、使用Protues或Protel设计出正确电路原理图,设计原理如下:a.4.7K电位器一端接+5V,一端接地,调节电位器得到变化的模拟电压,该电压接至ADC0809的某一通道输入端(如IN0),ADC0809的时钟为500KHz,由8253

5、对面包板上时钟1MHz或2MHz分频后得到,8253的端口地址:300H303H。b.编程启动ADC0809转换(ADC0809完成一次转换的时间大约为120s),将ADC0809的EOC引脚信号作为中断信号,若转换结束则进入中断服务程序。在中断服务程序中读入模数转换结果,一路送至发光二极管显示,一路送至计算机显示到屏幕上。c.8255A用做CPU和ADC0809间的接口芯片,ADC0809的控制信号(如OE、ALE、START等)可由8255A的PC口提供,模数转换后的数字量可经8255A的PA口读入,经8255A的PB口输出到发光二极管。8255A端口地址:304H307H。d.译码电路由

6、74LS138提供。74LS245用于总线和8255A之间的数据的双向传输和隔离。u MFPT PCI总线驱动板逻辑结构如图所示u 芯片简介(1)74LS245的功能表l 74LS245数据总路线缓冲器l 74LS245的功能表 (2)ADC0809简介u 引脚信号Ø 提供一个8通道的多路开关和寻址逻辑l IN0IN7:8个模拟电压输入端l ADDA、ADDB、ADDC:3个地址输入线l ALE:地址锁存允许信号Ø ALE的上升沿用于锁存3个地址输入的状态,然后由译码器从8个模拟输入中选择一个模拟输入端进行A/D转换。u ADC0809的外部特性StartD0D7OEDAT

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

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

9、X,307H;给8055控制口,初始化8255MOV AL,98H;AL=1001 0000 ,写8255控制字,A口输入,B口输出,C口高/低四位输出OUT DX,AL(2)初始化82538253控制字格式如下:D7 D6 D5 D4 D3 D2 D1 D0计数器选择读写格式工作方式计数方式MOV DX,303H;给8053控制字口MOV AL,B ;计数器0工作在方式2,只低八位,用二进制OUT DX,ALMOV DX,300H;给计数器0初值2MOV AL,2OUT DX,AL3、编写中断服务子程序首先要设置好中断向量,这里是调用72H号中断,在里面写入A/D转换的中断服务子程序地址,所

10、以要保存原来72H中断向量表里面的内容,最后在程序完成时要恢复72H里的内容,在执行这些操作的时候是不容许中断的,所以要关中断,操作完成后要开中断,可以用以下指令来完成:MOV AX,3572H ;获取原中断向量 INT 21H MOV INT0A_OFF,BX ;保存x中断向量 MOV BX,ES MOV INT0A_SEG,BX CLI ;关中断 MOV AX,2572H MOV DX,SEG LEDLIGHT ;设置新的中断向量 PUSH DS MOV DS,DX MOV DX,OFFSET LEDLIGHT INT 21H POP DS STI ;开中断 要想启动0809进行转换,首先

11、必须有一个start信号,该信号为:数据采集之后,恢复中断向量,部分程序如下: MOV AX,2572H ;恢复中断向量 MOV DX,INT0A_SEG PUSH DS MOV DS,DX MOV DX,INT0A_OFF INT 21H POP DS IN AL,0A1H ;屏蔽IRQ10 OR AL,04H OUT 0A1H,AL MOV AX,4C00H ;程序退出 INT 21H LEDLIGHT PROC FAR ;中断服务程序 PUSH SI PUSH AX PUSH DX CLI ;关中断MOV DX,307H MOV AL,5H;AL=0000 0101 使PC2口为高,读取

12、转换结果到PA口OUT DX,AL MOV DX,304 ;从A口读取数据IN AL,DXPUSH AX ;先保存数据 SHOW:AND AL,0F0H ;显示高四位 MOV CL,04 SHR AL,CLCMP AL,9JA HEXADD AL,30HJMP NEXTHEX:ADD AL,37HNEXT:MOV DL,ALMOV AH,2 ;输出显示高四位INT 21H POP AX AND AL,0FH;显示低四位CMP AL,9JA HEX1ADD AL,30HJMP NEXT1HEX1:ADD AL,37HNEXT1:MOV DL,AL;输出数据MOV AH,02HINT 21HMOV

13、 DL,13 ;输入回车换行符MOV AH,2INT 21HMOV DL,10MOV AH,2INT 21HMOV AH,09HMOV DX,OFFSET ERROR INT 21HNEXT2: MOV AL,62H ;发中断结束命令 MOV DX,0A0H OUT DX,AL ;向从片8259发EOI命令 OUT 020H,AL ;向主片8259发EOI命令 STI ;开中断 POP DX POP AX POP SI IRET五程序流程图 六调试分析 进入主菜单后选择1进行8255的初始化,这时候会发现在实验板上的一半灯亮,一半灭; 选择2后进入8253的初始化,可以用示波器观察输出的波形,

14、选择3后进入A/D转换,将转换来的数据一路送二极管显示,一路送显示器。 七原理图设计八程序清单 ;在本程序中,8253的地址是H-303H,8355A的地址是H-307H,和KS4电路图对应DATA SEGMENTINT0A_OFF DW(?)INT0A_SEG DW(?)COUNT DB(5)SUMDB(0) DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATADELAY PROC PUSH CX PUSH BX MOV BX,0FFFHLOOP2:MOV CX,0FFFFHLOOP1:LOOP LOOP1 DEC BX JNZ LOOP2 POP BX P

15、OP CX RET DELAY ENDPDISP PROC push ax show: and al,0f0h ;显示高位 shr al,4 cmp al,9 ja hex add al,30h jmp nexthex: add al,37hnext: mov dl,al mov ah,2 int 21H pop ax and al,0fh ;显示低位 cmp al,9 ja hex1 add al,30h jmp next1hex1: add al,37hnext1: mov dl,al;输出信号 mov ah,2 int 21hmov ah,2;输出空格mov dl,0int 21h;IN

16、C SUM;MOV AL,SUM;CMP AL,100;JZ PROENDDEC COUNT MOV AL,COUNT CMP AL,0JNZ DISPENDMOV COUNT,5 mov dl,13 ;向屏幕送回车符 mov ah,2 int 21h mov dl,10 ;向屏幕送换行符 mov ah,2 int 21hDISPEND: RET;PROEND:;MOV AX,4C00H;INT 21HDISP ENDPSTART: MOV AX,DATA MOV DS,AX MOV DX,307H ;初始化 MOV AL,80H OUT DX,AL MOV DX,305H ;LED灯熄灭 M

17、OV AL,0FFH OUT DX,AL MOV AX,3572H ;获取原中断向量 INT 21H MOV INT0A_OFF,BX ;保存原中断向量 MOV BX,ES MOV INT0A_SEG,BX CLI ;关中断 MOV AX,2572H MOV DX,SEG LEDLIGHT ;设置新的中断向量 PUSH DS MOV DS,DX MOV DX,OFFSET LEDLIGHT INT 21H POP DS STI ;开中断 IN AL,0A1H ;打开IRQ10 AND AL,0FBH OUT 0A1H,AL IN AL,21H ;打开IRQ2 AND AL,0FBH OUT 2

18、1H,AL MOV DX,303H;对实验板上的MHZ信号进行分频,为ADC0809提供转换时钟信号CLOCK MOV AL,B OUT DX,AL MOV DX,300H MOV AL,2 OUT DX,AL;这条指令可去掉,因为在电路中ADDA/ADDB/ADDC都已接地,固定使用通道begin: ;mov dx,307h ;初始化状态字,A口输出, ;mov al,80h ;out dx,al;mov dx,304h;送通道号至A口;mov al,0;out dx,almov dx,307hmov al,3h;,使PC1为out dx,al;PC1置进行地址锁存mov dx,307hmo

19、v al,90hout dx,al;重写方式字,A口输入,B口输出,C口低四位输出 L1: MOV AH,0BH ;检查是否有Esc键按下 INT 21H INC AL JNZ NEXT0 ; 若无键按下,则程序往下执行 MOV AH,08H ;如有Esc键按下,则程序退出 INT 21H CMP AL,27 JZ EXIT NEXT0: CALL DELAYlop: mov dx,307h ;使PC0置高发启动信号 mov al,1h;,先使PC0为 out dx,al mov cx,0f00h ;delaylop1:loop lop1mov dx,307hmov al,0h;,延时后使PC

20、0为发启动信号out dx,al JMP L1 EXIT: MOV AX,2572H ;恢复中断向量 MOV DX,INT0A_SEG PUSH DS MOV DS,DX MOV DX,INT0A_OFF INT 21H POP DS IN AL,0A1H ;屏蔽IRQ10 OR AL,04H OUT 0A1H,AL IN AL,21H ;屏蔽IRQ2 OR AL,04H OUT 21H,AL MOV AX,4C00H ;程序退出 INT 21H LEDLIGHT PROC FAR ;中断服务程序 PUSH AX PUSH DX CLI ;关中断 mov dx,307h mov al,5h;,

21、使PC2为高,发出OE out dx,al mov dx,304h;从A口读数据 in al,dx MOV DX,305H;从B口向LED输出数据 OUT DX,AL CALL DISP ;向屏幕输出数据 MOV AL,62H ;发中断结束命令 MOV DX,0A0H OUT DX,AL ;向从片发EOI命令 OUT 020H,AL ;向主片发EOI命令 STI ;开中断 POP DX POP AX IRETLEDLIGHT ENDPCODE ENDS END START九收获、体会和建议过这次课程设计,我学到了很多东西,在电路设计和具体连线方面有了很大进步,对汇编语言程序设计加深了理解和掌握,对芯片也有了更清楚的认识。在试验是我们连个人分工合

温馨提示

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

评论

0/150

提交评论