文档介绍:该【波形发生器实验报告 】是由【老狐狸】上传分享,文档一共【17】页,该文档可以免费在线阅读,需要了解更多关于【波形发生器实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。单片机课程设计报告波形发生器2023年02月23日1、用户需求1、产生三角波、方波、正弦波信号2、输出信号的频率和幅度可以通过按键来转变,,分析波形产生的最高频率。2、设计任务基于AT89C51的波形发生器主要功能如下:可以三产生角波、方波、正弦波信号并通过按键掌握。输出信号的频率和幅度可以通过按键来转变,分析波形产生的最高频率。以单片机为核心,经过D/A转换和放大电路的处理,最终输出信号。3、原理框图及说明依据设计任务,设计如下框图:图1、原理框图电源局部,为单片机供给5V稳压电源;8位按键供给应用户用来选择需要输出的波形,以及修改频率及方波占空比;数码管显示所选择的的波形代号,1代表正弦波,2代表方波,3代表锯齿波,4代表三角波;幅度调整电路用来调整输出波形的幅度;D/A转换及放大电路可以将数字信号转换成模拟信号输出我们所需要的波形;显示电路则是将波形显示在屏幕上。89C51上电后,扫描P1口,推断是否有键按下,进展相应的操作。依据原理框图,,S2代表方波,S3代表锯齿波,S4代表三角波,S5代表增加方波占空比,S6代表减小方波占空比,S7代表增加频率,S8代表减小频率。4、主要电路说明、元件选择及参数计算简易函数信号发生器原件清单如下:原件名称型号数量\个用途原件名称型号数量\个用途单片机AT891掌握核心集成块DAC01数模转换S52832晶振12M1晶振电路集成块uA4701放大电路Hz电容30pF2晶振电路电阻100K?2放大电路电解电容22uF1复位电路电阻50K?1放大电路电阻排阻10V10K?10K?*101复位电路电源1电源12V/+5V/+5V按键9选择波形、复位键、调整方波空占比、。AT89C51单片机的40个引脚可分为:电源引脚2根、时钟引脚两根、掌握引脚4根、输入/输出引脚32根。各引脚功能描述如下:主电压引脚●V:电源端,正常工作时接+5V电源CC●V:接地端SS时钟引脚XTAL1:内部振荡电路的反相放大器的输入端,接外部晶振和微调电容的一端。承受外部时钟电路时,对HMOS型工艺的单片机而言,此引脚应接地;对CHMOS型而言,此引脚应接外部时钟的输入端。内部振荡电路的反相放大器的输出端,接外部晶振和微调电容的另一端。承受外部时钟电路时,对HMOS型工艺的单片机而言,此引脚应接外部时钟的输入端;对CHMOS型而言,此引脚悬空。(3〕掌握引脚RST/V:复位信号/备用电源输入引脚。当振荡运行时,RST引脚保持2PD个机器周期的高电平后,就可以使8051完成复位工作。该引脚的其次功能是V,即备用电源的输入端,具有掉电保护功能。在主电源VCCPD掉电期间,该引脚可接+5V备用电源,由VPD向内部RAM供给备用电源,保持内部RAM中的数据不丧失。ALE/PROG:地址锁存允许信号/编程脉冲输入端。当CPU访问片外存储器时,ALE输出信号掌握锁存P0口的低8位地址,从而实现P0口的数据与低位地址的分时复用。当8051上电正常工作后,ALE端以不变频率〔振荡器频率的f/6〕osc周期性地输出正脉冲信号。该脉冲可用作对外输出的时钟,或用于定时目的。该引脚的其次功能PROG是做编程脉冲的输入端。PSEN:外部程序存储器读选通信号端,低电平有效。EA/V:内部ROM和外部ROM选择端/编程电压输入端。当EA接高电寻常,ppCPU访问片内ROM,但当PC值超过0FFFH时,将自动转去执行片外ROM指令;当EA接低电寻常,CPU访问片外ROM。该引脚的其次功能是V是作为编程电压的pp输入端。输入/~:P0口的8位口线。P0口是一个8位漏极开路型双向I/O,既可作地址/数据总线使用,又可作通用的I/O口使用。当CPU访问片外存储器时,P0口分时先作低8位地址总线,后作双向数据总线,P0口能以吸取电流的方式驱动8个LSTTL电路。~:P1口的8位口线。P1口是一个带有内部上拉电阻的8位准双向I/O口。作为通用的I/O口,它能驱动4个LSTTL负载。~:P2口的8位口线。P2口是一个带有内部上拉电阻的的8位准双向I/O口。当CPU访问片外存储器时,P2口输出高8位地址总线,与P0口协作,组成16位片外存储器单元地址。P2口驱动4个LSTTL负载。DAC0832是8位CMOS数/模转换芯片,其特点如下:区分率8位的并行D/A转换器。双列直插式〔DIP〕封装,CMOS低功耗〔功耗为20mW〕器件。单电源供电。参考电压为-10V~+10V,从+5V~+15V均可正常工作。电流输出型芯片,需外接运算放大器。电流建立时间为1us。片内二级数据缓存,数据输入可承受双缓冲、单缓冲和直通方式。数/模转换器DAC0832由1个8位数据存放器、1个8位DAC存放器、1个8位D/A转换器和掌握规律组成。DAC0832各引脚功能:D7~D0:8位数字量输入端,接CPU数据线D7~D0。I :模拟电流输出端1,输出值随DAC存放器内容线性变化。OUT1●IOUT2模拟电流输出端2,IOUT1+IOUT2=常数。一般状况下,在单极性输出时,I接地,在双极性输出时I接运算放大器。OUT2 OUT2Vref:参考电压输出端。Vref可以外接一个正电压,也可以接一个负电压,范围为-10V~+10V。参考电压打算数字量0~255〔00H~FFH〕转化出来的模拟量电压值的幅度。Rfb:反响电阻输出引脚。DAC0832是电流输出,为了取得电压输出,需在电流输出端接运算放大器,构成I/V转换电路。DAC0832内部已经有反响电阻,所以Rfb端可以直接与外部运算放大器相连,相当于将一个反响电阻接在运算放大器的输出端和输入端之间。Vcc:电源电压。AGND:模拟量地。DGND:数字量地。CS:片选信号,低电平有效。当CS=0时,DAC0832工作。ILE:输入锁存器允许信号,高电平有效。WR1:写掌握信号1,低电平有效。WR2:写掌握信号2,低电平有效。XFER:数据传送信号,低电平有效。复位与振荡电路对于MCS-—12MHZ之间选择,这是电容C可以对应的选择10pf-30Pf。一条引脚接在XTAL1,另一条接在XTAL2。复位电路如图2,由C3和R1构成。由于51单片机为低电平复位,图示电路利用电容的特性,在刚刚外加5V电源时RST脚的电压为低。选择12MHz晶体,C1、C2、C3选择30pF电容,R1选择10K电阻。显示电路图2、复位与振荡电路显示元件选择8段LED数码管,共阳极。段选信号经过上拉电阻接到51的P0口,,因此得到数码管L1显示分别为1、2、3、、显示电路按键电路由于89C51的P1口内部有上拉电阻,为简化电路,、。,,,,,,,。当按键按下,P1口为零,进展选择。D/A转换及放大电路图4、按键电路为了将数字信号转换成模拟信号得到我们需要的波形,在P2口接入用于D/A转换的DAC0832芯片,并接入uA741运放用于将信号放大。图5、输出驱动电路调幅电路通过滑动变阻器的调整,调整电压,从而使波形的振幅发生变化。5、软件规划软件流程图软件划分依据设计要求,先定义按键对应的端口,在定义各波形输出点的电压值,编写波形函数及按键掌握函数,完成程序的设计。设计的全局变量:定义按键变量:sbits1=P1^0;sbits2=P1^1;sbits3=P1^2;sbits4=P1^3;sbits5=P1^4;sbits6=P1^5;sbits7=P1^6;sbits8=P1^7;定义全局变量:uintd1,d2;uints,p;uintn;定义正弦波各个输出点的电压值: ucharcodesintab[256]定义锯齿波各输出点的电压值ucharcodejctab[128]定义三角波各输出点的电压值ucharcodesjtab[256]〔6〕初始化变量:d1=10; d2=10; n=0; p=4;P0=0xff;P1=0xff;设计函数如下:主函数main,调用各函数显示输出的波形。程序循环。延时函数delay(uchark)功能:等待显示器反响产生正弦波函数sin功能:扫描P2口,产生正弦波。产生方波函数fang功能:扫描P2口,产生方波。产生锯齿波juchi功能:扫描P2口,产生锯齿波。产生三角波tran功能:扫描P2口,产生三角波键盘掌握函数boxingkey功能:设置按键的掌握功能,返回到具体的函数中。6、测试〔测试方案设计、测试记录、结果分析〕制作完成后,进展如下测试,结果合格。功能要求按键是否满足设计的功能幅度是否能调整功能描述S1按下,显示正弦波S2按下,显示方波S3按下,显示锯齿波S4按下,显示三角波S5按下,方波占空比增加S6按下,方波占空比减小S7按下,频率增加S7按下,频率减小调整滑动变阻器,幅度转变测试结果数码管显示1,示波器显示正弦波数码管显示2,示波器显示方波数码管显示3,示波器显示锯齿波数码管显示4,示波器显示三角波方波占空比增加方波占空比减小波形频率增加波形频率减小波形幅度能够转变测试结果:1、按下按键1,数码管显示1,示波器输出正弦波2、按下按键2,数码管显示2,示波器输出方波。3、按下按键3,数码管显示3,示波器输出锯齿波‘4、按下按键4,数码管显示4,示波器输出三角波。5、按下按键5,方波占空比增加。6、按下按键6,方波占空比减小。7、按下按键7,波形频率增加,以正弦波为例。8、按下按键8,波形频率减小,以正弦波为例。9,使用调整幅度变阻器,可使波形幅度发生转变,以正弦波为例。7、体会与感想一周的课程设计完毕了,本次课程设计的题目是波形发生器,虽然时间不是很长,但在这短短的时间里,我学到了很多的东西,首先学会了用keil软件来编程以及用proteus软件来仿真,也知道了一个单片机的工作过程,还复****了单片机的一系列内容,包括:复位电路、时钟电路、数码管与单片机的接口等。对于一些器件的工作原理也有了进一步的了解,如:89C51单片机,数码管等。对于软件程序和硬件电路的结合,更加深刻体会了单片机系统的妙处。与此同时,还在对一些硬件的使用上,电路板的设计上有了很大的进步,对今后的学****有很大的帮助。在试验过程中,我遇到了一些问题初次使用keil软件及proteus软件,对其娴熟地把握有一些困难,在电路原理图的设