基于51单片机下的正弦波发生器设计

合集下载

基于51单片机的波形发生器的设计讲解

基于51单片机的波形发生器的设计讲解

目录1 引言 (1)1.1 题目要求及分析 (1)1.1.1 示意图 (1)1.2 设计要求 (1)2 波形发生器系统设计方案 (2)2.1 方案的设计思路 (2)2.2 设计框图及系统介绍 (2)2.3 选择合适的设计方案 (2)3 主要硬件电路及器件介绍 (4)3.1 80C51单片机 (4)3.2 DAC0832 (5)3.3 数码显示管 (6)4 系统的硬件设计 (8)4.1 硬件原理框图 (8)4.2 89C51系统设计 (8)4.3 时钟电路 (9)4.4 复位电路 (9)4.5 键盘接口电路 (10)4.7 数模转换器 (11)5 系统软件设计 (12)5.1 流程图: (12)5.2 产生波形图 (12)5.2.1 正弦波 (12)5.2.2 三角波 (13)5.2.3 方波 (14)6 结论 (16)主要参考文献 (17)致谢....................................................... 错误!未定义书签。

1引言1.1题目要求及分析题目:基于51单片机的波形发生器设计,即由51单片机控制产生正弦波、方波、三角波等的多种波形。

1.1.1示意图图1:系统流程示意图1.2设计要求(1) 系统具有产生正弦波、三角波、方波三种周期性波形的功能。

(2) 用键盘控制上述三种波形(同周期)的生成,以及由基波和它的谐波(5次以下)线性组合的波形。

(3) 系统具有存储波形功能。

(4) 系统输出波形的频率范围为1Hz~1MHz,重复频率可调,频率步进间隔≤100Hz,非正弦波的频率按照10次谐波来计算。

(5) 系统输出波形幅度范围0~5V。

(6) 系统具有显示输出波形的类型、重复频率和幅度的功能。

2波形发生器系统设计方案设计并制作一个波形信号发生器,能够产生正弦波、方波、三角波的波形,其中不使用DDS和一些专用的波形产生芯片。

并让系统的频率范围在1Hz~1MHZ可调节,在频率范围在1HZ~10KHz时,步进小于或等于10Hz,在频率范围在10KHz~1MHz时,步进小于或等于100Hz,并且电压在0~5V范围,能够实时的显示波形的类型、频率和幅值。

51单片机制作的波形发生器

51单片机制作的波形发生器

51单片机制作的波形发生器相信很多朋友都可能接触到一个波型发生器的制作,可能刚刚入门,做的东西也不会说是很复杂。

可能就一个矩形波,或者是三角波。

但是网上的很多资料是忽悠人的,就此,我也提供一个比较完整的波型发生器 C51 原代:该系统的软件比较典型:包括键盘的应用,显示的应用和 DA 转换器的应用。

本设计中,输出的波形有三种:正弦波,方波,三角波。

方波的输出最为简单,只要按照设定的周期值将输出的电压改变即可。

三角波的输出也比较简单,单片机的输出只要完成数字量递增和递减交替进行即可。

、正弦波的输出最麻烦,如果在软件中计算出输出的各点电压值,将会浪费很多的 CPU 时间,以至于无法满足频率的要求。

通常最简单的方法是通过手动的方法计算出输出各点的电压值,然后在编写程序时以数组的方式给出。

当需要时,只要按照顺序进行输出即可。

这种方法比运算法速度快且曲线的形状修改灵活。

在本设计中将 360 度分为 256 个点,则每两个点之间的间隔为1.4 度,然后计算出每个点电压对应的数字量即可。

只要反复输出这组数据到 DAC0832, 就可以在系统输出端得到想要的正弦波。

