DAC0832波形发生器课程设计实验报告1

微机原理与接口技术

课程设计报告书

题 目:DAC0832 波形发生器

学院名称:湖南科技大学潇湘学院

班 级:电子信息工程001班

指导老师:欧青立 陈君 宋芳

学 号: 0954030110

姓 名: 赵 翔

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 1 -

目 录

一、 引 言…………………………………………… …………...…......1

二、 设计目的……………………………………………………………….2

三、 原理说明………………………………………………………………..2

四、 硬件设计.........................................................................................4

五、 设计原理………………………………………………………………...6

六、 程序编译.........................................................................................7

1、输出方波子程序…………………………………………………….7

2、输出三角波子程序………………………………………………….8

3、输出锯齿波子程序………………………………………………….8

4、输出正弦波子程序………………………………………………….9

5、输出梯形波的子程序………………………………………………10

6、主程序……………………………………………………………….11

七、 调试方法与结果………………………………………………………...15

八、 心得体会………………………………………………………………...16

- 1 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 2 -

一.引言

波形发生器是一种常用的信号源,广泛的应用于电子电路、自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源。由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察。测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最为广泛的一类电子仪器。它可以产生多种波形信号,如锯齿波、三角波、梯形波等,因而广泛应用于通信、雷达、导航、宇航等领域。

本次课程设计使用的AT89C51单片机构成的发生器可产生三角波,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。

二、设计目的

1、掌握DAC0832与PC机的接口方法。

2、掌握D/A转换应用程序设计方法。

三、原理说明

? 知识简介:

DAC0832当今世界在以电子信是8位分辨率的D/A转换集成芯片,与微处理器完全兼容,这个系列的芯片 以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。这类D/A转换器由8位输入锁存器,8位DAC寄存器,8位DA转换电路及转换控制电路构成。

? 原理框图:

DAC0832波形发生器课程设计实验报告1

- 2 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 3 -

? 硬件设计

DAC0832波形发生器课程设计实验报告1

1、DAC0832的引脚及功能:

DAC0832是8分辨率的D/A转换集成芯片。与微处理器兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。

DAC0832波形发生器课程设计实验报告1

- 3 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 4 -

? 应用特性:

·DAC0832是微处理器兼容型D/A转换器,可以充分利用微处理器的控制能力实现对D/A转换的控制。这种芯片有许多控制引脚,可以和微处理器控制线相连,接受微处理器的控制,如ILE、/CS、/WR1、/WR2、/XFER端。

·有两级锁存控制功能,能够实现多通道D/A的同步转换输出。

·DAC0832内部无参考电压源;须外接参考电压源。

·DAC0832为电流输入型D/A转换器,要获得模拟电压输出时,需要外加转换电路。 DAC0832的引脚图及逻辑结构如下图:

DAC0832结构框图及引脚排列

DAC0832波形发生器课程设计实验报告1

- 4 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 5 -

? 各引脚功能说明:

D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错); ILE:数据锁存允许控制信号输入线,高电平有效;

CS:片选信号输入线(选通数据锁存器),低电平有效;

WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;

XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效; WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。

IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;

IOUT2:电流输出端2,其值与IOUT1值之和为一常数;

Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;

Vcc:电源输入端,Vcc的范围为+5V~+15V;

VREF:基准电压输入线,VREF的范围为-10V~+10V;

AGND:模拟信号地

DGND:数字信号地

- 5 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 6 -

DAC0832波形发生器课程设计实验报告1

? DAC0832三种数据输入方式:

(1)双缓冲方式:即数据经过双重缓冲后再送入D/A转换电路,执行两次写操作才能完成一次D/A转换。这种方式可在D/A转换的同时,进行下一个数据的输入,可提高转换速率。更为重要的是,这种方式特别适用于要求同时输出多个模拟量的场合。此时,要用多片DAC0832组成模拟输出系统,每片对应一个模拟量。

