51单片机PWM控制LED的亮度仿真程序图谱 (附仿真文件+源代码)
51单片机PWM控制LED的亮度仿真程序图谱
因为项目比较简单,我就没有做实物,只是用了仿真来实现,大家最重要的是要弄懂原理。
原理:单片机输出PWM斩波,控制LED的亮度并在图谱上面显示出来
仿真开启
参考代码:
#include "reg51.h"
unsigned int cd,dd;
unsigned char cc,ee;
sbit LED=P2^0;
void led_int() interrupt 1 using 0
{
TH0=0xf1;
TL0=0xf1;
TR0=1;
dd++;
if(dd==11)
{
if((cc==0x50)&&(ee==0)){cd=0;}
if((cc==0)&&(ee==0x50)){cd=1;}
if(cd){cc++;ee--;}
else {cc--;ee++;}
dd=0;
}
}
void delay(unsigned int i)
{
unsigned int j;
while(i--)
{
for(j=0;j<0x20;j++);
}
}
void main()
{
cc=0;
ee=0x50;
TMOD=0x01;
TH0=0xf0;
TL0=0xf0 ;
EA=1;
ET0=1;
TR0=1;
while(1)
{
LED=0;
delay(ee);
LED=1;
delay(cc);
}
}
最后,如果有什么意见或者建议欢迎您留言给我,让我们共同学习一起进步,
如果需要 程序完整源代码和 设计文件,请在下方留言或者私信我,看到后会第一时间回复。
谢谢!
感谢你的阅读,希望您有所收获,喜欢请点赞评论加关注!
单片机输出PWM脉冲的两种方法
51单片机没有PWM输出功能,可以采用定时器配合软件的方法实现,对精度要求不高的场合是非常实用的。采用高速光隔6N137输出,并将PWM的信号倒相。
本文引用地址:http://www.eepw.com.cn/article/201609/296668.htm
一、 工作原理
二、PWM输出
1. 固定脉宽PWM输出
用T0定时器完成PWM输出,脉宽固定为65536μs。T0定时器设置成16位定时器,PWM波形如图2所示。
程序清单:(12MHz)
PwmData0 ;T0定时t1的初值(字)
PwmData1 ;T0定时t2的初值(字)
PwmF ;PWM输出标志
;***************************
setb tro ;启动T0
……
T0Int:;T0中断服务程序
JB PwmF ,PwmOutH
;PWM输出未完成返回
Mov TH0,High(PwmData0)
Mov TL0,Low(PwmData0)
Setb tr0
Setb PwmF
Clr p1.0 ;PWM输出脚
reti
PwmOutH:Setb p1.0
Clr tr0
Mov TH0,High(PwmData1)
Mov TL0,Low(PwmData1)
Setb tr0
Clr PwmF
reti
说明:在主程序中计算PwmData0、PwmData1的值。
2. 可变脉宽PWM输出
用T0定时器控制PWM的占空比,T1定时器控制脉宽(最大65536μs。)
T0、T1定时器设置成16位定时器。
程序清单:(12MHz)
PwmData0 ;T0定时t1的初值(字)
PwmData1 ;T1定时T的初值(字)
;***************************
setb tro ;启动T0
setb tr1
……
T0Int:Clr tr0 ;T0中断服务程序
setb p1.0 ;PWM输出脚
reti
T1Int:Clr p1.0 ;T1中断服务程序
Clr tr0
Clr tr1
Mov TH0,High(PwmData0)
Mov TL0,Low(PwmData0)
Mov TH1,High(PwmData1)
Mov TL1,Low(PwmData1)
Setb tr1
Setb tr0
reti
说明:在主程序中计算PwmData0、PwmData1的值。
相关问答
51 单片机pwm程序 详解?51单片机的pwm调速频率主要通过一个定时器和一个IO口来实现PWM的输出。在一个周期里面,首先让IO口输出高电平,并定时一定的时间然后再将IO口输出低电平,定时一...
单片机 是怎么通过 pwm 波来 控制 电机运转的,工作原理是什么?PWM的英文全称是PulseWidthModulation的缩写,翻译成中文就是脉冲宽度调制,PWM是一种利用数字输出来对模拟电路进行控制的技术,它的实质就是使用数字信号...
用 单片机 做 PWM控制 电加热器的加热功率请问控制思路是什么?控制思路是,PWM波形,在高电平时候可以给加热器通电,于是加热丝器就开始加热。在底电平的时候就不给加热器通电。不加热。通过控制加热的时间来控制加热的热...
STC 单片机 直流电机中 PWM 具体怎么使用?一般用单片机控制直流电机运转的控制方法有两种,一种为电平控制(可能不准确),另一种为PWM控制。如果你选用第一种,你需要为你的直流电机设计一个驱动控制模...
单片机pwm控制 的基本原理?单片机PWM(脉冲宽度调制)控制的基本原理是通过不断地在一个固定的时间周期内调整脉冲的宽度,来控制输出信号的电平。具体地说,当脉冲的宽度越大,输出信号的...
stc15 单片机pwm 工作原理?STC15W内部集成了一个15位的PWM模块,可以6路独立输出.此外PWM模块每一路都有两个用于控制波形翻转的计数器T1和T2,可以灵活地控制每路PWM的高低电平宽度,...
stc 单片机pwm 输出设置?stc单片机pwm的输出设置方法STC15W408AS单片机,在有PWM功能的端口输出,设置PWM(如电源5V、30%的PWM设置),需要滤波后得到1.5V直流(可以用LC电路)stc单片....
单片机 产生 pwm 信号的方法是什么?_其他问答_系统粉在电机调速等方面,PWM应用是最广泛的,而用标准的51单片机内部没有PMW模块,只得用软件来产生PWM信号,这样就得用51单片机的定时器来完成,而在中档PIC...
单片机PWM程序 是肿么编写的啊,能给一个简单的例子吗?-ZOL问答有PWM功能的单片机入STC12系列单片机,直接给专用寄存器赋值开启相应定时器就可以了。普通单单片机,PWM需要用自己来调配。比如:#include
如果你用的是步进电机驱动器驱动步进电机,每来一个驱动脉冲,步进电机就走一步,所以改变驱动脉冲的频率即方波的频率就可以调速。如果你用的是步进电机驱动器...