微机接口技术课程设计.docx

上传人:b****2 文档编号:516391 上传时间:2023-04-29 格式:DOCX 页数:16 大小:195.25KB
下载 相关 举报
微机接口技术课程设计.docx_第1页
第1页 / 共16页
微机接口技术课程设计.docx_第2页
第2页 / 共16页
微机接口技术课程设计.docx_第3页
第3页 / 共16页
微机接口技术课程设计.docx_第4页
第4页 / 共16页
微机接口技术课程设计.docx_第5页
第5页 / 共16页
微机接口技术课程设计.docx_第6页
第6页 / 共16页
微机接口技术课程设计.docx_第7页
第7页 / 共16页
微机接口技术课程设计.docx_第8页
第8页 / 共16页
微机接口技术课程设计.docx_第9页
第9页 / 共16页
微机接口技术课程设计.docx_第10页
第10页 / 共16页
微机接口技术课程设计.docx_第11页
第11页 / 共16页
微机接口技术课程设计.docx_第12页
第12页 / 共16页
微机接口技术课程设计.docx_第13页
第13页 / 共16页
微机接口技术课程设计.docx_第14页
第14页 / 共16页
微机接口技术课程设计.docx_第15页
第15页 / 共16页
微机接口技术课程设计.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机接口技术课程设计.docx

《微机接口技术课程设计.docx》由会员分享,可在线阅读,更多相关《微机接口技术课程设计.docx(16页珍藏版)》请在冰点文库上搜索。

微机接口技术课程设计.docx

微机接口技术课程设计

河北科技大学

课程设计报告

学生姓名:

学号:

专业班级:

电子信息工程班

课程名称:

微机接口技术课程设计

学年学期:

2014—2015学年第二学期

指导教师:

王震洲

2015年7月

课程设计成绩评定表

学生姓名

学号

成绩

专业班级

起止时间

2015年7月6日—7月10日

设计题目

数字存储示波器设计

 

指导教师:

年月日

一、课程设计目的及意义…………………………………………………1

二、课程设计任务及要求…………………………………………………1

3、设计内容与步骤………………………………………………………1

4、硬件电路设计…………………………………………………………2

五、程序设计……………………………………………………………7

六、数字频率示波器调试………………………………………11

七、课程设计总结及体会………………………………………13

附录:

A/D、D/A接口实验卡电路原理图……………………14

 

一、课程设计目的及意义

数字存储示波器是常用的电子测量仪器之一,其中采用的A/D转换、D/A转换及数据处理技术与《微机接口技术》课程内容联系紧密。

通过本设计,学生可掌握A/D、D/A转换电路的设计和调试方法,培养学生分析解决实际问题的能力。

二、课程设计任务及设计要求

本设计通过简单的A/D转换接口电路,配合汇编语言程序设计,实现最基本的信号波形采集与存储,并通过简单的D/A转换接口电路,将存储的数据还原为信号波形,在普通示波器的屏幕上显示出来。

被测信号产生电路参见“A/D、D/A接口实验扩展卡电路原理图”。

当按下S1时,电容C5完全放电,A/D转换器输入电压为零;抬起S1时,电容C5开始充电,A/D转换器输入电压按RC过渡过程开始上升,最终达到+5V。

图中RC时间常数约为10ms,整个充电过程需要3~5倍的RC时间常数时间。

设计要求使用A/D转换器捕捉电容C5充电的完整过程,并将采样数据存储起来。

然后依次将采样数据通过D/A转换器循环输出,产生一定频率的重复波形,送到普通示波器显示。

基本要求:

使用一个D/A转换器通道,将信号波形施加到示波器的Y轴,X轴扫描信号由示波器产生并调节,实现RC充电过程的波形稳定显示。

发挥部分:

将示波器调整在X-Y方式,采样数据的D/A转换器输出接到Y轴输入端,增加一个D/A转换器通道,产生频率可变的X轴扫描信号,接到示波器X轴外部输入端,使RC充电过程的波形稳定显示。

3、设计内容与步骤

1、数字存储示波器原理分析

由于单片机实验系统已经提供了相关信号线,使用ADC0809、DAC0832和相关外围电路元件,组成了最基本的A/D转换和D/A转换电路。

可由ADC0809负责采集电容C5充电时的信号,并将其转换为数字信号,并存储。

DAC0832将存储的数字信号,转换为模拟的电压值,再将其设置为循环输出,产生一定频率的重复波形,送到普通示波器显示。

2、

数字存储示波器总体结构框图

图1总体方案设计

四、硬件电路设计

1、ADC0809工作原理

ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

(1)ADC0809的内部逻辑结构

ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

 

图2ADC0809引脚图

(2)ADC0809原理及使用

图1

ADC0809对输入模拟量要求:

信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:

