函数发生器1讲解

上传人:最**** 文档编号:114685033 上传时间:2019-11-12 格式:DOCX 页数:20 大小:249.47KB
返回 下载 相关 举报
函数发生器1讲解_第1页
第1页 / 共20页
函数发生器1讲解_第2页
第2页 / 共20页
函数发生器1讲解_第3页
第3页 / 共20页
函数发生器1讲解_第4页
第4页 / 共20页
函数发生器1讲解_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《函数发生器1讲解》由会员分享,可在线阅读,更多相关《函数发生器1讲解(20页珍藏版)》请在金锄头文库上搜索。

1、微机原理课程设计二、函数发生器1的设计一、题义分析及解决方案1.1题义需求分析:需求分析:字号统一采用小四 根据题意函数发生器具有将现实世界的一些数字模型转化成计算机能表示和处理的波形的一种仪器,它能控制各种波形的顺序播放和有效调节波形频率和幅度的作用。因为波形要输出到示波器和通过开关的控制输入波形的播放,故需要输入/输出接口部件,计算机处理的是数字信号而示波器处理的是模拟信号,所以在输入/输出接口部件和示波器之间加一个数/模转换器,由于计算机处理和数模转换后的信号很弱,故还要看数/模转换器是否自带放大器,而波形的产生和相关波形的切换和控制调节频率通过相应的程序来实现。当然还要对控制这一系列有

2、序执行提出问题:各级标题按照模板要求进行修改一 .题义分析及解决方案1.题义需求分析2.解决问题方法及思路1) 硬件部分2) 软件部分1)函数选择开关量(输入设备接口) 2)怎样描述这四个函数波形 3)波形输入到输出的转换(即数/模转换) 4)波形的输出,怎样观察输出的波形,四种波形的切换1.2解决问题方法及思路硬件部分:根据题意要求及分析,本程序中用到的硬件器件为:数/模转换器选用National Semiconductor的DAC0832;选择8255A作为CPU与DAC0832之间的并行接口芯片,其中A口作为开关量的输入端。 软件部分:根据题义要求及分析,本程序中硬件实现部分为:程序采用

3、循环依次显示四组波段的方式。首先对8255A进行初始化,方式0,A口输入,显示过程中判断开关量是否有变化。若没有变化,则继续显示;若有改变,就重新判断要输出的波形。相应地,在程序中编制显示正弦波段、三角波段、锯齿波段和脉冲波段,由上述的判断结果,根据条件进行跳转。软件部分问题:波形幅度和频率问题。二、硬件设计2.1选择芯片:8255A8255A在本设计中的作用:它是把打入的数据锁存,8255A有3个8位端口PA,PB,PC。本设计只用到PA口中的一个8位数据输入锁存器,把通过开关装置打入的数据锁存,再由8255A通过数据总线传送到8086,由8086送到DAC0832的DI7DI0对其进行数模

4、转换,最后在示波器上显示波形。8255A的功能分析:它是一种通用的可编程并行I/O接口芯片,又称“可编程外设接口芯片”。8255A由4部分组成:数据总线缓冲器;三个8位端口PA、PB、PC;A组和B组的控制电路;读写控制逻辑。1) 数据总线缓冲器 :一个三态8位的双向缓冲器,用作8255A同系统数据总线相连是的缓冲部件。CPU通过执行输入/输出指令来实现对缓冲器发送或接受数据。8255A的控制字或状态字也是通过该缓冲器传送的。2) 端口A中有一个8位数据输入锁存器和一个8位输出锁存/缓冲器。3) A、B组控制电路:A组控制部件用来控制PA口和PC口的高4位,B组控制部件用来控制PB口和PC口的

5、低四位。4) 读写控制逻辑:用来管理数据信息,控制字和状态字的传送。 8255A的工作方式有3种:方式0、方式1、方式2。本设计只用到方式0,即基本输入/输出。在方式0下,每个口都作为基本的输入/输出口。C口的高四位和低四位以及A口、B口都可以独立地设计输入口或输出口。在方式0下,CPU可以采用无条件读写方式与8255A交换数据。本设计只用到了PA口作为数据输入。8255A的技术参数:与TTL完全兼容,采用40条引脚的双直插式封装,减少了系统器件数,提高了直流驱动能力。符号测试条件规范值单位最大最小输入低电平电压 VIL0.8-0.5V输入高电平电压 VIHVCC2.0V输出低电平电压(数据总

6、线) VOLIOL=2.5mA0.45V输出低电平电压(外围端口) VOLIOL=1.7mA0.45V输出高电平电压(数据总线) VOHIOH=-400A2.4V输出高电平电压(外围端口) VOHIOH=-200A2.4V达林顿驱动电流 IOARREXT = 750VEXT = 1.5V-4.0-1.0mA电源电流 ICC120mA输入负载电流 IILVIN=VCC0V10A输出浮动电流 IOFLVOUT=VCC0.45V10A(表2-1)2.2选择芯片:数/模转换器DAC0832DAC0832在本设计中的作用:DAC0832是National Semiconductor生产的一款D/A(数字

7、/模拟)转换器,其采用CMOS工艺和R2RT形电阻解码网络, 转换结果为一对差动电流 I01和 I02输出。在本设计中主要用来将开关打入的数字信号转换为相应的模拟信号。DAC0832的功能分析:DAC0832是8位D/A转换器,转换周期为1s。它由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成。当ILE为高电平,CS为低电平,WR1为负脉冲时,在LE1产生正脉冲;LE1为高电平时,输入寄存器的状态随数据输入线状态变化,LE1的负跳变将输入数据线上的信息存入输入寄存器。当Xfer为低电平,WR2输入负脉冲时,则在LE2产生正脉冲;LE2为高电平时,DAC寄存器的输入与输出寄存器的状态一

