基于单片机的可调频的简易信号发生器_第1页
基于单片机的可调频的简易信号发生器_第2页
基于单片机的可调频的简易信号发生器_第3页
基于单片机的可调频的简易信号发生器_第4页
基于单片机的可调频的简易信号发生器_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、常熟理工学院课程设计(报告) 单片机课程设计报告 题 目 简易信号发生器设计 学院 机电工程学院 年 级 10级 专 业 测控技术与仪器 班 级 一班 学 号 1003030113 学生姓名 黄志恒 指导教师 傅国红 设计时间 2013.6.21 1目 录1.概述12.系统设计22.1 方案设计与比较22.2 设计原理23.硬件设计43.1主要器件介绍43.1.1主控电路43.1.2数/模转换电路53.2 单元电路63.2.1晶振电路63.2.2复位电路63.2.3按键接口电路73.2.4放大电路83.2.5 端口配置83.3 器件清单104.软件设计114.1 软件功能模块划分114.1.1

2、 键盘扫描114.1.2 方波实现过程124.1.3 三角波实现过程134.1.4正弦波实现过程144.2 各功能模块间关系描述155.系统调试165.1 硬件调试165.2 软件调试175.3 设计效果18结束语20参考文献211.概述这次课程设计的主要目的是自己动手做一个可以实现简易信号发生器的设计,在设计中考虑到波形可以在一定范围里的频率的调整和不同波形的变换。可以准确,稳定的讲信号的波形显示出来。信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。按照输出

3、波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。这次课程设计是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、方波、正弦波的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序

4、装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,可按实际的需要调整信号波的频率及波形,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。2.系统设计2.1 方案设计与比较在设计过程中,我们根据需求利用不同的芯片来生成波形,由此设计了以下三个方案:方案一:采用单片函数发生器(如0832),0832可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器的输出来改变调制电压,也可以实现数控调整频率,但产生信号的频率稳定度不高。方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定

5、在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。通过比较,鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,并且可以随时按照实际的需求来改变信号的波形与频率,使信号发生器能适用于大多数的情况,而且它使用的几种元

6、器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。信号发生器流程图如图2-1所示.图2-1 信号发生器流程图2.2 设计原理设计一个基于单片机的函数信号发生器,该函数信号发生器可以输出四种波形,有正弦波,锯齿波,三角波,方波。在此基础上进一步通过复位按钮的调节来实现对波形频率的调节和波形的选择。数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。AT89S51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行

7、通讯接口等,只要将AT89S51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图2-2所示。AT89S51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口电路到达DAC0832单片机进行D/A模拟转换,然后通过运算放大器将波形进行滤波和放大然后将其转换成模拟信号也就是所需要的输出波形。按波形频率计算输出波形两点之间的时间间隔,修改T2的TH0。具体编程算法是:先去频率的倒数得到周期,再将周期内的波形点数,得到两个点间

8、的时间间隔。输出参数WAVE_FREQ(波形频率) 。在得到波点间隔时间。波点间隔时间Tinterval = (1000000/WAVE_FREQ)/WAVE_POINT一个周期被分离成若干个点,对应的四种波形的若干个数据存放在以TAB1-TAB4为起始地址的存储器中。图2-2 系统结构框图213.硬件设计图3-1 硬件结构图如图3-1:要实现本系统,需主控电路、数/模转换电路、单元电路划分:晶振电路、复位电路、按键接口电路、放大电路。3.1主要器件介绍3.1.1主控电路AT89S51单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作

9、模式。在波形发生器中,将其作定时器使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。在波形发生器中,只用到片内定时器/计数器溢出时产生的中断请求,即是在AT89S51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89S51等待,直到定时器计时结束,产生中断请求,AT89S51响应中断,接着输出下一

10、个采样点信号,如此循环产生所需要的信号波形。如图3-2所示,AT89S51从P0口接收来自键盘的信号,并通过P2口输出一些控制信号,将其输入到8155的信号控制端,用于控制其信号的输入、输出。如果有键按下,则在读控制端会产生一个读信号,使单片机读入信号。如果有信号输出,则在写控制端产生一个写信号,并将所要输出的信号通过8155的PB口输出,并在数码管上显示出来。图3-2 AT89C52电路图3.1.2数/模转换电路由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。DAC0832

11、主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。由图3-3可知,DAC0832的片选地址为7FFFH,当P25有效时,若P0口向其送的数据为00H, 则U1 的输出电压为0V;若P0口向其送的数据为0FFH时, 则U1的输出电压为-5V. 故当U1 输出电压为0V时,由公式 得:Vout = - 5V.当输出电压为- 5V时,可得:Vout = +5V,所以输出波形的电压变化范围为- 5V+

12、5V. 故可推得,当P0所送数据为80H时,Vout为0V。图3-3 数/模转换电路3.2 单元电路3.2.1晶振电路8051单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图3-2所示。电容C3、C4对振荡频率有稳定作用,其容量的选择为30pf,振荡器Y1选择频率为11.0592MHz的石英晶体。由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间为几微秒,故延时时间还要加上指令时间才能获得较大的频率波形。图3-4 晶振电路3.2.2复位电路单片机在启动时需进行复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片