具体程序如下:#include ;#define uchar unsigned char#define uint unsigned int#define DAdata P0uchar code Sinetab[256]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xab,0xad,0xaf,0xb1,0xb2,0xb4,0xb6,0xb7,0xb9,0xba,0xbc,0xbd,0xbf,0xc0,0xc1,0xc3,0xc4,0xc5,0xc6,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xce,0xcf,0xd0,0xd1,0xd1,0xd2,0xd2,0xd3,0xd3,0xd3,0xd2,0xd2,0xd1,0xd1,0xd0,0xcf,0xce,0xce,0xcd,0xcc,0xcb,0xca,0xc9,0xc8,0xc6,0xc5,0xc4,0xc3,0xc1,0xc0,0xbf,0xbd,0xbc,0xba,0xb9,0xb7,0xb6,0xb4,0xb2,0xb1,0xaf,0xad,0xab,0xaa,0xa8,0xa6,0xa4,0xa2,0xa0,0x9e,0x9c,0x9a,0x98,0x96,0x94,0x92,0x90,0x8e,0x8c,0x8a,0x88,0x86,0x84,0x82, 0x80,0x7d,0x7b,0x79,0x77,0x75,0x73,0x71, 0x6f,0x6d,0x6b,0x69,0x67,0x65,0x63,0x61, 0x5f,0x5d,0x5b,0x59,0x57,0x55,0x54,0x52, 0x50,0x4e,0x4d,0x4b,0x49,0x48,0x46,0x45, 0x43,0x42,0x40,0x3f,0x3e,0x3c,0x3b,0x3a, 0x39,0x37,0x36,0x35,0x34,0x33,0x32,0x31, 0x31,0x30,0x2f,0x2e,0x2e,0x2d,0x2d,0x2c, 0x2c,0x2b,0x2b,0x2b,0x2b,0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a,0x2a,0x2b,0x2b,0x2b,0x2b, 0x2c,0x2c,0x2d,0x2d,0x2e,0x2e,0x2f,0x30, 0x31,0x31,0x32,0x33,0x34,0x35,0x36,0x37, 0x39,0x3a,0x3b,0x3c,0x3e,0x3f,0x40,0x42, 0x43,0x45,0x46,0x48,0x49,0x4b,0x4d,0x4e, 0x50,0x52,0x54,0x55,0x57,0x59,0x5b,0x5d, 0x5f,0x61,0x63,0x65,0x67,0x69,0x6b,0x6d, 0x6f,0x71,0x73,0x75,0x77,0x79,0x7b,0x7d, };uchar code Triangletab[58]={0x1a,0x21,0x28,0x2f,0x36,0x3d,0x44,0x4b, 0x52,0x59,0x60,0x67,0x6e,0x75,0x7c,0x83,0x8a,0x91,0x98,0x9f,0xa6,0xad,0xb4,0xbb,0xc2,0xc9,0xd0,0xd7,0xde,0xe5,0xde,0xd7,0xd0,0xc9,0xc2,0xbb,0xb4,0xad,0xa6,0x9f,0x98,0x91,0x8a,0x83,0x7c,0x75,0x6e,0x67,0x60,0x59,0x52,0x4b,0x44,0x3d,0x36,0x2f,0x28,0x21,};uchar code Squaretab[2]={0x56,0xaa};uchar code disp1[]={"Sine Wave ""Triangle Wale ""Square Wave "};uchar idata disp2[16]={"Frequency:Hz"};uchar code Coef[3]={10,100,200};uchar idata WaveFre[3]={1,1,1};uchar code WaveTH[]={0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, };uchar code WaveTL[]={0xf2,0x78,0xfb,0x3c,0x63,0x7d,0x8f,0x9d,0xa8,0xb1, 0x17,0x0b,0xb2,0x05,0x37,0x58,0x70,0x82,0x90,0x9b, 0x4d,0xa7,0xc4,0xd3,0xdc,0xe2,0xe6,0xea,0xec,0xee };uchar Wavecount,THtemp,TLtemp;uchar Waveform;sbit rs=P2^5;sbit rw=P2^6;sbit e=P2^7;sbit DA=P2^0;sbit KEY=P3^2;void delay(uchar i){uchar j;for(;i>;0;i--)for(j=20;j>;0;j--);}void busy(){uchar temp;temp=0x00;rs=0;rw=1;while((temp&0x80)==0x80) {P0=0xff;e=1;temp=P0;e=0;}}void WR_Com(uchar temp) {busy();rs=0;rw=0;P0=temp;e=1;e=0;}void WR_Data(uchar num){busy();rs=1;rw=0;P0=num;e=1;e=0;}void disp_lcd(uchar addr,uchar *temp1) {uchar i;WR_Com(addr);delay(100);for(i=0;i;0;i--){P0=0x30;rs=0;rw=0;e=1;e=0;delay(100);P0=0x38;rs=0;rw=0;e=1;e=0;delay(100);}void lcd_Reset(){WR_Com(0x01);delay(100);WR_Com(0x06);delay(100);WR_Com(0x0c);delay(100);}void SineOUT(uchar Wavecount) {DAdata=Sinetab[Wavecount++]; Wavecount=0;DA=0;}void TriangleOUT(uchar Wavecount) {DAdata=Triangletab[Wavecount++]; if(Wavecount>;57)Wavecount=0;DA=0;DA=1;}void SquareOUT(uchar Wavecount) {DAdata=Squaretab[Wavecount++];if(Wavecount>;1)Wavecount=0;DA=0;DA=1;}void timer() interrupt 1{TH0=THtemp;TL0=THtemp;if(Waveform==0)SineOUT(Wavecount); else if(Waveform==1)TriangleOUT(Wavecount); else if(Waveform==2)SquareOUT(Wavecount); }void key_int() interrupt 0 {uchar keytemp,keytemp1;uint WaveCoef;EA=0;TR0=0;keytemp1=0;delay(10);while(!KEY);keytemp=~P2&0x1e; keytemp>;>;=1;while(keytemp!=8){keytemp=~P2&0x1e;keytemp>;>;=1;if(keytemp!=keytemp1){keytemp1=keytemp;switch(keytemp){case 1:if(++Waveform==3)Waveform=0;break;case 2:if(++WaveFre[Waveform]==11)WaveFre[Waveform]=1;break;case 4:if(--WaveFre[Waveform]==0)WaveFre[Waveform]=10;break;}THtemp=WaveTH[Waveform*16+(WaveFre[Waveform]-1)]; TLtemp=WaveTL[Waveform*16+(WaveFre[Waveform]-1)];WaveCoef=WaveFre[Waveform]*Coef[Waveform]; disp2[13]=WaveCoef%10+0x30;WaveCoef/=10;disp2[12]=WaveCoef%10+0x30;WaveCoef/=10;disp2[11]=WaveCoef%10+0x30;WaveCoef/=10;disp2[10]=WaveCoef%10+0x30;WaveCoef/=10;disp_lcd(0x80,&disp1[Waveform*16]);disp_lcd(0xc0,disp2);}}TH0=THtemp;TL0=THtemp;Wavecount=0;TR0=1;}void main(){uint WaveCoef;uchar i;lcd_ini();lcd_Reset();WaveCoef=WaveFre[Waveform]*Coef[Waveform]; disp2[13]=WaveCoef%10+0x30;WaveCoef/=10;disp2[12]=WaveCoef%10+0x30;WaveCoef/=10;disp2[11]=WaveCoef%10+0x30;WaveCoef/=10;disp2[10]=WaveCoef%10+0x30;WaveCoef/=10;disp_lcd(0x80,&disp1[Waveform*16]);disp_lcd(0xc0,disp2);i=0;DAdata=0x00;DA=0;TMOD=0x01;IT0=1;ET0=1;EX0=1;EA=1;while(1);}。