4条

ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进入转换器进行转换。

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

数字量输出及控制线:

11条

ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。

数字输出为TTL电平,三态输出,时钟频率一般为640KHz(典型),转换时间为100μs,输入电压范围:

0V~VREF,转换方式为逐次逼近式,输出:

2、DAC0832工作原理

DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。

D/A转换结果采用电流形式输出。

若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。

运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。

DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。

(1)DAC0832内部结构

图3DAC0832内部结构及引脚图

DAC0832的内部结构如图3所示。

DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的锁存信号为ILE;第二级锁存器称为DAC寄存器,它的锁存信号为传输控制信号

因为有两级锁存器,DAC0832可以工作在双缓冲器方式,即在输出模拟信号的同时采集下一个数字量,这样能有效地提高转换速度。

此外,两级锁存器还可以在多个D/A转换器同时工作时,利用第二级锁存信号来实现多个转换器同步输出。

图3中LE为高电平、

为低电平时,

为高电平,输入寄存器的输出跟随输入而变化;此后,当

由低变高时,

为低电平,资料被锁存到输入寄存器中,这时的输入寄存器的输出端不再跟随输入资料的变化而变化。

对第二级锁存器来说,

同时为低电平时,

为高电平,DAC寄存器的输出跟随其输入而变化;此后,当

由低变高时,

变为低电平,将输入寄存器的资料锁存到DAC寄存器中。

(2)DAC0832原理及使用

数字量的值是由每一位的数字权叠加而得的,由电阻网络和运算放大器构成的D/A转换器.在D/A转换中采用独立的权电阻网络,对于一个8位二进制数的D/A转换器,就需要R,2R,4R,…,128R共8个不等的电阻,最大电阻阻值是最小电阻阻值的128倍,而且对这些电阻的精度要求比较高。

如果这样的话,从工艺上实现起来是很困难的。

所以,n个如此独立输入支路的方案是不实用的。

在DAC电路结构中,最简单而实用的是采用T型电阻网络来代替单一的权电阻网络,整个电阻网络只需要R和2R两种电阻。

在集成电路中,由于所有的组件都做在同一芯片上,电阻的特性可以做得很相近,而且精度与误差问题也可以得到解决。

图4是采用T型电阻网络的4位D/A转换器。

4位元待转换资料分别控制4条支路中开关的倒向。

在每一条支路中,如果(资料为0)开头倒向左边,支路中的电阻就接到地;如果(资料为1)开关倒向右边,电阻就接到虚地。

所以,不管开关倒向哪一边,都可以认为是接“地”。

不过,只有开关倒向右边时,才能给运算放大器输入端提供电流。

图4T型电阻网络的4位D/A转换器

T型电阻网络中,节点A的左边为两个2R的电阻并联,它们的等效电阻为R,节点B的左边也是两个2R的电阻并联,它们的等效电阻也是R,…,依次类推,最后在D点等效于一个数值为R的电阻接在参考电压VREF上。

这样,就很容易算出,C点、B点、A点的电位分别为-VREF/2,-VREF/4,-VREF/8。

在清楚了电阻网络的特点和各节点的电压之后,再来分析一下各支路的电流值。

开关S3,S2,S1,S0分别代表对应的1位二进制数。

任一资料位Di=1,表示开关Si倒向右边;Di=0,表示开关Si倒向左边,接虚地,无电流。

当右边第一条支路的开关S3倒向右边时,运算放大器得到的输入电流为-VREF/(2R),同理,开关S2,S1,S0倒向右边时,输入电流分别为-VREF/(4R),-VREF/(8R),-VREF/(16R)。

如果一个二进制数据为1111,运算放大器的输入电流

I=-VREF/(2R)-VREF/(4R)-VREF/(8R)-VREF/(16R)

=-VREF/(2R)(20+2-1+2-2+2-3)=-VREF/(24R)(23+22+21+20)

相应的输出电压V0=IR0=-VREFR0(24R)(23+22+21+20)

将资料推广到n位,输出模拟量与输入数字量之间关系的一般表达式为:

V0=-VREFR0/(2nR)(Dn-12n-1+Dn-22n-2+…+D121+D020)(Di=1或0)

上式表明,输出电压V0除了和待转换的二进制数成比例外,还和网络电阻R、运算放大器反馈电阻R0、标准参考电压VREF有关。

DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。

如图5所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。

运算放大器输出的模拟量V0为:

由上式可见,输出的模拟量与输入的数字量(

)成正比这就实现了从数字量到模拟量的转换。

图5DAC0832直流输出型8位数/模转换器

一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。

输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。

3、硬件设计思路

由于本次课设利用现有的单片机实验系统板,系统板已经提供了相关信号线及ADC0809、DAC0832和相关外围电路元件,组成了最基本的A/D转换和D/A转换电路。