(2)单缓冲方式:不需要多个模拟量同时输出时,可采用此种方式。此时两个寄存器之一处于直通状态,输入数据只经过一级缓冲送入D/A转换电路。这种方式只需执行一次写操作,即可完成D/A转换。

(3)直通方式:此时两个寄存器均处于直通状态,因此要将、、和端都接数字地,ILE接高电平,使LE1、LE2均为高电平,致使两个锁存寄存器同时处于放行直通状态,数据直接送入D/A转换电路进行D/A转换。这种方式可用于一些不采用微机的控制系统中或其他不须0832缓冲数据的情况。

四、硬件设计

1.8086(8088)CPU

引脚图(如图1):

DAC0832波形发生器课程设计实验报告1

图1

- 6 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 7 -

2.DAC0832(D/A转换器)

D/A0832是8位并行输出电流型D/A转换器,其主要参数:转换时间1us,满量程误差土1LSB,参考电压—10V~+10V,供电电压+5V~+15V,输入逻辑电平与TTL兼容。

引脚图(如图2):

DAC0832波形发生器课程设计实验报告1

图2

3.8255A(可编程并行接口)

8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。 8255可编程并行接口芯片工作方式说明:

方式0:基本输入/输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。 方式1:选通输入/输出方式。这时A口或B口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号。方式2:双向总线方式。只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。

- 7 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 8 -

引脚图(如图3):

DAC0832波形发生器课程设计实验报告1

五、设计原理

D/A转换器产生各种波形的原理:利用D/A转换器输出的模拟量与输入数字量成正比关系这一特点,将D/A转换器作为微机输出接口,CPU通过程序向D/A转换器输出随时间呈现不同变化规律的数字量,则D/A转换器就可输出各种各样的模拟量,如方波、三角波、锯齿波、正弦波等。

8255A实现波形切换的原理:从8255A的B口读入外接开关的信号,CPU读入不同信号值,从而执行不同的代码,向D/A转换器传送不同的数据,控制D/A转换器输出锯齿波、三角波、方波、正弦波和梯形波。

- 8 -

六、程序编译 1、输出方波的子程序 e.返回 d.取反,延时 c.写初值,延时 b.启动DAC08323转换器 (一)编程思路:a.设置8255A的工作方式 潇 湘 学 院 电子信息001班 学号:0954030110姓名:赵翔 (二)编译子程序:.model small .stack 200h .code start: MOV DX,213H ;8255A控制口地址 MOV AL,82H OUT DX,AL MOV DX,200H ;DAC0832的地址 AGAIN: MOV AL,00H OUT DX,AL ;输出方波为“0” CALL DELAY ;f方波宽度 MOV AL,0FFH - 9 -

DAC0832波形发生器课程设计实验报告1

- 9 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 10 -

OUT DX,AL ;输出方波为“1” CALL DELAY ;方波宽度 JMP AGAIN

DELAY:MOV CX,0ffffH;

LOOP $

RET

END start

2、输出三角波子程序

(一)编程思路:a.设置8255A的工作方式

b.启动DAC0832转换器

c.写初值,延时

d.初值加1,返回

e.取反,延时

f.取反值减1,返回

g.循环

(二)编译子程序:.model small

.stack 200h

.code

start:

MOV DX,213H ;8255A控制口地址 MOV AL,82H

OUT DX, AL

L: MOV DX,200H ; DAC0832的地址 MOV AL,00H ;正向初值

M: OUT DX,AL

CALL delay

INC AL

JNZ M

MOV AL,0FFH ;负向初值 N: OUT DX,AL

CALL delay

DEC AL

JNZ N

JMP L

delay:

mov cx,0fffh

day1:

loop day1

ret

int 21h

END start

- 10 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 11 -

3、输出锯齿波子程序

(一)编程思路:a.设置8255A的工作方式

b.启动DAC0832转换器

c.写初值

d.初值加1,延时

e.返回

g.循环

(二)编译子程序:.model small

.stack 200h

.code

start:

MOV DX,213H ;设置8255A控制口地址

MOV AL,82H

OUT DX,AL ;设置8255A口A为方式0输出 MOV DX,200H ;DAC0832的地址