13、机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。1、手动按钮复位 手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。2、上电复位AT89S51的上电复位电路如图2所示,只要在RST复位输入引脚上接一电

14、容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至10F。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms。在图3-3的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的

15、限制作用,这个负电压将不会对器件产生损害。图3-5 复位电路3.2.3按键接口电路图3-4为键盘接口电路的原理图,图中键盘和8155的PA口相连,AT89S51的P0口和8155的D0口相连,AT89S51不断的扫描键盘,看是否有键按下,如有,则根据相应按键作出反应。其中“SELECT_WAVE”号键控制选择不同的波形的输出,“ADD_FREQUBNCY”可增加输出波形的输出频率, “DELETE_FREQUBNCY”可减少输出波形的输出频率。图3-6 按键接口电路3.2.4放大电路LM324 是四运放集成电路,它采用14脚双列直插塑料封装,外形如图3-4所示。它的内部包含四组形式完全相同的运

16、算放大器, 除电源共用外,四组运放相互独立。每一组运算放大器可用图3-4所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“4”为正电源端,“11” 为负电源端,“1”为输出端。两个信号输入端中, “2”为反相输入端,表示运放输出端Vo的信号与该输入端的位相反,“3”为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。放大器电压放大倍数Av仅由外接电阻Ri、Rf决定:Av=-Rf/Ri。负号表示输出信号与输入信号相位相反。从单片机中输出的数字信号经过DAC0832转换后,由于信号的幅值比较小,所以需要放大。采用常规的放大方式,采用两片运放,实现两级放大。如图3-5。

17、 图3-7 LM324 图3-8 放大电路3.2.5 端口配置以上各单元电路的端口配置见表3-9:表3-9单片机端口配置表编号网络标号端口配置输入/输出功能描述1S0S7PC7PC1、PE5输入8路拨码开关进行灯质设定2OPCONPB3输入光照度检测3SW_MSPB2输入工作模式切换(备用)4AD0_VOLPB1输入电压A/D检测5AD1_CURPB0输入电流A/D检测6LED_DRV1PD2输出LED灯第一路输出7LED_DRV2PD3输出LED灯备用输出8UART1_TXPD5输出串口发送9UART1_RXPD6输入串口接收10SWIMPD1双向ISP与调试11RSTRST输入复位输入12

18、ALE/PROGALE输出输出脉冲锁存地址的低8位字13PSENPSEN输出外部存储器读选通信号14XTAL1XTAL1输入振荡器反相放大器的输入15XTAL2XTAL2输出振荡器反相放大器的输出16DI7DI0P0输入8位的数据输入端17ILEVCC输入输入锁存信号,高电平有效18CSGND输入片选信号,低电平有效19WRGND输入写信号,低电平有效20XFERDGNG输入传送控制信号,低电平有效21IOUT1LM324-3输出电路输入,随寄存器线性变化22IOUT2LM324-2输出IOUT2,IOUT1的和为一个常数3.3 器件清单表3-10 主要器件清单编号器件名称型号数量1万能板5c

19、m*7cm12集成电路AT89S5113集成电路DAC083214集成电路插座DIP4015集成电路AMS1117-5V16电阻20K17电阻10K18电阻1K109电阻100310瓷片电容104111瓷片电容30pF212电解电容10uF/16V113红色发光二极管LED114接插器CON2215接插器IDC10216微动按钮SW517晶振11.0592MHZ1184输入双与非门LM32414.软件设计图4-1 软件功能模块图如图4-1系统软件功能包括:波形的选择、波形频率的调整、电路的复位、数/模的转换、信号的放大。通过按键的调整能对信号的输出波形进行选择,能输出正弦波、三角波、锯齿波。并

20、可对输出波形的频率进行调整,复位按钮可对整个系统进行初始化,将系统还原到初始的状态,将调整妥当的信号通过芯片传输到数/模转换器将电压信号转换成波形,然后将信号输入进信号放大器,进行滤波和信号的放大,再输出到显示器上。下面进行详细介绍:4.1 软件功能模块划分4.1.1 键盘扫描如图4-2流程图中,首先先对整个系统进行初始化,然后单片机AT89S51对键盘的按键进行扫描,检测到按键闭合电平后先执行个延时程序,做一个12ms至24ms的延时,让前抖动消失后再做一次检测按键的状态,如果仍然闭合状态下的电平,则认为真的有按键按下;若不是闭合的电平,则认为没有按键按下。当按键按下后,连接到该按键的I/O

21、输入口为高电平变为低电平,然后单片机记录下当前的输入值,然后再一次检测按键的状态是否已释放,结束当前的数值输入。图4-2 键盘扫描程序流程图核心源码分析:k=KEY_Scan(0); /按键扫描if(k=1) state+; if(state>3)state=0;if(k=2)ys+=1; /按键减频率 if(k=3)ys-=1; /按键加频率if(state=0) /正弦波 lcd_pos(0x07); i = 0; while(i<8) lcd_wdat(display3i); i+; delay_ms(1); DAC0832_sin(ys);if(state=1)/锯齿波 l