基于51单片机的波形发生器的设计

基于51单片机的波形发生器的设计

基于51单片机的波形发生器的设计引言:波形发生器是一种可以生成特定频率、特定波形的电子设备。

它广泛应用于科研、教学和产业生产等领域,可以用于信号发生、信号测试、信号仿真等各种任务。

本文将介绍一个基于51单片机的波形发生器的设计方案。

一、系统硬件设计1.系统框架该波形发生器系统采用51单片机作为主控芯片,主要包括三个部分:信号生成模块、显示模块和控制模块。

其中,信号生成模块负责产生各种特定频率、特定波形的信号;显示模块用于展示信号参数等相关信息;控制模块负责接收用户输入并对波形发生器进行控制。

2.硬件连接信号生成模块与主控芯片之间通过I/O接口相连,用于传输数据和控制信号。

显示模块通过串口与主控芯片相连,用于显示相关信息。

控制模块通过按键、旋钮等输入设备与主控芯片相连,用于接收用户输入。

二、系统软件设计1.系统初始化在系统初始化阶段,主控芯片需要完成引脚、定时器、串口等相关资源的初始化工作。

同时,还需要设置一些全局变量和参数的初始值。

2.信号生成模块信号生成模块通过定时器产生特定频率的时钟信号,并根据用户输入的参数生成相应的信号波形。

主控芯片利用定时器中断函数进行波形生成,并将生成的信号数据存放在缓冲区中。

3.显示模块显示模块负责将信号波形显示在液晶屏上,并显示相关参数,如频率、幅度等。

主控芯片将信号数据从缓冲区中读取,并通过串口发送给显示模块进行显示。

4.控制模块控制模块负责接收用户输入的控制指令,并通过按键、旋钮等输入设备完成用户交互。

主控芯片通过中断函数实时读取用户输入并进行相应的控制操作。

三、系统功能设计1.频率设置功能用户可以通过控制模块设置波形发生器的频率,可以选择固定频率或者可调频率。

利用定时器时钟频率与定时器中断的时间间隔来控制波形的频率。

2.波形选择功能用户可以通过控制模块选择不同的波形类型,如正弦波、方波、三角波、脉冲波等。

主控芯片根据用户指令设置波形参数,并生成相应的波形信号。

基于51单片机的波形发生器设计报告

基于51单片机的波形发生器设计报告

基于51单片机的波形发生器设计报告波形发生器是一种电子设备,用于产生各种不同类型和频率的电信号波形。

基于51单片机的波形发生器设计是一种常用的工程设计。

下面是一个关于基于51单片机的波形发生器设计的报告,详细介绍了设计的原理、步骤、电路、程序和性能。

一、设计原理:二、设计步骤:1.确定波形发生器的输出频率范围和分辨率要求。

2.选择适当的定时器/计数器模块来实现频率的计时和控制。

3.设计电路,包括定时器/计数器模块、晶振、滤波电路和输出接口等。

4.编写程序,配置定时器/计数器模块的工作模式、计数值和中断服务程序。

5.调试和测试电路和程序,确保波形发生器正常工作并满足设计要求。

三、电路设计:1.定时器/计数器模块:选择一个合适的定时器/计数器模块,如51单片机的定时器/计数器T0或T1、根据设计要求,设置工作模式、计数器模式和计数值。

2.晶振:选择适当的晶振频率,一般为11.0592MHz,将晶振连接到单片机的晶振引脚。

3.滤波电路:根据需要,设计一个滤波电路来滤除不需要的高频噪声和杂散信号。

4.输出接口:设计一个输出接口电路来连接单片机和外部电路,使用电平转换电路将单片机的低电平(0V)输出转换为所需的电平电压。

四、程序设计:1.配置定时器/计数器模块的工作模式和计数值,设置中断服务程序。

2.在中断服务程序中,根据设计要求生成矩形波信号,并将信号输出到输出端口。

3.在主程序中,初始化单片机和定时器/计数器模块,使波形发生器开始工作。

4.在主循环中,可以设置按键输入来改变输出频率,通过调整计数值来实现不同的频率输出。

五、性能评估:1.输出频率范围:根据设计要求,测试波形发生器的最低和最高输出频率是否在设计范围内。

2.分辨率:对于指定频率范围,测试波形发生器的输出频率的分辨率,即最小可调节的频率。

3.稳定性:测试波形发生器的输出信号的稳定性和准确度,是否有漂移和偏差。

4.噪声:测试波形发生器的输出信号是否有杂散噪声和幅度波动。

(完整word版)基于单片机的正弦波信号发生器的设计

(完整word版)基于单片机的正弦波信号发生器的设计

(完整word版)基于单片机的正弦波信号发生器的设计毕业设计论文题目:基于单片机的正弦波信号发生器的设计系部:电子信息工程系专业名称:电子信息工程技术班级: 08431 学号:33姓名:顾伟国指导教师:郑莹完成时间:2011 年 5 月12 日(完整word版)基于单片机的正弦波信号发生器的设计基于单片机的正弦波信号发生器的设计摘要:信号发生器的应用越来越广,对信号发生器的频率稳定度、频谱纯度、频率范围和输出信号的频率微调分辨率提出越来越高的要求,普通的频率源已经不能满足现代电子技术的高标准要求。

