基于单片机双通道的多波形发生器.doc
《基于单片机双通道的多波形发生器.doc》由会员分享,可在线阅读,更多相关《基于单片机双通道的多波形发生器.doc(19页珍藏版)》请在沃文网上搜索。
1、 摘要:利用单片机控制灵活的特点,采用软件方式实现信号生成,系统采用查表法基本工作原理,使用片内ROM 波形查询表实现相幅转换. 系统采用 80C51 单片机实现数据处理, DAC0832 实现D/ A 转换, 采用拨码开关设置频率的参数,采用按键选取波形。使用LED七段数码管作为波形的代号。实现了正弦波、方波、三角波信号生成、幅值和频率调节,各种波形信号的参数控制,根据按键的设置可以同时输出两列波。关键词: 查表法,数字频率合成技术,单片机,可调波形,双通道引言 信号发生器输出的常规波形,常应用于电子电路的性能测试和参数测量。但常规的波形发生器一般是只能同时产生一种可控的波形,为此设计一种基
2、于单片机控制的信号波形发生器,以满足设计需求。一、设计方案论述:本课题的设计方案有四种: (1)采用函数信号发生器ICL8038集成模拟芯片,它是一种可以同时产生方波、三角波、正弦波的专用集成电路。但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。 (2) 传统的直接频率合成技术(DS)。该类方法能实现快速频率变换,具有低相位噪声以及所有方法中最高的工作频率。但由于采用大量的倍频、分频、混频和滤波环节,导致其结构复杂、体积庞大、成本昂贵 ,而且容易产生过多杂散分量。 (3)锁相环式频率合成器( PLL)。该类技术具有良好窄带跟踪特性,
3、可选择所需频率信号,抑制杂散分量,且省去大量滤波器,有利于集成化和小型化。但由于锁相环本身是个惰性环节,锁定时间较长,因而频率转换时间较长,且由模拟方法合成的正弦波的参数(如幅度、频率和相位等)都难以定量控制。 (4)直接数字式频率合成器(Direct Digital Frequency ,DDS)。该类方法具有高频率稳定度、 高频率分辨率以及极短的频率转换时间。此外 ,全数字化结构便于集成 ,输出相位连续,频率、 相位和幅度均可实现程控 ,而且理论上能够实现任意波形。经综合比较,第四种方法课通过要求的单片机实现程序控制,程序简单。因此本实验采用第四种方案二、系统工作原理 利用单片机的片内RO
4、M 存储所需的信号波形相位幅度值(又称波形表),根据外电路的输入信号利用查表方式查找片内ROMA中相应地址的相位幅度值。将输 图1出的八位二进制数据进行D/A转换,I/V转换后输出。 根据正弦信号波形的频率和相位在波形表中查找相应的响应点,由于输出的常规波形都具有周期性,波形的产生以正弦波为例:因其周期性,因此只需要设计一个完整的周期,信号的输出部分采用了D/A转换,因此为了适应D/A转换的特征,将正弦函数波形整体上移,时期最低点的值为0,如上图1所示。 D/A转换的最大输入值为255,因此对于周期函数,需要采样的点数最多不超过256个,本设计中采样点数设置为256,相位累加器的数值由累加器A
5、的值传送,将A中的值作为偏移相位值,送还到指针,通过指针查找相应相位的幅度值,并通过P0口输出到D/A转换器转换成相应的模拟信号。系统整体原理框图如下所示:键盘扫描单 片 机 8051 LED数码管D/A转换波形输出 图2-1 系统原理方框图三、硬件设计及原理3.1主控电路设计单片机是整个波形发生器的核心部件,本次设计采用了应用广泛的MCS-51系列的AT89C51单片机。单片机在整个系统中的作用是形成扫描码,进行键值识别、键处理、参数设置;形成显示段码;形成波形的数字编码,并输出到D/A接口电路。拨码开关输入的值为查找一个值的周期,因此通过拨码开关实现波形周期的设置。主控部分及时钟复位电路、
6、变频电路设计原理图如图3.1所示: 图3.13.2 D/A转换电路设计 D/A部分本设计采用ADC0832芯片实现,该芯片输出量是电流值,因此需要通过一个高阻抗的线性运放实现I/V(电流到电压)转换实现电压的输出。由于本设计是面向双通道设计,所以需采用两列DA装换同时输出AD部分如图3.2所示 图3.2 为实现不同波形的同时产生,软件实现时采用复合查表方式。由于查找表输出的速度很快,因此输出波形的可以近似成连续波形,在世博其上显示的波形则为模拟信号的波形图。 例如为同时输出正弦波形和三角波形,在执行完一次正弦波形查找输出操作后紧接着又执行一次三角波的波形查找操作,由于信号输出的端口使用的是同一
7、个端口,又要能同时输出两种信号波形,因此采用两个DAC0832芯片通过总线接入到P0口,使用P3.7输出的信号作为DAC0832的片选信号,为实现该端口的任何一种状态均能选择到一个芯片,因此该端口的信号一个直接接到一个DAC0832的CS端,另一个通过一个反相器接入到另外一个DAC0832的CS端。经运放实现I/V转换后的电压值可以直接输出到示波器观察到相应的波形情况。3.3 键盘/显示接口电路设计 因为本设计按键较少,所以键盘采用独立式键盘,一个按键对应一个IO口,P1.0对应输出方波按键,P1.2对应输出三角波按键,P1.3对应正弦波输出按键,当两个键同时按下是,会同时输出两列波。显示部分
8、采用LED显示,输出方波时显示“1”,三角波时显示“2”,正弦波时显示“3”.四、 系统软件设计4.1程序总体设计 程序是本设计中的重点。单片机的功能与它的程序有很大关系,本设计中,为实现输出三种波形,并且实现同时可以输出两列波要使单片机定时向数模转换器发送数据,数据的不同将实现不同的波形输出。大致程序流程图如4.1:详细的流程图如图4.2 图4.1 图4.2 4.2键盘扫描程序 将P1口得值送给累加器A,如果有键按下,P1的相应位为0,否则为1,所以可以根据判断P1口得值来分析哪一个键按下,具体程序如下:MAIN: MOV A,P1 /扫描按键 SUBB A,#249 / 当SW3和SW2按
9、键按下,跳转到REL1,输出三角波和正弦波 JZ REL1 SUBB A,#1 /当SW1和SW3按下,跳转到rel2,输出矩形波和正弦波 JZ REL2 SUBB A,#1 /当sw3按下,跳转到rel4,只输出正弦波 JZ REL4 SUBB A,#1 /当sw1和sw2按键按下,跳转到rel3,输出矩形波和三角波 JZ REL3 SUBB A,#1 /当sw2按键按下,跳转到rel5,只输出三角波 JZ REL5 SUBB A,#1 /当sw1按键按下,跳转到rel6,只输出矩形波 JZ REL6 LJMP MAIN4.3波形产生程序为了简化设计程序三种波形均采用查找表,以正弦波为例,方
10、波,三角波类似。REL4: MOV A,P1 /由于程序较长JZ直接跳转不到相应位置,需加一个中间跳转 CJNE A,#251,MAIN LJMP DAN1 DAN1: MOV R0,#00H /当sw3按下,跳转到rel4,只输出正弦波LOOP3:MOV A,P1 CJNE A,#251,OVER1 MOV A,R0 MOV DPTR,#TAB2 /TAB2是正弦波的取值表 MOVC A,A+DPTR MOV P3,#30H MOV P0,A INC R0 MOV P2,#0FFH MOV A,P2 CPL A MOV R3,AL304: DEC R3 CJNE R3,#255,L304 C
11、JNE R0,#255,LOOP3 LJMP DAN1OVER1:LJMP MAIN RET四.系统调试与结果分析用WAVE6000编译调试运行生成 .HEX文件,使用Proteus设计电路(电路图见附录一),将.HEX文件加载到AT89C51上,进行硬软结合综合仿真,以正弦波为例进行仿真分析: 频率调试 正弦波仿真频率最低时只有5HZ 正弦波仿真频率最高时200HZ 幅度测试最低幅度0.4mv最高幅度为2.5mv频率调节可以实现从5HZ到200HZ,步进为0.76HZ虽然幅度都很低,不过最高幅度是最低幅度的6倍,在应用是可在加以放大器可以实现从0.8V到5V的幅度调节,可以满足一般信号发生器
12、的要求。其他仿真输出波形如下所示 方波波形 三角波形 正弦波形 方波和正弦波形同时发生 三角和正弦波形同时发生 方波和三角波形同时发生总结 通过调试可得,我们设计的电路能够完成产生方波、三角波、正弦波,并对进行调幅与调频操作,而且可以同时输出两列波。在调试的过程中不是一帆风顺的,有很多的问题都是自己摸索和在与同学交流的过程中得到了解决。在设计的过程中,我先完成的是发生三种波形,通过编程实现并调试成功,同时也实现了调幅与调频,但是怎么实现双通道输出波形把我们难住了,使设计无法进行,通过询问老师,经过老师的指导和同学交流后,如果三种波形的产生都采用一种方法-查表法,同时输出几列波成为了可能,由于双
13、通道输出对IO口数量的要求加大,老师建议我们采用总线结构共用数据总线,通过片选实现同时输出两列波,对此进行了尝试,完成了设计并调试成功。调试过程是发现问题的过程,这要求我们耐心和心细,有一种严谨的科学态度,以能够更好的实现我们的设计。 通过为期两周的课程设计,在老师的精心指导下和同学合作之下最终成功地完成了此次设计,并从中学到了很多的知识和经验,对单片机以及汇编语言有了更深层次的理解。本次课程设计使我认识到:设计思路是实施操作的扎实基石。一个良好的设计思路,是电路的生命。宁愿在思路设计上多花上50%的时间。因为前期看似慢,实际上恰恰给后期的制作带来很大的方便,效果往往是更节省了许多时间。活学活
14、用。这次设计让我真正体会到了书本知识永远是基础,而基础正是你向高层次迈进的扎实阶梯,没有这个基础,就无法实现技术上的腾飞。在实践当中,灵活运用书本上所讲的知识,万变不离其中,只有扎实掌握了核心的方法,才有可能做到活用巧用。参考文献 1 周兴华手把手教你单片机北京航空航天大学出版社。 2 张友德、赵志英、徐时亮单片微机原理应用与实验复旦大学出版社。 3 姚福安电子电路设计与实践山东科学与技术出版社。 4 张毅刚、彭喜圆MCS-51单片机应用设计哈尔滨工业大学出版社。 5康华光、华中理工大学电子学教研室电子技术基础高等教育出版社。 6高吉祥、唐朝京编著全国大学生电子设计竞赛培训系列教程 清华大学出
15、版社。 附录1:Proteus仿真电路图附录二:Protel原理图附录三:源程序代码ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV A,P1 /扫描按键 SUBB A,#249 / 当SW3和SW2按键按下,跳转到REL1,输出三角波和正弦波 JZ REL1 SUBB A,#1 /当SW1和SW3按下,跳转到rel2,输出矩形波和正弦波 JZ REL2 SUBB A,#1 /当sw3按下,跳转到rel4,只输出正弦波 JZ REL4 SUBB A,#1 /当sw1和sw2按键按下,跳转到rel3,输出矩形波和三角波 JZ REL3 SUBB A,#1 /当sw2按
16、键按下,跳转到rel5,只输出三角波 JZ REL5 SUBB A,#1 /当sw1按键按下,跳转到rel6,只输出矩形波 JZ REL6 LJMP MAINREL4: MOV A,P1 /由于程序较长JZ直接跳转不到相应位置,需加一个中间跳转 CJNE A,#251,MAIN LJMP DAN1 REL1: MOV R0,#00H / 当SW3和SW2按键按下,跳转到REL1,输出三角波和正弦波 LOOP: MOV A,P1 CJNE A,#249,MAIN MOV A,R0 MOV DPTR,#TAB1 MOVC A,A+DPTR CLR P3.7 MOV P0,A MOV A,R0 MO
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 双通道 波形 发生器