22、cd_pos(0x07); i = 0; while(i<8) lcd_wdat(display4i); i+; delay_ms(1); DAC0832_juchi(ys); /三角波if(state=2) lcd_pos(0x07);i = 0;while(i<8) lcd_wdat(display5i); i+; delay_ms(1); DAC0832_sanjiao(ys);/方波if(state=3) lcd_pos(0x07);i = 0;while(i<8) lcd_wdat(display6i); i+; delay_ms(1); DAC0832_fangb

23、o(ys); 4.1.2 方波实现过程设个自变量i=0使之延时一段时间,再另i=255时在延时与i=0相同的时间,然后再重复上述过程。程序如下:void DAC0832_fangbo(unsigned int ys) /方波 unsigned char i,j; j=128; for(i=128;i>0;i-)P2=0;delay(ys); while(j-)P2=255;delay(ys); 图4-3 方波实现流程图4.1.3 三角波实现过程设个自变量i让它不断地自加1,直到加到255时,t=i,对t进行不断地自减1直到减到t=0,然后再不断地重复上述过程产生三角波。程序如下:void

24、 DAC0832_sanjiao(unsigned int ys) /三角波 unsigned char i; for(i=0;i<255;i+)P2=i;delay(ys); while(i-)P2=i;delay(ys); 图4-4 三角波实现过程4.1.4正弦波实现过程输入正弦波的采样点,计算出一个周期内正弦波信号值。然后通过输出的两点间的延时来实现调频。依次循环输出,可得出正弦波。void DAC0832_sin(unsigned int ys)unsigned char i; for(i=0;i<255;i+) P2=SinTabi; delay(ys); 图4-5 正弦

25、波实现过程4.2 各功能模块间关系描述集成电路由89S51单片机,时钟电路和复位电路构成一个基本的单片机系统。组成一个AT89S51最小系统,实现数据的寄存与传输,其中复位电路可是系统初始化,其中信号通过按键接口电路控制电压信号的输入,来实现输出波形的控制选择和频率的调整。时钟电路控制着信号的中断,在单片机的外部扩展D/A转换器DAC0832接受来自89S51的D3-D0口的数字信号进行模数转换,D/A转换器的输出端OUT连接运算放大器的同相,反相端,将原有的信号进行二级放大,再将DAC0832输出的电流信号转换为电压信号。其中LM324运放电路的2、3、5、6管脚为信号的输入端,管脚4、11

26、上分别加载+12V和-12V的电压供电。DAC0832连接为直通工作方式,单片机的数字信号,通过P1口送到DAC0832的数据输入端,经过D/A转换后送出电流信号,再经过运算放大器的转换变为对应的电压输出,再根据输出显示的波形来调整相对应的程序。5.系统调试 5.1 硬件调试在绘制系统原理图时采用的是电气连接线实现各器件间的连接,发现绘制出的原理连线多、图纸紊乱,直接影响其可读性。后改成单元电路加网络标号的形式进行绘制,绘制出的原理图美观、大方。在进行PCB设计时,部分器件的封装形式在库中找不到,采用自己制作完成;在布局时采用手动布局,布局效果较好。但采用自动布线时发现走线乱,且电源、地等大功

27、率线宽较细,原因是布线规则未进行设置,后设置完成并实现手动布线,布线效果较好。由于STM8S单片机采用的是LQFP32封装形式,第一次进行此类器件焊接,焊接完成后发现引脚有短路现象,后重新焊接解决。具体焊接流程是:先焊接电源并进行调试,通过后焊接矮的器件,再焊接高的器件;按单元电路焊接一部分进行调试一部分,通过测试后焊下一单元电路。在进行最小系统原理图的电路排版的时候,只顾着将正面的元器件排布整齐,未能考虑到背面电路元件引脚的焊接,导致电路的引线异常的复杂,多绕了许多的路。不仅占用了电路板上有限的空间,更是为之后的电路焊接增添了困难。后将电器元件重新排版,解决了这一问题。如图5-1、图5-2所

28、示采用DAC0832转换电路将电压信号转换成模拟信号,再经LM324放大器放大输出波形。 图5-2 DAC0832实物图图5-1 模拟放大电路图5.2 软件调试软件开发环境采用ST Visual Develop Version 4.1.4,界面见图5-3。开发步骤包括编辑、编译、连接、下载运行等步骤。 图5-3 软件开发环境界面图开发工具采用如图5-4所示的ST-LINKIII,采用SWIM方式进行下载与调试。图5-4函数信号调试工具图结束语这次单片机课程设计历时五天,我们选的课题是可调频函数信号发生器,可以说是苦多于甜,苦尽甘来,但是学到了很多东西,不仅可以巩固以前所学过的知识,而且学到了很多在书本上没学到的知识。通过这次设计,进一步加深了对单片机芯片,还有protelDXP2004软件,SmartDr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论