MOV AL,00H ;输出数据初值

J: OUT DX,AL ;锯齿波输出

INC AL

CALL delay

JMP J

delay:

mov cx,0fffh

day1:

loop day1

ret

int 21h;

END start

4、输出正弦波子程序

(一)编程思路:a.写正弦波存储数地址

b.写初值

c.地址加1,取值加1

d.启动DAC0832转换器,输出值

e.延时

f.设置8255A,返回

g.循环

(二)编译子程序:.model small

.stack 200h

.code

start:

ZXBB: LEA BX,TAB

MOV CX,0001H

ZX2: MOV AL,[BX] ; 将TAB 中的数字一次赋给AL再输出正弦

INC BX

INC CX

- 11 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 12 -

MOV DX,200H

OUT DX,AL

CALL DELAY

PUSH AX

BG2: MOV DX,211H ;再次读入开关信号,进行比较

IN AL,DX

CMP AL,04H

JNZ BG2

POP AX

CMP CX,256

JNE ZX2

JMP ZXBB

delay:

mov cx,0fffh

day1:

loop day1

ret

int 21h

end start

5、输出梯形波子程序

(一)编程思路:a.启动DAC0832转换器

b.写低电平段,延时,返回

c.写上升段,延时,返回

d.写高电平段,延时,返回

e.写下降段,延时,返回

f.设置8255A,返回

g.循环

(二)编译子程序:.model small

.stack 200h

.code

start:

TXBB: MOV CX,0100H ;梯形波

MOV AL,00H

LL0: MOV DX,200H ;低电平段 OUT DX,AL

CALL DELAY

DEC CX

JNZ LL0

LL1: INC AL ;上升段 MOV DX, 200H

OUT DX,AL

CALL DELAY

CMP AL,6FH

JNE LL1

MOV CX,0100H

- 12 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 13 -

LL2: MOV DX, 200H

OUT DX,AL ;高电平段

CALL DELAY

DEC CX

JNZ LL2

LL3: DEC AL ;下降段

MOV DX, 200H

OUT DX,AL

CALL DELAY

CMP AL,00H

JNZ LL3

MOV DX,211H ;再次读入开关信号,进行

比较

IN AL,DX

CMP AL,06H

JNZ BG3

JMP TXBB

delay:

mov cx,0fffh

day1:

loop day1

ret

int 21h

end start

6,输出总程序

程序编译:CODE SEGMENT

ASSUME CS:CODE,DS:CODE,SS:CODE,ES:CODE

CT8255 EQU 2138255 的控制寄存器地址

B8255 EQU 211H ;8255 的B口地址

DA0832 EQU 200H

ORG 1200H

START:

MOV AL,82H ;初始化8255,B 口输入,工作在方式0 MOV DX,CT8255

OUT DX,AL

BG: MOV DX,B8255

IN AL,DX

AND AL,07H

CMP AL,01H ;显示锯齿波

JZ JCBB

CMP AL,02H ;显示三角波

JZ SJBB

CMP AL,03H ;显示方波

JZ FBB

- 13 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 14 -

CMP AL,04H ;显示正弦波

JZ ZXBB

CMP AL,05H ;显示梯形波

JZ TXB

JMP BG

TXB:JMP TXBB

JCBB: MOV AL,00H ;锯齿波

AGAIN1: INC AL

MOV DX,DA0832

OUT DX,AL

CALL DELAY

PUSH AX

MOV DX,B8255

IN AL,DX ;再次读入开关信号,进行比较 CMP AL,01H

JNZ BG

POP AX

JMP AGAIN1

SJBB: MOV AL,00H ;三角波

UP: MOV DX,DA0832 ;启动D/A 转换上升

OUT DX,AL

CALL DELAY

INC AL

CMP AL,0FFH

JNZ UP

DEC AL

DOWN: MOV DX,DA0832 ;启动D/A 转换下降

OUT DX,AL

CALL DELAY

DEC AL

CMP AL,00H

