微机课程设计DA与AD转换电路实现.docx
《微机课程设计DA与AD转换电路实现.docx》由会员分享,可在线阅读,更多相关《微机课程设计DA与AD转换电路实现.docx(22页珍藏版)》请在冰豆网上搜索。
微机课程设计DA与AD转换电路实现
微机原理课程设计
题目:
DA与AD接口电路设计
班级:
08通信<1>班
姓名:
田茂刚
学号:
P0*******5
成绩:
A/D与D/A的接口电路设计
【摘要】:
随着社会的发展,模拟量与数字量在我们的生活中的作用越来越重要,特别是在图像处理与通信系统中应用及为广泛。
因此,AD与DA的转换的精度与效率就越发重要了,本次课程设计主要利用8086CPU为核心控制器,DA0832为数模转换核心、AD0809为模数转换核心来实现对输入信号进行模数与数模的转换,同时在微机监测与控制系统中芯片与外界进行信息交换就必须进行AD与DA转换,在通信中AD与DA转换的应用占主导地位。
【关键字】:
8086CPUDA与AD转换通信系统
一、前言
1.1设计背景
随着科学技术的发展,由于微机只能处理数字化的信息,而在实际应用中被控对象常常是连续变换的物理量,因此,微机用于测控系统时需要有能吧模拟信号转换成数字信号的接口,以便于能对被控制对象进行处理和控制。
A/D与D/A转换器就承担这样的任务,它适用于工业自动化控制,数据采集等许多领域。
信号与图像的的DA与AD转换在气象卫星遥感图象数据传输、导航系统、雷达、遥测遥控中应用非常广泛,特别是在自动控制中。
模数转换最早应用于电话中把语音信号转化为数字信号进行传输,然后再把数字信号解码出来。
现在,DA与AD有着多种应用形式,包括自动控制系统,各种通信系统以及图像处理等。
DA技术是把数字信号转化为模拟信号的技术,AD技术是把模拟信号转化为数字信号的一种技术。
利用这一原理,可以实现许多复杂与难于传输的信号的控制,因此设计一个高效而精确度高的电路是至关重要的。
1.2设计目的
(1)提高我们自身对电路与程序设计与分析的能力与思想,加强知识的运用能力,将课堂所学知识运用到实际生活中去。
(2)进一步理解数模与模数转换的过程,熟悉8086微处理器在各种系统中的运用。
(3)掌握芯片DA0832与AD0809的工作特性作用,同时熟掌握汇编语言程序的编程方法。
(4)同时了解DA与AD在自动控制系统以及在通信系统、图像处理中的应用。
1.3设计意义
(1)《微型计算机原理与接口技术》是一门专业考查课程,它主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。
要求我们对微机原理中的基本概念有较深入的了解,能够系统地掌握微型计算机的结构、8086微处理器和指令系统、汇编语言程序设计方法、微机系统的接口电路设计及编程方法等,并具有综合运用所学知识分析问题和解决问题的能力。
(2)我们知道当我们用计算机来构成数据采集或者是过程控制等系统时,所要采集的外部信号或被控制对象的参数,往往是温度,压力,流量,声音和位移等连续变化的模拟量。
但是,计算机只能处理不连续的数字量,即离散的有限值。
因此,必须用模数转换器即A/D转换器将模拟信号变成数字量后才能送入计算机进行处理。
(3)计算机处理后的结果也必须通过数模转换器即D/A转换器转换成模拟量后,在示波器上显示结果波形和在记录仪上描述下来,或者是驱动执行部件,才能达到控制目的。
可见模数或数模转换在构成一个控制系统中起着非常重要的作用。
我们这里通过设计这个数字信号发生器,可以使我们加深对该转换过程的认识和理解,有利于以后的学习及设计一个控制系统。
1.4设计要求
设计一个具有8位A/D变换器和一个8位D/A变换器的外设接口路。
1.5设计工具
计算机VC++6.0软件PROTEUS软件
1.6设计流程
微型计算机由微处理器,存储器,接口电路以及连接在这些部件上的总线组成。
微处理器,存储器和所有I\O设备之间的信息交换都通过总线进行。
总线包括地址总线,数据总线和控制总线,他们始于CPU或终于CPU,现代微机大部分都是这种以总线为中心的结构。
8088CPU的地址\数据总线AD15-AD0和地址\状态总线A16/S3-A19/S6是复用的,必须通过地址锁存器把地址总线和数据总线分离。
控制总线直接和8088CPU相连,这样8088CPU就工作在最小工作方式。
微型计算机及外围设备组成微型计算机系统的硬件,外围设备必须通过接口电路才能与系统总线相连,因此构建一个基于8088CPU的简单微型计算机系统就是工作于最小工作方式的8088CPU系统总线上挂上一定规模的存储器和接口电路,然后在把合适的外围设备连接到接口电路上。
一个基于8088CPU的简单微型计算机系统框图如图所示。
图中键盘与显示器作为外围设备通过接口芯片与系统总线相连。
图1系统总体框图
提出设计方案
小组讨论
拟定电路方案
电路连接
程序编写
运行正确
仿真调试
结果测量
指标满足?
设计结束
程序编译连接
重编程序
修改电路方案
二、元件原理介绍
为了能让电路能够更加清晰可见,下面对各个元件进行分析
总的电路图如下所示:
图2总电路图
2.1CPU8086简介
1、8086微处理器内部基本结构
8086的内部结构从功能分成两个单元:
总线接口单元BIU——管理8086与系统总线的接口,负责CPU对存储器和外设进行访问
执行单元EU——负责指令的译码、执行和数据的运算,两个单元相互独立,分别完成各自操作,两个单元可以并行执行,实现指令取指和执行的流水线操作
8086的内部结构
1234
内部暂存器
IP
ES
SS
DS
CS
控制电路
外部总线
控制电路
∑
ALU
标志寄存器
AHAL
BHBL
CHCL
DHDL
SP
BP
SI
DI
通用寄存器
地址加法器
指令队列
执行部件(EU)
总线接口部件(BIU)
16位
20位
8位
8位
段寄存器
图38086的内部结构
2、8086CPU寄存器结构
(1).通用寄存器AX/BX/CX/DXBP/SPDI/SI
(2).指令指针寄存器IP
(3).标志寄存器1PSW
(4).段寄存器4CS/SS/DS/ES
8086CPU内部寄存器如图示
图48086CPU内部寄存器
3、8086总线的工作周期
时钟周期(ClockCycle):
执行指令的一系列操作都是在时钟脉冲CLK的统一控制下逐步进行的,一个时钟脉冲时间称为一个时钟周期(ClockCycle)。
时钟周期由计算机的主频决定,是CPU的定时基准,例如,8086的主频为5MHz则1个时钟为200ns。
8086CPU与外部交换信息总是通过总线进行的。
CPU从存储器或外设存或取一个字节或字所需的时间称为总线周期(BusCycle)。
一个基本的总线周期由四个时钟周期组成,分别称为T1、T2、T3和T4时钟周期,或T状态(State)。
指令周期:
一条指令的执行包括取指令、分析指令和执行指令。
一条指令从开始取指令到最后执行完毕所需的时间称为一个指令周期。
4.8086微处理器外部基本引脚与工作模式
两种组态构成两种不同规模的应用系统,最小组态模式,构成小规模的应用系统,8088本身提供所有的系统总线信号,最大组态模式构成较大规模的应用系统,例如可以接入数值协处理器8087,。
8088和总线控制器8288共同形成系统总线信号
两种组态利用MN/MX*引脚区别。
MN/MX*接高电平为最小组态模式,MN/MX*接低电平为最大组态模式,两种组态下的内部操作并没有区别。
8086微处理器外部基本引脚:
图58086微处理器外部基本引脚
总线周期
IO/M*
WR*
RD*
存储器读
低
高
低
存储器写
低
低
高
I/O读
高
高
低
I/O写
高
低
高
图58086读写时序
2.2DAC0832简介
1.D/A转换器工作时,只要CPU把数据送到它们的输入端,就开始转换,而不需要专门的控制信号触发转换开始。
同时,D/A转换器也不提供转换结束之类的状态信号,所以CPU向DAC传送数据时,也不必查询DAC的状态是否准备好,只要两次传送数据之间间隔不小于DAC的转换时间,都能得出正确的结果
2.8位D/A转换器接口设计
8位D/A转换器DAC0832
(1)内部结构及引脚功能
图6DAC0832内部结构
(2).DAC0832输出方式
DAC0832是电流型输出的,有电流输出1(IOUT1)和电流输出(IOUT2),IOUT1+IOUT2=常数。
由于大部分器件是电压型的,因此需将电流信号转换为电压信号,对于DAC0832而言,在其输出端接一运算放大器即可。
根据不同的应用,DAC0832可以接成单极性输出,也可以接成双极性输出方式。
单极性工作输出接线如图所示:
图7单极性工作输出接线
双极性工作输出接线如图所示:
图8双极性工作输出接线
(3).DAC0832与CPU的连接
1)单缓冲工作方式
按单缓冲工作方式,它与CPU的连接电路如图所示:
图9单缓冲工作方式
2)双缓冲工作方式:
图10双缓冲工作方式
(4).DAC0832引脚功能简介
图11DAC0832引脚功能
DI0-DI7:
数据输入线,TLL电平。
ILE:
数据锁存允许控制信号输入线,高电平有效。
CS:
片选信号输入线,低电平有效。
WR1:
为输入寄存器的写选通信号。
XFER:
数据传送控制信号输入线,低电平有效。
WR2:
为DAC寄存器写选通输入线。
Iout1:
电流输出线。
当输入全为1时Iout1最大。
Iout2:
电流输出线。
其值与Iout1之和为一常数。
Rfb:
反馈信号输入线,芯片内部有反馈电阻.
Vcc:
电源输入线(+5v~+15v)
Vref:
基准电压输入线(-10v~+10v)
AGND:
模拟地,摸拟信号和基准电源的参考地.
DGND:
数字地,两种地线在基准电源处共地比较好.
2.3ADC0809简介
1.主要性能指标
ADC0809是CMOS数据采集器件,它不仅包括一个8位的逐次逼近型的A/D部分,而且还提供一个8通道的模拟多路开关和联合寻址逻辑。
2.内部结构及引脚功能
ADC0809的原理框图如图所示:
图12ADC0809内部结构及引脚
3.ADC0809与8086CPU接口
(1)查询法
ADC0809与CPU采用查询法的接口电路,如图所
图13查询法的接口电路
(2)中断法
ADC0809与8086CPU采用中断响应的接口电路如图:
图14中断响应的接口电路
4.ADC0809引脚功能简介
图15ADC0809引脚功能
IN7~IN0——模拟量输入通道
ALE——地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中
START——转换启动信号。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。
本信号有时简写为ST.
A、B、C——地址线。
通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC
CLK——时钟信号。
ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。
通常使用频率为500KHz的时钟信号
EOC——转换结束信号。
EOC=0,正在进行转换;EOC=1,转换结束。
使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
D7~D0——数据输出线。
为三态缓冲输出形式,可以和单片机的数据线直接相连。
D0为最低位,D7为最高
OE——输出允许信号。
用于控制三态输出锁存器向单片机输出转换得到的数据。
OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。
Vcc——+5V电源。
Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
其典型值为+5V(Vref(+)=+5V,Vref(-)=-5V).
2.4可编程并行接口8255简介
1.引脚简介
8255A是一个单+5V电源供电,40个引脚的双列直插式组件,其外部引线如图所示:
图168255引脚图
(1)外部引脚
1)面向数据总线的有:
D0~D7:
双向数据线,用于CPU向8255A发送命令、数据和8255A向CPU回送状态、数据和8255A向CPU回送状态、数据。
2)面向地址总线的有:
RD:
读信号,低电平有效。
WR:
写信号,低电平有效。
RESET:
复位信号,高电平有效。
它清除控制寄存器并将8255A的A、B、C三个端口均置为输入方式;输入寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设信号线呈现高阻悬浮状态
PA0~PA7:
端口A的输入/输出线。
PB0~PB7:
端口B的输入/输出线。
PC0~PC7:
端口C的输入/输出线。
这24根信号线均可用来连接I/O设备和传送信息。
其中,A口和B口只作输入/输出的数据口用,尽管有时也利用它们从I/O设备读取一些状态信号,如打印机的“忙”(Busy)状态信号、A/D转换器的“转换结束”(EOC)状态信号,但对A口和B口来说,都是作8255A的数据口读入,而不是作8255A的状态口读入的。
C口的作用与8255A的工作方式有关,它除了作数据口以外,还有其他用途,故C口的使用比较特殊,单独介绍如下:
a.作数据口。
b.作状态口。
c.作专用(固定)联络(握手)信号线。
d.作按位控制用。
(2)内部结构
8255A的内部结构如图所示。
它由以下4个部分组成
图178255A的内部结构
①数据总线缓冲器。
这是一个三态双向8位缓冲器,它是8255A与CPU系统数据总线的接口。
②读/写控制逻辑。
读/写控制逻辑由读信号RD、写信号WR、选片信号CS以及端口选择信号A1A0等组成。
③输入/输出端口A、B、C。
8255A包括3个8位输入输出端口(port)。
每个端口都有一个数据输入寄存器和一个数据输出寄存器。
④A组和B组控制电路。
控制A、B和C三个端口的工作方式。
2.8255A基本操作与端口地址
图188255A基本操作与端口地
本次设计还用到74LS138译码器,由于在《数电》中接触过,且较简单,在此处不作介绍。
三、实验结果
图19实验结果图
四、设计总结
通过本次的课程设计,我认识到课本上的知识的实际应用,以及A/D、D/A转换器在计算机等各种智能电子领域有着广泛应用,激发了学习兴趣,增强了思考和解决实际问题的能力。
这次做课程设计,给我留下了很深的印象。
上了三年大学,学了三年电子,发觉自己竟然连一只三极管还没有学会。
看来做什么都要有追根求底的精神。
不然什么都只是知道,却什么都不精通,这是将来走上社会最忌讳的。
虽然只是短暂的一周,但在这期间,却让我受益匪浅。
整设计过程中,我发现了自己对于课本上的知识有很多的不足,并且对知识运用不够灵活,对一些元器件的功能不是很了解,看到了自己的实践经验还是比较缺乏,理论联系实际的能力急需提高。
团队协作都非常总要的,通过团队的讨论,然后在分工明确,做到有条不紊。
这样节省了很多的时间,这是我们这次课程设计能够完成的关键。
每个人都能够互相帮助,互相督促,集思广益,不断地完善电路。
这次课程设计让我认识到了知识和实践的重要性。
只有牢固掌握了所学的知识,才能有清晰的思路,知道每一步该怎样走。
才能顺利的解决每一个问题。
就以这次课程设计为例,刚拿到题目的时候,大致看一下要求,根据平时所学的知识,脑海中就立刻会想到应该用到的元器件,然后再去图书馆去查这些元器件的资料,很快地初步方案以及大概的电路原理图就出来了。
但是,在具体的细节设计上,我却不知道为什么,从而明白了自己基础知识掌握得不牢固。
所以,这次课程设计在让我认识了知识的重要性之外,更让我明白了自己理论知识和实践知识的欠缺。
这次课程设计虽然结束了,但是在这期间所学的知识和老师的指导却让我难以忘记。
参考文献
【1】高志伟宋雅娟《VisualC++程序设计教程与上机指导》北京大学出版社
【2】杨振江《A/D.D/A转换器技术》西安电子科技大学出版社
【3】朱清慧张凤蕊翟天《Proteus教程—电子线路设计、制版与仿真》清华大学出版社
【4】许立梓等编《微型计算机原理及应用》--习题解答、实验指导及课程设计.北京:
机械工业出版社,2003
【5】周明德.微型计算机系统原理及应用.北京:
清华大学出版社,2006
附:
程序代码
voidmain(void)
{
_asm{
start:
movdx,04a6h//8255控制寄存器
movax,99h
outdx,ax
//0809初始化如下
fil1:
movax,segtabble
movds,ax
movsi,offsettabble
movbl,0
movcl,16
goon:
moval,bl
movdx,o4a2h//送出路地址
oral,80h
outdx,al
andal,7fh
outdx,al
nop
eoct:
movdx,o4a4h//读EOC状态
inal,dx
andal,01h
jzeoct
movdx,04a0h//读A/D变换器内容
inal,dx
mov[si],al
movdx,04aeh//从D/A转换器输出
outdx,[si]
incsi
incbl
deccl
jnzgoon
movdx,04a2h
moval,0
outdx,al
ret
}
}
其中给ADC0809分配的地址空间为04a0、04a2、04a4、04a6。
给DAC0832分配的地址空间为04ae