ADC0809单通道模拟电压采集电路.docx
《ADC0809单通道模拟电压采集电路.docx》由会员分享,可在线阅读,更多相关《ADC0809单通道模拟电压采集电路.docx(15页珍藏版)》请在冰豆网上搜索。
![ADC0809单通道模拟电压采集电路.docx](https://file1.bdocx.com/fileroot1/2022-10/26/6c21d39c-27fc-4617-906f-6b94bb061e95/6c21d39c-27fc-4617-906f-6b94bb061e951.gif)
ADC0809单通道模拟电压采集电路
微型计算机技术
课程设计
指导教师:
程世旭刘元超
学生班级:
计科10606班
学生姓名:
古莹
学号:
6
班内序号:
4
课设日期:
2009年9月14日~2009年9月27日
一.设计目的
二.实验平台和所用器材
三.设计内容
四.设计原理
五.程序流程图
六.调试分析
七.原理图设计
八.程序清单
九.收获、体会和建议
一设计目的
1.通过本设计,使学生综合运用《微型计算机技术》、《汇编语言程序设计》以及电子技术等课程的内容,为以后从事计算机检测与控制工作奠定一定的基础。
2.主要掌握并行I/O接口芯片8253、8255A、ADC0809及中断控制芯片8259A等可编程器件的使用,掌握译码器74LS138的使用。
3.学会用汇编语言编写一个较完整的实用程序。
4.掌握微型计算机技术应用开发的全过程:
分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。
二实验平台和所用器材
本实验是在windowsXP操作系统上实现的,程序的开发环境是用实验室的课设平台,所用到的器材如下:
1一块实验面包版(内含时钟电路)。
2可编程芯片8253、8255A、ADC0809和译码器芯片74LS138、74LS245各一片。
3可调电位器4.7KΩ一个、发光二极管8个、74LS06芯片2个。
4导线若干。
5示波器、万用表、常用工具等。
三设计内容
采用ADC0809设计一个单通道模拟电压采集电路,要求对所接通道的变化的模拟电压值进行采集,采集来的数字量一路送至发光二极管指示,一路送至计算机显示到屏幕上,每行显示5个数据,采集完100个数据后停止采集过程,采集过程中按下ESC键也可中断采集过程。
首先要求我们定义出选择菜单,给出显示界面。
1.8255的自检测
这部分要求我们初始化8255,为了能够正确的看出8255已经初始化,当8255初始化后向B口送数据0FH到发光二管上显示,如果能够正确显示就说明8255已经被初始化。
并且可以说明74LS245,8255,74LS06能够正常工作,并且他们的连线都正确。
1.8253的自检测
这部分要求我们初始化8253,8253初始化后可以通过示波器观察输出的波形是否满足要求。
3.进行A/D转换
这部分是本次课设的关键部分,在做此之前,必须保证8255和8253都被正确的初始化,通过8255的C口控制ADC0809对模拟数据的采集,然后从A口读取转换后的数据,一路送发光二极管显示,一路送显示器上显示,模拟量由电位器得到。
2.退出系统
如果用户需要结束程序,从菜单上选择此菜单即可退出程序.
四设计原理
1、使用Protues或Protel设计出正确电路原理图,设计原理如下:
,一端接地,调节电位器得到变化的模拟电压,该电压接至ADC0809的某一通道输入端(如IN0),ADC0809的时钟为500KHz,由8253对面包板上时钟1MHz或2MHz分频后得到,8253的端口地址:
300H~303H。
b.编程启动ADC0809转换(ADC0809完成一次转换的时间大约为120μs),将ADC0809的EOC引脚信号作为中断信号,若转换结束则进入中断服务程序。
在中断服务程序中读入模数转换结果,一路送至发光二极管显示,一路送至计算机显示到屏幕上。
c.8255A用做CPU和ADC0809间的接口芯片,ADC0809的控制信号(如OE、ALE、START等)可由8255A的PC口提供,模数转换后的数字量可经8255A的PA口读入,经8255A的PB口输出到发光二极管。
8255A端口地址:
304H~307H。
d.译码电路由74LS138提供。
74LS245用于总线和8255A之间的数据的双向传输和隔离。
◆MFPTPCI总线驱动板逻辑结构如图所示
◆芯片简介
(1)74LS245的功能表
●74LS245数据总路线缓冲器
●74LS245的功能表
(2)ADC0809简介
◆引脚信号
Ø提供一个8通道的多路开关和寻址逻辑
●IN0~IN7:
8个模拟电压输入端
●ADDA、ADDB、ADDC:
3个地址输入线
●ALE:
地址锁存允许信号
ØALE的上升沿用于锁存3个地址输入的状态,然后由译码器从8个模拟输入中选择一个模拟输入端进行A/D转换。
◆ADC0809的外部特性
◆ADC0809的数字输出
ADC0809内部锁存转换后的数字量
具有三态数字量输出端D0~D7
配合输出允许信号OE
当输出允许信号OE为高电平有效时,将三态锁存缓冲器的数字量从D0~D7输出
注:
其它的芯片查阅微型计算机技术的书。
(3)8255A与ADC0809的连接
(4)8253定时/计数器
Ø对8253进行编程,定时100ms后,产生中断,该定时信号(OUT0)送入到系统预留给用户的IRQ2(或IRQ10)引脚产生中断,在中断服务子程序中,启动一次ADC0809模数转换,ADC0809采用查询方式工作。
IRQ10中断向量号为72H
Ø8253的时钟(CLK0)取自MFID实验平台。
2、编写程序初始化8255和8253
(1)初始化8255:
8255有四个寄存器,地址为300h-303h,分别为A口,B口,C口,和控制口,首先要向C口写入控制字,控制字格式如下:
●工作方式控制
D7D6D5D4D3D2D1D0
特征位
1
A组方式选择
端口A输入/输出
C口高四位输入/输出
B组方式选择
端口B输入/输出
端口C低四位输入/输出
●C端口置位/复位控制
D7D6D5D4D3D2D1D0
特征位0
任意
位选择
置位/复位0为复位,1为置位
可用如下代码初始化8255:
MOVDX,307H;给8055控制口,初始化8255
MOVAL,98H;AL=10010000,写8255控制字,A口输入,B口输出,C口高/低四位输出
OUTDX,AL
(2)初始化8253
8253控制字格式如下:
D7D6D5D4D3D2D1D0
计数器选择
读写格式
工作方式
计数方式
MOVDX,303H;给8053控制字口
MOVAL,00010100B;计数器0工作在方式2,只低八位,用二进制
OUTDX,AL
MOVDX,300H;给计数器0初值2
MOVAL,2
OUTDX,AL
3、编写中断服务子程序
首先要设置好中断向量,这里是调用72H号中断,在里面写入A/D转换的中断服务子程序地址,所以要保存原来72H中断向量表里面的内容,最后在程序完成时要恢复72H里的内容,在执行这些操作的时候是不容许中断的,所以要关中断,操作完成后要开中断,可以用以下指令来完成:
MOVAX,3572H;获取原中断向量
INT21H
MOVINT0A_OFF,BX;保存x中断向量
MOVBX,ES
MOVINT0A_SEG,BX
CLI;关中断
MOVAX,2572H
MOVDX,SEGLEDLIGHT;设置新的中断向量
PUSHDS
MOVDS,DX
MOVDX,OFFSETLEDLIGHT
INT21H
POPDS
STI;开中断
要想启动0809进行转换,首先必须有一个start信号,该信号为:
数据采集之后,恢复中断向量,部分程序如下:
MOVAX,2572H;恢复中断向量
MOVDX,INT0A_SEG
PUSHDS
MOVDS,DX
MOVDX,INT0A_OFF
INT21H
POPDS
INAL,0A1H;屏蔽IRQ10
ORAL,04H
OUT0A1H,AL
MOVAX,4C00H;程序退出
INT21H
LEDLIGHTPROCFAR;中断服务程序
PUSHSI
PUSHAX
PUSHDX
CLI;关中断
MOVDX,307H
MOVAL,5H;AL=00000101使PC2口为高,读取转换结果到PA口
OUTDX,AL
MOVDX,304;从A口读取数据
INAL,DX
PUSHAX;先保存数据
SHOW:
ANDAL,0F0H;显示高四位
MOVCL,04
SHRAL,CL
CMPAL,9
JAHEX
ADDAL,30H
JMPNEXT
HEX:
ADDAL,37H
NEXT:
MOVDL,AL
MOVAH,2;输出显示高四位
INT21H
POPAX
ANDAL,0FH;显示低四位
CMPAL,9
JAHEX1
ADDAL,30H
JMPNEXT1
HEX1:
ADDAL,37H
NEXT1:
MOVDL,AL;输出数据
MOVAH,02H
INT21H
MOVDL,13;输入回车换行符
MOVAH,2
INT21H
MOVDL,10
MOVAH,2
INT21H
MOVAH,09H
MOVDX,OFFSETERROR
INT21H
NEXT2:
MOVAL,62H;发中断结束命令
MOVDX,0A0H
OUTDX,AL;向从片8259发EOI命令
OUT020H,AL;向主片8259发EOI命令
STI;开中断
POPDX
POPAX
POPSI
IRET
五.程序流程图
六.调试分析
进入主菜单后选择1进行8255的初始化,这时候会发现在实验板上的一半灯亮,一半灭;选择2后进入8253的初始化,可以用示波器观察输出的波形,选择3后进入A/D转换,将转换来的数据一路送二极管显示,一路送显示器。
七.原理图设计
八.程序清单
;在本程序中,8253的地址是H-303H,8355A的地址是H-307H,和KS4电路图对应
DATASEGMENT
INT0A_OFFDW(?
)
INT0A_SEGDW(?
)
COUNTDB(5)
SUMDB(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
DELAYPROC
PUSHCX
PUSHBX
MOVBX,0FFFH
LOOP2:
MOVCX,0FFFFH
LOOP1:
LOOPLOOP1
DECBX
JNZLOOP2
POPBX
POPCX
RET
DELAYENDP
DISPPROC
pushax
show:
andal,0f0h;显示高位
shral,4
cmpal,9
jahex
addal,30h
jmpnext
hex:
addal,37h
next:
movdl,al
movah,2
int21H
popax
andal,0fh;显示低位
cmpal,9
jahex1
addal,30h
jmpnext1
hex1:
add