
微机原理与接口技术课程设计.docx
20页接口技术课程设计 《微机原理与接口技术》 课 程 设 计报告书课 题:利用DAC设计波形发生器学 院:计算机科学与技术 班 级:计 091 班 姓 名:王 骏(0913022030)沈志轩(0913022033)徐晓龙(0913022029)指导教师: 顾 辉 提交日间:2012年6月17日 目 录一、 引言………………………………………………………………3二、 设计目的…………………………………………………………3三、 设计内容及要求………………………………………………………….3四、 选用器材………………………………………………………….4五、 设计原理及方案…………………………………………………4六、 硬件设计………………………………………………………….5七、 软件设计………………………………………………………….9八、 调试方法与结果…………………………………………………15九、 收获、体会……………………………………………………….17十、 参考文献……………………………………………………….18一.引言波形发生器是一种常用的信号源,广泛的应用于电子电路、自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一。
在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察测量被测仪器的输出响应,以分析确定它们的性能参数信号发生器是电子测量领域中最基本、应用最为广泛的一类电子仪器它可以产生多种波形信号,如锯齿波、三角波、梯形波等,因而广泛应用于通信、雷达、导航、宇航等领域本设计正是基于数模转换原理,采用8086最小系统经数模转换芯片DAC0832设计并制作出了多功能信号发生器用该方法设计的多功能信号发生器具有频率稳定、幅值稳定、波形失真度低、原理简单等特点二、设计目的(1)掌握方波,三角波,锯齿波,正弦波函数发生器的原理及设计方法2)掌握8086的工作原理,电路连接以及其最小系统的设计3)了解数模转换芯片的的工作方式和使用4)学会用proteus 画电路原理图三、设计内容及要求3.1、设计要求利用DAC设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,要求自行设计输出波形的切换方式3.2、设计内容⑴以8086为CPU利用D|A转换器,编程产生锯齿波,正弦波,三角波,方波信号输出上述四种波形⑵波形的控制由接在8255上的开关的实现:设计四个开关,KEY1,KEY2,KEY3,KEY4,分别控制输出正弦波、方波、三角波和锯齿波波形。
⑶接在8255上的数码管显示4个数1、2、3、4分别代表三角波、正弦波、锯齿波、方波⑷由接在8253上的扬声器产生四种声音do、ri、mi、fa分别代表三角波、正弦波、锯齿波、方波四、选用器材器材名称数量8086CPU174273(锁存器)374154(译码器)18255A182531DAC08321非门2与非门1导线若干14581电阻5按钮4数码管1五、 设计原理及方案5.1设计原理 D/A转换器产生各种波形的原理:利用D/A转换器输出的模拟量与输入数字量成正比关系这一特点,将D/A转换器作为微机输出接口,CPU通过程序向D/A转换器输出随时间呈现不同变化规律的数字量,则D/A转换器就可输出各种各样的模拟量,如方波、三角波、锯齿波、正弦波等8255A实现波形切换的原理:从8255A的C口读入外接开关的信号,CPU读入不同信号值,从而执行不同的代码,向D/A转换器传送不同的数据,控制D/A转换器输出锯齿波、三角波、方波、正弦波和锯齿波5.2系统总体设计通过查阅相关的资料,本设计采用8086和数模转换芯片(DAC0832)实现波形的产生,波形的产生由程序控制,向D/A的输入端按一定的规律发送数据,经过D/A和1458输出。
总体框图如图2-1所示,此方案通过编程简化了外部电路,原理简单,容易实现使用4个按键共同实现正弦波,方波,三角波,锯齿波这四种常见波形的产生及产生不同声音的功能按钮开关8086控制单元D/A示波器图2-1系统原理框图5.3系统主要功能主要功能是实现利用8086和8位D/A转换芯片DAC0832共同实现正弦波,方波,三角波,锯齿波这四种常见波形的发生,并且通过按键利用DAC接口实现波形发生器可以产生锯齿波、三角波、方波和正弦波等常用标准波形将8255的PB0~PB6作为数码管的控制位将8255 上的C口某几位分别作为这四种波的控制位,当相应的控制键按下后,出现相应的波形由8253的0端口产生一段信号连接到扬声器从而产生四种声音分别代表四种波六、 硬件设计6.1芯片简介1、8086(8088)CPU引脚图(如图1): 图1 图22、DAC0832(D/A转换器) 引脚图(如图2): NSC公司生产的DAC0832 ,是一种内部带有数据输入寄存器的8位D/A转化器,采用CMOS工艺制成,芯片内部R-2R梯形电阻网络,用于对参考电压产生的电压进行分流,完成模数转换,转换结果以一组差动电流 IOUT1IOUT2输出各引脚的功能分述如下:VREF : 参考电压输入端。
根据需要一定大小的电压,由于它是转换的基准,要求数值正确,稳定性好VCC:工作电压输入端AGAN为模拟地,DGAN为数字地在模拟电路中,所有的模拟地要连在一起然后将模拟地,数字地连接到一个公共接地点DI7-DI0:数据输入可直接连接到数据总线IOUT1IOUT2:互补的电流输出端为了输出模拟电压,需加转换电路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条线用作通讯联络信号和中断请求信号引脚图(如图3):4、 8253inter8253是一种能够完成定时和计数的芯片,8253内部有3个16位计数器通道,通过对他们编程,每个计数器可以按照6种工作方式工作,并且都可以按2或10进制格式进行计数最高频率为2HZ.8253还可以用于许多其他场合,比如可作编程方波发生器,分频器等引脚:1数据缓冲总线数据总线缓冲器是8253与系统总线相连时使用的接口电路,它由8位双相三态缓冲器构成,CPU用输入输出指令对8253进行读写操作的信息都由8位数据总线传输:(1)CPU在对8253进行初始化编程时,向他写入控制字2)CPU向某一计时器写入计数初值3)从计数器读出计数值2读写控制逻辑读写控制逻辑接受系统控制总线送来的输入信号,经由组合后形成控制信号,对各部分操作进行控制可接受的信号有:(1) CS片选,低电平有效,由数据总线经由IO端口译码电路产生只有CS低电平时,CPU才能对8253进行读写操作2) RD读信号,低电平有效,当RD位地电平时,表示CPU正在读取所选定的计数器的通道的内容3) WR写信号,低电平有效。
当WR为低电平时,表示CPU正在将计数器初值写入所选中的通道口中,或者将控制字写入内部寄存器中4) A1A2 端口选择信号,改变它的值,来选择8253内三个计数器通道如果8253和与8位数据总线的微机相连,只要将A1A0分别与地址总相联如果系统采用的是8086CPU,则数据总线为16位,传输数据时,总是将低8位数据送往偶地址,将高8位送往奇地址3计数器8253内部包含三个完全相同俄计数器定时器通道,对3个通道的操作,完全独立的每个通道都包含1个8位的控制字寄存器,1个16位的减寄存器,和一个锁存器,执行部件是一个16位的减法计数器每个通道工作时,对输入到CLK引脚上的脉冲按2进制或10 进制格式进行计数每当输入一个时钟脉冲,计数器减1,当计数器的值减为0时从,从OUT引脚输出一个脉冲信号GATE引脚上的门控制信号,决定他是否允许计数6.2硬件电路设计⑴各模块电路的设计译码电路原理图按键电路⑵系统总原理图七、软件设计7.1程序流程图系统软件由主程序和产生波形的子程序组成,软件设计主要是产生各种波形的子程序的编程,通过编程可得到各种波形周期的改变可采用插入延时子程序的方法来实现主程序和几种常用波形子程序的流程图如图所示。
图 3 锯齿波发生子程序流程图 图 4 三角波发生子程序流程图 图 5 方波发生子程序流程图 图 6 正弦波发生子程序流程图7.2源程序及其说明io4=800h ;0832的地址io3=600h ;8253的地址io2=400h ;8255的地址data segmentsin_wave db 200,195,181,159,131 db 100,69,41,19,5,0,0 ;正弦波幅值LED DB 06H,5BH,4FH,66H ;共阴极段码表data endscode segment assume cs:code,ds:datastart: mov ax,data ;建立DS段地址 mov ds,ax mov al,00010110b ;8253通道0,16位读写,工作方3方波发生器,bcd计数 mov dx,io2+6 out dx,al ;送控制字 call jiansan: mov Bx,255 ;255=FFH SAN3: MOV CX,BX mov al,0 mov dx,io4san1: out dx,al ;三角波形上升段 call delay inc al loop san1 mov cx,BX mov al,BL mov dx,io4san2: out dx,al ;三角波形下降段 call delay dec al loop san2 mov al,192 mov dx,io2 out dx,al call jiansin: mov cx,11 mov bx,0 mo。












