DAC0832的波形发生器(汇编)
- 格式:doc
- 大小:18.50 KB
- 文档页数:4
DAC的输出控制之南宫帮珍创作班级: 1221201专业:测控技术与仪器姓名:xxxxx学号:xxxxx指导老师:周伟东华理工年夜学2015年1月12日目录第1章系统设计方案 (2)1.1 设计思路 (2)1.2 方案比力与选择.................................................................................. (2)第2章系统硬件设计………………………………………………………………………. 2.2.1 主控制器电路 (2)2.2 数模转换电路 (3)第3章系统软件设计…………………………………………………………………….. .63.1 系统整体流程………………………………………………………………………….. .63.2 数模转换法式………………………………………………………………………….. .6第4章系统调试 (8)4.1 proteus的调试………………………………………………………………………. (8)第5章结论与总结 (11)5.1 结论 (11)(系统总体设计与完成做一个总结, 是客观的, 主要包括:设计思路, 设计过程, 测试结果及完善改进的方向.)5.2 总结 (11)(这是一个主观的总结, 谈谈自己收获和缺乏等方面的内容.)第1章系统设计方案1.1 设计思路(一)、课设需要各个波形的基本输出.如输出矩形波、锯齿波, 正弦波.这些波形的实现的具体步伐:正弦波的实现是非常麻烦的.它的实现过程是通过界说一些数据, 然后执行时直接输出界说的数据就可以了.然而为了实现100HZ的频率, 终于发现, 将总时间除总步数, 根据每步执行时间, 算出延时时间, 最终到达要求, 然后建一个表通过查表来进行输出, 这样主要工作任务就落到了建表的过程中.这样做的好处在于, 查表所耗费的时钟周期相同, 这样输出的点与点之间的距离就相等了, 输出的波形行将更趋于完美, 固然更让我们感到的高兴的是它输出波形的频率将近到达了100赫兹, 能够满足我们设计的扩展要求了.而三角波, 则每次累加1, 当到达初值时, 每次累减1, 算出延时时间, 也就到达要求了, 矩形波和锯齿波类似.(二)、这次做的三种波形可以相互转换, 这个实现起来找了很多人最终发现, 在每次循环之初进行扫描, 而在每个中断入口处, 对中断优先级进行设定, 最终到达设计目的.1.2 方案比力与选择方案一:采纳模拟电路搭建函数信号发生器, 它可以同时发生方波、三角波、正弦波.可是这种模块发生的不能发生任意的波形(例如梯形波), 而且频率调节很不方便.方案二:采纳锁相式频率合成器, 利用锁相环, 将压控振荡器(VCO)的输出频率锁定在所需频率上, 该方案性能良好, 但难以到达输出频率覆盖系数的要求, 且电路复杂.方案三:使用集成信号发生器发生芯片, 例如AD9854,它可以生成最高几十MHZ的波形.可是该方案也不能发生任意波形(例如梯形波), 而且价格昂贵.方案四:采纳AT89C51单片机和DAC0832数模转换器生成波形, 加上一个低通滤波器, 生成的波形比力纯洁.它的特点是可发生任意波形, 频率容易调节, 频率能到达设计的500HZ以上.性能高, 在低频范围内稳定性好、把持方便、体积小、耗电少.经比力, 方案四既可满足课程设计的基本要求又能充沛发挥其优势, 电路简单, 易控制, 性价比高, 所以采纳该方案.第2章系统硬件设计2.1 主控制器电路89C52可编程并行接口芯片有三个输入输出端口, 即A口、B口和C口, 对应于引脚PA7~PA0、PB7~PB0和PC7~PC0.其内部还有一个控制寄存器, 即控制口.通常A口、B口作为输入输出的数据端口.C口作为控制或状态信息的端口, 它在方式字的控制下, 可以分成4位的端口, 每个端口包括一个4位锁存器.它们分别与端口A/B配合使用, 可以用作控制信号输出或作为状态信号输入.89C52可编程并行接口芯片工作方式说明:方式0:基本输入/输出方式.适用于三个端口中的任何一个.每一个端口都可以用作输入或输出.输出可被锁存, 输入不能锁存. 方式1:选通输入/输出方式.这时A口或B口的8位外设线用作输入或输出, C口的4条线中三条用作数据传输的联络信号和中断请求信号.方式2:双向总线方式.只有A口具备双向总线方式, 8位外设线用作输入或输出, 此时C口的5条线用作通讯联络信号和中断请求信号.原理框图:硬件设计2.2 数模转换电路由于单片机发生的是数字信号, 要想获得所需要的波形, 就要把数字信号转换成模拟信号, 所以该文选用价格昂贵、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832.DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部份组成.但实际上, DAC0832输出的电量也不是真正能连续可调, 而是以其绝对分辨率为单位增减, 是准模拟量的输出.DAC0832是电流型输出, 在应用时外接运放使之成为电压型输出.1、DAC0832的引脚及功能:DAC0832是8分辨率的D/A转换集成芯片.与微处置器兼容.这个DA芯片以其价格昂贵、接口简单、转换控制容易等优点, 在单片机应用系统中获得广泛的应用.D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成.各引脚功能说明: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:数字信号地DAC0832三种数据输入方式:(1)双缓冲方式:即数据经过双重缓冲后再送入D/A转换电路, 执行两次写把持才华完成一次D/A转换.这种方式可在D/A转换的同时, 进行下一个数据的输入, 可提高转换速率.更为重要的是, 这种方式特别适用于要求同时输出多个模拟量的场所.此时, 要用多片DAC0832组成模拟输出系统, 每片对应一个模拟量. (2)单缓冲方式:不需要多个模拟量同时输出时, 可采纳此种方式.此时两个寄存器之一处于直通状态, 输入数据只经过一级缓冲送入D/A转换电路.这种方式只需执行一次写把持, 即可完成D/A转换.(3)直通方式:此时两个寄存器均处于直通状态, 因此要将、、和端都接数字地, ILE接高电平, 使LE1、LE2均为高电平, 致使两个锁存寄存器同时处于放行直通状态, 数据直接送入D/A转换电路进行D/A转换.这种方式可用于一些不采纳微机的控制系统中或其他不须0832缓冲数据的情况.第3章系统软件设计3.1 系统整体流程3.2 数模转换法式#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define DAC0832 P2#define ALL 65536#define Fosc 12000000uchar TH_0,TL_0,flag1,flag=0;uint FREQ=100,num;float temp;uchar code sin_num[]={0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,2,2,2,2, 3, 3, 4, 4, 4, 5, 5, 6, 6,7,7,8,8,9,9,10, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21,22, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36,37,38, 39, 40, 41, 42, 44, 45, 46, 47, 49, 50, 51, 52, 54, 55, 56,57, 59, 60, 61, 63, 64, 66, 67, 68, 70, 71, 73, 74, 75, 77, 78,80, 81, 83, 84, 86, 87, 89, 90, 92, 93, 95, 96, 98, 99, 101,102,104, 106,107, 109, 110, 112, 113, 115, 116, 118, 120,121,123,124,126,128,129, 131, 132, 134, 135, 137, 139, 140, 142, 143, 145, 146,148, 149,151,153,154, 156, 157, 159, 160, 162, 163, 165, 166, 168,169,171,172,174,175,177,178, 180, 181, 182, 184, 185, 187, 188, 189, 191,192,194,195,196,198,199,200, 201, 203, 204, 205, 206, 208, 209, 210, 211,213,214,215,216,217,218,219, 220, 221, 223, 224, 225, 226, 227, 228, 229,230,230,231,232,233,234,235, 236, 237, 237, 238, 239, 240, 240, 241, 242,243,243,244,245,245,246,246, 247, 247, 248, 248, 249, 249, 250, 250, 251, 251,251,252,252,253,253,253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 255,255,255,255,255,255};sbit cs=P3^6;sbit change1=P3^2;sbit change2=P3^1;sbit change3=P3^0;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void init(){TMOD=0X01;temp=ALL-Fosc/12.0/256/FREQ;TH_0=(uint)temp/256;TL_0=(uint)temp%256;EA=1;EX0=1;IT0=1;ET0=1;TR0=1;}void changefreq(void){if(change==0){flag++; if(flag==4) {flag=0;num=0;}}TH_0=(uint)temp/256;TL_0=(uint)temp%256;}void sanjiaobo(void){for(num=0;num<255;num++){cs=0;DAC0832=num;cs=1;}for(num=255;num>0;--num){cs=0;DAC0832=num;cs=1;}}void fangbo(void){cs=0;DAC0832=0XFF;cs=1;for(num=0;num<255;num++);cs=0;DAC0832=0X00;cs=1;for(num=255;num>0;num--);}void juchibo(void){cs=0;DAC0832=++num;cs=1;}void zhengxianbo(void){for(num=0;num<255;num++){cs=0;DAC0832=sin_num[num];cs=1;}for(num=255;num>0;num--){cs=0;DAC0832=sin_num[num];cs=1;}}void ext0() interrupt 0{changefreq();}void timer0() interrupt 1{TH0=TH_0;TL0=TL_0;TR0=0;switch(flag){case 0: {sanjiaobo();TR0=1;break;}case 1: {fangbo();TR0=1;break;}case 2: {juchibo();TR0=1;break;}case 3: {zhengxianbo();TR0=1;break;}default: ;}}void main(){init();while(1);}第4章系统调试4.1 proteus的调试矩形波锯齿波正弦波第5章结论与总结5.1 结论基于单片机的信号发生器设计, 这个信号发生器的设计中涉及到一个典范的控制过程.通过单片机控制一个数模转换器DAC0832发生所需要的电流, 然后使用运算放年夜器LM324可以将其电流输出线性地转换成电压输出, 再将电压经过运算放年夜器的放年夜, 可以获得足够幅度的信号.通过法式的控制, 可以发生一系列有规律的波形.有了年夜概思路后, 我就开始连接硬件电路.首先, 我先根据要求找好了需要的原件, 单片机AT89C52用作主控制模块;然后再连好数模转换电路这一块;再者把这两段组合在一起, 就完成了一个简单硬件电路.最后根据连好电路写出所需法式, 运行胜利后形成Hex文件.再用自己连好的仿真图运行, 如果运行正常, 就可以获得我们需要的波形.按键可以切换波形和改变频率幅度的年夜小.虽然波形图基本可以实现, 但电路图还存在一些问题.就放年夜电路这块来说, 我个人只用了一个放年夜器, 反馈电路用的正向放年夜, 幅度调节不明显.我后来就增年夜了放年夜倍数, 效果相比力好了很多5.2 总结课设开始的时候由于没有经验, 不知从何下手, 所以就上网搜了很多关于信号发生器的资料, 并翻阅了一些相关书籍.经过将近两周的单片机课程设计, 终于完成了我的DAC输出控制的设计, 基本到达设计要求, 从心底里来说, 还是很高兴的, 但高兴之余不能不深思呀!在本次设计的过程中, 我发现很多的问题, 虽然以前还做过这样的设计但这次设计真的让我长进了很多.对单片机设计, 其硬件电路是比力简单的, 主要是解决法式设计的问题, 而法式设计是一个很灵活的工具, 它反映了你解决问题的逻辑思维和立异能力, 它才是一个设计的灵魂所在.因此在整个设计过程中年夜部份时间是用在法式上面的.很多子法式是可以借鉴书本上的, 但怎样衔接各个子法式才是关键的问题所在, 这需要对单片机的结构很熟悉.因此可以说单片机的设计是软件和硬件的结合, 二者是密不成份的.要设计一个胜利的电路, 必需要有耐心, 要有坚持的毅力.在整个电路的设计过程中, 花费时间最多的是各个单位电路的连接及电路的细节设计上, 如在多种方案的选择中, 我仔细比力分析其原理以及可行的原因.这就要求我们对硬件系统中各组件部份有充沛透彻的理解和研究, 并能对之灵活应用.完成这次设计后, 我在书本理论知识的基础上又有了更深条理的理解.同时在本次设计的过程中, 我还学会了高效率的查阅资料、运用工具书、利用网络查找资料.我发现, 在我们所使用的书籍上有一些知识在实际应用中其实其实不是十分理想, 各种参数都需要自己去调整.偶而还会遇到毛病的资料现象, 这就要求我们应更。
湖南科技大学课程设计(论文)题目基于DAC0832波形发生器二〇一二年一月一日目录目录I一、实验目的及任务- 1 -1.1 实验目的- 1 -1.2 实验任务- 1 -二、实验设备、实验分析- 1 -2.1 AEDK实验系统介绍- 1 -2.2 实验分析- 2 -三、设计方案- 2 -3.1 8255芯片简介- 2 -3.2 DAC0832芯片简介- 3 -3.3 设计原理- 4 -四、接线图电路原理图- 5 -五、程序流程图- 7 -5.1 子程序设计- 7 -5.2 总程序设计- 8 -六、调试方法及及实验结果- 9 -七、总结与体会- 9 -附录- 9 -源程序- 10 -致- 11 -参考文献- 12 -一、实验目的及任务1.1 实验目的1.掌握计算机应用系统特别是微机接口系统的设计。
2.掌握接口电路设计技术。
初步掌握电子设计软件Protel99使用。
3.掌握微机接口程序的编制与调试技术。
1.2 实验任务利用AEDK实验系统以及相关设备制作一个基于数/模转换器DAC0832的波形发生器,具备基本的功能。
二、实验设备、实验分析2.1 AEDK实验系统介绍2.1.1 系统组成AEDK8688ET微机教学实验系统是航虹高科技实业公司在继承8688T和8688TI微机教学实验机优点的基础上,广泛地吸取用户的使用意见和建议,结合8086188仿真技术,推出的新一代微机教学实验系统。
本实验系统由AEDK8688ET实验机外配计算机和其他一些附件及选配件组成该实验系统,既可以在无PC机的状态下独立运行,又可以接PC机通过串口或ISA总线运行。
在扩展功能上,可以通过实验机的25芯插座外接机电实验平台,做机电一体化实验。
系统硬件组成:主机:AEDK8688ET实验板附件:PC机缓冲驱动卡(UPCXT)、60芯联接电缆、RS-232通讯电缆、维修测试板(U88ETF)及联接电缆、硬导线一束、电源电缆。
选配件:专用电源、机电实验平台。
目录1.概述 (2)1.1DAC0832设计波形发生器的历史背景和意义 (2)1.2DAC0832设计波形发生器的发展和现状 (2)2.课题方案设计 (3)2.1系统功能概述 (3)2.2方案的提出及论证 (3)方案一 (3)方案二 (3)方案三 (3)方案四 (4)3.系统硬件设计 (4)3.1 系统硬件总体设计概述 (4)3.2 系统各个模块的设计 (4)3.2.1 单片机系统模块 (4)3.2.2 晶振时钟模块 (7)3.2.3 复位电路模块 (8)3.2.3 数模转换模块 (9)3.2.4 运放模块 (10)4.软件设计流程 (10)4.1 系统总体控制功能图 (10)4.2 各波形的产生 (11)4.2.1 锯齿波的实现 (11)4.2.2 方波的实现 (11)4.2.3 三角波的实现 (12)4.2.4 正弦波的实现 (12)5.软硬件联调及调试结果 (13)5.1 硬件电路调试 (13)5.2 各功能模块软件调试 (13)5.2.1矩形波软件调试 (13)5.2.2锯齿波软件调试 (14)5.2.3正弦波软件调试 (14)5.2.4三角波软件调试 (15)5.2.5阶梯波软件调试 (15)5.3实物图 (16)结束语 (19)参考文献 (19)附录 (20)附录1 原理图 (20)附录2 PCB图 (21)附录3 C语言程序清单 (21)附录4 元器件清单 (25)1.概述1.1DAC0832设计波形发生器的历史背景和意义自20世纪90年代以来,单片机已进入了一个高速发展的阶段,世界上著名的半导体厂商都注重新型单片机的研制、生产和推广。
单片机的应用已经深入到国民经济的各个领域中,由单片机控制的微型电脑产品比比皆是。
单片机正朝着面向多层次用户的多品种多规格方向发展。
基于单片机和DAC0832的函数信号发生器的设计,本课题是充分运用大学期间对所学专业知识,结合现在使用的信号发生器的基本功能,完成一个系统的设计的全过程,通过单片机和模数转换芯片以及放大器产生多种波形的函数信号发生器在控制领域有着相当广泛的应用。
二○一四~二○一五学年第一学期信息科学与工程学院自动化系课程设计报告课程名称:微机原理及应用课程设计班级:自动化1204班姓名:田野学号:201209157043指导教师:陈国年时间:2014.12.28题目:函数发生器1的设计1.设计任务用8086做控制器,利用DAC0832设计一个函数发生器,能分别产生方波、阶梯波(每阶梯1V)、锯齿波(正向或负向)和三角波,并利用按键选择(自行定义)输出波形同时将当前输出波形代号显示在LED上:0为方波、1为阶梯波、2为锯齿波、3为三角波。
2.设计要求波形输出幅值和频率不限(可根据需要考虑增加调频调幅功能),通过8255A 进行按键选择。
3.设计内容3.1系统方案的设计与选择:(1)数字按键的实现可以通过8255的输入输出端口,定义方式0工作方式,C 口低四位输入信号,B口输出信号,通过按键改变C口电平信号,使输入信号改变,并在在B口输出不同信号,在数码管上显示不同数字;(2)波形的产生则使用8086与DAC0832连接,通过8086给DAC0832输入不同数字信号,在DAC0832的输出端输出波形,波形的观察使用一个放大器连接模拟示波器显示。
3.2系统框图:3.3系统基本介绍:此方案是通过并行接口芯片8255A和8086计算机的硬件连接,并通过8086控制DAC0832产生波形相应波形,通过8255A输出信号控制数码管显示不同数字。
8255A的C端口有四个按键,按下相应的按键,使输入低电平。
①按下第一个按键显示数字0,在示波器上产生方波;②按下第二个按键显示数字1,产生阶梯波;③按下第三个按键显示数字3,产生锯齿波;④按下第四个按键显示数字4,产生三角波。
3.4模块功能介绍:8255A:D0~D7口与8086数据端连接,PB0~PB6与七段共阴极数码管相连接以显示数字,PC0~PC4连接四个按键,实现输入电平的改变。
A0、A1接地址线A1、A2,CS端连接74ls138的片选端。
dac0832波形发生器原理
DAC0832波形发生器是一种使用8位D/A转换器的波形发生器,其工作原理是将数字信号转换为模拟信号。
其工作原理主要基于以下步骤:
1. DAC0832接收从微控制器(如单片机)发送过来的数字信号,这些数字信号代表了要生成的波形(如正弦波、方波、锯齿波、三角波等)的参数(如幅度、频率等)。
2. DAC0832将这些数字信号转换为模拟信号,即将数字信号的幅度转换为模拟信号的电压或电流。
这一步是通过D/A转换器完成的,它使用一个8
位的数字输入和一个模拟输出。
3. 生成的模拟信号经过运算放大器进行放大和滤波,以获得所需的波形。
4. 输出的模拟信号可以连接到示波器、音频设备或其他需要模拟信号的设备上。
在实现波形时,需要使用定时器来控制段码表输出速度,以控制波形的频率。
对于每种波形,可以通过改变数字信号的值和控制输出的时间来实现不同的频率和幅度。
总的来说,DAC0832波形发生器的工作原理是基于数字信号转换为模拟信号的过程,通过控制数字信号的值和控制输出的时间来实现不同的波形和参数。
单片机实验——利用DAC0832完成波形发生器1.实验目的(1)掌握D/A转换器的基本原理和使用方法。
2.预习要点(1)D/A转换器的基本原理和使用方法。
3.实验设备计算机、单片机实验箱,示波器。
4.实验内容基本要求:利用实验板上的0832D/A芯片,将示波器连接到滤波电路后,通过程序产生周期为20ms的三角波。
扩展要求:利用实验板上的0832D/A芯片和电位器,将示波器连接到滤波电路后,通过程序产生周期或幅度可调的锯齿波。
实验7ORG 0000HAJMP MAIN;***********************************;主程序ORG 0030HMAIN:MOV DPTR,#4000H ;为DA分配地址,应接CS3CLR AUP:MOVX @DPTR,A ;上坡,A从0加到100,上坡时间为100*100us=10ms LCALL DELAYINC ACJNE A,#100,UPSJMP DOWNDOWN:MOVX @DPTR,A ;下坡,A从100减到0,下坡时间为100*100us=10ms LCALL DELAYDEC ACJNE A,#0,DOWNSJMP UP;************************************;延时100us (这个相信大家可以自己算了吧)DELAY:MOV R7,#02H ;这其实不是100ms,我用示波器调的时候发DEL1:MOV R6,#22 ;现当R6为22的时候周期比较接近20ms,所以DEL2:DJNZ R6,DEL2 ;就用了22,因为上面有些指令知行还需要时间DJNZ R7,DEL1RET;**************************************;其实如果用定时器的话我相信会更精确一些;尤其是方式2。
接口芯片DAC0832的应用三角波、梯形波两种波形课程设计(论文)课程名称:微型计算机组成原理与接口技术组别:第十组题目:接口芯片 DAC0832 的应用院(系):信息与控制工程系专业班级:电子信息科学与技术 1202姓名:学号:指导教师:2015 年月日西安建筑科技大学华清学院《微机原理与接口技术》课程设计(论文)任务书专业班级:电子信息科学与技术1202学生姓名:指导教师(签名):一、课程设计(论文)题目波形发生器的设计二、本次课程设计(论文)应达到的目的基于 Proteus 软件,绘制 8086 微处理器和 DAC0832 外围电路,实现波形发生器的设计。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)1、利用 Proteus 软件绘制由 8086 微处理器和 DAC0832 构造波形发生器;2、利用汇编语言编写程序实现三角波、梯形波两种波形;3、综合调试实现仿真功能。
四、应收集的资料及主要参考文献:1.刘乐善.微型计算机接口技术及应用[M].武汉:华中科技大学出版社, 2000 2.陈红卫.微型计算机基本原理与接口技术[M].北京:科学出版社,2003 3.顾晖,梁惺彦等.基于8086和Proteus仿真[M].北京:电子工业出版社, 2011. 五、审核批准意见教研室主任(签字)摘要D/A 转换器即 DAC 是指把输入的数字信号量信息转换成为对应的模拟量信号输出。
本次课设是采用DAC0832 波形发生器来设计和实现,系统利用8086 作为系统的核心来控制整个电路,加上74154TTL 4 线—16 线译码器和 74273TTL 带公共时钟复位八 D 触发器以及 7427TTL3 输入端三或非门等器件的使用来完成整个电路的设计,从而实现三角波,方波,锯齿波和阶梯波等波形。
关键字:DAC0832 波形发生器目录1、绪论...............................................................1 2、设计原理.........................................................2 3、设计程序.........................................................7 4、系统联调.........................................................11 5、总结 (12)波形发生器的设计一、绪论波形发生器是一种常用的应用电子仪器设备,广泛地应用于电子电路、自动控制系统和教学实验等领域。
课程设计课程名称:低频信号源的设计专业年级:电子信息工程082班学生姓名:学号: 200805070211实习时间: 2011年6月30至7月1日指导教师:填写时间:2011年7 月3日一、设计任务及意义本系统是基于AT89C52单片机的数字式简易低频信号发生器。
用程序实现方波、锯齿波、三角波等信号,并在Protues电子设计平台上对方案进行了仿真。
消除了传统信号发生器存在元器件分散性造成波形失真的弊端。
系统采用AT89C52单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、按键电路。
通过按键控制可产生方波、锯齿波、正弦波。
波形的频率和幅度在一定范围内可任意改变,其设计简单、性能优良,可用于多种需要低频信号源的场所,具有一定的实用性。
二、设计方案选择及论证系统方案比较方案一:采用函数信号发生器ICL8038集成模拟芯片,(如图2-1)它是一种可以同时产生方波、三角波、正弦波的专用集成电路。
但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。
方案二:采用分立元件实现非稳态的多谐振振荡器,然后根据需要加入积分电路等构成正弦、矩形、三角等波形发生器。
这种信号发生器输出频率范围窄,而且电路参数设定较繁琐,其频率大小的测量往往需要通过硬件电路的切换来实现,操作不方便。
方案三:采用单片机和DAC0832数模转换器生成波形,由于是软件滤波,所以不会有寄生的高次谐波分量,生成的波形比较纯净。
它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。
经比较,方案三既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比较高,所以采用该方案。
三、硬件设计系统总体框图设计本系统是以单片机AT89C51和8位D/A 转换芯片DAC0832共同实现正弦波,方波,锯齿波这三种常见波形的产生及显示相互切换的功能。
图3-1 系统总体框图 3.1单片机晶振电路对于MCS-51一般的晶振可以在1.2MHZ —12MHZ 之间选择,这是电容C 可以对应的选择10pf-30Pf 。
ORG 0000H
KB:MOV P1,#0FFH;置P0口为输入方式MOV A,P1;读键值
CPL A
ANL A,#1FH;屏蔽高三位
JZ KB;无键闭合继续检测
ACALL DL Y_10MS;延时10ms,去抖动MOV A,P1;再次检测有无键闭合
CPL A
ANL A,#1FH
JZ KB
CJNE A,#01H,KB01
LCALL FANGBO;调用方波子程序SJMP KB
KB01:CJNE A,#02H,KB02
LCALL JVCHI;调用锯齿波子程序SJMP KB
KB02:CJNE A,#04H,KB03
LCALL TIXING;调用梯形波子程序SJMP KB
KB03:CJNE A,#08H,KB04
LCALL SANJIAO;调用三角波子程序SJMP KB
KB04:CJNE A,#10H,KB
LCALL ZHENGXIAN;调用正弦波子程序SJMP KB
;方波子程序//////////////
FANGBO:
MOV DPTR,#0FFFEH
LP1:
MOV A,0
MOVX @DPTR,A
LCALL DELAY1
MOV A,#0FFH
MOVX @DPTR,A
LCALL DELAY1
AJMP LP1
;锯齿波子程序/////////////
JVCHI:
MOV DPTR,#0FFFEH
MOV A,#0FFH
WW:MOVX @DPTR,A
DEC A
NOP
NOP
NOP
AJMP WW
;梯形波子程序
TIXING:
MOV DPTR,#0FFFEH MOV R2,#07DH
MOV R4,#0AFH
MOV A,#00H
D1:MOVX @DPTR,A LCALL DELAY2
ADD A,R2
DJNZ R4,D1
AJMP D1
;三角波子程序/////////////// SANJIAO:
MOV DPTR,#0FFFEH MOV R6,#10H
MOV A,#00H
LOOP1:
MOVX @DPTR,A
ADD A,R6
CJNE A,#0FFH,LOOP1 LOOP2:
MOVX @DPTR,A
SUBB A,R6
CJNE A,#07H,LOOP2 AJMP LOOP1
;正弦波子程序///////////////// ZHENGXIAN:
MOV R1,#00H
QZ:MOV A,R1
MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV DPTR,#0FFFEH MOVX @DPTR,A
INC R1
AJMP QZ
;延时程序2
DELAY2:MOV 31H,#02H PW:DJNZ 31H,PW
RET
;延时子程序1
DELAY1: MOV 30H,#0FFH
DL: DJNZ 30H,DL
RET
;消除抖动延时*********
DL Y_10MS:MOV R5,#250
DY1: MOV R7,#40
DY2: DJNZ R7,DY2
DJNZ R5,DY1
RET
;正弦表格///////////
SETTAB:
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 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
END。