《单片机课程设计-pwm波信号发生器的研制》
- 格式:doc
- 大小:320.50 KB
- 文档页数:25
电子技术综合训练设计报告题目: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信号的频率。
单片机驱动CPLD的PWM正弦信号发生器设计
前面几期给读者介绍了单片机+CPLD 系统设计,本篇继续挖掘CPLD 潜力,给出一种单片机驱动CPLD 的PWM 正弦信号发生器设计,充分体现了CPLD 的灵活多变,配合单片机控制,其妙无穷,以下方案均在Mini51 板上实现。
脉宽调制PWM(Pulse Width Modulation)是利用数字输出信号对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通
信到功率控制与变换的许多领域中。
一、PWM 原理
PWM 是一种对模拟信号电平进行数字编码的方法。
通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。
电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。
通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。
只要带宽足够,任何模拟值都可以使用PWM 进行编码。
如图1 所示,用一系列等幅不等宽的脉冲来代替一个正弦半波,正弦半波N 等分,看成N 个相连的脉冲序列,宽度相等,但幅值不等;用矩形脉冲代替,等幅,不等宽,中点重合,面积(冲量)相等,宽度按正弦规律变化。
图1 用PWM 波代替正弦半波
SPWM 波形——脉冲宽度按正弦规律变化而和正弦波等效的PWM 波形。
二、基于CPLD 的PWM 方案。
浅谈利用单片机设计PWM脉冲信号发生器摘要脉冲宽度调制(PWM)在电子技术领域中应用十分广泛,但是利用模拟电路实现脉宽调制功能十分复杂、不经济。
随着微处理器的发展,运用数字输出方式去控制实现PWM的功能就变得简单快捷,本文就如何利用89S52单片机软件编程设计出周期一定而占空比可调的脉冲波,也就是实现PWM功能进行设计,它可以代替模拟电路的PWM脉冲信号发生器。
关键词单片机 PWM 数字控制PWM是脉冲宽度调制(Pulse Width Modulation)的英文缩写,它是开关型稳压电源中按稳压的控制方式分类中的一种,而脉宽宽度调制式(PWM)开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。
简单的说,PWM是一种对模拟信号电平进行数字编码的方法。
理论上讲就是电压或电流源以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的,通的时候就是电源被加到负载上,断的时候就是供电被断开的时候,所以PWM信号仍然是数字的。
要想达到这样一种脉宽调制效果,模拟电压和电流时可以直接控制。
例如音响的音量控制,在简单的模拟电路中,它的控制是由连接了一个可变电阻的旋钮来实现的,其过程是拧动旋钮,电阻值变小或变大,流过该电阻的电流也随之增加来减小,从而改变驱动扬声器的电流值,那么声音也就相应变大或变小。
从这个例子来看,模拟控制是直观而简单的,但是并不是所有的模拟电路都是可行并且经济的,其中很重要的一点就是模拟电路容易随时间漂移,它的调节过程就很困难,为了解决问题就要增加很多的电路,使得电路变得复杂并且昂贵。
除此之外,模拟电路中许多的元器件会发热,也就相对提高了电路的功耗,并且对噪声也敏感,任何干扰或噪声都会改变电流值的大小。
综上所述,通过数字方式来控制模拟电路可以大幅度降低系统的成本和功耗,而单片机I/O口的数字输出可以很简单地发出一个脉冲波,在配以外部元器件就可以调节脉冲波的占空比,完成PWM的功能。
EDA学院:电气学院班级:电科1班学号:***********姓名:***实验三PWM信号发生器的设计1.实验目的(1)进一步熟悉掌握Quartus II。
(2)进一步熟悉和掌握GW48-CK或其他EDA实验开发系统的应用。
(3)学习和掌握VHDL进程语句和元件例化语句的使用。
2.实验内容设计并调试好PWM信号发生器电路PWM.VHD,并用GW48-CK或其他EDA实验开发系统进行硬件验证。
3.实验条件(1)开发软件:Quartus II。
(2)实验设备:GW48-CKEDA实验开发系统。
(3)拟用芯片:EP2C8Q208C8N。
4.实验设计1)系统原理框图为了简化设计并便于显示,本信号发生器电路PWM的设计分为两个层次,其底层电路可,再由包括两个完全相同的加载加法计数器LCNT8而成。
PWM 电路学 !»|\ System (27) Processing (9) fy Extra Info \ Info (9) \ Warnrg \ Critical V /arnng 入 Error 入 Stppresied 入 Flag /C |M essag© 0<rf 16~—土土J[T =2) VHDL 程序PWM 信号发生器的底层和顶层电路均采用VHDL 文本输 入,有关VHDL 程序如下。
加载加法计数器LCNT8的VHDL 源程序:LIBRARY 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; BEGINIF CLKEVENT AND CLK= 1 THEN IF LD=1THEN COUNTED;Cyclon® II EP2C5Q20eC8 •淼 PWfl•说 ITFT8 VI以 LCFT8 U2cbIn:pr:Fil妝ZB OO hHl«o$ <fels-kc QE典K BpLCMT8.U2SPWLCMT8U1CCLRTypeInessageV. w w.wInCo: Coximand: quactus_slu --cead_3ettmgs_£iles=on --wcite_setting3_Ciie3=oC£ pum -c pwu Info: Using vector source rile ”C"Documents and Settirigs/Ovner/jftffi/maa/pwn/pim.vur. Into: Option to pcesecve fewer signal transitions co reduce mexxory requicenents is enabled Into: Simulation partitioned into 1 sub-3imulations Info: Simulation coverage is 77.33 %Info: Munbec of transitions m simulation is 50002Inco: Quactus II Smulacor was successful. 0 errors, 0 uatnmgs5ELSE COUNT<=COUNT+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,LD:IN STD_LOGIC;D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CAO:OUT STD.LOGIC);END COMPONENT LCNT8;SIGNAL CAO 1 ,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(CAO 1,CAO2)ISBEGINIF CAO 1=4'THEN SPWM<=,0,;ELSIF CAO2,EVENTAND CAO2=TTHEN SPWM<=,1,;END IF;END PROCESS;LD1<=NOTSPWM;LD2<=SPWM;PWM<=SPWM;END ARCHITECTURE ART;Type Message3)工程编译后:Info: Cox&xand: quactus^sim --read_secting3_Cile3=on --ucite_settlngs_Clles=oCC pun -c pum Info: Using vector source file M C:/Docu»encs andSetcings/Oroer/iftffi/nlua/pvuQ/pwu.vtrf M Into: Option to preserve Cewer signal transitions to reduce aeaoty tequiceaents is enabled Into: SiwUacion partitioned into 1 sub-simulationsInfo: Sluulacion coverage Is 77.33 kInfo: Munhec of transitions In simulation is 50002Info: Quactus II Sntulatoc va3 successful. 0 errotSy 0 warningso \ System (27)入 Processing (9)人 EWraInf 。
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、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。
基于单片机和FPGA的四通道PWM信号发生器接口设计概述:PWM(Pulse Width Modulation,脉宽调制)是一种常用的电子信号生成技术,广泛应用于数字电路控制、电机驱动等领域。
本文将介绍基于单片机和FPGA的四通道PWM信号发生器接口设计。
1.系统架构:该系统由单片机和FPGA两部分组成,单片机负责控制FPGA的工作模式和参数设置,FPGA负责生成四个PWM信号。
2.单片机模块设计:单片机采用32位ARM Cortex-M系列处理器,具有丰富的接口资源和高性能计算能力。
在单片机上实现以下模块:-用户界面模块:使用LCD显示屏和按键进行参数设置和显示。
-通信模块:通过串口与PC进行通信,可以接收上位机发送的参数设置指令或者发送当前PWM信号的状态信息。
-控制模块:根据用户的操作指令,控制FPGA生成PWM信号的工作模式和参数设置。
3.FPGA模块设计:FPGA是可编程逻辑器件,可以按照需求配置逻辑电路,可以实现复杂的信号处理和控制功能。
在FPGA上实现以下模块:-PWM生成模块:根据单片机发送的参数,生成四个PWM信号。
可以设置频率、占空比等参数。
-PWM输出模块:将生成的PWM信号输出到外部设备,如电机驱动模块、LED灯等。
4.系统通信协议:为了实现单片机与FPGA之间的通信,需要定义一种通信协议。
可以使用UART串口通信,通信协议可以基于Modbus、RS485等标准协议进行设计。
5.系统工作流程:系统的工作流程如下:-单片机上电初始化,进行参数设置和显示;-单片机通过串口发送参数设置指令到FPGA;-FPGA根据设置生成PWM信号;-FPGA将生成的PWM信号输出到外部设备;-单片机可以通过串口接收FPGA发送的PWM信号状态信息。
6.系统性能考虑:为了实现稳定可靠的PWM信号发生,需要考虑以下因素:-单片机的时钟稳定性和计算能力;-FPGA的资源利用率和可靠性;-PWM频率和占空比的设置范围和精度;-输出PWM信号的性能要求。
单片机课程设计报告系部:电子通信工程系专业:电子信息工程课程设计报告前言:本文以8051f410单片机为核心设计了一个低频函数信号发生器。
信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可输出自定义波形,如正弦波、方波、锯齿、三角波、及其他任意波形,波形的频率和幅度在一定范围内可任意改变。
波形和频率的改变通过软件控制,幅度的改变通过硬件实现。
介绍了波形的生成原理、硬件电路和软件部分的设计原理。
本系统可以产生最高频率99999HZ的波形。
该信号发生器具有体积小、价格低、性能稳定、功能齐全的优点。
设计报告:一、工作原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。
8051f410单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将8051f410再配置键盘及、及波形输出、放大电路等部分,即可构成所需的波形发生器。
经过考虑,我们确定方案如下:利用F410单片机采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。
1.1、设计要求1)、利用单片机采用软件设计方法产生四种波形2)、四种波形可通过键盘选择3)、波形频率可调4)、需显示波形的种类及其频率二、主程序思路主程序先是进行一些初始化的工作,然后根据波形标志代码的值,使其形成多个数组,每个数组都是一个波形代码。
这样写的好处是输出的波形频率也可以有定时常数决定,找到定时常数和输出频率的关系。
在按键设置波形转换状态的循环中,波形的转换状态在按键上可以一一看出,把四种波形设置成0、1、2、3、在数码管的最高位设置成循环显示,然后把每个波形的代码值通过单片机自带的AD 转换赋给输出的数据口,确定每个数组然后确定数组的列是否为数组中最后行的一个元素,若是则运行下一行的元素(另一个波形),并通过端口输出P0.0。
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信号发生器的设计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;。
机电高等专科学校电气工程系微控制器技术课程设计报告设计题目:占空比可调的PWM波形发生器微控制器技术课程设计任务书设计题目:占空比可调的PWM波形发生器设计时间: 2013.10.21——2013.10.27设计任务:在Proteus中画出原理图或使用实物,编制程序,实现以下功能:1、理解PWM的工作原理。
2、编制PWM程序,使用八段发光字符管显示占空比。
3、可与电机连接,驱动电机以不同的转速旋转。
背景资料:1、单片机原理与应用2、检测技术3、计算机原理与接口技术进度安排:1、第一天,领取题目,熟悉设计容,分解设计步骤和任务;2、第2天,规划设计软硬件,编制程序流程、绘制硬件电路。
3、第3天,动手制作硬件电路,或编写软件,并调试。
4、第4天,中期检查,书写设计报告。
5、第5天,提交设计报告,整理设计实物,等待答辩。
6、第6天,设计答辩。
题目:占空比可调的PWM波形发生器一、设计目的掌握PWM的工作原理;学会编制PWM程序,使用八段发光字符管显示占空比;并与电机连接,驱动电机以不同的转速旋转。
二、设计思路直流电机PWM控制系统的主要功能包括:实现对直流电机转速的调整,能够很方便的实现电机的智能控制。
主体电路:即直流电机PWM控制模块。
这部分电路主要由AT89C51单片机的I/O端口、定时计数器、外部中断扩展等调整直流电机的转速,能够很方便的实现电机的智能控制。
其间是通过AT89C51单片机产生脉宽可调的脉冲信号并输入到L298驱动芯片来控制直流电机工作的。
该直流电机PWM控制系统由以下电路模块组成:设计输入部分:这一模块主要是利用带中断的独立式键盘来实现对直流电机的加速、减速控制。
设计控制部分:主要由AT89C51单片机的外部中断扩展电路组成。
直流电机PWM控制实现部分主要由一些二极管、电机和L298直流电机驱动模块组成。
设计显示部分: LED数码显示部分,实现对PWM脉宽调制占空比的实时显示。
三、方案设计系统框架设计总体设计方案的硬件部分详细框图如图一所示。
pwm 信号发生器的设计
脉冲宽度调制(Pulse Width ModulaTIon.PWM)控制技术以其控制简
单、灵活和动态响应好的优点而成为电力电子技术和模拟信号数字传输通信领域最广泛应用的控制方式,因此研究基于PWM 技术的脉冲宽度及周期可
调的信号发生器具有十分重要的现实意义。
这篇文章主要就是说明计数器计算时钟脉冲的上升沿个数,再通过输出电平反复翻转得到计数个数(脉冲宽度)可控的PWM 信号。
为了使本次设计产生的PWM 信号能用于频率稳定度高的晶振,故在系统设计中添加了一个分频模块,因此PWM 信号发生器由分频器和信号发
生器两个部分组成。
其组成框图如图2.1 所示
PWM 信号发生器的总体设计流程图如图2.2 所示。
单片机指令的PWM信号生成和控制PWM(Pulse Width Modulation)脉宽调制技术被广泛应用于单片机控制系统中。
PWM信号的生成与控制对于电机驱动、灯光调节、温度控制以及音频处理等应用起到了重要作用。
本文将重点探讨单片机指令的PWM信号生成和控制的原理、实现方法以及常见应用。
一、PWM信号生成原理PWM信号是一种以方波信号为基础的调制信号,信号的占空比(Duty Cycle)决定了信号的高电平和低电平时间比例。
单片机通过改变占空比来实现对设备的控制。
常见的PWM生成方式有两种:软件生成PWM和硬件生成PWM。
软件生成PWM是通过编程计算电平切换的时间来实现,适合频率较低的应用。
硬件生成PWM则是利用单片机内部的定时器/计数器模块来产生PWM信号,适合频率较高的应用。
二、软件生成PWM信号软件生成PWM信号的关键在于精确计算出高电平和低电平的时间,并进行相应的IO电平切换。
以下是软件生成PWM信号的基本步骤:1. 初始化计时器:选择合适的定时器,并设置计时器的计数模式、计数时间、时钟源等参数。
2. 设置占空比:根据实际需求,计算出高电平和低电平的时间比例,即占空比。
3. 确定周期:根据应用需求,确定PWM信号的周期,即一个完整的方波信号的时间长度。
4. 计算高电平和低电平时间:根据占空比和周期计算出高电平和低电平的时间。
5. 控制IO电平:根据计算得到的时间,控制IO引脚的高电平和低电平。
6. 循环生成PWM信号:根据设定的周期,循环生成PWM信号,以实现对设备的控制。
三、硬件生成PWM信号硬件生成PWM信号利用单片机内部的定时器/计数器模块来产生精确的PWM信号。
硬件生成PWM的好处在于能够减轻CPU的负担,提高系统的实时性和稳定性。
以下是硬件生成PWM信号的基本步骤:1. 选择合适的定时器:根据需求选择适合的定时器,通常定时器/计数器模块都支持PWM信号的生成。
2. 初始化定时器:设置定时器的计数模式、计数时间、时钟源等参数。
pwm波发生器课程设计一、教学目标本课程旨在通过PWM波发生器的学习,让学生掌握PWM波的基本概念、产生原理及其应用。
在学习过程中,培养学生动手实验、观察分析、问题解决的能力。
同时,通过对PWM波的学习,使学生认识到其在现代电子技术中的重要性,培养学生的学习兴趣和责任感。
具体的教学目标如下:1.知识目标:(1)了解PWM波的定义、特点及其与模拟信号的关系。
(2)掌握PWM波的产生原理和基本电路。
(3)熟悉PWM波在各种领域的应用。
2.技能目标:(1)能够运用PWM波发生器进行实验,并观察分析实验现象。
(2)具备利用PWM波解决实际问题的能力。
(3)学会查阅相关资料,对PWM波技术进行深入研究。
3.情感态度价值观目标:(1)培养学生对电子技术的兴趣,激发学生探索未知的精神。
(2)培养学生团队合作、积极进取的学习态度。
(3)使学生认识到PWM波技术在现代社会的重要性,增强学生的社会责任感。
二、教学内容本课程的教学内容主要包括PWM波的基本概念、产生原理、应用及其相关实验。
具体安排如下:1.PWM波的基本概念:介绍PWM波的定义、特点及其与模拟信号的区别。
2.PWM波的产生原理:讲解PWM波的产生原理,包括基本电路、调制方式等。
3.PWM波的应用:介绍PWM波在电机控制、信号传输、能量转换等方面的应用。
4.相关实验:安排多个与PWM波相关的实验,让学生动手实践,加深对PWM波的理解。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括讲授法、实验法、讨论法等。
1.讲授法:通过讲解PWM波的基本概念、产生原理和应用,使学生掌握相关知识。
2.实验法:安排多个与PWM波相关的实验,让学生在动手实践中学会观察、分析和解决问题。
3.讨论法:学生进行小组讨论,分享学习心得,提高学生的合作能力和沟通能力。
四、教学资源为了支持教学内容的实施,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料。
前言脉冲宽度调制是现代控制技术常用的一种控制信息输出,可以有效地利用数字技术控制模拟信号的技术。
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信号发生器设计中。
本文将介绍单片机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生成代码。
目录第1章设计内容 (2)1.1设计内容 (2)第2章系统整体方案论证 (3)2.1系统整体方案论证 (3)第3章硬件电路设计 (4)3.1 最小系统设计 (4)3.2 H桥驱动电路 (4)3.3按键部分 (7)第4章系统调试 (9)4.1系统调试 (9)附录一系统硬件原理图 (10)附录二源程序代码 (11)第1章设计内容1.1设计内容设计的转速控制系统完成以下功能:基本功能:○1按键控制电机起停。
○2PWM转速开环环控制。
扩展功能:实现与PC机的通讯:将转速的设定值和实测值发送到PC机显示,PC机可以设定速度,发送到单片机第2章系统整体方案论证2.1系统整体方案论证方案一:采用专用PWM集成芯片、IR2110 功率驱动芯片构成整个系统的核心,现在市场上已经有很多种型号,如Tl公司的TL494芯片,东芝公司的ZSK313I芯片等。
这些芯片除了有PWM信号发生功能外,还有“死区”调节功能、过流过压保护功能等。
这种专用PWM集成芯片可以减轻单片机的负担,工作更可靠,但其价格相对较高,难于控制工业成本不宜采用。
方案二:采用MC51单片机、功率集成电路芯片L298构成直流调速装置。
L298是双H高电压大电流功率集成电路,直接采用TTL逻辑电平控制,可用来驱动继电器、线圈、直流电动机、步进电动机等电感性负载。
其驱动电压为46V,直流电流总和为4A。
该方案总体上是具有可行性,但是L298的驱动电压和电流较小,不利于工业生产应用,无法满足工业生产实践中大电压、大电流的直流电机调速。
方案三:采用MC51单片机、H桥驱动电路构成整个系统的核心实现对直流电机的调速。
MC51具有两个定时器T0和T1。
通过控制定时器初值T0和T1,从而可以实现从任意端口输出不同占空比的脉冲波形。
MC51控制简单,价格廉价,且利用MC51构成单片机最小应用系统,可缩小系统体积,提高系统可靠性,降低系统成本。
综合上述三种方案,本设计采用方案三作为整个系统的设计思路。
目录1.课程设计的基本要求 (1)2.总体设计 (1)2.1基本工作原理 (1)2.2硬件总体设计 (2)2.2.1系统组成方案 (2)2.2.2扩展单元编址 (3)2.2.3键盘、显示功能的定义 (3)2.3软件总体设计 (7)2.3.1存储单元的分配、标志位的定义 (7)2.3.2主程序框图及清单 (11)3.单片机系统综合调试 (13)4.结束语 (13)5.参考文献 (14)1.课程设计的目的和要求1.1课程设计的目的1.了解直流电机PWM调速的原理。
2.学习ADC0809的工作原理,掌握其编程方法。
1.2课程设计的基本要求1.通过ADC0809采样0—5V的电压值(由电位器产生)。
2.根据采样值产生占空比不同的脉冲信号,控制电机转速。
2.总体设计2.1基本工作原理PWM简介及调速原理(1)简介:PWM控制就是对脉冲的宽度进行调制的技术,即通过对一系列脉冲的宽度进行调制,来等待地获得所需要波形。
PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。
让信号保持在数字形式可将噪声影响降到最小。
PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式。
(2)调速原理:占空比表示了在一个周期T里,开关管导通的时间与周期的比值。
其变化范围为0—1。
在电源电压不变的情况下,电枢的端电压的平均值U取决于占空比的大小。
改变其值就可以改变端电压的平均值,从而达到调速的目的。
在PWM调速时,占空比是一个重要的参数。
以下是3种方式都可以改变占空比的值计算公式:占空比=t on/Ta)定宽调频法b)调宽调频法c)定频调宽法目前,在直流伺服电机的控制中,主要使用定频调宽法。
(3)与V-M系统相比,PWM调速系统有下列优点:由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用可能就足以获得脉冲动很小的直流电流,电枢容易连续,系统的低速运行平稳,调速范围较宽,可达1:10000左右。
综合实验二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软件的概率无法估计。
总而言之,在到达这测试的部分时已花去相当一大部分时间,因此,测试数据不够完善,存在一些问题未解决。
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所示为系统的设计结构框图。
此系统由89C51单片机核心控制单元、HD7279控制的显示与键盘扫描单元以及8253计数单元组成,其中还用到了74LS138译码器作为单片机的片选输出来作为8253计数器的口地址控制单元,在完成89C51与8253连接的电路中还用到了74LS373地址锁存器和一些逻辑门电路组成。
图1.1 设计结构框图1.3 工作原理PWM信号发生器是通过89C51单片机对显示器模块和定时/计数器模块的控制,采用软件编程的方法,通过改变给8253计数器的写入值产生一系列幅值相等而宽度不等的脉冲,,再通过一整形电路,产生规则的PWM脉冲波形,而改变8253的计数器初值是通过键盘操作实现的,同时数码管显示相应的占空比。
PWM信号发生器的研制第二章系统硬件设计2.1 方案比较与确定方案一:直接采用51单片机TO/TI定时,通过软件编程产生PWM脉冲。
以89C51单片机为核心控制单元,采用计数法加软件延时法,以及与按键相配合。
当有按键按下后,通过键盘扫描将所按键值作为PWM信号的的占空比输入,经软件程序处理后实现PWM信号的占空比可变,并在数码管上显示相应的占空比。
方案二:选用可编程芯片8253的计数器0作为PWM信号发生器,8253的计数器0工作在可重复触发单稳态方式1下,它的输出口OUT0产生宽度可调的PWM信号脉冲,该输出脉冲宽度为:W=N/f;输出的占空比为:P=W1×(f/N);式中,W为输出脉冲宽度,单位是秒;W1为一个周期内高电平的脉冲宽度,P为占空比;f为计数器时钟信号的频率;N为单片机为其置入的计数值。
PWM的频率由GATE0上所加的信号频率决定;在计数器0的GATE0端输入一定频率的方波,该频率由计数器1的OUT1输出产生,再由89C51的ALE锁存信号给CLK1和CLK0同步的时钟脉冲,最后改变计数器值N产生连续可调的PWM信号。
如图2.1所示。
分析:由于单片机本身内部具有计数及定时功能,方案一与方案二相比方案一直接使用单片机内部芯片功能产生PWM脉宽调制波形算法实现简单,成本低廉。
但是受单片机端口数量及单片机工作频率(主要为晶振频率)的限制,单片机无法实现多路控制;单片机搭建的电路抗干扰性较差,易受感性负载的影响,电路的稳定性较低;单片机利用程序实现PWM脉宽调制波形,程序执行存在相对延迟现象,尽管单次延迟时间很小,但是延迟时间的累积会对较为复杂的控制产生难以估量的影响。
考虑到必须保证系统的稳定性,所以本设计采用方案二实现。
2.2 单元电路设计2.2.1 振荡电路单片机需要不断地提供时钟脉冲,这个时钟脉冲就是由振荡电路提供的,它是由一个石英晶振、两个反馈电容组成,振荡电路是计算机的心脏,它控制着计算机的工作节奏。
晶振频率多在1.2MHz~12MHz 之间选取,工业上常用的是6M和12M,而本次专业课设用的晶振频率是11.0592MHz,反馈电容的取值一般在5PF~30PF 之间选择,这里我们选用是30PF的反馈电容,它的作用有两个:一是驱动振荡器工作,二是对振荡器的频率F 起微调作用,反馈电容值越大,振荡器的频率就越小,二者成反比。
如图3.2所示。
2.2.2 复位电路单片机需要复位以后才能正常工作,复位的目的就是使单片机处于一个基准点,在这个基准点,程序将会从C51的MAIN主行数的第一条语句开始执行。
一般来说复位电路有两种,一种是手动复位,另一种是上电复位,本设计采用的是常用的的上电复位,复位过程很简单,在电源刚刚合上时,电流经过电阻对电解电容充电,这样在电阻上就形成了一个电压,对于单片机来说,这个电压就是复位电压。
经过若干毫秒以后,电解电容器被充满电,这时电阻就没有电流流过,电阻两端也就没有电压,单片机的复位脚RET电压恢复为零,复位工作结束,单片机开始工作。
在本次设计中选用的是10uF的电解电容,10K的电阻以及5V的外接电压。
如图2.2所示。
PWM信号发生器的研制图2.2 单片机振荡电路与复位电路图2.2.3 定时/计数器8253模块电路本模块是此次设计的核心模块,是利用可编程计数器8253与89C51单片机的特殊连接所实现的。
一片8253共有3个独立通道,各通道共有6种工作方式,其中方式1(可编程序单稳)的工作性能是:当控制字装入控制寄存器后,OUT变高,在GATE输入信号的上升沿以后的整个技术过程中,OUT变低,一旦技术结束则OUT变高。
下一次GATE 上升沿触发,OUT再一次变低,输出一定宽度的负脉冲。
若在OUT为低时写入新的计数值,则在下一次触发之前将不影响单稳脉冲宽度。
由8253可编程序单稳工作特性可知,每启动一次,定时时间由计数值而定。
该特性适合本次设计PWM波形的工作要求。
单片机向8253的通道0赋值给方式1的控制字及计数值T0,OUT0输出为高电平,但计数器0未启动不工作,这时通道处于等待状态,等待GATE0的上升沿到来。
单片机向8253的通道1赋值给方式1的控制字及计数值T1,OUT1输出由低变高,因而在GATE0端得到一个上升触发脉冲启动通道0定时,在定时中OUT0变为低电平,这时8253开始进入双定时器互相触发启动的工作状态。
在通道0第一次定时结束,OUT0输出变高,是GATE1端得到一个上升触发脉冲启动通道1定时,而通道0处于等待状态。
当时钟频率为f0,调宽脉冲周期为T(T=t+t’)时,则有:T0=f*t, T1=f*t’(1)当t’用T与t取代时,可得:T1=f*(T-t) (2)由此看来,当需要得到宽度为t的调宽脉冲时,必须给通道0置计数值为T0,通道1置计数值为T1,当需要调整脉宽时,只需按式(1)和式(2)重新计算T0和T1,置入各对应通道,输出波形后自动得到调整,从而实现了占空比可变的脉宽调制的目的在这里单片机除了需要给8253定时/计数器 8位数据以外,还需用到74LS373地址锁存器对单片机的地址进行锁存,由于74LS373内部是由8个D触发器构成的,在这里其中的两个触发器输出Q1和Q2是8253中的A0和A1的输入信号,使得8253得到正确的控制口地址和计数器口地址,这也是8253计数器正常工作所必须的。
其次是单片机的P2.5作为8253的片选信号,以此来进一步确定8253的口地址,8253 的读写信号分别由单片机的读写信号直接给予,然后是ALE地址所存信号给8253的CLK1和CLK0送同步时钟信号,最后通过OUT1的输出脉冲打开GATE0,使得OUT0经过一个反相器后得到我们最终所需的PWM脉冲信号。
如图2.3所示。
图2.3 定时/计数器8253控制电路图PWM信号发生器的研制2.2.4 键盘及显示电路HD7279A 只需要4 根线(CS、CLK、DATA、KEY)与AT89C51 相连,仅仅使用单片机的P1.0—P1.3 口,大大节省了CPU 的端口资源,大大简化系统电路,即可实现键盘接口功能。
由于HD7279A 内部含有去抖动电路,软件编程时不需要键盘的消抖动程序,而且HD7279A 的控制指令也使得软件编程更简单。
选用HD7279A 芯片作为驱动接键盘矩阵。
扫描键盘时,如果有键按下,直接通过读键盘数据指令即可在LCD 上显示键入的键值,而不需要通过AT89C51 口线来控制键盘输入值。
所以选择HD7279 作为驱动芯片的键盘电路。
常用的数码管显示器由八个发光二极管组成,其中七个发光二极管a-g控制七个段的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器控制简单,使用方便,而且字符较亮,价格适宜,所以选择数码管显示.如图2.4所示。
PWM信号发生器的研制第三章系统软件设计3.1 编程语言的选择MCS-51 编程语言常用的有两种,一种是汇编语言,另一种是C 语言。
C 语言是一种结构化语言,在大多数情况下其机器代码生成效率和汇编语言相当。
汇编语言的机器代码生成效率很高,汇编语言的开发效率高,可以充分地利用片内的资源。
具有直接和硬件打道、执行代码的效率高等特点,可以做到C语言所不能做到的一些事情,例如对时钟要求很严格时,使用汇编语言成了唯一的选择。
汇编在延时和中断时有很大的作用,有时C是没有办法做到的。
综合以上汇编语言的优点,本次设计选择汇编语言对51单片机进行软件编程。
3.2 7279键盘功能设计表3-1 7279键盘功能设计3.3 存储单元及关键字介绍3.3.1 存储单元介绍表3-2 存储单元介绍3.3.2 关键字介绍表3-3 关键字介绍PWM信号发生器的研制3.4 软件设计系统总框图程序开始运行时对存储区及7279初始化,判断是否有按键按下,无键按下,重新进行键盘扫描;有键按下,判断是哪个键按下,并进行相应的操作,整个程序是以AT89C51单片机为核心控制单元,通过ALE不断给8253计数器时钟信号,以及与按键相配合,通过对数码管显示占空比的改变,给计数器0口不同的输出,从而实现设计要求。