PWM信号发生器的设计报告

合集下载

3.PWM信号发生器设计

3.PWM信号发生器设计

第一期可编程逻辑设计培训研讨 2013年1月 湖北武汉
4
华中科技大学 国家电工电子实验教学示范中心
PWM信号发生器实验
• *编写TestBench并在ModelSim中仿真
`timescale 1ns/1ps module testbench; reg clk; reg [7:0] data; wire pwm; initial begin clk = 1'b1; data = 8'd0; pwm_t = 1'b0; #100000 data = 8'd32; #100000 data = 8'd64; #100000 data = 8'd128; #100000 data = 8'd160; #100000 data = 8'd192; #100000 data = 8'd224; #100000 data = 8'd255; #100000 $stop(); end always begin #20 clk = ~clk; end pwm pwm_inst(.clk(clk), .data(data), .pwm(pwm)); endmodule
• 编写并添加按键驱动和显示占空比的逻辑 • 下载至EDA-CPLD板上,并用示波器观察
第一期可编程逻辑设计培训研讨 2013年1月 湖北武汉 5 华中科技大学 国家电工电子实验教学示范中心
实验过程(自编)
• 直接在ModelSim ALTERA STARTER EDITION 6.5b 中进行编写、访真即可。 新建三个文件,
module pwm( input clk, input [7:0] data, output pwm ); reg [7:0] cnt; always@(posedge clk) begin cnt <= cnt + 1’b1; end always@(posedge clk) begin pwm <= (data > cnt); end endmodule

pwm波信号发生器

pwm波信号发生器

电子技术综合训练设计报告题目:PWM信号发生器的设计姓名:学号:班级:同组成员:指导教师:日期:摘要本次课程设是基于TTL系列芯片的简易PWM信号发生器,PWM信号发生器应用所学的数字电路和模拟电路的知识进行设计。

在设计过程中,所有电路仿真均基于Multisim10仿真软件。

本课程设计介绍了PWM信号发生器的设计方案及其基本原理,并着重介绍了PWM信号发生器各单元电路的设计思路,原理及仿真,整体电路的的工作原理,控制器件的工作情况。

设计共有三大组成部分:一是原理电路的设计,本部分详细讲解了电路的理论实现,是关键部分;二是性能测试,这部分用于测试设计是否符合任务要求。

三是是对本次课程设计的总结。

关键字:目录1 设计任务和要求…………………………………………………………?1.1设计任务……………………………………………………………?1.2设计要求…………………………………………………………….?2 系统设计…………………………………………………………………?2.1系统要求…………………………………………………………….?2.2方案设计……………………………………………………………?2.3系统工作原理……………………………………………………….?3 单元电路设计……………………………………………………………?3.1 单元电路A(单元电路的名称) ……………………………………?3.1.1电路结构及工作原理……………………………………………?3.1.2电路仿真…………………………………………………………?3.1.3元器件的选择及参数确定……………………………………………?3.2单元电路B(单元电路的名称) ……………………………………?3.2.1电路结构及工作原理…………………………………………?3.2.2电路仿真…………………………………………………………?3.2.3元器件的选择及参数确定…………………………………………….?……4 系统仿真……………………………………………………………………?.5 电路安装、调试与测试……………………………………………………?5.1电路安装………………………………………………………………?5.2电路调试………………………………………………………………?5.3系统功能及性能测试…………………………………………………?5.3.1测试方法设计………………………………………………………?5.3.2测试结果及分析……………………………………………………?6 结论…………………………………………………………………………?7 参考文献……………………………………………………………………?8 总结、体会和建议附录1、设计任务和要求1.1设计任务设计具有死区时间的PWM信号产生的电子线路,并且设计数码显示电路,实时显示PWM信号的频率。

南昌航空大学PWM波形发生器实验报告

南昌航空大学PWM波形发生器实验报告

PWM波信号发生器的研制课程设计说明书课程设计名称:单片机专业课设课程设计题目: PWM信号发生器的研制学院名称:信息工程学院专业:电子信息工程班级:学号:姓名:评分:教师:20 13 年 7 月 2 日摘要1PWM波信号发生器的研制随着电力电子全控开关器件的出现,脉宽调制技术(PWM)在电力电子变流技术中获得了,。

泛的应Hj,如直流开关电源(DC/DC变换)、交。

交变频(AC/AC变换)、交.直.交变频系统、UPS电源(DC/AC变换)、高功率因数整流(PWM整流或功率l灭l数校正PFC等)等电力电子各个应用领域,无不采用PWM控制技术。

PWM控制最基本的实现方法是通过载波和控制波的模拟电路调制米产生,如采用三角形载波(或锯齿波)和直流(或正弦波)控制信号比较器进行比较产生PWM波。

这种方法在模拟控制技术中广泛采用,并出现过许多产生PWM波控制芯片,如用于开关电源的TL494、SG3525、UC3842等。

随着数字控制技术的发展,又出现了许多数字式PWM集成芯片,如用于变频调速的三相PWM发生器HEF4752、SLE4520、MA818等。

但与迅速发展的微机控制技术相比,该方法显示出电路复杂、调制方式不够灵活等缺点,而采用软件计算的实时PWM控制策略越来越彼人们接受,并出现了许多不同的PWM波的计算方法,如采样SPWM法、谐波注入PWM法、均值PWM法、等面积PWM法等。

电力电子的微机PWM控制技术已成为一种必然趋势。

因此本文就PWM的单片机控制与实现进行分析研究,通过对外围电路芯片的设计实现PWM输出波形的频率、电压幅值、占空比的连续调节,达到产生PWM信号目的。

关键字:脉宽调制技术(PWM)、占空比、控制信号2PWM波信号发生器的研制单片机原理与接口技术课程设计任务书20 12 -20 13 学年第 2 学期第 17 周- 19 周注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。

占空比可调的信号发生器报告

占空比可调的信号发生器报告

占空比可调的PWM信号发生器一、任务分析信号同期为20ms,可用一个定时器完成定时触发。

对于占空比可用另一个定时器设计一个基本时间单元。

对于增量或减量只要用一个外部开关一选择高低电平然后用软件查询方式来查询来决定是加还是减。

对增量级别由基本时间单元的个数来决定。

1%时加或减一个时间基本单元,5%时则加或减5个时间单元就可以了。

用一个显示子程序可完成占空比的显示。

二、实现方案用两个中断来检测是否有增量级别的改变,一旦有就触发中断。

用一个双向开关决定是增量还是减量。

对于脉宽固定而周期可改变的PWM信号发生器,只要设两个变量和两个基本时间定时器即可,当周期改变时同时改变脉宽计数器的数值即可。

三、程序流程图四、硬件电路图五、程序清单COUNT EQU 30H AS EQU 30H M EQU 35H ORG 0000H LJMP START ORG 0003H LJMP INT00 ORG 0013H LJMP INT11START: SETB EX0SETB PX0 SETB IT0 SETB EX1 CLR PX1 SETB IT1 SETB EA CLR P1.5MOV TMOD,#21H MOV TH1,#38H MOV TH0,#0B1H MOV TL0,#0E0H SETB TR0 SETB TR1MOV DPTR,#TABLE MOV M,#50 MOV P0,#3FHMOV P2,#6DH MOV AS,#0TOP: SETB TR1SETB P1.0 CLR P1.1MOV TH0,#0B1H MOV TL0,#0E0H MOV AS,#0 MOV B,#10 MOV A,M MOV B,#100 DIV AB JZ TIME1 MOV B,#10CLERK: SETB P1.5LCALL DELAY CLR P1.5 LCALL DELAY SETB P1.5 LCALL DELAY CLR P1.5 MOV M,#50 LCALL SHOW LJMP TOPTIME1:JBC TF1,NEXTSJMP TIME1 NEXT: INC ASMOV A,MCJNE A,AS,TIME1CLR P1.0SETB P1.1CLR TR1TIME0:JBC TF0,TOPSJMP TIME0INT00: JNB P1.2,LOOP1INC MLCALL SHOWRETILOOP1: DEC MLCALL SHOWRETIINT11: JNB P1.2,LOOPMOV A,MADD A,#5MOV M,ALCALL SHOWRETILOOP: MOV A,MSUBB A,#5MOV M,ALCALL SHOWRETISHOW: MOV A,MMOV B,#10DIV ABMOVC A,@A+DPTRMOV P2,AMOV A,BMOVC A,@A+DPTRMOV P0,AMOV B,#10RETDELAY: MOV R6,#0FFHDEY1: MOV R7,#0FFHdey2: MOV R5,#3DJNZ R5,$DJNZ R7,dey2DJNZ R6,DEY1RETTABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END六、示波器输出。

《单片机课程设计-pwm波信号发生器的研制》

《单片机课程设计-pwm波信号发生器的研制》

PWM信号发生器的研制前言脉冲宽度调制是现代控制技术常用的一种控制信息输出,可以有效地利用数字技术控制模拟信号的技术。

PWM(Pulse Width Modulation)又称脉冲宽度调制,属于脉冲调制的一种,即脉冲幅度调制(PAM)、脉冲相位调制(PPM)、脉冲宽度调制(PWM)和脉冲编码调制(PCM)。

它们本来是应用于电子信息系统和通信领域的一种信号变换技术,但从六十年代中期以来后,随着电力电子技术被引入到电力变换领域,PWM技术广泛运用于各种工业电力传动领域乃至家电产品中。

目前,随着微机技术日益广泛深入工业控制领域,单片机控制的PWM技术迅速发展,其突出特点是可以比较容易地选择最佳的脉冲调制频段,更重要的,由于与单片机的结合,整个系统可以集成为具有更完备的保护功能、故障诊断功能和显示功能的高可靠的微型化的系统。

因此,被竞相开发,前景广阔。

在智能化产品开发中, 许多常用的单片机没有提供脉宽调制(PWM ) 电压信号输出功能, 而在某些特定的场合需要得到PWM信号。

PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。

PWM控制技术一直是变频技术的核心技术之一,由于PWM可以同时实现变频变压反抑制谐波的特点,在交流传动及至其它能量变换系统中得到广泛应用。

目前实现方法为采用全数字化方案,完成优化的实时在线的PWM信号输出。

本文主要介绍了PWM信号发生器的概念、作用及定义,分析了系统的工作原理和软硬件的设计。

主要是以AT89C51单片机为核心控制单元,通过对外围电路芯片的设计实现PWM输出波形的频率、电压幅值、占空比的连续调节,达到产生PWM信号目的。

第一章系统组成与工作原理1.1 系统设计内容与要求一、设计内容:PWM信号发生器的研制二、设计要求:(1)采用定时/计数器8253(2) PWM信号的工作频率为500Hz(1000Hz)(3)占空比可变且显示占空比1.2 系统组成如图1.1所示为系统的设计结构框图。

PWM信号发生器的设计——毕业设计论文

PWM信号发生器的设计——毕业设计论文

PWM信号发生器的设计实验/上机报告一、实验目的1、掌握序列发生器和检测器的工作原理;2、初步学会用状态机进行数字系统设计。

二、实验环境Quartus II 7.0 开发系统三、实验内容用状态机设计实现串序列检测器设计,可以用原理图输入法设计序列信号发生器,要求产生序列:0111010011011010;再进行检测设计,若检测到序列:11010则输出为“1”,否则输出为“0”。

并对其进行仿真和硬件测试。

四、实验过程本实验可以分为两部分来设计。

第一步设计序列信号发生器,在这里可以采用模16的计数器74LS161来产生模16的计数,并由它的4位输出可以产生16种状态,由此可以用来设计序列产生器,也可以采用状态机产生序列,本实验用状态机产生序列。

第二步设计序列检测器,这里用状态机设计,如果为真输出1,为假输出为0;第三步设计串行转并行输出,将序列并行输出在LED管上显示。

第四步是设计一个计数脉冲,记录出现所需要的序列的次数。

第五步是将所有模块连接起来,构成一个完整的序列发生和检测设计器。

实验代码:1、序列发生器library ieee;use ieee.std_logic_1164.all;entity xulie_produce is—序列产生电路port(clk,reset:in std_logic;comb_outputs:out std_logic);--序列输出end xulie_produce;architecture behav of xulie_produce istype fsm_st is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);--状态设计signal current_state,next_state:fsm_st;beginreg:process(reset,clk)—主控时序进程beginif reset ='1'then current_state<=s0;elsif clk='1'and clk'event thencurrent_state<=next_state;end if;end process;com:process(current_state)—主控组合进程begincase current_state iswhen s0 => comb_outputs<='0';next_state<=s1; when s1 => comb_outputs<='1';next_state<=s2; when s2 => comb_outputs<='1';next_state<=s3; when s3 => comb_outputs<='1';next_state<=s4; when s4 => comb_outputs<='0';next_state<=s5; when s5 => comb_outputs<='1';next_state<=s6; when s6 => comb_outputs<='0';next_state<=s7; when s7 => comb_outputs<='0';next_state<=s8; when s8 => comb_outputs<='1';next_state<=s9; when s9 => comb_outputs<='1';next_state<=s10; when s10 => comb_outputs<='0';next_state<=s11; when s11 => comb_outputs<='1';next_state<=s12; when s12 => comb_outputs<='1';next_state<=s13; when s13 => comb_outputs<='0';next_state<=s14; when s14 => comb_outputs<='1';next_state<=s15; when s15 => comb_outputs<='0';next_state<=s0; end case;end process;end behav;2、序列检测器library ieee;use ieee.std_logic_1164.all;entity s_machine is—序列检测电路port(clk,reset:in std_logic;state_inputs:in std_logic;--状态转移控制comb_outputs:out std_logic);检测结果输出end s_machine;architecture behav of s_machine istype fsm_st is (s0,s1,s2,s3,s4,s5);signal current_state,next_state:fsm_st;beginreg:process(reset,clk)主控时序进程beginif reset ='1'then current_state<=s0;elsif clk='1'and clk'event thencurrent_state<=next_state;end if;end process;com:process(current_state,state_inputs)—主控组合进程begincase current_state iswhen s0 => comb_outputs<='0';if state_inputs='1' then next_state<=s1;else next_state<=s0;end if;when s1 => comb_outputs<='0';if state_inputs='1' then next_state<=s2;else next_state<=s0;end if;when s2 => comb_outputs<='0';if state_inputs='0' then next_state<=s3;else next_state<=s2;end if;when s3 => comb_outputs<='0';if state_inputs='1' then next_state<=s4;else next_state<=s0;end if;when s4 => comb_outputs<='0';if state_inputs='0' then next_state<=s5;else next_state<=s2;end if;when s5 => comb_outputs<='1';--检测到11010输出1 if state_inputs='0' then next_state<=s0;else next_state<=s1;end if;end case;end process;end behav;3、串行输出变并行输出library ieee;use ieee.std_logic_1164.all;entity shift is –串行变并行电路port(clk,load,a:in std_logic;din :out std_logic_vector(7 downto 0));--并行输出end shift;architecture behav of shift isbeginprocess(clk,load,a)variable reg8 :std_logic_vector(7 downto 0);beginif clk'event and clk='1'thenif load='1'then reg8(7 downto 1):=reg8(6 downto 0);--load为1时开始装载reg8(0):=a;end if;end if;din<=reg8;end process;end behav;4、计数器设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY CNTM IS –计数电路PORT (CLK,RST,EN:IN STD_LOGIC;a,b,c:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END CNTM;ARCHITECTURE behav OF CNTM ISsignal a1,b1,c1:std_logic_vector(3 downto 0); BEGINPROCESS (CLK,RST,EN)VARIABLE N :INTEGER RANGE 0 TO 1000;BEGINIF RST ='1' THEN N:=0;ELSIF CLK 'EVENT AND CLK='1' THENIF EN = '1' THENIF N<100 THEN N:=N+1;--设计为100计数ELSE N:=0;END IF;END IF;END IF;a1<=conv_std_logic_vector((N/100),4);b1<=conv_std_logic_vector(((N/10)mod 10),4); c1<=conv_std_logic_vector((N mod 10),4);a<=a1;b<=b1;c<=c1;END PROCESS;实验步骤:1、建立工作库文件和编辑设计文件(1)在D盘新建一个文件夹用来保存工程文件(2)打开QuartusⅡ8.0软件,选择菜单File->New->VHDL File,点击OK后在打开的界面下输入已经设计好的程序。

PWM信号发生器的设计

PWM信号发生器的设计

PWM信号发生器的设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BXFSQ ISPORT ( CLK,CLK1,KK : IN STD_LOGIC;DATA : IN STD_LOGIC_VECTOR(11 DOWNTO 0);DD : OUT INTEGER RANGE 255 DOWNTO 0 );END;ARCHITECTURE DACC OF BXFSQ ISSIGNAL Q : INTEGER RANGE 63 DOWNTO 0 ;SIGNAL D : INTEGER RANGE 255 DOWNTO 0 ;SIGNAL FSS : STD_LOGIC ;SIGNAL COUNT12,DATA2,DATA1 : STD_LOGIC_VECTOR(11 DOWNTO 0) ; BEGINPROCESS(FSS)BEGINIF (FSS'EVENT AND FSS = '1') THEN Q <= Q + 1;END IF;END PROCESS;PROCESS(Q)BEGINCASE Q ISWHEN 00=> D<=255; WHEN 01=> D<=254; WHEN 02=> D<=252; WHEN 03=> D<=249; WHEN 04=> D<=245; WHEN 05=> D<=239; WHEN 06=> D<=233; WHEN 07=> D<=225; WHEN 08=> D<=217; WHEN 09=> D<=207; WHEN 10=> D<=197; WHEN 11=> D<=186; WHEN 12=> D<=174; WHEN 13=> D<=162; WHEN 14=> D<=150; WHEN 15=> D<=137; WHEN 16=> D<=124; WHEN 17=> D<=112; WHEN 18=> D<= 99; WHEN 19=> D<= 87; WHEN 20=> D<= 75; WHEN 21=> D<= 64; WHEN 22=> D<= 53; WHEN 23=> D<= 43; WHEN 24=> D<= 34; WHEN 25=> D<= 26; WHEN 26=> D<= 19; WHEN 27=> D<= 13; WHEN 28=> D<= 8; WHEN 29=> D<= 4; WHEN 30=> D<= 1; WHEN 31=> D<= 0; WHEN 32=> D<= 0; WHEN 33=> D<= 1; WHEN 34=> D<= 4; WHEN 35=> D<= 8; WHEN 36=> D<= 13; WHEN 37=> D<= 19; WHEN 38=> D<= 26; WHEN 39=> D<= 34; WHEN 40=> D<= 43; WHEN 41=> D<= 53; WHEN 42=> D<= 64; WHEN 43=> D<= 75; WHEN 44=> D<= 87; WHEN 45=> D<= 99; WHEN 46=> D<=112; WHEN 47=> D<=124; WHEN 48=> D<=137; WHEN 49=> D<=150; WHEN 50=> D<=162; WHEN 51=> D<=174; WHEN 52=> D<=186; WHEN 53=> D<=197; WHEN 54=> D<=207; WHEN 55=> D<=217; WHEN 56=> D<=225; WHEN 57=> D<=233; WHEN 58=> D<=239; WHEN 59=> D<=245; WHEN 60=> D<=249; WHEN 61=> D<=252; WHEN 62=> D<=254; WHEN 63=> D<=255; WHEN OTHERS => NULL ;END CASE;END PROCESS;DD <= D ;PROCESS(CLK, DATA)BEGINIF CLK'EVENT AND CLK = '1' THENIF COUNT12 = "111111100000" THEN COUNT12 <= DATA1; FSS <= '1';ELSE COUNT12 <= COUNT12 + 1; FSS <= '0';END IF;END IF;END PROCESS;DATA1 <= DATA WHEN KK = '1' ELSEDATA2 WHEN KK = '0' ELSE DA TA2 ;PROCESS(CLK1)BEGINIF (CLK1'EVENT AND CLK1 = '1') THEN DA TA2 <= DATA2 + 1;END IF;END PROCESS;END;。

实验2—占空比可调的PWM信号发生器

实验2—占空比可调的PWM信号发生器

实验2—占空比可调的PWM信号发生器第一篇:实验2—占空比可调的PWM信号发生器实验2占空比可调的PWM信号发生器一、实验任务基本部分:(1)用51单片机设计一个周期固定且占空比可调的PWM信号发生器。

(2)参数要求:a、信号周期为20ms,占空比范围1%-100%可调;b、用两个按键分别调整增量或减量;增量级别分为±1%和±5%两档可调,且要求可用按键选择;c、要求用两位LED数码管实时显示当前的占空比;d、51单片机晶振频率为12MHz。

扩展部分:(1)在基本部分设计的电路中,为输出的PWM信号增加光耦隔离输出电路;(2)为占空比调整过程增加超界声光报警电路;(3)可否改为脉宽固定而周期可改变的PWM信号发生器(简略说明,不要求设计编程)。

二、实验要求1、在PROTEUS中画出硬件设计图(AT89C51、12MHz晶振震荡电路、复位电路、按键调整电路、LED数码管显示电路、扩展部分电路)。

2、按任务要求用汇编或C编写程序并编译通过。

3、在PROTEUS下仿真通过。

三、报告要求1、任务分析、实现方案和程序流程图;2、硬件电路图;3、全部程序清单;4、打印出实验报告。

第二篇:信号发生器设计(推荐)模拟课程设计题信号发生器设计设计一个能够输出正弦波、三角波和矩形波的信号源电路,电路形式自行选择。

输出信号的频率可通过开关进行设定,具体要求如下:(1)输出信号的频率范围为100~800Hz,步进为100Hz。

(60分)(2)要求输出信号无明显失真,特别是正弦波信号。

(30分)评分标准:(1)范围满足设计要求得满分,否则酌情扣分。

(2)输出信号无明显失真可满分,有明显失真酌情扣分。

发挥部分(附加10分):进一步扩大输出信号范围和减小步进频率。

第三篇:VHDL实验四函数信号发生器设计.VHDL实验四:函数信号发生器设计设计要求:设计一个函数信号发生器,能产生方波,三角波,正弦波,阶梯波。

pwm信号发生器的设计

pwm信号发生器的设计

pwm 信号发生器的设计
脉冲宽度调制(Pulse Width ModulaTIon.PWM)控制技术以其控制简
单、灵活和动态响应好的优点而成为电力电子技术和模拟信号数字传输通信领域最广泛应用的控制方式,因此研究基于PWM 技术的脉冲宽度及周期可
调的信号发生器具有十分重要的现实意义。

这篇文章主要就是说明计数器计算时钟脉冲的上升沿个数,再通过输出电平反复翻转得到计数个数(脉冲宽度)可控的PWM 信号。

为了使本次设计产生的PWM 信号能用于频率稳定度高的晶振,故在系统设计中添加了一个分频模块,因此PWM 信号发生器由分频器和信号发
生器两个部分组成。

其组成框图如图2.1 所示
PWM 信号发生器的总体设计流程图如图2.2 所示。

信号发生器设计报告(DOC)

信号发生器设计报告(DOC)

序号(学号):1223000101吉林建筑大学城建学院课程设计报告信号发生器的设计姓名宋丽萍系电气信息工程系专业电子信息工程班级电子12-1指导教师雷艳敏(副教授)2013 年12 月27 日目录摘要 (1)ABSTRACT (3)第1章前言 (4)1.1绪论 (4)1.2 设计目的 (4)第2章信号发生器的设计原理 (5)2.1原理框图 (5)2.2信号发生器的原理图 (5)2.2.1矩形波发生电路及工作原理 (5)2.2.2正弦波发生电路及工作原理 (6)3.2.3三角波发生电路及工作原理 (7)第3章仿真电路分析 (9)3.1 矩形波波形 (10)3.2 三角波波形 (11)3.3 正弦波波形 (12)总结 (15)参考文献 (16)致谢 (17)附录1整机原理图 (18)摘要信号发生器广泛应用于电子工程、通信工程、自动控制、遥测控制、测量仪器、仪表和计算机等技术领域。

采用集成运放和分立元件相结合的方式,利用迟滞比较器电路产生方波信号,以及充分利用差分电路进行电路转换,从而设计出一个能变换出三角波、正弦波、方波的简易信号发生器。

通过对电路分析,确定了元器件的参数,并利用仿真软件仿真电路的理想输出结果,克服了设计低频信号发生器电路方面存在的技术难题,使得设计的低频信号发生器结构简单,实现方便。

本设计是信号发生器的设计,主要由比较器、积分器构成,它能产生频率范围为1KHZ~10KHZ内的方波、三角波、正弦波。

关键词 : 方波;正弦波;三角波;信号发生器ABSTRACTSignal generator is widely used in electronics engineering, communication engineering, automatic control, remote control, measuring instrument, instrument and computer technology. Using integrated op-amp and the way of the combination of discrete component, using hysteresis comparator circuit to produce square wave signal, and make full use of the differential circuit to convert the circuit, so as to design a can transform a simple triangle wave, sine wave and square wave signal generator. Based on circuit analysis, to determine the parameters of the components, and by using simulation software simulation circuit of the ideal output, overcomes the low frequency signal generator circuit design of technical problems, makes the design of the low frequency signal generator has simple structure, easy to implement.This design is the design of the signal generator, mainly by the comparator, integrator, differential amplifier, it can produce within the frequency range of 1 KHZ ~ 10 KHZ square wave, triangle wave, sine wave.Key Words: square wave; Sine wave; Triangle wave. Signal generator第1章前言1.1绪论凡是产生测试信号的仪器,统称为信号源,也称为信号发生器,它用于产生被测电路所需特定参数的电测试信号。

单片机PWM信号发生器的原理与设计

单片机PWM信号发生器的原理与设计

单片机PWM信号发生器的原理与设计引言在现代电子技术中,脉冲宽度调制(PWM)信号发生器被广泛应用于各种电路和系统中。

单片机作为常见的嵌入式系统解决方案,具备了成本低、功耗低、可编程性强等优势,因此被广泛用于PWM信号发生器设计中。

本文将介绍单片机PWM 信号发生器的原理与设计。

一、PWM信号发生器的原理1.1 脉冲宽度调制(PWM)概述脉冲宽度调制(PWM)是一种将模拟信号转换为数字信号的技术。

PWM信号由连续的短脉冲组成,其脉冲的宽度可以根据需要进行调整。

通过改变脉冲信号的宽度与周期之比,可以模拟出不同的模拟信号输出。

1.2 PWM信号发生器的基本原理PWM信号发生器的基本原理是通过控制脉冲的宽度和周期,实现对输出波形的精确控制。

单片机通常具有定时器模块,通过定时器模块的特定设置,可以生成精确的脉冲信号。

单片机还需要连接输出引脚,将生成的PWM信号输出给外部电路。

二、单片机PWM信号发生器的设计2.1 硬件设计单片机PWM信号发生器的硬件设计包括选择合适的单片机、外部电路连接和输出端口设计。

首先,选择适合的单片机。

考虑到PWM信号发生器需要高精度、可编程性强的特点,可以选择带有定时器模块的单片机。

常见的单片机型号有ATmega系列、PIC系列等。

根据实际需求选择合适的型号。

其次,进行外部电路连接。

通常需要连接电源、晶体振荡器以及输出端口。

电源提供电压稳定源,晶体振荡器提供时钟信号。

输出端口需要连接到PWM信号的目标设备上。

最后,进行输出端口设计。

根据实际需求确定输出端口的数量和类型。

常用的输出接口有GPIO、PWM输出等。

根据单片机型号和外部电路要求进行设计。

2.2 软件设计单片机PWM信号发生器的软件设计包括定时器设置和PWM生成代码编写。

首先,进行定时器设置。

根据单片机型号和需求,设置定时器的时钟源、分频系数、计数模式等参数。

通过合理的定时器设置,可以实现精确的脉冲宽度和周期控制。

其次,编写PWM生成代码。

(完整word版)PWM信号发生器设计文献综述(1)

(完整word版)PWM信号发生器设计文献综述(1)

文献综述毕业设计题目: PWM信号发生器设计PWM信号发生器文献综述(电子信息工程10(1)班E10610119)1前言PWM(Pulse Width Modulation)又称脉冲宽度调制,属于脉冲调制的一种,即脉冲幅度调制(PAM)、脉冲相位调制(PPM)、脉冲宽度调制(PWM)和脉冲编码调制(PCM)。

它们本来是应用于电子信息系统和通信领域的一种信号变换技术,但从六十年代中期以来后,随着电力电子技术被引入到电力变换领域,PWM技术广泛运用于各种工业电力传动领域乃至家电产品中[1]。

信号发生器又称波形发生器,是一种常用的信号源,被广泛地应用于无线电通信、自动测量和自动控制等系统中。

传统的信号发生器绝大部分是由模拟电路构成,借助电阻电容,电感电容、谐振腔、同轴线作为振荡回路产生正弦或其它函数波形。

频率的变动由机械驱动可变元件完成,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵。

在今天,随着大规模集成电路和信号发生器技术的发展,许多新型信号发生器应运而生。

用信号发生器并配置适当接口芯片产生程控正弦信号,则可替代传统的正弦信号发生器,从而有利于测试系统的集成化、程控化和智能仪表的多功能化。

而信号发生器的最大特点是面向控制,由于它集成度高、运算速度快、体积小、运行可靠、价格低,因此在数据采集、智能化仪器等技术中得到广泛的应用,从而使得信号发生器的应用成为工程技术多学科知识汇集的一个专门研究领域,其应用产生了极高的经济效益和社会效益[2]。

2 PWM信号发生器的发展与现状2.1信号发生器的发展单片微型计算机简称信号发生器,是指集成在一块芯片上的计算机,信号发生器的产生与发展和微处理器的产生与发展大体同步,自1971年美国Intel公司首先推出4位微处理器以来,它的发展到目前为止大致可分为5个阶段:第1阶段(1971~1976):信号发生器发展的初级阶段。

PWM波形的发生器的设计

PWM波形的发生器的设计

综合实验二PWM波形的发生器的设计一、系统设计与理论分析1.用ADC0809进行A/D转换,采集到数字信号D2.在P1.1上产生周期T为1kHz的PWM波形,其中脉冲宽度Tao由数字信号D决定(如当采集到的数字信号为80H时,占空比为50%,依此类推)本实验是先采集模拟信号,然后将模拟信号转换成数字信号,经CPU处理,用数字信号来决定CPU产生的波形的占空比,并将占空比显示出来。

二、硬件设计本系统采用51芯片控制,使用可变电阻作为传感器,通过ADC0809采集模拟信号,将模拟信号转换成数字信号给51芯片处理,再通过8155扩展IO口,显示模块采用数码管,与8155相连,51单片机通过8155控制数码管的显示。

本次试验器材采用的是试验箱,各模块的芯片选择已经固定,只需将所用模块线路搭连好即可。

本实验使用74LS164串转并来实现数码管的显示,减少了IO口的使用数量,使系统有更多的IO口实现其他功能的扩张。

三、软件设计首先将8155的模式通过控制字地址传入8155,接着对8051的定时中断进行初始化设置,将从传感器上通过AD转换的数据送到8051,赋值给Tao,接着通过8051将Tao值拆分,然后将拆分的数据通过8155的IO口串行输出,再通过74LS164将串行数据转换成并行数据,使与74LS164并行口相连的八段数码管显示出数据。

另一方面,定时器每隔3ns对Tao与T进行比较,并在P1.1上输出相应的值。

四、系统测试实验仪器使用的是实验箱,测试用的仪器仪表实验室均有提供,而软件代码老师已经给出,测试部分是本次实验主要要做的部分。

由于实验箱好坏程度不同,在硬件方面,判断其好坏花去不少时间,实验器材换了又换,结果还是存在一定问题。

而软件方面,keil的安装时常出现奇形怪状的问题,经老师检查,未查出原因致使电脑换了一台又一台,能否成功安装上keil软件的概率无法估计。

总而言之,在到达这测试的部分时已花去相当一大部分时间,因此,测试数据不够完善,存在一些问题未解决。

基于AT89C51PWM信号发生器设计报告课程设计

基于AT89C51PWM信号发生器设计报告课程设计

基于AT89C51PWM信号发生器设计报告课程设计基于AT89C51的PWM信号发生器设计摘要单片机集成度高,功能强,可靠性高,体积小,功耗低,使用方便,价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎无处不在,无所不为。

单片机的应用领域已经从面向工业控制,通讯,交通,智能仪表等迅速发展到家用消费产品,办公自动化,汽车电子,PC机外围以及网络通讯等广大领域。

单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,成为普林斯机构。

另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前单片机以采用程序存储器截然分开的结构多。

本课题讨论的占空比与周期可调的信号发生器的核心是目前应用极为广泛的51系列单片机。

基于单片机的信号发生器的设计,该课题的设计目的是充分运用大学期间所学的专业知识,考察现在正在使用的信号发生器的基本功能,完成一个基本的实际系统的设计全过程。

关键是这个实际系统设计的过程,在整个过程中我可以充分发挥自动化的专业知识。

特别是这个信号发生器的设计中涉及到一个典型的控制过程。

通过单片机控制一个有特殊功能的信号发生芯片,可以产生一系列有规律的周期和占空比可调的波形。

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

因为产生一系列的可调波形可以作为其他一些设备的数值输入,还可以应用与设备检测,仪器调试等场合。

高频稳定的波形信号也可以用于无线电波的调频,解调。

这些都是现代生活中必不可少的一些应用。

关键词:PWM信号发生器目录 1.简介-3- 1.1proteus-3-1.2Keil-4-1.3PWM-5- 1.4AT89C51-6-2.设计原理和方法-9-2.1单片机的基本组成-9 - 2.2方案的设计与选择-9- 2.3定时器、的工作原理-10- 2.3.1工作方式寄存器TMOD-11-2.3.2定时/计数器控制寄存器TCON-12-2.4定时/计数器的工作方式-12- 2.5设计方法-13- 3.系统硬件电路设计图-14- 4.程序框图-16-4.1主程序框图:-16-4.2系统初始化:-16-4.3定时器中断程序框图:-16-4.4键盘扫描程序框图:-17-5.性能分析-18- 5.1定时器中断分析-18-5.2系统性能分析-18- 6.源程序-18-7.仿真效果图-22-总结-24-致谢-25-参考文献-25-1.简介 1.1proteus Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。

PWM信号发生器的设计报告

PWM信号发生器的设计报告

前言脉冲宽度调制(Pulse Width Modulation.PWM)控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术和模拟信号数字传输通信领域最广泛应用的控制方式,因此研究基于PWM技术的脉冲宽度及周期可调的信号发生器具有十分重要的现实意义。

本文主要讨论了脉冲占空比可调信号的产生方法,采用三种不同的方案使用VHDL语言编程实现了信号的产生。

其中方案一的原理是分频,即用计数器计算时钟脉冲的上升沿个数,再通过输出电平反复翻转得到计数个数(脉冲宽度)可控的PWM 信号;方案二的原理是锯齿波比较法,首先编程产生阶梯状的锯齿波,再通过锯齿波与输入占空比值(数值可控的直线)比较产生脉冲宽度随输入占空比数值变化的PWM 信号;方案三是用有限状态机产生有用信号,首先定义两个状态,再通过计数器值与输入占空比值比较控制状态的切换,产生PWM信号。

本文详细介绍方案二和方案三两种方法。

通过使用QuartusII9.0软件采用VHDL语言编程并用功能仿真证实了上文提到的三种PWM信号产生方案都是可行的,都能产生切实可用的PWM信号,三种方案中均可以通过修改输入端口占空比来控制产生信号的脉宽,且可以通过在程序中修改计数器的计数上限和分频模块的分频比改变信号的周期及频率,实现了多参数可调,使整体设计具有灵活的现场可更改性和较好的可移植性。

且实现功能的程序简单易懂,设计过程中思路阐述清晰,流程介绍明了,且程序易于修改,可读性好。

第一章设计要求1.1 研究课题PWM信号发生器的研制1.2设计要求用CPLD可编程模块产生下列信号(特殊芯片:EPM570T100C5)(1)采用VHDL编写相关程序,PWM信号的工作频率为500Hz(1000Hz);(2)时钟信号通过分频器后,由输入开关量控制占空比可调。

第二章系统组成及工作原理本次设计采用的是Altera公司开发的QuartusII设计平台,设计采用特殊芯片EPM570T100C5进行仿真,在原理设计方面,本设计采用自顶向下、层次化、模块化的基本程序设计思想,这种设计思想的优点符合人们先抽象后具体,先整体后局部的思维习惯,其设计出的模块修改方便,不影响其他模块,且可重复使用,利用率高。

SPWM信号发生器的设计

SPWM信号发生器的设计

SPWM信号发生器的设计(安阳师范学院物电学院,河南安阳 455000)摘要:随着电力电子技术的不断发展,逆变电路在现实生活中的重要越来越凸显,SPWM控制技术更是以在交流调速变频器和不间断电源中获得了广泛的应用,且取得广泛而成功的应用.本系统采用比较和振荡电路来产生带一定死区延时的SPWM信号波,以给逆变主电路提供驱动信号。

采用模拟电路来产生带有一定死区延时的SPWM信号,系统主要由SPWM产生电路模块以及保护电路组成,采用以分立元件ICL8038和CD4538组成的比较和振荡电路产生SPWM信号,以单片集成函数发生器ICL8038为核心,首先产生频率可以从0。

001HZ到500KHZ范围变化的三角波和正弦波,通过集成运算放大器LM311比较后再通过一个非门即可得到上下两路互补对称的SPWM波形.为了使最后得到的SPWM波形带有一定的死区延时时间,在电路设计上将波形分别通过以单稳态触发器CD4528为核心的外围电路以产生几微秒死区时间以供给驱动电路驱动逆变器开关管关和断,改变信号发生器的频率和幅值就可以改变SPWM的频率和调制比,从而改变波形的频率和幅度;关键词:SPWM;ICL8038;死区延时;CD45381 前言1.1课题简介新型电力电子器件和高性能微处理器的出现和发展,使得PWM技术已成为电力电子技术中非常重要的组成部分,而且全控型电力电子器件驱动功率小,驱动电路简单,工作频率高,在中大容量整流和逆变电路领域如家用电器、办公设备电源、汽车电器及高科技领域得到了广泛的应用。

PWM控制技术在逆变电路中的广泛而成功的应用,使PWM技术在整流电路中也开始应用,并显示了突出优越性,而SPWM控制技术可以很好的控制逆变电路中开关器件的导通与关断,从而得到良好的输出波形。

1。

2 电力电子简介随着电力电子技术的飞速发展,正弦波输出变压变频电源已被广泛应用在各个领域中,与此同时对变压变频电源的输出电压波形质量也提出了越来越高的要求。

pwm信号发生器.实验报告

pwm信号发生器.实验报告

EDA实验报告学院:电气学院班级:电科1班学号:12401720126姓名:刘明煌实验三PWM信号发生器的设计1.实验目的(1)进一步熟悉掌握Quartus H。

(2)进一步熟悉和掌握GW48-CK或其他EDA实验开发系统的应用。

(3)学习和掌握VHDL进程语句和元件例化语句的使用。

2.实验内容设计并调试好PWM信号发生器电路PWM.VHD,并用GW48-CK或其他EDA实验开发系统进行硬件验证。

3.实验条件(1)开发软件:Quartus H。

(2)实验设备:GW48-CK EDA实验开发系统。

(3)拟用芯片:EP2C8Q208C8N。

4.实验设计1) 系统原理框图为了简化设计并便于显示,本信号发生器电路PWM的设计分为两个层次,其底层电路可,再由包括两个完全相同的加载加法计数器LCNT8而成。

PWM电路图2) VHDL程序PWM信号发生器的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下。

加载加法计数器LCNT8的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LCNT8 ISPORT(CLK ,L D:IN STD_LOGIC;D:IN INTEGER RANGE 0 TO 255;CAO:OUT STD_LOGIC);END ENTITY LCNT8;ARCHITECTURE ART OF LCNT8 ISSIGNAL COUNT:INTEGER RANGE 0 TO 255;BEGINIF CLKEVENT AND CLK=1THENIF LD=1THEN COUNT<=D;ELSE C0UNT<=C0UNT+1;END IF;END IF;END PROCESS;PROCESS(COUNT) ISBEGINIF COUNT=255 THEN CAO<=1;ELSE CAO<=0END IF;END PROCESS;END ARCHITECTURE ART;PWM信号发生器的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PWM ISPORT(CLK:IN STD_LOGIC;A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);PWM:OUT STD_LOGIC);END ENTITY PWM;ARCHITECTURE ART OF PWM ISCOMPONENT LCNT8 ISPORT(CLK ,L D:IN STD_LOGIC;D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CAO:OUT STD_LOGIC);END COMPONENT LCNT8;SIGNAL CAO1,CAO2:STD_LOGIC;SIGNAL LD1,LD2:STD_LOGIC;SIGNAL SPWM:STD_LOGIC;BEGINU1:LCNT8 PORT MAP(CLK=>CLK,LD=>LD1,D=>A,CAO=>CAO1);U2:LCNT8 PORT MAP(CLK=>CLK,LD=>LD2,D=>B,CAO=>CAO2);PROCESS(CAO1,CAO2)ISBEGINIF CAO1='1'THEN SPWM<='0';ELSIF CAO2'EVENT AND CAO2='1'THEN SPWM<='1';END IF;END PROCESS;LD1<=NOT SPWM;LD2<=SPWM;PWM<=SPWM;END ARCHITECTURE ART;3)工程编译后:4)仿真波形设置本程序包括两个程序,因此先进行底层的加载加法计数器 LCNT8的仿真,在进行顶层 PWM 的仿真,下图为 PWM 的 输入设置及可能结果估计图。

PWM专用信号发生器何斌1

PWM专用信号发生器何斌1

一、题义分析及解决方案1.1、课程设计名称及内容:用STAR ES598PCI单板开发机,设计一款PWM信号产生器,要求能产生频率和占空比可调的PWM信号,采用按键调节频率和占空比。

设计要求:(1)频率可调范围为1KHZ-100KHZ;(2)预置生成的频率为20KHZ,占空比为50%;(3)频率调节采用两个按键,分别为加和减,步进值为10KHZ;(4)占空比调节采用两个按键,分别为加和减,步进值为10%;(5)生成的频率信号可以由示波器观察;(6)同时显示当前频率值和占空比的值。

1.2、题意需求分析根据本设计给定的内容和要求,可以得出以下结论:本设计中需要用到的主要有两种芯片,一种用来扫描处理按键,另一种则用来调节PWM信号的频率和占空比,并作为计时器使用,最后是用于显示的七段LED数码显示管和示波器。

其中最核心的是要实现频率和占空比的调节,占空比就是输出的PWM中,高电平保持的时间与该PWM的时钟周期的时间之比,故改变占空比需要通过改变时钟脉冲中高电平的脉冲宽度来实现。

频率则是周期的倒数,若要改变频率,则需改变脉冲的时钟周期。

这里我们考虑到要用到可编程计数器8253的方式0和方式1,8253中方式0时一次中断计数,方式1是可编程触发器,我们用方式的OUT0的输出低电平来触发方式1的GATE1信号的高电平,此时我们将计算出的高低电平计数初值再次循环装入,这样我们便实现了改变输入的电压高电平,即实现了占空比的调节。

由于8253的方式0只是实现一次计数,如果不重新装入初值就不会再次触发,所以要实现频率的调节只需要每次都循环装入初值就可以了。

根据题意分析可知,该实验需设置四个按键,分别用来实现加减频率和占空比,故需用到输入数据的工具和与其配套使用可以实现扫描处理按键功能的芯片,分别用来输入数据和处理按键。

最后需要的便是实现显示功能的LED数码显示管和示波器,其中LED数码显示管的前四位是用来显示频率的数值,后四位用来显示占空比的数值,示波器则用来显示脉冲波形和步进值的。

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

前言脉冲宽度调制(Pulse Width Modulation.PWM)控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术和模拟信号数字传输通信领域最广泛应用的控制方式,因此研究基于PWM技术的脉冲宽度及周期可调的信号发生器具有十分重要的现实意义。

本文主要讨论了脉冲占空比可调信号的产生方法,采用三种不同的方案使用VHDL语言编程实现了信号的产生。

其中方案一的原理是分频,即用计数器计算时钟脉冲的上升沿个数,再通过输出电平反复翻转得到计数个数(脉冲宽度)可控的PWM 信号;方案二的原理是锯齿波比较法,首先编程产生阶梯状的锯齿波,再通过锯齿波与输入占空比值(数值可控的直线)比较产生脉冲宽度随输入占空比数值变化的PWM 信号;方案三是用有限状态机产生有用信号,首先定义两个状态,再通过计数器值与输入占空比值比较控制状态的切换,产生PWM信号。

本文详细介绍方案二和方案三两种方法。

通过使用QuartusII9.0软件采用VHDL语言编程并用功能仿真证实了上文提到的三种PWM信号产生方案都是可行的,都能产生切实可用的PWM信号,三种方案中均可以通过修改输入端口占空比来控制产生信号的脉宽,且可以通过在程序中修改计数器的计数上限和分频模块的分频比改变信号的周期及频率,实现了多参数可调,使整体设计具有灵活的现场可更改性和较好的可移植性。

且实现功能的程序简单易懂,设计过程中思路阐述清晰,流程介绍明了,且程序易于修改,可读性好。

第一章设计要求1.1 研究课题PWM信号发生器的研制1.2设计要求用CPLD可编程模块产生下列信号(特殊芯片:EPM570T100C5)(1)采用VHDL编写相关程序,PWM信号的工作频率为500Hz(1000Hz);(2)时钟信号通过分频器后,由输入开关量控制占空比可调。

第二章系统组成及工作原理本次设计采用的是Altera公司开发的QuartusII设计平台,设计采用特殊芯片EPM570T100C5进行仿真,在原理设计方面,本设计采用自顶向下、层次化、模块化的基本程序设计思想,这种设计思想的优点符合人们先抽象后具体,先整体后局部的思维习惯,其设计出的模块修改方便,不影响其他模块,且可重复使用,利用率高。

2.1 系统组成为了使本次设计产生的PWM信号能用于频率稳定度高的晶振,故在系统设计中添加了一个分频模块,因此PWM信号发生器由分频器和信号发生器两个部分组成。

其组成框图如图2.1所示图2.1 PWM信号产生框图2.2 系统设计流程图PWM信号发生器的总体设计流程图如图2.2所示:图2.2系统设计流程图2.3 系统工作原理如上图的框图所示,输入是纳秒(ns)级的高频时钟信号,经过分频模块后产生毫秒(ms)级的低频时钟,然后由低频时钟控制信号发生器,产生一定周期的矩形波,再经过具体的设计形成占空比可调的PWM信号。

本次设计中,设计要求是产生1KHz的脉冲宽度可调的矩形信号,仿真中输入时钟clk的周期为10ns,经过1000分频器后变成周期为10us(频率为0.1MHz)的时钟,再通过信号发生器模块中的计数上限为100计数器,产生周期为1ms(频率为1KHz)的周期矩形信号,再有输入端口控制占空比,产生宽度可调的PWM信号,实现设计要求的功能。

第三章模块的具体实现3.1 分频模块的设计3.1.1 基本设计思想分频实际就是一个计数的过程,通过计数个数来控制输出高低电平的时间,最重要的是高低电平的维持时间相等,即产生方波信号。

3.1.2 设计流程图使用时钟分频方法产生可用时钟频率的设计流程图如图3.1所示:图3.1设计流程图3.1.3 主要程序代码if clkin='1' and clkin'event then --时钟上升沿触发if count=1000 then count:=0; --计数计到999则清零elsifcount<=500 then clkout<='1'; --计数到500电平翻转elseclkout<='0';end if;count:=count+1; --时钟上升沿计数end if;3.1.4模块工作原理定义实体之后,在由输入时钟(ns)触发的进程中实现分频,首先定义一个中间计数变量,当计算输入时钟上升沿个数从0至500时输出高电平,从500至1000时输出低电平,从而产生周期为输入信号1000倍的方波信号,分频比可由下式得到:A= T o ÷T i(3.1)其中,T o为输出时钟的周期,T i为输入时钟的周期3.2 用锯齿波比较法生成PWM信号3.2.1 基本设计思想锯齿波比较法生成占空比不同且一个波形中周期固定的PWM信号的思想来源于锯齿波自身具有的独特性质:斜率单一、周期固定、用斜率为0的直线与之相切割所得波形周期一定,因此,将希望得到的波形的占空比值作为输入决定与锯齿波相割的直线,可得到周期相等的矩形波,改变输入占空比即改变直线的幅值就可以改变信号的脉冲宽度,其基本原理如图3.2所示:图3.2锯齿波比较法产生脉宽可调波的原理3.2.2 设计流程图(1)锯齿波发生器设计的流程图如图3.3所示:图3.3锯齿波发生器的流程(2)锯齿波比较法产生PWM 信号的流程图如图3.4所示:图3.4 锯齿波比较法产生PWM 信号流程图3.2.3 主要程序代码 ifrst = '0' thensaw_teeth<="0000000"; --异步复位elsifclk'event and clk = '1' thensaw_teeth<=saw_teeth+1; --产生阶梯状的锯齿波ifsaw_teeth>="1100011" thensaw_teeth<="0000000"; --锯齿波的最大幅值为100end if;end if;pwm<='1' when perc>saw_teeth else --锯齿波与常数信号相比较,产生占空比由常--数(perc)决定的pwm信号'0' when perc<= saw_teeth;3.2.4 模块工作原理锯齿波比较法产生PWM信号的程序结构体中含有一个产生锯齿波的进程,该锯齿波的周期为100,对应到占空比的取值范围0-100,且锯齿波的幅值最大为100,因此当输入的占空比值大于等于100时,输出全高电平波形,同理,当输入占空比值小于等于0时,输出全低电平波形,所以,当输入的占空比值处于正常允许的范围时,对应于图3.2所示的占空比直线切割锯齿波,由于产生锯齿波的时钟与系统同步,从而使产生的PWM信号的脉宽严格对应于输入的占空比值,这样就可以使PWM信号的脉冲宽度精确可调,以达到实验目的。

以下两种方法的占空比可用下式求得:V= T1 ÷ T (3.2)其中,T1为PWM信号一个周期中高电平持续的时间,T为PWM信号的周期3.3 用有限状态机生成PWM信号3.3.1 基本设计思想考虑到设计所要的PWM信号一个周期之内只有两个不同的持续状态,故可以使用有限状态机来实现电平的切换,切换条件就是输入的占空比,一个状态就是一个电平,因此通过状态转换就可以实现电平的翻转,产生矩形波,再通过改变输入的占空比就可以改变生成信号的脉冲宽度。

3.3.2 设计流程图用有限状态机设计PWM信号发生器的状态之间的转换及转换条件如图3.5所示:计数器值>占空比值计数器值<占空比值计数器值<=输出为 1<=计数器值<100输出为 0图3.5 有限状态机方法产生PWM 信号状态转换有限状态机的进程分为两个,如图3.6所示即为有限状态机方法产生PWM 信号流程图中的状态译码和输出译码部分流程图:图3.6状态译码和输出译码进程流程图图3.7所示为有限状态机产生PWM 信号的第二个进程—时序逻辑进程的流程图:图3.7时序逻辑进程流程图3.3.3 主要程序代码if reset='0' then count<="0000000";current_state<=st1; --异步复位elsif (clk'event and clk='1') then current_state<=next_state; --状态转换count<=count+1;if count>="1100100" then count<="0000000"; --计数器清零end if;process(current_state,count) --组合逻辑进程(状态译码和输出译码)case current_state is --确定当前状态的状态值when st1=>pwm<='1'; --初始状态译码输出if count<perc then next_state<=st1; --状态译码elsenext_state<=st0;end if;when st0=>pwm<='0';if count>=perc and count<"1100100" then next_state<=st0; --转换到第二个状态elsenext_state<=st1;3.3.4 模块工作原理一般有限状态机的结构体组成有两部分:时序进程和组合进程。

时序进程(也叫状态转换)是指负责状态机运转和在时钟驱动下负责状态转换的进程,上述设计中时序进程负责完成下一状态(next_state)向当前状态(current_state)的转换和计数器加1;组合进程(也叫状态译码和输出译码)的任务是根据外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其他信号),和当前状态的状态值确定下一状态(next_state)的去向,即next_state的取值内容,以及确定对外输出或对内部其他组合或时序进程输出控制信号的内容,上述设计中组合进程完成了一定条件下next_state转向st0或st1状态的功能以及在对应current_state下的相应输出(0或1)。

如图3.7所示,时序进程中在时钟clk的上升沿触发下进行状态转换和计数器加1。

如图3.6所示,组合进程完成状态译码和输出译码。

如果current_stat e是st1,则输出为高电平‘1’,并且当计数器值大于输入占空比值时指定下一状态为st0,否则下一状态为st1;如果current_state是st0,则输出为低电平‘0’,并且当计数器值小于等于输入占空比值时指定下一状态为st1,否则下一状态为st0,这样就可以完成高低电平之间的转换了,从而可以改变输入占空比值来改变输出信号的脉冲宽度。

相关文档
最新文档