一种基于MCS-51系列单片机的SPWM电压波形发生器
基于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单片机波形发生器的设计与实现系部电子信息工程学院专业电子信息工程学科工学学生屠宝轩指导教师吴剑威一、课题的来源、背景及意义(1)来源:科研/生产(2)背景:单片机是再20世纪70年代中期发展起来的一种大规模集成电路芯片,是由中央处理器(CPU),ROM、RAM芯片及I/O接口和一些外围电路等通过印刷版总线连接在一起的一个完整的计算机系统。
信号发生器是一种作为激励源或者信号源的电子设备,它能够产生各种各样的波形和频率,其在教学实验,生产装实践和科技领域有着广泛的应用,是最普遍使用的电子仪器之一。
对于电子类专业的学生,除了学习理论知识外,还必须将所学的理论知识付诸实践,在实践中订应用理论知识,提高动手能力,从而提高发现,解决问题的能力,所以试验是必不可少的环节,而信号波形发生器是实验过程最普遍,最基本,也是应用最广泛线的电子设备之一,本研究不是针对高端的信号发生器开发,而是从降低经济成本,操作方便简单,输出波形实用角度出发,研究一套设备。
(3)意义:传统的正弦信号源根据实际需要一般价格昂贵,低频输出时性能不好且不便于自动调节,工程实用性较差。
现在利用单片机的优越性,制作一种体积小,实用性强,使用方便的低频信号发生器,以AT85C51单片机为核心,结合低俗D/A转换器,通过设计与编程实现了正弦波、方波、锯齿波的产生及其自由切换以及频率、相位的可调与多相波的同时输出。
二、国内外发展现状信号波形发生器历史非常的久远,它产生于上个世纪20年代,那会,电子设备刚刚诞生,随后,雷达发展了起来,通信技术也在不断地发展,到了40年代,标准信号发生器开始出现,它的出现主要是为了进行各种接收机的测试,使信号发生器诞生之初主要是用来做定性分析的,随着使用的要求不断提升,慢慢发展成为了定量分析的测量仪器,还是在这个时期,脉冲信号发生器也出现了,这个主要是用于脉冲方面的测量的,上面说的这些信号波形发生器都是早期的一些产品,复杂的机械结构,比较[1]大的功率,比较简单的电路,速度发展总体是比较慢的。
用GMS97C2051实现的三相SPWM波形发生器.
用GMS97C2051实现的三相SPWM波形发生器摘要:GMS97C2051是LG公司生产的与MCS51系列兼容的20脚小型化CPU芯片,具有价格便宜、功能完善的特点。
文中介绍了利用该芯片实现逆变器控制所必需的SPWM发生器的原理和方法,并对CPU的计算过程、软件设计流程进行了详细说明。
1 引言在中小功率的三相逆变器中,脉宽调制(PWM)控制技术已获得了广泛应用。
PWM的实现方法也多种多样,有模拟电路方法、数字电路方法和软件计算方法等,为了提高PWM的输出质量和可*性,一些模拟电路或数字电路的PWM都通过专用集成电路芯片来实现,如HEF4752、SA8282等,然而这些芯片价格较高。
我们利用廉价的GMS97C2051单片机通过不对称规则采样SPWM算法来输出高精度的三相SPWM波形,从而实现了逆变器的SPWM控制。
实验证明,这种方法简单可行。
2 不对称规则采样SPWM算法不对称规则采样SPWM算法是在三角形载波的顶点和底点对调制波进行采样以形成阶梯,并用此阶阶梯波与三角波的交点来确定PWM。
由于在一个三角形载波周期中需采样两次,因此采样周期是载波周期的一亲。
设调制比为M,采样周期为Ts,则在三角形顶点采样计算的脉冲数据ton、toff以及在三角形底点采样计算的脉冲数据t'on、t'off分别为:ton=Ts(1+Msinωt1)/2toff=Ts(1-Msinωt2)/2t'on=Ts(1+Msinωt2)/2t'off=Ts(1-Msinωt2)/2脉冲宽度为:tpu=Ts[1+M(sinωt1+sinωt2)]/2式中t1、t2分别为顶点采样和底点采样所对应的时刻。
不规则采样SPWM算法在载波比(即三角波与调制波频率之比)等于3的整数倍时,输出SPWM不存在偶次谐波分量,其它高次谐波的幅值也较小。
3 算法在GMS97C2051中的实现考虑到三相逆奕器输出电压的对称性,可以取载波比N为3的整数倍,这样每个采样周期Ts所对应的电角度为π/N,而三相互差的120°电角度应为2Nπ/3,因此在上述的三角形的顶点和底点的采样计算的脉冲数据所对应的不规则采样规律可表示为:ton=Ts[1+Msin(kπ/N)]/2toff=Ts[1-Msin(kπ/N)]/2或ton=Ts[1+Msin(k-2n/3)π/N]/2toff=Ts[1-Msin(k-2N/3)π/N]/2或ton=Ts[1+Msin(k+2N/3)π/N]/2toff=Ts[1-Msin(k+2N/3)π/N]/2式中k为采样次数。
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);}。
一种采用单片机获得SPWM波形的设计方法
o ar r aeacrtl i l nigo esl tdf q e c atrw v . jc n rp r a o i noteivr rad S nT es d fcre v cuae mpe t ft e ce r u nyo C re ae i et gpoe r nc it h net n O o.h t y i w y me n h e e f i n i hm s e u
(. 北紫 电 电气 设备 有 限公 司 湖北 1湖
湖北
荆州
442 ) 3 0 0
【 摘 要】 本文分析 了 S WM 产生的基本原理 , 出了一种基 于 MC 5 P 提 S 1系列单片机的全数字式 S WM 发 生器, P 文章介 绍其运行原理、 系 统构成、 工作特点等 本设计 的电路 简单、 控制灵活、 成本极低, 别适 用于 U S 太阳能用户等逆 变电源电路 中使用。 特 P、 并对广泛应 用的调制方法 输 出的波形进 行谐波 分析 . 讨论 了谐波产生的各种因素. 并提 出了相应的谐波抑制策略 , 如选择 正确的载 波频率 、 精确 实现选择的载波频率 、 在 逆变器 中注入谐 波电流等 . 根据研究结果表明这些措施是 可行的 。还对波形输 出的驱动电路 的设计 、 器件的选取也进行 了简要 的介 绍。 【 关键词 】P S WM 逆变器 ; 波分析 ; 谐 谐波抑制 ; 驱动电路 【 bt c]h x aa ss h acp ni et t p r ue hs r oe i f e — p i ld ilP ou tg A s at i t t n ye tebs r c l h WM po cs a po s ak do nw t ewt a it WM m dli r T se l i i p aS d , p d n y h l ga an
基于单片机的波形发生器设计
基于单片机的波形发生器设计摘要:本文用单片机作为核心芯片,设计出一款高精度频率信号发生器,具有体积小功率低等优点。
为了实现幅度可控的功能,选用了2个数模转换器片完成此功能,其中一个用来产生波形,另外一个设计成程控放大器进行改变幅度,它的放大倍数通过转换器的数字端口来实现,根据设定的输出幅值,单片机只需要通过公式换算出给予的对应电平。
所有要输出的参数都能通过液晶屏显示。
关键词:信号发生器;单片机;数模转换器1、引言在波形发生器的发展中,高频率的波形发生器技术大部分都掌握在外国手中,我国的波形发生器也有很大突破,在中低端频率的波形发生器中,我国的成本低,波形发生器效果好,远比国外,但是在高端波形发生器中,还是落后于国外。
波形发生器在现代测算领域和教学领域有着很大的应用,产生的频率大小,幅度大小,相位调节,能产生大量的波形,对于各种调试,调控,实验,工业使用,自动控制都有着重大的意义。
2、方案设计本此设计是用单片机为控制主体,对系统进行初始化主要完成对键盘的控制、液晶显示的控制。
使用51系列的单片机,它有着32个接口,且STC系列的单片机可以在工作的过程中进行编程、调试,能很方便的实现程序在下载过程中进行整机的调试。
3、硬件设计(1)液晶显示模块用STC12C5A60S2的P0口作为数据线,用P1.2、P1.1、P1.0分别作为LCD 的EN、R/W、RS。
其中EN是下降沿触发的片选信号,R/W是读写信号,RS是寄存器选择信号。
(2)键盘模块本按键模块使用的是多位独立按键,按键一端接IO口,一端接地,由于单片机的IO口都有内部上拉,因此当按键没有按下的时候,IO检测到的时候高电平,当按键按下的时候,相当于IO短接地,因此这时候单片机检测到的电平为低电平,通过检测不同时刻的IO口状态就可以判断按下的是那个按键。
4个按键分别代表以下功能,第一为功能按键,可以切换不同参数设置界面,第二个为切换按键,可以切换波形、频率和幅值等参数进行设置,第三个为增加按键,第四个为减少按键。
基于51单片机汇编程序波形发生器实训报告
单片机实训报告(波形发生器)一、设计方案(1)、硬件基本设计思路本设计方案采用8051单片机和DAC0832将数字信号转化成模拟信号,并通过LM324运算放大器将信号进行处理,最终得到各种波形。
其中,波形的切换采用矩阵键盘通过外部中断0来实现。
(2)、软件基本设计思路首先,将基本波形通过程序进行编写,并调试成功;其次,再编写按键扫描子程序;最后,将按键程序放入中断中,并进行整体调试,直到调通为止。
(3)、程序说明略二、原理图波形发生器原理图三、程序JUCHI E QU 50HSANJI EQU 51HFANGB EQU 52HTIXIN EQU 53HKU EQU 55HORG 0000H ;程序入口AJMP MAIN ;指向主程序ORG 0003H ;主程序入口地址AJMP INTT0 ;指向按键中断程序ORG 0030H ;中断程序入口地址MAIN: ;主程序MOV P2,#00H ;将P2口初始化为0SETB EA ;开总中断SETB EX0 ;开启外部中断0SETB IT0 ;将外部中断0设置为下降沿有效MOV DPTR,#00FFH ;设置输入寄存器地址MOV JUCHI,#00H ;初始化MOV SANJI,#00HMOV FANGB,#00H;***************************************************START:MOV A,KU ;将键码送累加器ACJNE A,#00H,W1 ;将累加器A和00H比较,如果相等,则00键按下顺序执行,否则跳到W1再判断01键是否按下MOV SANJI,#00H ;屏蔽其他波形MOV FANGB,#00HMOV TIXIN,#00HAJMP JCB ;跳转到锯齿波形W1: CJNE A,#01H,W2 ;判断01键是否按下MOV JUCHI,#00H ;屏蔽其他波形MOV FANGB,#00HMOV TIXIN,#00HAJMP SJB ;跳转到三角波形W2: CJNE A,#02H,W3 ;判断02键是否按下MOV TIXIN,#00HMOV JUCHI,#00H ;屏蔽其他波形MOV SANJI,#00HAJMP FB ;跳转到方波W3: CJNE A,#03H,W4 ;判断03键是否按下,没有按下,跳转回去继续循环扫描MOV JUCHI,#00H ;屏蔽其他波形MOV FANGB,#00HAJMP TXB ;跳转到梯形波W4: AJMP START;**********************************************INTT0: ;中断程序;***********键盘扫描子程序KEY*****************KEY: ACALL KS ;调按键查询子程序,判断是否有键按下JNZ K1 ;有键按下,转移 WEI1跳转ACALL DELAY ;无键按下,调延时程序去抖AJMP K4 ;继续查询按键;***********键盘逐列扫描程序***********************************K1: ACALL DELAYACALL KS ;再次判别是否有键按下JNZ K2 ;有键按下,转移AJMP K4K2: MOV R3,#0FEH ;首列扫描字送R3MOV R4,#00H ;首列号送R4K3: MOV A,R3MOV P2,A ;列扫描字送P2口MOV P1,#0FFH ;初始化P1口MOV A,P1 ;读取行扫描值JB ACC.0,L1 ;第零行无键按下转查第一行为1跳转MOV A,#00H ;第零行有键按下,行首键号送AAJMP LK ;转求键号L1: JB ACC.1,NEXT ;第一行无键按下,转查下一列MOV A,#03HAJMP LK ;键扫描结束,返回;************************************************************NEXT:INC R4 ;修改列号MOV A,R3JNB ACC.2,KEY ;三列扫描完返回按键查询状态RL A ;未扫描完,改为下列扫描字MOV R3,A ;扫描字暂存R3AJMP K3 ;转列扫描程序LK: ADD A,R4 ;形成键码送AMOV KU,APUSH ACC ;键码入栈保护;**********************************************K4:ACALL KS ;等待键释放JNZ K4POP ACC ;键释放,弹栈送ARETI ;中断返回;**********按键查询子程序**************************************KS: ;MOV A,#00HMOV P2,#00H ;全扫描字送p2口MOV P1,#0FFHMOV A,P1 ;读入P1口状态CPL A ;变正逻辑,高电平表示有键按下ANL A,#0FH ;屏蔽高四位RET ;子程序返回;****************锯齿波***********************JCB:MOV A,JUCHI ;转换初值WW: MOVX @DPTR,A ;D/A转换INC A ;A自加1NOP ;延时CJNE A,#255,WW ;判断A是否加到255,若没有返回到WW继续加MOV JUCHI,AAJMP START;******************三角波********************SJB:MOV A,SANJI ;转换初值EE: MOVX @DPTR,A ;D/A转换INC ANOPCJNE A,#255,EEDEC AQQ: MOVX @DPTR,ADEC ANOPCJNE A,#00,QQMOV SANJI,AAJMP START;******************方波********************* FB:MOV A,FANGBMOVX @DPTR,AACALL DELAY3ACALL DELAY3CPL AMOVX @DPTR,AACALL DELAY3ACALL DELAY3MOV FANGB,APOP ACCAJMP START;***************梯形波**********************TXB:MOV A,TIXINSS: MOVX @DPTR,AINC AACALL DELAY3CJNE A,#255,SSACALL DELAY3ACALL DELAY3DEC AZZ: MOVX @DPTR,ADEC AACALL DELAY3CJNE A,#00,ZZACALL DELAY3ACALL DELAY3MOV TIXIN,AAJMP START;*******************************************************1ms DELAY3: MOV R0,#7DHDEL7: NOPNOPDJNZ R0,DEL7RET;*******************************************50毫秒延时子程序DELAY2: MOV R0,#05DEL5: MOV R1,#10DEL4: MOV R2,7DHDEL3: NOPNOPDJNZ R2,DEL3DJNZ R1,DEL4DJNZ R0,DEL5RET;******************************************END四、实训总结通过两周的实训,我们对单片机有了一个基本的认识和了解,我们学到了怎样从一个设计课题入手去编写相关程序,并通过硬件实现。
基于51的波形发生器设计
目录1 概述 (1)1.1 研究背景 (1)1.2 设计思想及基本功能 (1)2 总体方案设计 (2)2.1 方案选取 (2)2.2 系统框图 (2)3 硬件电路设计 (3)3.1 设计思路、元件选型 (3)3.2 原理图 (3)3.3 主要芯片介绍 (4)3.4 硬件连线图 (11)4 系统软件设计 (11)4.1 锯齿波的产生过程 (13)4.2 三角波的产生过程 (14)4.3 矩形波的产生过程 (15)4.4 梯形波的产生过程 (16)4.5正弦波的产生过程 (17)5 总结 (19)参考文献 (20)1 概述1.1 研究背景波形发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。
在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都学要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。
信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。
它可以产生多种波形信号,如正弦波,三角波,方波等,因而广泛用于通信、雷达、导航、宇航等领域。
波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。
函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。
1.2 设计思想及基本功能随着电子技术的飞快发展,单片机也应用得越来越广泛,基于单片机的智能仪器的设计技术不断成熟。
单片机构成的仪器具有高可靠性,高性价比。
单片机技术在智能仪表和自动化等诸多领域有了极为广泛的应用,并用到各种家庭电器,单片机技术的广泛应用推动了社会的进步。
采用AT89C51单片机和DAC0832芯片,直接连接键盘和显示。
(完整版),基于51单片机的波形发生器的设计汇总,推荐文档
系统主要部分设计框图如下图所示:
图 2:框图设计
以 AT89C51 单片机作为系统的控制核心,其中 P0 口接 DAC0832 作为信号输入同时 进行数模转换,P1 口用来接键盘,P2 口接 LED 显示器,由程序来控制 P0 口产生的波形, 再由按键和按键次数控制波形的种类、频率和幅值的大小,并且能够通过按键来控制波 形频率值和幅度值。由运算放大器 DAC0832 来实现输出电流到电压的转换,即实现数字 信号到模拟信号的转换。另外在 LED 上显示实时的频率值和幅度值,产生的波形在示波 器显示。并且通过按键来决定波形数据的存储方式,在按键按下后,就把当时的波形所 对应的幅度值、频率值等参数存储下来。
使用 DDS 和一些专用的波形产生芯片。并让系统的频率范围在 1Hz~1MHZ 可调节,在 频率范围在 1HZ~10KHz 时,步进小于或等于 10Hz,在频率范围在 10KHz~1MHz 时, 步进小于或等于 100Hz,并且电压在 0~5V 范围,能够实时的显示波形的类型、频率和 幅值。 2.1 方案的设计思路
目录
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 致谢 .......................................................................18
利用51单片机生成SPWM波形
基于单片机和SPWM技术的电动机节电器研究文章发表于:2007-10-23 22:00摘要:本文针对连续周期工作制下电动机的运行特点,提出了基于单片机和SPWM技术实现的节电方案,并详细描述了系统硬件和软件的设计,最后给出实验效果。
关键词:单片机;SPWM;电动机;节电器研究1 引言电动机拖动是现代生产领域的主要动力来源,它在各类机器设备中应用最为广泛。
对于降低劳动者的工作强度,提高产品质量和生产效率发挥了不可替代的作用。
随着经济发展和社会进步,用于满足企业动力需求的电能消耗逐年增长。
在竞争环境下,以满足需要为前提,尽可能节约用电已成为企业降低成本的重要措施。
同时,出于环境和资源保护,社会也正呼唤节约型的用电设备。
在一些劳动密集型行业,如服装加工、工艺品制作等,通常采取单人单机作业,人工操作与机器加工交替进行。
设备上的电动机以全电压方式连续运行,在离合器的控制下时而空载时而带载,工作效率很低。
本文介绍的节电器正是面向这样的对象,体现了既满足需要又节约用电的设计理念。
2 原理方案各种生产机械,负载性质一般可归为连续、短时及断续周期三类工作方式中的一类。
不同工作制的负载选配的电动机是不同的,电动机也相应地分为连续、短时、断续周期三种定额以满足不同性质的负载需要。
我国把周期工作制分为两类,一类是上述提到的断续周期工作制,还有一类为连续周期工作制。
连续周期工作制的特点是:电动机以额定电压连续通电,负载作周期性变化,每个周期由短时额定功率与短时空载功率组成。
在电动机选配时,通常将连续周期工作制视为连续工作制来处理。
以连续工作制的电动机来驱动周期性变化的负载只是着眼于满足生产需要,拖动系统的运行效率不高。
而这样的生产设备却大量存在,这就为利用计算机技术、电力电子技术采取节能措施留下空间。
三相异步电动机空载运行时,输入电动机的功率用来补偿定子铜耗、铁耗和机械损耗。
定子铜耗和铁耗与电压大小有关,与端电压的平方成正比。
基于单片机的SPWM波形产生器设计
湖南工程学院课程设计课程名称单片机课程设计课题名称基于单片机的SPWM波形产生器设计专业电子科学与技术班级1002 班指导教师李延平2013 年 5 月13 日湖南工程学院课程设计任务书课程名称单片机课程设计课题基于单片机SPWM波形产生器专业班级电子科学技术学生姓名指导老师李延平审批任务书下达日期2013 年 5 月13 日任务完成日期2013 年5 月24 日目录一、绪论 (1)二、SPWM的基本原理 (2)1、常见SPWM信号产生方法 (2)2、正弦脉宽调制技术SPWM (2)2.1对称规则采样法 (3)2.2 不对称规则采样法 (4)2.3 等效面积法 (5)2.3 STC系列单片机生成SPWM波原理 (7)三、单片机AT89C52简介 (8)四、设计思路与总体框图 (9)五、系统设计分析 (10)六、程序调试与仿真 (11)七、实验结果分析与总结 (12)八、心得体会 (12)九、参考文献 (14)一、绪论电力电子技术和微机控制技术的发展使得正弦波脉宽调制技术(SPWM) 在电气传动、UPS 电源等领域得到广泛的应用。
随着集成电路技术的飞速发展,特别是单片机功能的日益强大和单片机技术的日益成熟,使得以前需要昂贵的专用SPWM芯片产生SPWM,现在用单片机产生SPWM已成为可能。
而当今单片机的应用已经从单纯依赖于51系列单片机向其它多种单片展,尤其以嵌入式PIC单片机的发展应用更为广泛。
正弦脉宽调制(SPWM)技术已在交流调速、直流输电、变频电源等领域得到广泛应用,为了提高整个系统的控制效果,高性能SPWM 脉冲形成技术一直是人们不断探索的课题。
采用模拟电路和数字电路等硬件电路来产生SPWM波形是一种切实可行的方法,但是这种实现方法控制电路复杂、抗干扰能力差、实时调节较困难。
近年来,人们提出了由单片机、DSP等微控制器来实现SPWM波形的数字控制方法,由于微控制器内部集成了很多控制电路,比如定时器、PWM 电路、可编程计数器阵列等,所以使得这种实现SPWM 的方法具有控制电路简单、运行速度快、控制精度高、抗干扰能力强等优点。
基于单片机的SPWM波形产生器设计讲解
湖南工程学院课程设计课程名称单片机课程设计课题名称基于单片机的SPWM波形产生器设计专业电子科学与技术班级1002 班指导教师李延平2013 年 5 月13 日湖南工程学院课程设计任务书课程名称单片机课程设计课题基于单片机SPWM波形产生器专业班级电子科学技术学生姓名指导老师李延平审批任务书下达日期2013 年 5 月13 日任务完成日期2013 年5 月24 日目录一、绪论 (1)二、SPWM的基本原理 (2)1、常见SPWM信号产生方法 (2)2、正弦脉宽调制技术SPWM (2)2.1对称规则采样法 (3)2.2 不对称规则采样法 (4)2.3 等效面积法 (5)2.3 STC系列单片机生成SPWM波原理 (6)三、单片机AT89C52简介 (7)四、设计思路与总体框图 (8)五、系统设计分析 (9)六、程序调试与仿真 (10)七、实验结果分析与总结 (11)八、心得体会 (11)九、参考文献 (13)一、绪论电力电子技术和微机控制技术的发展使得正弦波脉宽调制技术(SPWM) 在电气传动、UPS 电源等领域得到广泛的应用。
随着集成电路技术的飞速发展,特别是单片机功能的日益强大和单片机技术的日益成熟,使得以前需要昂贵的专用SPWM芯片产生SPWM,现在用单片机产生SPWM已成为可能。
而当今单片机的应用已经从单纯依赖于51系列单片机向其它多种单片展,尤其以嵌入式PIC单片机的发展应用更为广泛。
正弦脉宽调制(SPWM)技术已在交流调速、直流输电、变频电源等领域得到广泛应用,为了提高整个系统的控制效果,高性能SPWM 脉冲形成技术一直是人们不断探索的课题。
采用模拟电路和数字电路等硬件电路来产生SPWM波形是一种切实可行的方法,但是这种实现方法控制电路复杂、抗干扰能力差、实时调节较困难。
近年来,人们提出了由单片机、DSP等微控制器来实现SPWM波形的数字控制方法,由于微控制器内部集成了很多控制电路,比如定时器、PWM 电路、可编程计数器阵列等,所以使得这种实现SPWM 的方法具有控制电路简单、运行速度快、控制精度高、抗干扰能力强等优点。
基于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.6 数模转换器 (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) 系统具有产生正弦波、三角波、方波三种周期性波形的功能。
(2) 用键盘控制上述三种波形(同周期)的生成,以及由基波和它的谐波(5次以下)线性组合的波形。
(3) 系统具有存储波形功能。
(4) 系统输出波形的频率围为1Hz~1MHz,重复频率可调,频率步进间隔≤100Hz,非正弦波的频率按照10次谐波来计算。
(5) 系统输出波形幅度围0~5V。
(6) 系统具有显示输出波形的类型、重复频率和幅度的功能。
2 波形发生器系统设计方案设计并制作一个波形信号发生器,能够产生正弦波、方波、三角波的波形,其中不使用DDS和一些专用的波形产生芯片。
并让系统的频率围在1Hz~1MHZ可调节,在频率围在1HZ~10KHz时,步进小于或等于10Hz,在频率围在10KHz~1MHz时,步进小于或等于100Hz,并且电压在0~5V围,能够实时的显示波形的类型、频率和幅值。
2.1 方案的设计思路以AT89C51单片机作为系统的控制核心,其中P0口接DAC0832作为信号输入同时进行数模转换,P1口用来接键盘,P2口接LED显示器,由程序来控制P0口产生的波形,再由按键和按键次数控制波形的种类、频率和幅值的大小,并且能够通过按键来控制波形频率值和幅度值。
基于51单片机的波形发生器设计报告
目录摘要 (2)一、题目要求及分析 (3)二、总体系统方案设计 (4)2.1总体设计思路 (4)2.2总体框图 (5)2.3信号发生部分 (5)2.4显示部分 (6)2.5按键部分 (6)三、硬件电路 (6)3.1功能与基本原理 (7)3.2资源分配 (8)3.2显示接口电路 (8)3.3波形转换(D/A)电路 (9)3.4红外电路 (10)3.5复位电路 (11)3.6外部时钟电路 (11)3.7 LCD显示部分电路 (12)3.8电源部分 (12)3.9独立按键部分 (13)3.10串口通信模块 (13)四、软件设计 (14)4.1程序流程图 (15)4.2 LCD显示流程图 (15)五、系统仿真 (16)5.1仿真电路图 (16)5.2输出波形图 (16)六、硬件和软件测试 (17)6.1硬件调试 (17)6.2软件调试 (18)七、设计心得 (18)八、参考文献 (20)九、附件 (21)摘要:本系统采用单片机C8051为控制核心,输出数字量,然后由DAC0832把数字量转换成模拟量;但是输出的是电流,需要用运放(OP07),把电流转换成电压量。
显示利用的是LCD1602的液晶,显示其波形,幅值。
按键应用的是独立按键,用来波形的切换,幅值,频率的调解。
其运算核心,我们通过MATLAB对正弦波,三角板,正弦波进行采样,得到一组组数据,然后同过数组存储;利用中断对数组进行扫描。
其频率的调解就是调节其中断间隔的时间,幅值就是调节其数字的大小(同时乘以某个小于1的数)。
为了波形的合成,我们采用的点的个数都是20个。
AT-89C51 DAC0832 独立按键OP07一、题目要求及分析设计任务:设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。
示意图如下:图1 设计要求图设计要求:1.具有产生正弦波、方波、三角波三种周期性波形的功能;2.用键盘输入编辑生成上述三种波形(同周期)的线性组合波形,以及由基波及其谐波(5次以下)线性组合的波形。
基于51单片机的波形发生器的设计
基于51单片机的波形发生器的设计————————————————————————————————作者:————————————————————————————————日期:基于51单片机的波形发生器的设计摘要这个系统是基于AT89C51单片机的波形信号发生器。
使用AT89C51单片机作为控制核心,该系统由数字/模拟转换电路(DAC0832)、运放电路(LM324)、按键电路和8位数码管等组成。
通过按键可控制方波、三角波、正弦波的产生,并且用数码管指示其对应的频率.这个设计方法简单、性能良好,这个系统可在多种需要低频信号的场所使用,它具有良好的实用性。
关键词:8951单片机;数字模拟转换电路;运放电路;8位数码管The Design of Waveform Generator Based on 51AbstractThe system is a signal waveform generator based on AT89C51。
AT89C51 is used as a control core。
The system is composed by a digital/analog transform circuit (DAC0832),an amplifier (LM324),some button and a nixie tube。
It can generate the square, triangle and sine wave。
At the same time it uses the digital tube to indicate the corresponding frequency. It is simple in design and excellent in performance. The system can be used for a variety of low-frequency signal place. It has better practicability.本文为互联网收集,请勿用作商业用途文档为个人收集整理,来源于网络Keywords:AT89C51;DA0832;LM324;8 nixie tube目录1 引言 (1)1.1 题目要求及分析 (1)1。
一种基于MCS_51单片机的数字可调脉冲发生器的设计实现_虞立工
虞立工(杭州华日电冰箱股份有限公司 杭州 310019)摘要:介绍了以MCS-51单片机为主控器,以MCP4561数字电位器为核心实现可调数字式脉 冲发生电路的设计。
该系统电路简单、可靠,脉冲信号频率、脉宽和幅值可调,输出波形平稳。
关键词:MCS-51单片机; 脉冲发生器; 数字电位器Abstract :In this paper, it introduces the design of a controllable digital pulse generator circuit which is based on MCS-51 single chip microcomputer as the main controller and MCP4561 digital potentiometer as the core. The result shows that it is of simplicity and reliability, and pulse frequency, pulse width and signal amplitude can be adjusted and the output waveform is smooth.Key words:MCS-51 single chip microcomputer; pulse generator; digital potentiometer引言脉冲信号发生器在工业应用、生物医学、家用电器控制等领域中,有着广泛的应用。
在控制步进电机运行 过程中,脉冲发生器可以发出脉冲信号,按照步进电机的结构特点,顺序分配脉冲,实现控制角位移、旋转速度、旋转方向。
大部分的脉冲信号发生器是利用定时电路产生脉冲,而频率和幅值都是用电位器进行调节。
而机械接触式的电位器可靠性和精度不高,而用单片机在软件方面实现数字可调又会耗费很多编程人员的很多时间和精力。
本文介绍采用Microchip 公司的MCP4561数字电位器,来代替机械接触式的电位器,用MCS-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.键盘扫描程序设计键盘扫描程序需要实现对键盘状态的检测,以获取用户输入的波形种类、幅值和频率等参数。
我们采用轮询的方式进行键盘扫描,即不断地检测键盘状态,直到用户输入了有效的参数为止。