PWM控制LED渐亮及渐灭Word文档下载推荐.docx

上传人:b****2 文档编号:1522599 上传时间:2023-04-30 格式:DOCX 页数:13 大小:61.91KB
下载 相关 举报
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第1页
第1页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第2页
第2页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第3页
第3页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第4页
第4页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第5页
第5页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第6页
第6页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第7页
第7页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第8页
第8页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第9页
第9页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第10页
第10页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第11页
第11页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第12页
第12页 / 共13页
PWM控制LED渐亮及渐灭Word文档下载推荐.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

PWM控制LED渐亮及渐灭Word文档下载推荐.docx

《PWM控制LED渐亮及渐灭Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《PWM控制LED渐亮及渐灭Word文档下载推荐.docx(13页珍藏版)》请在冰点文库上搜索。

PWM控制LED渐亮及渐灭Word文档下载推荐.docx

BOVBIT;

母周期显示完毕标志

SSSEQU30H 

 

;

子周期占空宽度调节

T10EQU31H 

子周期宽度

AAAEQU32H 

子周期占空宽度入口

BBBEQU33H 

母周期占空宽度入口

T20EQU34H 

母周期宽度

MMMEQU35H 

母周期占空宽度调节

A10EQU36H 

子周期宽度缓冲

B20EQU37H 

母周期宽度缓冲

KEY2BIT

COM1BIT

COM2BIT

COM3BIT

COM4BIT

NOISE1EQU38H

NOISE2EQU39H

NOISE3EQU3AH

ORG00H

LJMPMAIN

ORG0BH

LJMPPWM

PWM:

MOVTH0,#0FFH

MOVTL0,#90H

PUSHACC

####################################################

JB 

BOV,OUTLOW

*********************************************

SOV,IFSEND

DEC 

T10 

保持计数同步

DJNZSSS,LRET 

占空参数修正

MOV 

SSS,AAA 

复原子周期占空参数

A,T10

CJNEA,#0,SCTN 

对占空比为100%时的修正

AJMPT10END

SCTN:

CLR 

LED

SETBSOV

AJMPLRET

IFSEND:

DJNZT10,LRET

T10END:

T10,A10 

复原子周期宽度参数

SETBLED

SOV 

子周期处理完毕

**********************************************

T20

DJNZMMM,LRET

MMM,BBB

A,T20

CJNEA,#0,MCTN 

AJMPT20END

MCTN:

SETBBOV

OUTLOW:

LED 

母周期低电平部分输出0DJNZT10,LRET

T10,A10

DJNZT20,LRET

T20END:

MOVT20,B20

BOV 

母周期处理完毕

#############################

LRET:

POPACC

RETI

MAIN:

P3,#00001100B

MOVTMOD,#01H

MOVA10,#10 

子周期宽设置

MOVB20,#20 

母周期宽设置

MOVT10,A10

MOVAAA,#6 

子周初始占空宽度设置

MOVBBB,#20 

母周初始占空宽度设置

MOVSSS,AAA

MOVMMM,BBB

SETBET0

SETBTR0

SETBEA

20H,#0;

所有标志位清零

R0,#250

R1,#2;

每隔*250*2ms调节一次亮度

FREE:

KEYBBBBBBBBBBBBBBBBBBBBBBBBBBBB

PCON,#1

CHANGE2:

KEY,CHOU1

KEY2,CHOU1

DJNZNOISE1,FREE

JNBKEY,$

JNBKEY2,$

AJMPFREE3

CHOU1:

MOVNOISE1,#0

DOWN1:

JBKEY,UP1

DJNZNOISE2,FREE

DJNZBBB,NEXT 

减1修正

BBB,#1

NEXT:

KEY,FREE 

操作完成后待松键再退出

JNB 

KEY2,FREE

SJMPNEXT

UP1:

MOVNOISE2,#0

IFUP:

JBKEY2,LCRNOS

DJNZNOISE3,FREE

INC 

BBB 

加1修正

A,BBB

CJNEA,#21,NEXT2

BBB,#20

NEXT2:

KEY2,FREE 

KEY,FREE

SJMPNEXT2

LCRNOS:

MOVNOISE3,#0

AJMPFREE;

KEYB

FREE3:

KEY 

CHANGE1:

KEY,CHOU2

KEY2,CHOU2

DJNZNOISE1,FREE3

AJMPFREE

CHOU2:

DOWN2:

JBKEY,UP2

DJNZNOISE2,FREE3

DJNZAAA,NEXT3 

AAA,#1

NEXT3:

KEY,FREE3 

KEY2,FREE3

SJMPNEXT3

UP2:

IFUP2:

JBKEY2,LCRNOS2

DJNZNOISE3,FREE3

AAA 

A,AAA

CJNEA,#11,NEXT4

AAA,#10

NEXT4:

KEY2,FREE3 

KEY,FREE3

SJMPNEXT4

LCRNOS2:

AJMPFREE3;

END

系统分类:

用户分类:

标签:

来源:

转贴

阅读全文(812)|回复(0)

3

发表于2007/7/3119:

25:

55

一、定时/计数器PWM设计要点

根据PWM的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点:

1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。

如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。

2.然后根据需要PWM的频率范围确定ATmega128定时/计数器的PWM工作方式。

