资源描述
湖南科技大学潇湘学院
信息与电气工程系
《微机原理与接口技术》
课程设计报告
题 目:基于D/A转换器DAC0832波形发生器设计
专 业: 通信工程
班 级: 通信002班
姓 名: 刘黎辉
学 号:
指引教师: 欧青立 陈君 宋芳
课程设计任务书
题 目
基于D/A转换器DAC0832波形发生器设计
设 计 时 间
第17-18周(12月19日-12月30日)
设 计 目 :
1. 掌握计算机应用系统特别是微机接口系统设计。
2. 掌握接口电路设计技术。初步掌握电子设计软件Protel99使用。
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工作在简朴输入/输出方式,8255PA口作为输入口与拨码开关相连。微机通过读取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:地址选取线,用来选取8255PA口,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)DAC0832VOUT接单色LED
4)8255PA0~PA4接拨码开关
2.电路调试
1)调试办法
由于没有示波器,调试时可延长波形输出时各采样点之间延时,从而加长波形周期。这样便能通过观测单色LED亮暗变化查看波形输出与否符合规定
2)预期效果
按规定连接好电路后,接通电源,此时输出为低电平。拨下相应开关,将产生相应波形。若拨下了二分频按钮,则输出波形周期为本来两倍。通过单色LED即可观测。
3)波形图
正锯齿波
方波
三角波
图11 波形图
3)调试成果
成果和预期效果同样,能达到设计规定。
六、 体会与心得
在本次课程设计中,无论是在程序设计方面还是实践动手能力都得到了一种非常大锻炼,并对硬件知识理解以及安装调试能力也得到了一种很大提高。
在刚开始设计时候,发现诸多知识自己在课本都看过,但是都没有很牢固掌握。因而在开始几天里,阅读了大量有关资料,理解了各芯片功能及用法。同步也参照了别人某些关于波形发生器设计报告。在接下来几天中开始基于实验平台进行硬件电路设计,同步也一边学习电路图设计软件使用。第二个星期开始设计程序并在实验平台上调试,遇到了诸多问题。有时是由于设备浮现问题,有时是自己粗心大意。通过不断调试,终于完毕了设计任务。
本次课程设计无疑是一次巩固知识、通过实践验证理论机会。大大增强了咱们综合电路设计能力。在指引教师精心指引下,获得了丰富理论知识,极大提高动手能力。
通过这次课程设计,也非常清晰结识了这门课程重要性,也意识到了自己在程序设计方面薄弱性。但愿在后来学习和工作中能进一部加强自己专业素质和实践动手能力。
七、 参照书目:
[1] 朱晓华,微机原理与接口技术(第2版),电子工业出版社,
[2] 李干林,微机原理与接口技术实验指引,北京大学出版社,
八、附录
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 FANGBOWAVE ;跳转到相信波形程序
JMP KEYSCAN
ZJUCHI: CALL ZJUCHIWAVE
JMP KEYSCAN
FJUCHI: CALL FJUCHIWAVE
JMP KEYSCAN
SANJIAO: CALL SANJIAOW
JMP KEYSCAN
FANGBOWAVE: 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
ZJUCHIWAVE: 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
FJUCHIWAVE: 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
END START
展开阅读全文