微机原理与接口技术课程设计(报告)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖南科技大学潇湘学院信息与电气工程系
《微机原理与接口技术》
课程设计报告
题目:基于D/A转换器DAC0832的波形发生器设计
专业:通信工程
班级:通信002班
*名:***
学号:**********
指导老师:欧青立陈君宋芳
课程设计任务书
目录
一、课程设计的目的及意义 (1)
1.设计目的 (1)
2.设计意义 (1)
二、方案论证 (1)
1.设计要求 (1)
2.方案论证 (1)
三、硬件电路设计 (2)
1.波形产生电路 (2)
2.按键控制电路 (4)
3.地址译码电路 (7)
四、程序设计 (8)
1.波形发生原理 (8)
2.程序流程图 (9)
五、硬件连接及调试 (9)
1.硬件连接 (9)
2.电路调试 (9)
六、体会与心得 (10)
七、参考书目: (10)
八、附录 (10)
1.电路原理图 (11)
2.程序源码 (12)
一、课程设计的目的及意义
1.设计目的
(1)掌握计算机应用系统特别是微机接口系统的设计。

(2)掌握接口电路设计技术,初步掌握电子设计软件Protel99使用。

(3)掌握微机接口程序的编制与调试技术。

(4)掌握DAC0832芯片的使用方法。

(5)利用所学微机的理论知识进行软硬件整体设计,提高综合应用能力。

2.设计意义
波形发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。

在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。

信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。

它可以产生多种波形信号,如正弦波,三角波,方波等,因而广泛用于通信、雷达、导航、宇航等领域。

此次课程设计旨在将理论知识与实际应用结合起来中,通过本次实验掌握微机接口电路的设计和调试方法。

二、方案论证
1.设计要求
利用桌面计算机和AEDK实验系统进行接口电路设计并编写程序制作一个波形发生器。

使用数模转换器DAC0832构成波形发生器,可以产生方波、三角波、正锯齿波和反锯齿波等多种波形,波形的周期可调。

要求了解不同波形的产生原理和设计方案,画出硬件电路图,并编程完成软件部分,最后调试观察产生不同类型的波形信号。

具体要求如下:
(1)设计硬件电路。

标示引脚编号、元器件参数。

(2)完成硬件电路的搭建。

(3)编制相应接口程序。

与硬件一并调试成功。

(4)写好课程设计论文。

(5)完成任务书的其它内容
2.方案论证
(1)波形发生器的实现方法
方案一:用分立元件组成的函数发生器:通常是单函数发生器且频率不高,其工作不很稳定,不易调试。

方案二:可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC产生。

早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。

方案三:利用专用直接数字合成DDS芯片的函数发生器:能产生任意波形并达到很高的频率。

但成本较高。

方案四:使用D/A转换器如DAC0832,通过程序控制能产生各种波形,且周期、振幅的大小容易调整。

方案四整体性能和指标优于其他几种方案,价格也低廉,所以本设计采用方案四。

(2)按键控制电路
方案一:使用独立按键,电路实现较简单。

每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。

缺点是当按键较多时占用单片机的I/O数目较多。

方案二:采用阵列式键盘。

此类键盘是采用行列扫描方式,优点是当按键较多时可以降低占用的I/O口数目,但是在程序实现上比独立按键麻烦。

由于本次设计不需要用到太多按键,故采用方案一。

三、硬件电路设计
1.波形产生电路
该波形发生电路使用DAC0832作为波形发生器件,通过程序控制使得DAC0832输出不同幅值的电压从而得到所需的波形。

由于DAC0832的输出为电流,属于电流型芯片,需外接运算放大器才能得到模拟电压输出,所以本电路使用LM324运算放大器来完成电流向电压的转换。

(1)波形产生部分电路图
图1 波形产生部分电路图
(2)主要芯片介绍
1) D/A转换器DAC0832
DAC0832是采样频率为八位的D/A转换器件,采用CMOS工艺和R-2RT形电阻解码网络,转换结果为一对差动电流Iout1和Iout2输出。