因而本设计采用了AT89C51单片机为控制核心,通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生1HZ—180HZ的正弦波波形。

通过键盘来控制波形频率变化,并通过液晶屏1602显示其波形以及频率和幅度值的大小。

关键字:信号发生器;AT89C51;D/A转换器DAC0832Based on SCM sine wave signal generator designAbstract:Signal generator used more and more widely, to signal generator frequency stability, the spectrum purity,frequency range and output signal frequency fine-tune resolution higher and higher demands are proposed,the average frequency source cannot have satisfied the high standard requirement of modern electronic technology. So this design USES A AT89C51 as control core,through the D/A converter DAC0832 converts digital signals into analog signals, filter and amplification, finally shown by oscilloscope 1HZ — 180HZ, can produce the sine wave。

基于51单片机的波形发生器的设计讲解

基于51单片机的波形发生器的设计讲解

基于51单片机的波形发生器的设计讲解波形发生器是电子设备中常见的一种电子设备,它可以产生各种不同形状的波形信号。

在这篇文章中,我们将会详细介绍基于51单片机的波形发生器的设计。

一、波形发生器的原理及分类波形发生器的原理是利用电子元件、电路以及控制信号源,将一定幅度的电压信号变化成为需要的各种形状的波形信号。

根据波形的形状分类,可以将波形发生器分为以下几种类型:1.正弦波发生器:产生正弦波信号的发生器,常用于音频设备中。

2.方波发生器:产生方波信号的发生器,常用于数字电路中,也可用于频率测量和脉冲调制等应用。

3.三角波发生器:产生三角波信号的发生器,常用于音频设备以及频率测试等领域。

4.锯齿波发生器:产生锯齿波信号的发生器,常用于音频设备、测试仪器以及数据采集和测量等领域。

二、基于51单片机的波形发生器设计下面我们将详细介绍基于51单片机的波形发生器的设计步骤。

1.硬件设计:在基于51单片机的波形发生器设计中,我们需要准备的硬件元件有:-51单片机控制芯片-芯片烧录器-液晶显示屏-按键开关-电源模块-杜邦线等电子连接线2.硬件连接:根据电路原理图进行将电子元件进行正确的电路连接。

其中,51单片机作为核心控制芯片,负责生成波形信号,液晶显示屏用于显示波形信号,按键开关用于控制波形发生器的启动、停止以及参数调整等操作。

3.软件设计:利用Keil C编译软件进行51单片机的软件设计,根据控制芯片的指令集编写相应的程序代码,实现以下几个功能:-波形信号的产生:根据选择的波形类型(正弦波、方波、三角波或锯齿波),利用特定的算法生成相应形状的波形信号。

-参数调节:通过按键开关控制波形的频率、幅度以及相位等参数的调节,使波形发生器能够产生不同特性的波形信号。

-波形信号显示:通过LCD显示屏将生成的波形信号进行实时显示,以方便观察和调试。

4.软硬件的调试与优化:三、波形发生器的应用1.音频设备:波形发生器可以生成不同频率的正弦波信号,用于音频信号的发生和测试等应用。

基于单片机正弦信发生器

基于单片机正弦信发生器

基于单片机正弦信发生 器文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)课程设计(论文)任务书专业班级:学生姓名:指导教师(签名):一、课程设计(论文)题目 正弦波信号发生器设计二、本次课程设计(论文)应达到的目的本次课程设计是自动化专业学生在学习了《单片机原理及应 用》课程及《模拟电子线路》、《数字电子线路》等专业基础课程 之后进行的一次综合训练,其主要目的是加深学生对单片机软硬件 技术和相关理论知识的理解,进一步熟悉 51 单片机系统设计的基 本理论、方法和技能;掌握工程应用的基本内容和要求,力争做到 理论与实际的统一;同时培养学生分析问题、解决问题的能力和独 立完成系统设计的能力,并按要求编写相关的技术文档和设计报告 等。

三、本次课程设计(论文)任务的主要内容和要求(包括原始数 据、技术参数、设计要求等)1.设计内容 (1)选择 51 单片机,晶振采用 12MHz。

(2)设计一个能产生 0 至 50HZ 正弦波信号。

通过 0832D/A 芯 片完成数模转换。

(3)频率值由键盘输入。

(4)将频率值由 LED 数码管上显示(两位)。

2.设计要求 (1)按照任务书的要求完成系统分析及方案设计。

(2)完成硬件原理图的设计,并选择相关元器件。

(3)完成控制软件流程图的设计,编写相应的单片机控制程 序。

(4)撰写设计报告。

四、应收集的资料及主要参考文献:1.李建忠.单片机原理及应用.西安电子科技大学出版社, 20082.杨居义.单片机课程设计指导.清华大学出版社,2009 3.李海滨等.单片机技术课程设计与项目实例.中国电力出版 社,2009 以及与 51 系列单片机相关的文献及教材。

五、审核批准意见教研室主任(签字)正弦信号发生器设计方案框图单数/模放大电片转路机换电波形输按键电路显示电 出路路图 1-1 硬件设计方框图 DAC0832 硬件简介根据对 DAC0832 的数据锁存器和 DAC 寄存器的不同的控制方式,DAC0832 有 三种连接方式:直通方式、单缓冲方式和双缓冲方式。

基于51单片机的波形发生器的设计汇总

基于51单片机的波形发生器的设计汇总

基于51单片机的波形发生器的设计汇总波形发生器是电子领域中常用的一种设备,用于产生各种不同形式的波形信号。