所以此次设计就变得相对简单。

可由ADC0809采集电容C5充电时的信号,并将其转换为数字信号,并存储。

DAC0832将存储的数字信号,转换为模拟的电压值,再将其设置为循环输出,产生一定频率的重复波形,送到普通示波器显示。

五、程序设计

1、数字存储示波器程序设计

根据数字存储示波器的基本工作原理编写实验程序,实现触发点的捕捉、被测信号的采集和数据的存储以及信号波形的再现功能。

参考程序流程如下:

地址+1

 

数据采集

N

S1按下吗?

 

N

Y

 

N

Y

 

程序“开始”部分是初始化内容,包括指定堆栈指针SP(例如:

50H);设定采集数据的存储首地址,本设计为单片机外部RAM的C000H。

“数据采集”部分包括启动A/D转换、执行延时程序(延时时间可设定在200μs)等待转换结束、取回转换结果,为S1是否按下提供参考数据。

“S1按下吗?

”部分为按键S1是否按下判断程序。

本设计采用上升沿触发方式,S1按下时产生下降沿。

当A/D采样数据大于判断点(例如:

20H)时,表明按键尚未按下,当A/D采样数据小于触发点时,表明按键已经按下,转入触发检测环节,循环存储采样数据。

当A/D采样值重新上升到大于或等于触发点数据时,便认为触发信号到来,转入下面的采样程序。

“采集并存储”部分包括启动A/D转换、执行延时程序等待转换结束、取回转换结果并存储到C000H开始的RAM中和存储器地址加1,为下次存储做准备等程序。

其中延时程序决定了数据采样周期,采样周期(延时时间)可初步设定在200μs,全部程序调试完成后,再尝试改变采样周期,观察采样周期变化对重现被测信号波形的影响,并说明原因。

本设计数据存储深度为256字节,存满256字节后自动从头开始刷新。

可用DPTR做数据指针,利用INCDPL指令实现DPTR在C000H~C0FFH之间自动循环。

“有触发吗?

”部分为触发点(触发点数据要大于等于S1按下判断点数据)判断程序。

本设计采用上升沿触发方式,当A/D采样数据小于触发点时,表明按键按下尚未抬起,继续循环存储采样数据。

当A/D采样值上升到大于或等于触发点数据时,表明按键按已抬起,便认为触发信号到来,转入下面的采样程序。

“设定存储字节数”程序将触发后的采样点数设定在128个字节。

接下来的“采集并存储”部分与前面叙述的完全相同。

“完成吗?

”判断128个字节的采样是否完成,如果完成就进入下面的D/A转换程序。

这样在256个字节的存储器中,就包含了触发前、后各128字节的采样数据,可完全记录电容C5充电前后的电压变化波形。

“设定初始地址”部分将数据指针(例如:

DPTR)重新设定在C000H。

“输出存储的数据”程序将数据存储器中的A/D采样值送到D/A转换器输出。

“地址+1”程序修改数据指针的低8位地址,使数据存储器地址在C000H~C0FFH之间自动循环。

这样便可以通过D/A转换器反复重现电容C5充电过程的完整波形,实现存储波形的稳定显示。

2、参考程序:

(1)、基本程序清单:

ORG:

0100H

地址机器码

MOVDPTR#0F006H0100H90F006;初始化

MOVP2#0C0H0103H75A0C0

MOVR0#00H0106H7800

NEXT:

LCALLAD0108H120300

CLRC010BHC3

CJNEA,#20H,CP010CHB42000;判断有键是否按下

CP:

JNCNEXT010FH50F7;没键按下继续判断

P1:

LCALLAD0111H120300;有键按下存储数据

MOVX@R0,A0114HF2

INCR00115H08

CLRC0116HC3

CJNEA,#30H,P20117HB43000;判断按键是否抬起

P2:

JCP1011AH40F5;按键不抬起继续判断按键抬起

MOVP2,#0C0H011CH75A0C0;有键抬起存储128个充电数

MOVR3,#80H011FH7B80

P3:

LCALLAD0121H120300

MOVX@R0,A0124HF2

INCR00125H08

DJNZR3,P30126HDBF9

DA:

MOVP2,#0C0H0128H75A0C0;DA转换部分

MOVR0,#00H012BH7800

P4:

MOVDPTR,#0F800H012DH90F800

MOVXA,@R00130HE2

MOVX@DPTR,A0131HF0

INCR00132H08

SJMPP40133H80F8;无限循环

AD子程序ORG:

0300H

AD:

MOVDPTR,#0F006H0300H90F006;AD转换子程序

MOVX@DPTR,A0303HF0

LCALLDELAY0304H120400

MOVXA,@DPTR0307HE0

RET0308H22