其引脚分布如下图所示:
图2 DAC0832引脚分布图
DAC0832引脚功能说明:
DI0~DI7:数据输入线,TLL电平。

ILE:数据锁存允许控制信号输入线,高电平有效。

CS:片选信号输入线,低电平有效。

WR1:为输入寄存器的写选通信号。

XFER:数据传送控制信号输入线,低电平有效。

WR2:为DAC寄存器写选通输入线。

Iout1:电流输出线。

当输入全为1时Iout1最大。

Iout2: 电流输出线。

其值与Iout1之和为一常数。

Rfb:反馈信号输入线,芯片内部有反馈电阻.
Vcc:电源输入线(+5v~+15v)
Vref:基准电压输入线(-10v~+10v)
AGND:模拟地,摸拟信号和基准电源的参考地.
DGND:数字地,两种地线在基准电源处共地比较好.
DAC0832内部结构资料:芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。

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

要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。

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

其内部结构如下图所示:
图3 DAC0832内部结构图
2)LM324运算放大器
LM324系列器件为价格便宜的带有真差动输入的四运算放大器。

与单电源应用场合的标准运算放大器相比,它们有一些显著优点。

该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。

LM324的引脚排列如下图:
图4 LM324引脚图
LM324主要参数如下:
放大器数目:4
带宽:1.2MHz
工作温度范围:0°C to +70°C
3dB带宽增益乘积:1.2MHz
变化斜率:0.5V/μs
电源电压最大:32V
电源电压最小:3V
2.按键控制电路
本次设计中使用可编程并行I/O接口芯片8255与拨码开关实现按键控制。

8255工作在简单的输入/输出方式,8255的PA口作为输入口与拨码开关相连。

微机通过读取8255PA 口的状态判断拨码开关的状态,然后执行相应的程序产生对应波形。

(1)按键控制电路原理图
图5 按键控制电路原理图
(2)主要芯片介绍
1)8255可编程并行I/O接口芯片
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。

具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。

其引脚分布图如下:
图6 8255引脚分布图
8255引脚功能说明:
RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。

CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.
RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。

D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

A1,A0:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.
当A1=0,A0=0时,PA口被选择;
当A1=0,A0=1时,PB口被选择;
当A1=1,A0=0时,PC口被选择;
当A1=1.A0=1时,控制寄存器被选择.
8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在一下三种方式下工作:
方式0(基本输入/输出方式):这种工作方式不需要任何选通信号。

A口,B口及C口的两个4位口中任何一个端口都可以由程序设定为输入或者输出。

作为输出口时,输出数据被锁存:作为输入口,输入数据不锁存。

方式1( 选通输入/输出方式):在这种工作方式下,A,B,C三个口分为两组。

A组包括A口和C口的高四位,A口可由编程设定为输入口或者输出口,C口的高四位则是用来作为A口输入/输出操作的控制和同步信号:B组包括B口和C口的低四位,B口可由编程设定为输入口或者输出口,C口的低四位则是用来作为B口输入/输出操作的控制和同步信号。

A口和B口的输入或者输出的数据都被锁存。

方式2( 双向传送方式)在这种方式下,A口可以用于双向传送,C口的PC3~PC74用来作为输入/输出的控制同步信号。

应该注意的是,只有A口允许用作双向传送,这时B口和PC0~PC2则可编程为方式0或者方式1工作。

8255编程控制字格式
图7 8255控制字格式
3.地址译码电路
本电路模块为138译码电路,提供的I/O空间地址为200-23F。