8、致,LE2的负跳变,输入寄存器内容存入DAC寄存器。DAC0832的输出是电流型的。在微机系统中,通常需要电压信号,电流信号和电压信号之间的转换可由运算放大器实现。DAC0832的技术参数:DAC0832芯片采用CMOS工艺,四象限乘法型DAC,与微机兼容,数据输入能与双缓冲、单缓冲或直接通过三种方式工作。是一个8位D/A转换器,输入电平与TTL、CMOS兼容,单电源+5+15V工作,基准电压的范围为 10V,电流建立时间为1s,低功耗200mw,20引脚,双列直接式封装。 附图下标格式要统一,参看模板DAC0832芯片的内部原理图如下:(图2-2)2.3硬件总逻辑图及其说明硬件总逻辑图: (

9、图2-3)逻辑图说明I. DAC0832的IOUT与示波器红头相连;II. DAC0832的GND与示波器的黑头相连,即接地;III. DAC0832的CS片选与CS2相连;IV. 数字信号来源于开关量,输出于LF351,显示于示波器;V. 8255的CS片选与CS1相连;VI. 开关与8255A的PA口相连。三、控制程序设计 3.1控制程序设计思路说明A. 程序分为五个段落,分别是主程序、正弦波、三角波、锯齿波、脉冲波。B. 在每个“段落”中检查开关量是否有改变,有则切换到相应波形,无则循环显示本波段。C. 在开关中设置开关量:00h:锯齿波 01h:三角波 02h:正弦波 03h:脉冲波。

10、D. 四个波段循环切换显示。3.2程序流程图 主控流程图 锯齿波流程图 脉冲波流程图图(3-7)锯齿波波形图(3-8)三角波波形3.3控制程序.MODELTINYPCIBAR3EQU1CH;8位I/O空间基地址(它就是实验仪的基地址, 也为DMA & 32 BIT RAM板卡上的8237提供基地址) Vendor_IDEQU 10EBH;厂商ID号Device_IDEQU8376;设备ID号.STACK100.DATAIO_Bit8_BaseAddressDW?msg0DBBIOS不支持访问PCI $msg1DB找不到Star PCI9052板卡 $msg2DB读8位I/O空间基地址时出错$M

11、SG3DB按键有误,请检查!COM_ADDDW00F3H;控制口偏移量PA_ADDDW00F0H;PA口偏移量PB_ADDDW00F1H;PB口偏移量PC_ADDDW00F2H;PC口偏移量D_ADW00E0H;D_A转换的数据端口的偏移量zxb_data db128,134,141,147,153,159,165,171DB177,183,188,194,199,204,209,214DB218,223,227,231,234,238,241,244DB246,248,250,252,253,255,255,255DB128,121,115,109,103,96,90,84DB79,73,6

12、7,62,57,51,47,42DB37,33,29,25,21,18,15,12DB10,7,5,4,2,1,0,0BUFFERDW10BUFFER1DB10BUFFER2DB 10BUFFER3DB10flagdb?.CODESTART:MOVAX,DATAMOVDS,AXNOPCALLInitPCICALLModifyAddress;根据PCI提供的基地址,将偏移地址转化为实地址MOVDX,COM_ADDMOVAL,90H;PA输入口,0方式OUTDX,ALMOVDX,PA_ADDINAL,DXMOV flag,ALR1:CMPFLAG,00hJNZ R2 CALLZXB_HANSHUJMPR5;标志=00,则输出“正弦波”,输完后转至查看是否有按键R2:CMPFLAG,01HJNZR3CALLSJB_HANSHUJMPR5;标志=01,则输出“锯齿波”,输完后转至查看是否有按键R3:CMP FLAG,02HJNZR4CALLJCB_HANSHUJMPR5;标志=02,则输出“三角波”,输完后转至查看是否有按键R4:CMPFLAG,03HJNZR5CALL MCB_HANSHU;标志=03,则输出“脉冲波”,输完后转至查看是否有按键;以下代码为查看是否有按键输入R5:CALL IF_CHANGE

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号