JNZ DOWN

MOV DX,B8255 ;再次读入开关信号,进行比较 IN AL,DX

CMP AL,02H

JNZ BG

JMP SJBB

FBB: MOV AL,00H ;方波

FB1: MOV DX,DA0832 ;写00H,输出低电平

OUT DX,AL

PUSH CX

MOV CX,00FFH ;低电平延迟

L: CALL DELAY

LOOP L

POP CX

- 14 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 15 -

PUSH CX

MOV CX,00FFH

MOV AL,0FFH

MOV DX,DA0832

OUT DX,AL

L1: CALL DELAY ;高电平延迟

LOOP L1

POP CX

MOV DX,B8255 ;再次读入开关信号,进行比较

IN AL,DX

CMP AL,03H

JNZ BG1

JMP FBB

BG1: JMP BG

ZXBB: LEA BX,TAB

MOV CX,0001H

ZX2: MOV AL,[BX] ;将TAB 中的数字一次赋给AL,再输出正弦波 INC BX

INC CX

MOV DX,DA0832

OUT DX,AL

CALL DELAY1

PUSH AX

MOV DX,B8255 ;再次读入开关信号,进行比较

IN AL,DX

CMP AL,04H

JNZ BG2

POP AX

CMP CX,256

JNE ZX2

JMP ZXBB

BG2: JMP BG

TXBB: MOV CX,0100H ;梯形波

MOV AL,00H

LL0: MOV DX,DA0832 ;低电平段

OUT DX,AL

CALL DELAY1

DEC CX

JNZ LL0

LL1: INC AL ;上升段

MOV DX,DA0832

OUT DX,AL

CALL DELAY1

CMP AL,0FFH

JNE LL1

- 15 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 16 -

MOV CX,0100H

LL2: MOV DX,DA0832

OUT DX,AL ;高电平段

CALL DELAY1

DEC CX

JNZ LL2

LL3: DEC AL ;下降段

MOV DX,DA0832

OUT DX,AL

CALL DELAY1

CMP AL,00H

JNZ LL3

MOV DX,B8255 ;再次读入开关信号,进行比较 IN AL,DX

CMP AL,05H

JNZ BG3

JMP TXBB

BG3: JMP BG

DELAY:CMP AL,0D0H

JNB W_END

CMP AL,7AH

JB W_END

MOV CX,180

LOOP $

W_END: RET

DELAY1:PUSH CX

MOV CX,0090H

DEL1: PUSH AX

POP AX

LOOP DEL1

POP CX

RET

INT 21h

ORG 5000H

TAB DB 80H,83H,86H,89H,8DH,90H,93H,96H

DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH

DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H

DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H

DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H

DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H

DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH

DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH

DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H

- 16 -

潇 湘 学 院 电子信息001班

学号:0954030110姓名:赵翔 - 17 -

DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH

DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH

DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H

DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H

DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H

DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H

DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H

DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H

DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH

DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H

DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H

DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH

DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H

DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H

DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H

DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H

DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H

DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H

DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H

DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH

DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H

DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80H

DB 256 DUP(?)

CODE ENDS

END START

七、调试方法与结果 实验箱接法:

转换器的CS0832接译码器的200h—233h端口,转换器的VOUT端口接信号灯,8255A的8255端口接230h-233h端口,8255A的PB1,PB2,PB3接信号灯

实验结果:1.方 波:信号灯一明一暗

2.三角波:信号灯慢慢亮再慢慢暗再慢慢亮

3.锯齿波:信号灯慢慢亮再暗再慢慢亮

4.正弦波:信号灯慢慢亮再慢慢暗再慢慢亮

5.梯形波:信号灯先暗再慢慢亮,持续,在慢慢暗

八、心得体会

开始的时候由于没有经验,不知如何下手,所以就上网搜了很多关于函数发生器的资料,并翻阅了一些相关书籍。我们小组经过此课程设计我们积累了一点设计经验,最后成功运行出结果的时候也有些小小的成就感。

- 17 -

相关推荐