(1)电路原理图
图8 译码电路原理图(2)主要芯片资料
1)74LS138
74LS138 为3 线-8 线译码器,其引脚分布图如下图所示:
图9 74LS138引脚分布图
输入输出
E1 E2# E3# A2 A1 A0 Y0# Y1# Y2# Y3# Y4# Y5# Y6# Y7#
××L H H H H H H H H H
×
×
L
L
L
L
L
L
L
L
×
H
×
L
L
L
L
L
L
L
L
×
×
×
L
L
L
L
H
H
H
H
×
×
×
L
L
H
H
L
L
H
H
×
×
×
L
H
L
H
L
H
L
H
H
H
H
L
H
H
H
H
H
H
H
H
H
H
H
L
H
H
H
H
H
H
H
H
H
H
H
L
H
H
H
H
H
H
H
H
H
H
H
L
H
H
H
H
H
H
H
H
H
H
H
L
H
H
H
H
H
H
H
H
H
H
H
L
H
H
H
H
H
H
H
H
H
H
H
L
H
H
H
H
H
H
H
H
H
H
H
L
表1 74LS138译码器真值表
四、程序设计
1.波形发生原理
连续的波形都可以分解为若干个离散的数据点。

要实现各种波形的输出,可周期性地定时输出一些随时间迁移而有规律变化的数据,这些数据的变化规律与要求的输出波形相一致,通过D/A转换就可以得到需要的输出波形。

输出波形的曲线光滑程度取决于每个周期中数据点的多少,或者说数据点间时间间隔的长短。

数据点越多,时间隔越短,输出的曲线将越光滑。

1)方波:首先赋给AL 00H,然后执行OUT指令输出,然后延时一段,再赋给AL 0FFH,执行OUT指令输出,同样延时一段时间,这一直循环下去,就可以得到方波。

2)正锯齿波:首先赋给AL 00H,然后执行OUT指令输出,在执行INC自动增1,直到AL是否加满,未满则继续,已满,就可以继续判断是否有键按下,这样一直循环下去,就可得到连续的正锯齿波。

3)反锯齿波:首先赋给AL 0FFH,然后执行OUT指令输出,在执行DEC自动减1,直到AL为0,又赋给AL 0FFH,这样一直循环下去,就可得到连续的反锯齿波。

4)三角波:首先赋给AL 00H,然后执行OUT指令输出,再执行INC自动增1,直到AL是否加满,未满则继续,已满,AL置全“1”,然后输出数据减1,然后判断AL是否减到“0”,不为0则继续。

这样一直循环下去,就可得到连续的三角波。

2.程序流程图
图10 程序流程图
五、硬件连接及调试
1.硬件连接
本次课程设计是基于AEDK实验系统进行的接口电路设计。

硬件连接要求如下:
1)DAC0832 CS#接译码电路的输出端Y3(218H-21FH)
2)8255 CS#接译码电路的输出端Y0(200H-207H)
3)DAC0832的VOUT接单色LED
4)8255的PA0~PA4接拨码开关
2.电路调试
1)调试方法
由于没有示波器,调试时可延长波形输出时各采样点之间的延时,从而加长波形的周期。

这样便能通过观察单色LED的亮暗变化查看波形输出是否符合要求
2)预期效果
按要求连接好电路后,接通电源,此时输出为低电平。

拨下相应开关,将产生相应的波形。

若拨下了二分频按钮,则输出波形的周期为原来的两倍。

通过单色LED 即可观察。

3)波形图
图11 波形图
3)调试结果
结果和预期效果一样,能达到设计要求。

六、 体会与心得
在本次课程设计中,无论是在程序设计方面还是实践动手能力都得到了一个非常大的锻炼,并对硬件知识的了解以及安装调试能力也得到了一个很大的提升。

在刚开始设计的时候,发现很多知识自己在书本都看过,但是都没有很牢固的掌握。

因此在开始的几天里,阅读了大量相关的资料,了解了各芯片的功能及使用方法。

同时也参考了别人的一些关于波形发生器的设计报告。

在接下来的几天中开始基于实验平台进行硬件电路设计,同时也一边学习电路图设计软件的使用。

第二个星期开始设计程序并在试验平台上调试,遇到了很多问题。

有时是因为设备出现问题,有时是自己粗心大意。

通过不断的调试,终于完成了设计任务。

本次课程设计无疑是一次巩固知识、通过实践验证理论的机会。