延时子程序ORG:

0400H

DELAY:

MOVR6,#32H0400H7E32;延时子程序

DJNZR6,$0402HDEFE

RET0403H22

发挥部分

将DA部分改为

DA:

MOVP2,#0C0H0128H75A0C0

MOVR0,#00H012BH7800

MOVR5,#00H012DH7D00

P4:

MOVDPTR,#0F800H012FHE2

MOVXA,@R00130H90F800

MOVX@DPTR,A0133HF0

MOVDPTR,#0F400H0134H90F400

MOVA,R50137HED

MOVX@DPTR,A0138HF0

INCR00139H08

INCR5013AH0D

SJMPP4013BH80F2

六、数字存储示波器调试

1、硬件电路调试及方法

图1中RP2为参考电压调节电位器,RP3为VO1输出的调零电位器,RP1为VO1输出的满度调节电位器。

RP4为参考电压调节电位器,RP5为ADC0809的IN-7输入电压调节电位器。

可以通过SW1-3改变参考电压的极性(SW1-3闭合时为-5V)。

2、程序调试方法及过程

存储示波器的硬件电路调试分为A/D和D/A两个部分,参见附录电路原理图。

A/D转换器部分只要调节RP4使基准电压VREF2为最大值(VCC)即可。

D/A转换器部分,首先调节RP2和SW1-3,使基准电压VREF1为-5.00V。

然后向D/A转换器写入00H,调节RP3,使VO1输出电压为0V;再向D/A转换器写入FFH,调节RP1,使VO1输出电压为5.00V。

存储示波器的控制程序可分为三个步骤进行调试:

(1)A/D转换部分调试。

无条件循环执行数据采集和存储程序,分别在S1按下和抬起状态终止程序的执行(按MON键),观察存储器中采集到的数据是否全部为00H或FFH。

如果是,则说明A/D转换和数据存储程序工作正常,否则说明A/D转换和数据存储程序没有正常工作。

(2)D/A转换部分调试。

将存储器中输入一些有规律的数据,例如多个FFH和OOH,循环执行D/A转换程序,看示波器中是否有对应的高、低电压波形出现。

如果有,则说明D/A转换程序工作正常,否则说明D/A转换程序没有正常工作。

(3)触发点捕捉部分调试。

连续执行全部程序,在不断的按下和抬起S1时,按下MON键,根据当前的PC值,确定程序终止在哪个部分的循环程序中,判断相关指令的使用是否正确。

在程序调试期间出现了很多问题:

在S1按下和抬起状态终止程序的执行(按MON键),观察存储器中采集到的数据不全部为00H或FFH,既没有采集到数据,导致不能循环输出存储器中采集到的数据,经过仔细分析采集数据和存储的过程,发现跳转的偏移量计算错误。

纠正错误后C000H里储存的数据变化正确,但示波器中波形出现是干扰波,不是理想充电波形。

通过单步执行程序发现在D/A输出的时候,程序机器码查错了,经过调试终于出现了预期的波形。

RC充电过程波形发挥部分波形

 

七、课程设计总结及体会

此次课程设计,我学到了很多课内学不到的东西。

在设计过程中应用到了实验中的A/D、D/A转换实验,前面的实验基础对这次课设有很大帮助,完成后我更加了解了A/D、D/A接口实验扩展卡电路原理图及其工作原理;在查阅资料的过程中也对DAC0832芯片和ADC0809芯片的外部引脚和内部结构有了总体的认识;由于在设计过程中要用到数据的存储因此对单片机中RAM区数据的读写也得到了巩固;D/A、A/D转换中涉及到的数据指针初始化是对单片机片选信号的分析;在用示波器调试RC充电波形的同时也是对示波器的使用及调节的一种检验。

只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力。

课下将程序编写好,开始我将触发后的采集数据固定的存放在某个地址后,但通过对数字存储示波器的进一步理解,我纠正了自己的错误,改写程序并进行调试,程序跳转、偏移量的计算还有机器码的正误,都特别重要,每个环节都不能出错,开始时在C000H开始后的存储数据随机,即没有存入采样数据,修改了跳转语句的偏移量后,RAM的存储数据呈现规律变化,可是示波器却显示不出波形,多次调试都无法实现,后来无奈发现机器码差错了。

最后波形正确,课设结束。

通过课程设计加深了对《微机接口技术》、《电子测量技术》和《单片机原理及应用》等课程知识的掌握与综合运用能力,提高了以图纸和说明书表达设计思想和结果的能力,培养了在实际工程设计中严谨认真的工作态度、创新意识及动手能力,为后续课程的学习以及毕业后从事微机硬件及软件开发打下基础,积累初步的经验以及自己的一些见解。

 

附录:

A/D、D/A接口实验扩展卡电路原理

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2