本文将基于51单片机的波形发生器的设计进行汇总。

设计思路如下:一、基本原理波形发生器的基本原理是通过控制数字信号的高低电平来产生不同的波形。

在这个设计中,我们将使用51单片机作为控制器来产生波形信号。

二、硬件部分1.时钟电路:使用一个晶体振荡器作为时钟源,提供稳定的时钟脉冲给51单片机。

2.电源电路:使用稳压电源提供稳定的电压给51单片机和其他电路。

3.单片机电路:将51单片机与其他电路进行连接,包括输入输出端口和相应的外部电路。

4.波形输出电路:根据需要产生不同的波形,设计相应的输出电路,包括滤波器、电阻、电容等元器件。

三、软件部分1.系统初始化:在系统上电后,进行相应的初始化工作,包括设置引脚功能、中断,设置计时器等。

2.波形生成算法:根据用户的选择,使用合适的算法生成相应的波形信号。

常见的波形有正弦波、方波、三角波等。

3.输出控制:根据生成的波形信号,通过设置相应的输出引脚,将波形信号输出到波形输出电路中。

4.用户界面:设计一个简单的用户界面,让用户可以选择不同的波形、调整频率、幅度等参数。

5.中断处理:使用中断功能来处理波形输出频率的控制,实现较高的输出稳定性。

四、设计考虑1.精度要求:根据具体应用场景,确定波形发生器的精度要求。

如果需要较高的精度,可能需要采用更复杂的算法和更精密的输出电路。

2.输出负载:考虑波形发生器的输出负载情况,选择合适的输出电路,以确保波形信号的准确性和稳定性。

3.电源稳定性:电源的稳定性对波形发生器的性能也有影响,需要注意电源供电的稳定性。

五、测试与优化完成波形发生器设计后,进行相应的测试与优化。

包括波形信号的频率、幅度等测试,以及对输出电路、算法等进行优化。

最后,通过以上的设计思路,我们可以完成基于51单片机的波形发生器的设计。

根据具体的应用需求,可能需要对硬件和软件进行相应的调整和优化。

基于单片机正弦信号发生器

基于单片机正弦信号发生器

基于单片机正弦信号发生 器Prepared on 22 November 2020课程设计(论文)任务书专业班级:学生姓名:一、课程设计(论文)题目 正弦波信号发生器设计二、本次课程设计(论文)应达到的目的指导教师(签名):本次课程设计是自动化专业学生在学习了《单片机原理及应 用》课程及《模拟电子线路》、《数字电子线路》等专业基础课程 之后进行的一次综合训练,其主要目的是加深学生对单片机软硬件 技术和相关理论知识的理解,进一步熟悉 51 单片机系统设计的基 本理论、方法和技能;掌握工程应用的基本内容和要求,力争做到 理论与实际的统一;同时培养学生分析问题、解决问题的能力和独 立完成系统设计的能力,并按要求编写相关的技术文档和设计报告 等。

三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技 术参数、设计要求等)1.设计内容 (1)选择 51 单片机,晶振采用 12MHz。

(2)设计一个能产生 0 至 50HZ 正弦波信号。

通过 0832D/A 芯 片完成数模转换。

(3)频率值由键盘输入。

(4)将频率值由 LED 数码管上显示(两位)。

2.设计要求 (1)按照任务书的要求完成系统分析及方案设计。

(2)完成硬件原理图的设计,并选择相关元器件。

(3)完成控制软件流程图的设计,编写相应的单片机控制程 序。

(4)撰写设计报告。

四、应收集的资料及主要参考文献:1.李建忠.单片机原理及应用.西安电子科技大学出版社, 20082.杨居义.单片机课程设计指导.清华大学出版社,2009 3.李海滨等.单片机技术课程设计与项目实例.中国电力出版 社,2009 以及与 51 系列单片机相关的文献及教材。

五、审核批准意见教研室主任(签字)正弦信号发生器设计方案框图单数/模转放大电片换电路路机波形输按键电显示电 出路路图 1-1 硬件设计方框图 DAC0832 硬件简介根据对 DAC0832 的数据锁存器和 DAC 寄存器的不同的控制方式,DAC0832 有三种连接方式:直通方式、单缓冲方式和双缓冲方式。

基于51单片机波形发生器课程设计

基于51单片机波形发生器课程设计

任务名称:基于51单片机波形发生器课程设计项目背景和目标波形发生器是电子学中常用的实验设备之一,用于产生不同形状和频率的电信号。

在本课程设计中,我们将使用51单片机设计和实现一个基本的波形发生器。

该波形发生器将具备以下功能: 1. 发生正弦波、方波和三角波等不同形状的波形。

2. 支持用户输入频率和幅度参数。

3. 以可视化的方式显示波形输出。

硬件需求在实现波形发生器的过程中,我们需要以下硬件设备: 1. 51单片机开发板:用于运行波形发生器的程序,控制波形的生成和输出。

2. 信号发生器电路:用于将数字信号转换为模拟信号输出。

3. 示波器:用于验证波形输出的准确性和稳定性。

软件设计软件设计方案1.编写主程序:利用51单片机的C语言开发环境编写主程序,实现波形的生成和输出。

2.设计波形生成模块:根据用户输入的频率和幅度参数,生成对应形状的波形。

3.设置输出端口:将波形数据通过51单片机的输出端口发送给信号发生器电路。

4.配置信号发生器电路:将51单片机生成的数字信号转换为模拟信号输出。

5.连接示波器:将信号发生器的输出连接到示波器,验证波形输出的准确性和稳定性。

