实验三:PWM信号发生器
- 格式:doc
- 大小:79.50 KB
- 文档页数:4
1.PWM信号概述脉冲宽度调制(PWM)信号广泛使用在电力变流技术中,以其作为控制信号可完成DC-DC变换(开关电源)、DC-AC变换(逆变电源)、AC-AC变换(斩控调压)与AC-DC变换(功率因数校正)。
产生PWM信号的方法有多种,现分别论述如下:1)普通电子元件构成PWM发生器电路基本原理就是由三角波或锯齿波发生器产生高频调制波,经比较器产生PWM信号。
三角波或锯齿波与可调直流电压比较,产生可调占空比PWM信号;与正弦基波比较,产生占空比按正弦规律变化的SPWM信号。
此方法优点就是成本低、各环节波形与电压值可观测、易于扩展应用电路等。
缺点就是电路集成度低,不利于产品化。
2)单片机自动生成PWM信号基本原理就是由单片机内部集成PWM发生器模块在程序控制下产生PWM 信号。
优点就是电路简单、便于程序控制。
缺点就是不利于学生观测PWM产生过程,闭环控制复杂与使用时受单片机性能制约。
3)可编程逻辑器件编程产生PWM信号基本原理就是以复杂可编程逻辑器件(CPLD)或现场可编程门阵列器件(FPGA)为硬件基础,设计专用程序产生PWM信号。
优点就是电路简单、PWM频率与占空比定量准确。
缺点就是闭环控制复杂,产生SPWM信号难度大。
4)专用芯片产生PWM信号就是生产厂家设计、生产的特定功能芯片。
优点就是使用方便、安全,便于应用到产品设计中。
缺点就是不利于学生观测PWM产生过程与灵活调节各项参数。
2.电子元件构成PWM发生器电路图1电子元件构成PWM发生器电路3.集成芯片SG3525构成PWM发生器电路一、PWM信号发生电路说明实验电路中,驱动开关管的PWM信号由专用PWM控制集成芯片SG3525产生(美国Silicon General公司生产),PWM信号发生器电路如图2所示。
图2 PWM信号发生器电路图SG3525采用恒频脉宽调制控制方案,内部包含有精密基准源、锯齿波振荡器、误差放大器、比较器、分频器与保护电路等。
PWM 产生实验1.实验目的(1)掌握LM3S8962中的PWM 的基本原理和使用方法(2)掌握CCS 开发环境平台2.实验内容(1)ARM 的初始化配置(2)PWM 时钟的设置(3)PWM 的发生器配置与使用(4)利用输出的PWM 波驱动LED 灯1和蜂鸣器的实验3.PWM 的产生原理LM3S8962的 PWM 模块由 3个 PWM 发生器模块和1个控制模块组成。
每个PWM 发生器模块包含1个计数器、2个PWM 比较器、1个PWM 信号发生器、1个死区发生器和中断/ADC 触发选择器。
每个PWM 发生器的定时器有两种工作模式:递减计数模式和先递增后递减计数模式,因此PWM 的产生也对应的有两种模式,在这里我们以递减计数模式来说明PWM 产生的原理。
图1所示是递减计数模式时PWM 的产生原理。
PWMAPWMBdirzeroloadcmpAcmpBloadzeroABADown BDown 上升沿延迟下降沿延迟输入PWMA PWMB图1 PWM 递减计数模式 图2 PWM 带死区发生器在递减计数模式中,定时器从装载值开始计数,计数到零时又返回到装载值并继续递减计数。
定时器会输出3个信号:方向信号、零脉冲信号、加载脉冲信号,在递减计数中,方向信号始终为零,当计数器计数值为0时,产生一个宽度等于时钟周期的高电平零脉冲信号;当计数器计数值等于装载值时,产生一个宽度等于时钟周期的高电平加载脉冲信号。
当比较器的值和计数器的值相等时,比较器会输出一个宽度为单位时钟周期的高电平脉冲。
PWM 发生器捕获这些脉冲结合方向信号产生2个PWM 信号,此时方向信号始终为低电平,在A 和B 的匹配处将产生的PWM 信号将由高电平跳到低电平。
这样就产生了图1所示的2个PWM 信号。
递减计数模式是用来产生左对齐或是右对齐的PWM 信号的。
PWM发生器产生的2个WM信号会传递到死区发生器,如果死区发生器禁能,则PWM 信号只简单地通过该模块,而不会发生改变。
pwm的工作原理
PWM(脉宽调制)是一种常用的电子控制技术,它通过控制信号的脉冲宽度来变化输出信号的平均功率。
PWM主要适用于需要精确控制电压、电流或者频率的应用。
其工作原理可以简单描述如下:
1. 信号发生器:PWM的工作原理首先需要一个信号发生器来产生一定频率的方波信号。
这个信号发生器可以是一个晶体振荡器或者其他的任意信号源。
2. 采样:信号发生器产生的方波信号需要经过一个采样电路来进行采样。
采样电路可以是一个比较器,它将方波信号与一个可调的参考电压进行比较。
3. 脉宽控制:比较器的输出信号将进一步通过一个脉宽控制电路进行处理。
脉宽控制电路通常是一个可调的计数器或者定时器。
它根据输入信号的脉冲宽度来控制计数器或者定时器的工作时间。
4. 输出:最后,脉宽控制电路的输出信号将被送入一个功率放大器,用来驱动需要控制的载体。
功率放大器的输出信号即为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、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。
D题 PWM信号发生器【本科组】一、任务设计并制作一台PWM信号发生器,电路组成框图如图所示。
波形参数显示PWM信号发生器ABC三路PWM信号输出波形参数设置二、要求1.基本要求(1)制作完成一路PWM信号输出,频率范围20Hz~100kHz。
(2)频率步进10Hz。
(3)占空比调节范围10%~90%,具有占空比设置和占空比步进功能,占空比步进10%。
(4)PWM信号输出幅度2~5V、200mV步进可调(负载等于100欧姆)。
(5) 数字显示PWM信号的频率、幅度、占空比。
2.发挥部分(1)将PWM输出信号扩展到三路独立输出,频率可调范围扩展到1Hz~2MHz,频率步进1Hz;(2)占空比调节范围5%~95%,占空比步进5%;(3)在上述信号频率范围内,任意两路间的相位差在10~180度范围、10度步进内可任意预置;(4)PWM信号输出幅度1~5V、100mV步进可调(负载等于100欧姆)。
(5)设定输出电压为5V,在25欧负载上,输出电压幅度能达到5V。
(6)其它。
三、评分标准设计报告主要内容分数系统方案、理论分析与计算、电路与程序设计、结果分析、设计报告结构及规范性50基本要求完成基本部分(1)项10完成基本部分(2)项10完成基本部分(3)项10完成基本部分(4)项10完成基本部分(5)项10总分50发挥部分完成发挥部分第(1)项5完成发挥部分第(2)项10完成发挥部分第(3)项10完成发挥部分第(4)项10完成发挥部分第(5)项10其他5总分50。
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信号发生器的设计实验/上机报告一、实验目的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信号发生器1.实验目的(1)学习Quartus II 8.0 软件的基本使用方法。
(2)学习GW48-CK EDA实验开发系统的基本使用方法。
(3)学习VHDL程序中数据对象,数据类型,顺序语句和并行语句的综合使用。
2.实验内容设计并调试好一个脉宽数控调制信号发生器,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的信号的高低电平脉宽可分别由两组8位预置数进行控制。
3.实验条件(1)开发软件:Quartus II 8.0。
(2)实验设备:GW48-CK EDA实验开发系统。
(3)拟用芯片:EPM7128S-PL84。
4.实验要求(1)画出系统原理框图,说明系统中各主要组成部分的功能。
(2)编写各个VHDL源程序。
(3)根据系统功能,选好测试用例,画出测试输入信号波形或编好测试文件。
(4)根据选用的EDA实验开发装置编好用于硬件验证的管脚锁定表格或文件。
(5)记录系统仿真、逻辑综合及硬件验证结果。
(6)记录实验过程中出现的问题及解决办法。
5.实验过程(1)PWM即脉冲宽度调制,就是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。
PWM从处理器到被控制系统信号都是数字式的,无需进行数/模转换。
让信号保持为数字形式可将噪声影响降到最小,因此广泛应用在测量、通信和功率控制与变换的许多领域中。
下图是一种PWM信号发生器的逻辑图,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的输出信号的高、低电平脉宽可分别由两组8位预置数进行控制。
如果将初始值可预置的加法计数器的溢出信号作为本计数器的初始预置值加载信号LD,则可构成计数器初始值自加载方式的加法计数器,从而构成数控分频器。
图中D 触发器的一个重要功能就是均匀输出信号的占空比,提高驱动能力,这对驱动,诸如扬声器或电动机十分重要。
(2)VHDL源程序①8位可自加载加法计数器的源程序LCNT8.VHD--LCNT8.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LCNT8 ISPORT(CLK,LD: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;BEGINPROCESS(CLK)ISBEGINIF CLK'EVENT AND CLK='1'THENIF LD='1'THEN COUNT<=D;ELSE COUNT<=COUNT+1;END IF;END IF;END PROCESS;PROCESS(COUNT)ISBEGINIF COUNT=255 THEN CAO<='1';ELSE CAO<='0';END IF;END PROCESS;END ARCHITECTURE ART;②PWM信号发生器的源程序PWM.VHD--PWM.VHDLIBRARY 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,LD: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)仿真结果验证PWM.VHD的时序仿真结果(4)逻辑综合结果6.实验总结经过本次实验,我学会了Quartus II 8.0 开发系统的基本操作,并对它有了一定的了解和认识。
实验三:PWM信号发生器
1.实验目的
(1)学习Quartus II 8.0 软件的基本使用方法。
(2)学习GW48-CK EDA实验开发系统的基本使用方法。
(3)学习VHDL程序中数据对象,数据类型,顺序语句和并行语句的综合使用。
2.实验内容
设计并调试好一个脉宽数控调制信号发生器,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的信号的高低电平脉宽可分别由两组8位预置数进行控制。
3.实验条件
(1)开发软件:Quartus II 8.0。
(2)实验设备:GW48-CK EDA实验开发系统。
(3)拟用芯片:EPM7128S-PL84。
4.实验要求
(1)画出系统原理框图,说明系统中各主要组成部分的功能。
(2)编写各个VHDL源程序。
(3)根据系统功能,选好测试用例,画出测试输入信号波形或编好测试文件。
(4)根据选用的EDA实验开发装置编好用于硬件验证的管脚锁定表格或文件。
(5)记录系统仿真、逻辑综合及硬件验证结果。
(6)记录实验过程中出现的问题及解决办法。
5.实验过程
(1)PWM即脉冲宽度调制,就是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。
PWM从处理器到被控制系统信号都是数字式的,无需进行数/模转换。
让信号保持为数字形式可将噪声影响降到最小,因此广泛应用在测量、通信和功率控制与变换的许多领域中。
下图是一种PWM信号发生器的逻辑图,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的输出信号的高、低电平脉宽可分别由两组8位预置数进行控制。
如果将初始值可预置的加法计数器的溢出信号作为本计数器的初始预置值加载信号LD,则可构成计数器初始值自加载方式的加法计数器,从而构成数控分频器。
图中D 触发器的一个重要功能就是均匀输出信号的占空比,提高驱动能力,这对驱动,诸如扬声器或电动机十分重要。
(2)VHDL源程序
①8位可自加载加法计数器的源程序LCNT8.VHD
--LCNT8.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY LCNT8 IS
PORT(CLK,LD:IN STD_LOGIC;
D:IN INTEGER RANGE 0 TO 255;
CAO:OUT STD_LOGIC);
END ENTITY LCNT8;
ARCHITECTURE ART OF LCNT8 IS
SIGNAL COUNT:INTEGER RANGE 0 TO 255;
BEGIN
PROCESS(CLK)IS
BEGIN
IF CLK'EVENT AND CLK='1'THEN
IF LD='1'THEN COUNT<=D;
ELSE COUNT<=COUNT+1;
END IF;
END IF;
END PROCESS;
PROCESS(COUNT)IS
BEGIN
IF COUNT=255 THEN CAO<='1';
ELSE CAO<='0';
END IF;
END PROCESS;
END ARCHITECTURE ART;
②PWM信号发生器的源程序PWM.VHD
--PWM.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY PWM IS
PORT(CLK:IN STD_LOGIC;
A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
PWM:OUT STD_LOGIC);
END ENTITY PWM;
ARCHITECTURE ART OF PWM IS
COMPONENT LCNT8 IS
PORT(CLK,LD: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;
BEGIN
U1: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)IS
BEGIN
IF 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)仿真结果验证
PWM.VHD的时序仿真结果
(4)逻辑综合结果
6.实验总结
经过本次实验,我学会了Quartus II 8.0 开发系统的基本操作,并对它有了一定的了解和认识。
信号的连接如果错误,将得不到想要的实验结果。
电科1101 杨杰。