找回密码
 注册
关于网站域名变更的通知
查看: 428|回复: 2
打印 上一主题 下一主题

这是PWM电机调速程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-14 13:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
这是PWM电机调速程序

! ^5 l2 e: r$ \; M; y$ R
/**************************************************/
#include<reg51.h>
#defineuInt unsigned int
: t' Y' t+ C- Q0 v#define uchar unsigned char
ucharPWM_T = 0;   //占空比控制变量
//////////////////主程序入口//////////////////////7 p, h, L) W6 J$ l4 Z
void main(void)       , T1 [/ ?# d+ x" L
{
8 z  b8 W1 w" {/ T0 F0 [( |$ lbit flag = 1; //控制灯渐亮渐熄方式% y3 ^. `' c3 Q3 y
uInt n;
TMOD=0x02;  //定时器0,工作模式2,8位定时模式 ; z! y  A: r% U/ i
TH0=210;     //写入预置初值(取值1-255,数越大PWM频率越高)4 s6 e3 z: b9 g0 T! N; c
TL0=210;     //写入预置值 (取值1-255,数越大PWM频率越高)
, G- W! g6 [" {9 |TR0=1;       //启动定时器
2 i1 T' ]5 r$ h# N7 yET0=1;       //允许定时器0中断$ i/ \3 G2 `* V
  
( }$ c5 t$ t% _, F0 x$ k. N! S, uEA=1;        //允许总中断
P1=0xff; //初始化P1
while(1)     
. C! u& Y$ x% p, S1 e{    ; F: N' I$ z& C( @, k& |8 d
  for(n=0;n<600;n++);  //延时,将响应定时器中断,灯会自动加/减一个档次的亮度
6 b, W7 f, @" Z8 t4 N                            //取值0-65535,数字越大变化越慢
  if(flag==1)  //灯渐亮1 F: N- R- U2 t% I. N5 l
   PWM_T++;
% a, G$ M' H8 d0 p5 e& c  else    //灯渐熄3 h. K2 H# X+ |) I. L( }  A5 k
   PWM_T--;
# X7 m- y2 }3 t. C8 m4 ?1 j   
, o, v& d; K  W4 V8 G4 Y) o  if(PWM_T>=100) //设置灯亮度级别为10' p- ?6 f. T* Q# O$ a
   flag=0;
  if(PWM_T==0)  //限定最低亮度级别为0
7 s+ k2 P6 N& R4 a; _   flag = 1;' {" ^5 R" ]: y  @
}      
}
///////////////////定时器0中断模拟PWM////////////////////
2 W1 g. Q! ?. r: u6 i8 |& ^/ htimer0() interrupt 1 using 2   4 z* @6 g6 \5 _1 B1 o2 n! w0 x/ l( k
{
+ p" Q9 H3 d- f- A* D% nstatic  uchar   t ;   //PWM计数
t++;   //每次定时器溢出加1
& d0 c$ n" Y% E! H9 @% j  
) v" i6 t' K9 t2 @8 wif(t==100)   //PWM周期
{ / S9 G6 @8 ^. D2 q" U; m
  t=0;  //使t=0,开始新的PWM周期   \' o! G9 U2 f% w: g4 v* U( B
  P1=0x00;  //使LED灯亮   
% k$ Q9 E6 B- b% z$ ^5 E7 m}
- h, P3 d7 p7 b& \1 N. N  
$ K+ X9 M; a7 Bif(PWM_T==t)  //按照当前占空比切换输出为高电平
& z, j. Q& K; a) q8 S; j  P1=0xff;        //使LED灯灭  # u8 q& Q! ~0 N; t2 h
}
- O. M( k) W0 |! F% }: B( D

7 g2 A! e& [! z6 V1 D, x$ D

该用户从未签到

2#
发表于 2019-1-14 15:32 | 只看该作者
不错的代码

该用户从未签到

3#
发表于 2019-3-6 11:33 | 只看该作者
看看楼主的代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-10 10:49 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表