主程序设计以下是主程序的设计思路:#include <reg51.h>// 定义波形类型的枚举enum WaveType {Sine,Square,Triangle};// 定义全局变量enum WaveType waveType; // 波形类型int frequency; // 波形频率int amplitude; // 波形幅度// 定义函数原型void generateWave();void setOutputPort();void configureSignalGenerator();void connectOscilloscope();void main() {// 获取用户输入的波形参数// TODO: 实现获取用户输入的函数// 波形类型可以通过按键切换,频率和幅度可以通过调节旋钮获取// 生成波形generateWave();// 设置输出端口setOutputPort();// 配置信号发生器电路configureSignalGenerator();// 连接示波器connectOscilloscope();while (1) {// 循环执行波形生成和输出generateWave();setOutputPort();}}// 生成波形函数void generateWave() {switch (waveType) {case Sine:// 生成正弦波形的代码break;case Square:// 生成方波形的代码break;case Triangle:// 生成三角波形的代码break;}}// 设置输出端口函数void setOutputPort() {// 设置51单片机的输出端口的代码}// 配置信号发生器电路函数void configureSignalGenerator() {// 配置信号发生器电路的代码}// 连接示波器函数void connectOscilloscope() {// 连接示波器的代码}波形生成模块设计波形生成模块根据用户输入的频率和幅度参数生成对应形状的波形。

基于51单片机的 正弦信号发生器的设计

基于51单片机的 正弦信号发生器的设计

西安文理学院课程设计报告第一章系统设计单片机采用程序设计方法产生锯齿经过考虑,我们确定方案如下:利用AT89S52将数字信号转换成模拟信转换器DAC0832波、正弦波、矩形波三种波形,再通过D/A号,滤波放大,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。

1.1 设计要求1)、利用单片机采用软件设计方法产生三种波型 2)、三种波形可通过键盘选择)、波形频率可调3)、需显示波形的种类及其平率41.2方案设计与论信号发生电路方案论证1.2.1,此方案电路简单、成本低。

:通过单片机控制D/A方案一,压控振荡器搭接的IC145152 :使用传统的锁相频率合成方法。

通过芯片方案二锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。

此方案,电路复杂,干扰因素多,不易实现。

是精密高频波形产生电MAX038MAX038芯片组成的电路输出波形。

用方案三:利路,能够产生准确的三角波、方波和正弦波三种周期性波形。

但此方案成本高,程序复杂度高。

以上三种方案综合考虑,选择方案一。

总体系统设计1.3该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显页1 第西安文理学院课程设计报告)为系统的总体框图1示的方案。

将设计任务分解为按键电路、液晶显示电路等块。

