PWM调整LED亮度设计报告.doc

PWM调整LED亮度设计报告.doc

ID:59121051

大小:108.00 KB

页数:8页

时间:2020-09-15

PWM调整LED亮度设计报告.doc_第1页
PWM调整LED亮度设计报告.doc_第2页
PWM调整LED亮度设计报告.doc_第3页
PWM调整LED亮度设计报告.doc_第4页
PWM调整LED亮度设计报告.doc_第5页
资源描述:

《PWM调整LED亮度设计报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、EDA技术基础PWM调整LED亮度选做试验电子信息科学与技术物电学院2011-06-24PWM调整LED亮度设计一.实验任务学习PWM原理,用Verilog硬件描述语言设计PWM逻辑电路,实现PWM信号占空比可调,通过按键调整PWM信号的占空比,将此PWM信号输出驱动发光二极管,观察不同占空比时发光二极管的亮度如何变化。在实验箱上实现按键调整发光二极管亮度,数码管显示PWM信号的占空比。具体要求:将输入数字信号转化为输出模拟信号,利用脉宽调制来实现二极管的亮度调节。按下s1(不松手),二极管逐渐变暗,暗到一定程度,突然变亮,再循环,按下s2(不松手

2、),二极管逐渐变亮,亮到一定程度,突然变暗,再循环。二.方案论证实验原理图为三、实验思路调节时钟脉冲的占空比,输出脉冲频率一定,输出脉冲的占空比越大相当于输出的有效电平越大,可将数字量转化为模拟量。基于这种思路可先将输入的一定计数周期T(相当于一个常量)的标准时钟脉冲变为一个高低电平占空比不一致的非标准脉冲(包含一个高电平、一个低电平),可用另外一个计数器Q来控制高低电平的占空比,随着Q的增大高电平的占空比随时间逐渐增大(或减小),而低电平随时间逐渐减小(或增大)。但这个脉冲周期T是一定的。随着T个数的增加便能得到一个高电平的占空比随时间逐渐增大(

3、或减小),而低电平随时间逐渐减小(或增大)的非标准的时钟脉冲。由于时钟脉冲的高低电平的占空比随时间有规律、有方向的变化,这样可实现二极管的亮度缓慢变化。四、实验步骤及代码99计数器的计数模块代码为modulecounter(clk,clr,Q);inputclk,clr;output[7:0]Q;reg[7:0]Q;always@(posedgeclkornegedgeclr)beginif(!clr)beginQ=0;endelsebeginif(Q[3:0]==9)beginif(Q[7:4]<9)beginQ[7:4]=Q[7:4]+1;Q[

4、3:0]=0;endelsebeginQ[7:0]=0;endendelsebeginQ[3:0]=Q[3:0]+1;endendendendmodule而通过按键可调的计数器模块的代码为:modulec9(clk,clr,kup,kdw,Q,clk);inputclr,clk;inputkup,kdw;output[7:0]Q;reg[7:0]Q;wireclka,clkb,clkc,clkd,newclk;assignclka=clk;LCELLAA(clka,clkb);LCELLBB(clkb,clkc);LCELLCC(clkc,clkd

5、);LCELLDD(clkd,newclk);always@(posedgenewclkornegedgeclr)beginif(!clr)beginQ[3:0]=4'H0;Q[7:4]=4'H5;endelsebeginif(kup)beginif(Q[3:0]==4'H9)if(Q[7:4]==9)beginQ[7:4]=4'H0;Q[3:0]=4'H0;endelsebeginQ[7:4]=Q[7:4]+4'H1;Q[3:0]=4'H0;endelseQ[3:0]=Q[3:0]+4'H1;endelsebeginQ[3:0]=Q[3:0];Q

6、[7:4]=Q[7:4];endif(kdw)beginif(Q[3:0]==4'H0)if(Q[7:4]==4'H0)beginQ[7:4]=4'H9;Q[3:0]=4'H9;endelsebeginQ[7:4]=Q[7:4]-1;Q[3:0]=4'H9;endelseQ[3:0]=Q[3:0]-4'H1;endelsebeginQ[3:0]=Q[3:0];Q[7:4]=Q[7:4];endendendendmodule同时要用实验箱上的50MHZ晶体震荡器作为计数器1的输入时钟代码为modulefenpin2(clk,clr,clko);inp

7、utclk,clr;outputclko;reg[25:0]c;regclko;always@(posedgeclkornegedgeclr)beginif(!clr)beginc=26'H0;clko=1'H0;endelseif(c==26'D50_000_000)beginc=26'H0;clko=1'H1;endelsebeginc=c+26'D100;clko=1'H0;endendendmodule由于数码关于二极管的频率不一样,因此对他们时钟信号的分频的大小也应不同,因此对二极管的输入时钟也应进行分频,其代码为:modulediv_c

8、lk(clk,clr,ck0);inputclk,clr;outputck0;reg[19:0]c;always@(pos

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。