大大增强了我们综合电路设计的能力。

在指导老师精心指导下,获得了丰富的理论知识,极大的提高的动手能力。

通过这次课程设计,也非常的清楚的认识了这门课程的重要性,也意识到了自己在程序设计方面的薄弱性。

希望在以后的学习和工作中能进一部的加强自己专业素质和实践动手能力。

七、 参考书目:
[1] 朱晓华,微机原理与接口技术(第2版),电子工业出版社,2011 [2] 李干林,微机原理与接口技术实验指导,北京大学出版社,2010
八、附录
方波
正锯齿波
三角波
1.电路原理图
2.程序源码
;宏定义
ADDR_8255 EQU 200H ;8255地址
ADDR_0832 EQU 208H ;ADC0832地址
CW_8255 EQU 90H ;8255控制字
FANGBO_ EQU 0EH
ZJUCHI_ EQU 0DH
FJUCHI_ EQU 0BH
SANJIAO_ EQU 07H
;代码段
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,ADDR_8255+3 ;初始化8255工作方式MOV AL,CW_8255 ;方式0,A口输入、B口输出
KEYSCAN: MOV DX,ADDR_8255 ;读取拨码开关状态IN AL,DX
AND AL,1FH ;只读取5个开关状态
MOV BL,0 ;清除2分频标志位
MOV CL,AL ;检测是否2分频
AND CL,10H
CMP CL,10H
JZ DIV2
GOON: CMP AL,FANGBO_
JZ FANGBO
CMP AL,ZJUCHI_
JZ ZJUCHI
CMP AL,FJUCHI_
JZ FJUCHI
CMP AL,SANJIAO_
JZ SANJIAO
MOV DX,ADDR_0832 ;无按键时输出0
MOV AL,0
OUT DX,AL
JMP KEYSCAN ;没检测到开关则继续检测
DIV2: MOV BL,1
JMP GOON
FANGBO: CALL FANGBOW A VE ;跳转到相信波形程序
ZJUCHI: CALL ZJUCHIW AVE
JMP KEYSCAN
FJUCHI: CALL FJUCHIWA VE
JMP KEYSCAN
SANJIAO: CALL SANJIAOW
JMP KEYSCAN
FANGBOW A VE: MOV DX,ADDR_0832 ;方波
MOV AL,0
OUT DX,AL
MOV CX,0FFFFH
LOOP $
CMP BL,0
JZ T1
MOV CX,0FFFFH
LOOP $
T1: NOT AL
OUT DX,AL
MOV CX,0FFFFH
LOOP $
CMP BL,0
JZ T2
MOV CX,0FFFFH
LOOP $
T2: RET
ZJUCHIWA VE: MOV DX,ADDR_0832 ;正锯齿波MOV AL,0
LOOP1: OUT DX,AL
MOV CX,00FFFH
LOOP $
CMP BL,0
JZ T3
CALL DELAY1
T3: INC AL
CMP AL,0FFH
JNZ LOOP1
OUT DX,AL
RET
FJUCHIWA VE: MOV DX,ADDR_0832 ;反锯齿波MOV AL,0FFH
LOOP2: OUT DX,AL
LOOP $
CMP BL,0
JZ T4
CALL DELAY1
T4: DEC AL
JNZ LOOP2
OUT DX,AL
RET
SANJIAOW: MOV DX,ADDR_0832 ;三角波MOV AL,0
UP: OUT DX,AL
MOV CX,00FFFH
LOOP $
CMP BL,0
JZ T5
CALL DELAY1
T5: INC AL
CMP AL,0FFH
JNZ UP
FALL: OUT DX,AL
MOV CX,00FFFH
LOOP $
CMP BL,0
JZ T6
CALL DELAY1
T6: DEC AL
JNZ FALL
RET
DELAY1: MOV CX,00FFFH
LOOP $
RET
MOV AH,4CH
INT 21H
CODE ENDS
END START。

相关文档
最新文档