AVR定时/计数器的PWM模式可以分成快速PWM和频率(相位)调整PWM两大类。

3.快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。

此时计数器仅工作在单程正向计数方式,计数器的上限值决定PWM的频率,而比较匹配寄存器的值决定了占空比的大小。

PWM频率的计算公式为:

PWM频率=系统时钟频率/(分频系数*(1+计数器上限值))

4.快速PWM模式适合要求输出PWM频率较高,但频率固定,占空比调节精度要求不高的应用。

5.频率(相位)调整PWM模式的占空比调节精度高,但输出频率比较低,因为此时计数器仅工作在双向计数方式。

同样计数器的上限值决定了PWM的频率,比较匹配寄存器的值决定了占空比的大小。

PWM频率=系统时钟频率/(分频系数*2*计数器上限值))

6.相位调整PWM模式适合要求输出PWM频率较低,但频率固定,占空比调节精度要求高的应用。

当调整占空比时,PWM的相位也相应的跟着变化(PhaseCorrect)。

7.频率和相位调整PWM模式适合要求输出PWM频率较低,输出频率需要变化,占空比调节精度要求高的应用。

此时应注意:

不仅调整占空比时,PWM的相位会相应的跟着变化;

而一但改变计数器上限值,即改变PWM的输出频率时,会使PWM的占空比和相位都相应的跟着变化(PhaseandFrequencyCorrect)。

8.在PWM方式中,计数器的上限值有固定的0xFF(8位T/C);

0xFF、0x1FF、0x3FF(16位T/C)。

或由用户设定的0x0000-0xFFFF,设定值在16位T/C的ICP或OCRA寄存器中。

而比较匹配寄存器的值与计数器上限值之比即为占空比。

二、PWM应用设计参考

  下面给出一个设计示例,在示例中使用PWM方式来产生一个1KHz左右的正弦波,幅度为0-Vcc/2。

  首先按照下面的公式建立一个正弦波样本表,样本表将一个正弦波周期分为128个点,每点按7位量化(127对应最高幅值Vcc/2):

f(x)=64+63*sin(2πx/180)x∈[0…127]

  如果在一个正弦波周期中采用128个样点,那么对应1KHz的正弦波PWM的频率为128KHz。

实际上,按照采样频率至少为信号频率的2倍的取样定理来计算,PWM的频率的理论值为2KHz即可。

考虑尽量提高PWM的输出精度,实际设计使用PWM的频率为16KHz,即一个正弦波周期(1KHz)中输出16个正弦波样本值。

这意味着在128点的正弦波样本表中,每隔8点取出一点作为PWM的输出。

  程序中使用ATmega128的8位T/C0,工作模式为相位调整PWM模式输出,系统时钟为8MHz,分频系数为1,其可以产生最高PWM频率为:

8000000Hz/510=15686Hz。

每16次输出构成一个周期正弦波,正弦波的频率为。

PWM由OC0(PB4)引脚输出。

参考程序如下(ICCAVR)。

2007-3-15果为高,则证明是由一个低电平地和一个高电平组成,即保存一个1.为1则再调一个延时,让它延到低电平。

等待到高电平后重复上述过程解码。

遥控器解码程序介绍:

通过上述的解码原理,利用单片机的中断口来测PWM码的宽度,通过本实验仪配备的遥控,单片机解码在数码管上显示。

实际应用例如:

红外遥控。

DSP2407A开发板硬件PWM电机控制电路讲解

【来源:

】【发布时间:

2007-03-13】【字体:

PWM电机控制实验针对微型直流电机。

两路带死区的PWM信号从DSP引脚上直接产生。

电机驱动采用的是4个NPN的三极管,可控制正反转。

DSP的PWM口在复位和无控制状态时默认为IO口,且为高电平。

这样可能引起4个NPN管同时导通。

为防止这种情况发生,对DSP出来的PWM信号进行了反相,即复位时给NPN基极的是低电平。

以下是一段产生占空比为20%的脉冲信号的c51程序,我想电机转速对应于一定的占空比,如果你要改变占空比,可能需要建立一个对应于不同转速的参数表(如定时器初值等),查表 

 

得到不同参数,以改变占空比和转速。

你用什么驱动电路?

/*采用6MHz晶振,在脚上输出周期为,占空比为20%的脉冲信号*/ 

/*定时100ms,周期需25次中断,高电平需5次中断*/ 

#include 

<

>

typedef 

unsigned 

char 

uchar;

sbit 

P1_0=P1^0;

uchar 

time=0;

period=25;

high=5;

void 

timer0() 

interrupt 

using 

TH0=0x3c;

/*定时器初值重装载*/ 

TL0=0xb0;

time++;

if(time==high) 

/*高电平持续时间结束,变低*/ 

P1_0=0;

else 

if(time==period) 

/*周期时间到,变高*/ 

P1_0=1;

main() 

TMOD=0x01;

/*定时器0方式1*/ 

/*定时器装载初值*/ 

EA=1;

/*开CPU中断*/ 

ET0=1;

/*开定时器0中断*/ 

TR0=1;

/*启动定时器0*/ 

while

(1) 

/*等待中断*/ 

{} 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2