当前位置:文档之家› 微机原理与接口技术课程设计(报告)

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

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

通信工程 通信 002 班 刘黎辉 0954040217 欧青立 陈君 宋芳

湖南科技大学潇湘学院 信息与电气工程系

《微机原理与接口技术》

课程设计报告

目:

基于 D/A 转换器 DAC0832 的波形发生器设计

业:

级:

名:

号:

指导老师:

课程设计任务书

题目基于D/A 转换器DAC0832 的波形发生器设计

设计时间第17-18 周(2011 年12 月19 日-2011 年12 月30 日)

设计目的:

1. 掌握计算机应用系统特别是微机接口系统的设计。

2. 掌握接口电路设计技术。初步掌握电子设计软件P rotel99 使用。

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

设计要求:

1. 使用DAC0832 设计一个波形发生器。

2. 设计硬件电路。标示引脚编号、元器件参数。

3. 完成硬件电路的搭建。

4. 编制相应接口程序。与硬件一并调试成功。

总体方案实现:

设计一个波形发生器,以DAC0832作为波形发生芯片,通过拨码开关和8255 组成的按键控制电路来控制发出波形的种类。能产生方波、锯齿波和三角波。按

键电路也能控制波形是否经二分频再输出。

指导教师评语:

目录

一、课程设计的目的及意义 (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 具有 3 个相互独立的输入 /输出通道端口, 用+5V 单电源供电, 能在一下三种方式 下工作:

方式 0(基本输入 /输出方式):这种工作方式不需要任何选通信号。 A 口, B 口及 C 口

的两个 4 位口中任何一个端口都可以由程序设定为输入或者输出。 被锁存:作为输入口 ,输入数据不锁存。

作为输出口时, 输出数据

方式 1( 选通输入 /输出方式 ):在这种工作方式下, A , B , C 三个口分为两组。 A 组包 括 A 口和 C 口的高四位, A 口可由编程设定为输入口或者输出口, C 口的高四位则是用来

作为 A 口输入 /输出操作的控制和同步信号: B 组包括 B 口和 C 口的低四位, B 口可由编程

设定为输入口或者输出口,

C 口的低四位则是用来作为

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

B 口输入 /输出操作的控制和同步信

方式 2( 双向传送方式 )在这种方式下, A 口可以用于双向传送, C 口的 PC3~PC74 用来 作为输入 /输出的控制同步信号。应该注意的是,只有 A 口允许用作双向传送,这时

B 口和

PC0~PC2 则可编程为方式 0 或者方式 1 工作。

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 编程控制字格式

图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# ×H ××××H H H H H H H H ××H ×××H H H H H H H H L ×××××H H H H H H H H H L L L L L L H H H H H H H H L L L L H H L H H H H H H H L L L H L H H L H H H H H H L L L H H H H H L H H H H H L L H L L H H H H L H H H H L L H L H H H H H H L H H H L L H H L H H H H H H L H H L L 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)波形图

方波正锯齿波

3)调试结果三角波

图11 波形图

结果和预期效果一样,能达到设计要求。

六、体会与心得

在本次课程设计中,无论是在程序设计方面还是实践动手能力都得到了一个非常大

的锻炼,并对硬件知识的了解以及安装调试能力也得到了一个很大的提升。

在刚开始设计的时候,发现很多知识自己在书本都看过,但是都没有很牢固的掌握。因此在开始的几天里,阅读了大量相关的资料,了解了各芯片的功能及使用方法。同时

也参考了别人的一些关于波形发生器的设计报告。在接下来的几天中开始基于实验平台进行硬件电路设计,同时也一边学习电路图设计软件的使用。第二个星期开始设计程序并在试验平台上调试,遇到了很多问题。有时是因为设备出现问题,有时是自己粗心大

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

本次课程设计无疑是一次巩固知识、通过实践验证理论的机会。大大增强了我们综合电路设计的能力。在指导老师精心指导下,获得了丰富的理论知识,极大的提高的动

手能力。

通过这次课程设计,也非常的清楚的认识了这门课程的重要性,也意识到了自己在程序设计方面的薄弱性。希望在以后的学习和工作中能进一部的加强自己专业素质和实

践动手能力。

七、参考书目:

[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 AVE ;跳转到相信波形程序

JMP KEYSCAN

ZJUCHI: CALL ZJUCHIW AVE

JMP KEYSCAN

FJUCHI: CALL FJUCHIWA VE

JMP KEYSCAN

SANJIAO: CALL SANJIAOW

JMP KEYSCAN

FANGBOW AVE: 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

MOV CX,00FFFH

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

相关主题
文本预览
相关文档 最新文档