图(1)总体方块图图(1.4硬件实现及单元电路设计单片机最小系统的设计1.4.1的单片机,因此,这种芯片构成的最小系统简单﹑可ROM/EPROM89C51是片内有单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即靠。

用80C51单片机最小系统所示。

由于集成度的限制,最小应用系统只能用) 89C51可,如图(2 作一些小型的控制单元。

其应用特点:口线。

(1) 有可供用户使用的大量I/O(2) 内部存储器容量有限。

基于51单片机波形发生器课程设计

基于51单片机波形发生器课程设计

基于51单片机波形发生器课程设计1. 引言波形发生器是电子技术领域中常用的仪器设备,用于产生各种不同形状的电信号波形。

在电子电路实验和测试中,波形发生器能够提供不同频率、幅度和相位的信号,用于测试和验证电路的性能。

本篇文章将介绍一个基于51单片机的波形发生器设计。

通过使用51单片机,我们可以实现一个简单但功能强大的波形发生器,并通过编程控制实现不同类型的波形输出。

2. 硬件设计2.1 51单片机51单片机是一种常见的8位微控制器,具有低功耗、高性能和广泛应用等特点。

在本设计中,我们选择使用51单片机作为主控芯片。

2.2 数模转换芯片为了将数字信号转换为模拟信号输出,我们需要使用一个数模转换芯片。

在本设计中,我们选择使用DAC0800芯片作为数模转换器。

2.3 操作面板为了方便用户操作和设置参数,我们设计了一个操作面板。

该面板包括按键、旋钮和显示屏等组件,用户可以通过操作面板来控制波形发生器的参数和功能。

2.4 输出接口为了将模拟信号输出到外部设备,我们设计了一个输出接口。

该接口可以连接到示波器或其他测试仪器,以便观察和测量输出信号。

3. 软件设计3.1 程序框架波形发生器的软件设计主要包括初始化设置、参数调整和波形生成等功能。

我们可以使用C语言编程,在51单片机上实现这些功能。

以下是程序框架的伪代码:void main(){初始化设置();while(1){获取用户输入();参数调整();波形生成();}}3.2 初始化设置在初始化设置阶段,我们需要对51单片机和数模转换芯片进行初始化配置。

这包括设置时钟频率、IO口方向、数模转换精度等。

以下是初始化设置的伪代码:void 初始化设置(){设置时钟频率();配置IO口方向();配置数模转换精度();}3.3 参数调整在参数调整阶段,用户可以通过操作面板来调整波形发生器的参数。

这包括选择波形类型、设定频率和幅度等。

以下是参数调整的伪代码:void 参数调整(){获取用户输入();if(用户选择了波形类型){设置波形类型();}if(用户设定了频率){设置频率();}if(用户设定了幅度){设置幅度();}3.4 波形生成在波形生成阶段,根据用户设定的参数,我们可以通过数模转换芯片来生成相应的波形信号。

(完整版)基于51单片机正弦波发生器课程设计

(完整版)基于51单片机正弦波发生器课程设计

《单片机课程设计》设计报告设计课题:正弦波信号发生器专业班级:电子信息工程121班学生姓名:万环指导教师:蔡岗设计时间:2015.07.10赣南师范学院科技学院数学与信息科学系正弦波信号发生器一、设计任务与要求系统上电产生f=100Hz,Vppv=5V的正弦波。

频率可通过按键在f=100Hz到f=10Hz之前切换。

二、方案设计与论证1设计方案本次课设的任务是基于AT89C51单片机的数字式简易低频信号发生器的设计,要求实现用程序产生正弦波,并可以通过键控在10—100Hz之间切换。

而且需在Proteus电子设计平台上对设计方案进行仿真。

采用了AT89C51单片机作为控制核心,外围采用数字模拟转换电路(DAC0832来实现模数转换,从而输出正确的波形,设计中还连接了按键电路来实现键控改变频率。

89C51是整个波形发生器的核心部分,通过程序的编写和执行,并从键盘接收数据产生100HZ-10HZ 正弦波信号。

当数字信号电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。

波形ROM表是将信号一个周期等间距地分离成256个点,储存在单片机得ROh内。

具体ROM表是通过MATLA生成的,例如正弦表,MATLAB^成的程序如下:x=0:2*pi/64:2*pi; y=rou nd(si n(x)*127)+128 2原理框图图1系统原理框图三、电路设计1电路设计图2系统电路图2.主要性能参数计算第一级运算放大器的作用是将 DAC0832俞出的电流信号转化为电压信号 V1, 第二级运算放大器的作用是将 V1通过反向放大电路-(R2/R1)倍。

第二个运算放大器的输出端连了一个低通滤波器。

如果不加低通滤波器,也 能够生成波形,但是产生的信号中毛刺很多,加一个低通滤波器不仅起到的滤波 的作用,还起到了平滑的作用。

低通滤波器的截止频率 F=1/(2*pi*R3*C6),这里选择R3为1K 欧姆电阻,C6为104电容。

基于51单片机的波形发生器毕业设计

基于51单片机的波形发生器毕业设计

基于单片机原理的波形发生器摘要:本系统采用单片机C8051为控制核心,输出数字量,然后由DAC0832把数字量转换成模拟量;但是输出的是电流,需要用运放(OP07),把电流转换成电压量。

显示利用的是LCD1602的液晶,显示其波形,幅值。

按键应用的是独立按键,用来波形的切换,幅值,频率的调解。

其运算核心,我们通过MATLAB对正弦波,三角板,正弦波进行采样,得到一组组数据,然后同过数组存储;利用中断对数组进行扫描。

其频率的调解就是调节其中断间隔的时间,幅值就是调节其数字的大小(同时乘以某个小于1的数)。

为了波形的合成,我们采用的点的个数都是20个。

关键词:AT-89C51 DAC0832 独立按键 OP07The Design of Waveform Generator Based on 51 Abstract:This system adopts single-chip C8051 as the control core, digital output, and then by DAC0832 convert digital to analog; But the output is current, the need to use operational amplifier (OP07), the amount of current into a voltage. Display using the LCD1602 LCD, display the waveform amplitude. Key applications is independent, switch to waveform, amplitude, frequency of mediation. Its core operation, we use MATLAB to sine wave, triangle, the sine wave samples, groups of data, and then with an array of storage; Using the interrupt for scanning array. The frequency of mediation is to adjust one interval time, amplitude is adjusting the size of its digital (multiplied by a certain number of less than 1) at the same time. For the waveform synthesis, we adopt the number of points is 20.Keywords:AT-89C51 DAC0832 Separate button OP07一、题目要求与分析设计任务:设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。

基于51单片机的波形发生器设计

基于51单片机的波形发生器设计

基于51单片机的波形发生器设计本次课程设计旨在设计一个波形发生器,能够产生单极性、幅度可调、周期可调的方波、锯齿波、三角波和正弦波信号。

设计采用AT89C51单片机为核心,通过与8279芯片、38译码器和锁存器的配合,实现对键盘状态的检测和LED显示的控制。

通过D/A转换器、运算放大器和示波器,实现对波形的输出,并在8位LED显示器上显示波形类型的代号、幅值和频率。

键盘为4*8键盘,通过键盘摁键实现对波形种类、幅值和频率等的调节。

为了实现上述功能,我们需要选择合适的硬件。

首先,我们选择AT89C51单片机作为核心芯片。

AT89C51具有4k字节Flash闪速存储器、128字节内部RAM、32个I/O口线、两个16位定时/计数器、一个5向量两级中断结构、一个全双工串行通信口、片内振荡器及时钟电路等标准功能。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

因此,AT89C51芯片具有优良的性能,符合题目的要求。

除了AT89C51单片机外,我们还需要选择其他硬件设备。

通过与8279芯片、38译码器和锁存器的配合,实现对键盘状态的检测和LED显示的控制。

D/A转换器、运算放大器和示波器用于实现波形的输出。

8位LED显示器用于显示波形类型的代号、幅值和频率。

键盘为4*8键盘,通过键盘摁键实现对波形种类、幅值和频率等的调节。

三.软件设计本次课程设计需要编写相应的软件程序,以实现波形发生器的各项功能。

软件设计主要涉及到以下几个方面:1.键盘扫描程序设计键盘扫描程序需要实现对键盘状态的检测,以获取用户输入的波形种类、幅值和频率等参数。

我们采用轮询的方式进行键盘扫描,即不断地检测键盘状态,直到用户输入了有效的参数为止。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国科技期刊数据库 科研
2015年18期 21
基于51单片机下的正弦波发生器设计
范柳生
海南省洋浦公安消防支队,海南 儋州 578101
摘要:本文以STC89C51单片机为核心设计了一个低频信号发生器。

信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可输出正弦波波形。

波形的频率和幅度在一定范围内可任意改变。

波形和频率的改变通过软件控制,幅度的改变通过硬件实现。

介绍了波形的生成原理、硬件电路和软件部分的设计原理。

该信号发生器具有体积小、价格低、性能稳定、功能齐全的优点。

关键词:STC89C51单片机;单片机;D/A 转换;DDS 中图分类号:TP368.12 文献标识码:A 文章编号:1671-5780(2015)18-0021-01
1 系统概述
1.1 工作原理
数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得正弦波形。

89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU 、随机存取存储器RAM 、只读存储器ROM 、I/O 接口电路、定时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及、数模转换及波形输出、放大电路等部分,即可构成所需的波形发生器。

89C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。

当数字信号电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。

波形ROM 表是将信号一个周期等间距地分离成64个点,储存在单片机得RON 内。

具体ROM 表是通过MATLAB 生成的
2 单元电路设计与分析 2.1 主控电路
设计中主要采用STC89C51型单片机,它具有如下优点:(1)拥有完善的外部扩展总线,通过这些总线可方便地扩展外围单元、外围接口等。

(2)该单片机内部拥有4K 字节的FLASH ROM 程序存储器空间和256字节的RAM 数据存储空间,完全可以满足程序的要求。

由于该芯片可电擦写,故可重复使用。

如果更改程序内容,可将芯片拿下重新烧写。

(3)该单片机与工业标准的MCS-51型机的指令集和输出引脚兼容。

中断系统是使处理器具有对外界异步事件的处理能力而设置的。

当中央处理器CPU 正在处理某件事的时候外界发生了紧急事件,要求CPU 暂停当前的工作,转而去处理这个紧急事件。

2.2 数/模转换电路
由于单片机产生的是数字信号,要想得到正弦波波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。

DAC0832主要由8位输入寄存器、8位DAC 寄存器、8位D/A 转换器以及输入控制电路四部分组成。

但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。

DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。

根据对DAC0832的数据锁存器和DAC 寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。

本设计选用直通方式。

DAC0832的数据口和单片机的P0口相连。

CSDA :片选信号输入线(选通数据锁存器),低电平有效;
WR :数据锁存器写选通输入线,负脉冲(脉宽应大于500ns )有效。

由ILE 、CS 、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负
跳变时将输入数据锁存;
2.3 运算放大电路和低通滤波电路
LM324的5管脚与DAC0832的(IOUT2)12管脚相连,LM324的6管脚与DAC0832的(IOUT1)11管脚相连,LM324的7管脚与DAC0832的REF (9)管脚相连.
第一级运算放大器的作用是将DAC0832输出的电流信号转化为电压信号V1,第二级运算放大器的作用是将V1通过反向放大电路-(R2/R1)倍。

题目要求输出的电压在0-5V 可调,而V1的电压大约是5V ,所以R1选择5K 的电阻,R2选择10K 的电位器,这样最大的输出电压为5*(10/2)=10,最小电压为0,可以实现题目要求的0-5V 。

在第二个运算放大器的输出端连了一个低通滤波器。

如果不加低通滤波器,也能够生成波形,但是产生的信号中毛刺很多,加一个低通滤波器不仅起到的滤波的作用,还起到了平滑的作用。

低通滤波器的截止频率F=1/(2*pi*R3*C6),这里我们选择R3 为100欧姆电阻,C6为104电容,截止频率F=16KHZ 。

实验表明,此时的输出波形效果不错。

2.4 显示电路
采用三级管对数码管进行驱动,本电路采用的是共阴极数码显示,当有三级管导通时,数码管的一端相当于接地,数码管就显示了,RP1为排阻,相当于八个电阻并联在一起。

2.5 键盘电路
本设计选用独立式按键,因为按键数量不多。

独立式按键的硬件特点是每个按键均独立的占用一条I/O 接口线,单片机识别I/O 接口线电平的高低就能识别出是否有按键按下及哪个按键按下。

独立式按键硬件结构及软件设计均较简单,一般用于按键较少或I/O 接口线资源有空闲的场合。

本设计键盘从上往下依次为KEY0-KEY3,键盘为按下时I/O 端口经上拉电阻接+5伏电压,输入的是高电平:键盘按下时,I/O 端口由于接地,输入的是低电平。

KEY0键功能:接P1.0 口,频率值加1 KEY1键功能:接P1.1口,频率值加10 KEY2键功能:接P1.2口,频率值加100 KEY3键功能:接P1.3口,频率值加1000 结束语
基于单片机的信号发生器设计,这个信号发生器的设计中涉及到一个典型的控制过程。

通过单片机控制一个模数转换器DAC0832产生所需要的电流,然后使用运算放大器LM324可以将其电流输出线性地转换成电压输出,再将电压经过运算放大器的放大,可以得到足够幅度的信号。

通过程序的控制,可以产生正弦波波形。

这样一个信号发生装置在控制领域有相当广泛的应用范围。

参考文献
[1]郭天翔.新概念51单片机C 语言教程入门、提高、开发、拓展全[M].北京.电子工业出版社, 2009.1.
[2]童诗白.模拟电路技术基础[M].北京:高等教育出版社,2000:171-202.。

相关文档
最新文档