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

这是PWM电机调速程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这是PWM电机调速程序
" l" ]! _4 }+ G# i! p$ @+ h' K/ H
/**************************************************/
#include<reg51.h>
#defineuInt unsigned int7 ]( o9 G" {1 A' l1 O
#define uchar unsigned char
ucharPWM_T = 0;   //占空比控制变量
//////////////////主程序入口//////////////////////
& @* z8 }$ {8 X/ o6 xvoid main(void)      
  u& P4 U7 F: R1 ]$ k{
& i% K+ ~% j( b% ~bit flag = 1; //控制灯渐亮渐熄方式( E# C0 ~( m- Q9 `: \3 F! R. s
uInt n;
TMOD=0x02;  //定时器0,工作模式2,8位定时模式
& Z$ K. K9 `$ l$ f) ZTH0=210;     //写入预置初值(取值1-255,数越大PWM频率越高)! M4 b3 m8 x7 ?
TL0=210;     //写入预置值 (取值1-255,数越大PWM频率越高)
5 S. C6 q8 I9 ETR0=1;       //启动定时器
7 U4 O9 r8 g& y& t$ jET0=1;       //允许定时器0中断
+ R1 f, E1 H, M+ ^' W: a) P  & c- I/ q! l2 X& x3 x
EA=1;        //允许总中断
P1=0xff; //初始化P1
while(1)     
% n3 H) t( N3 O9 |$ s, C{   
/ A; N8 T; \+ z/ X5 z  for(n=0;n<600;n++);  //延时,将响应定时器中断,灯会自动加/减一个档次的亮度
. p) |! [# K$ q* d' v" p                            //取值0-65535,数字越大变化越慢
  if(flag==1)  //灯渐亮
7 i) v) H1 K' J/ Q- O   PWM_T++;
5 m2 i5 B! F  ?' h/ d7 V% u  else    //灯渐熄
4 l2 t  e* V: c' f. q1 p8 d2 U: y   PWM_T--;6 C+ C; L0 v6 A& p) f- `; r2 w
   
" _+ M, d" ~  q  if(PWM_T>=100) //设置灯亮度级别为108 w' o* L* Y9 A- c
   flag=0;
  if(PWM_T==0)  //限定最低亮度级别为0
7 }1 T2 @5 {9 ^: Y9 ^   flag = 1;
& G2 m8 |0 K! J" e& c% J7 v- I}      
}
///////////////////定时器0中断模拟PWM////////////////////
% O: _% ^& ?# k& q) Z/ m6 Y8 ltimer0() interrupt 1 using 2   - v7 Y& K& f; i. Y* m% K' @6 n
{ - f, F+ |3 M# f
static  uchar   t ;   //PWM计数
t++;   //每次定时器溢出加1! F7 \7 w4 R( b
  ) r' Y$ M* k# o# G6 }
if(t==100)   //PWM周期
{ 8 o$ J; O7 X) }) T- }) I
  t=0;  //使t=0,开始新的PWM周期 7 F) i. n1 i- e; [  A: w
  P1=0x00;  //使LED灯亮   8 ~% N  C8 ^* T
}9 f% B9 e$ H* x# u8 ^
  1 ?4 A9 Q0 A! v! C  B- U
if(PWM_T==t)  //按照当前占空比切换输出为高电平 - U/ k: W! p. T* F9 h
  P1=0xff;        //使LED灯灭  
. [. X: P& ~8 [. f; G}

% s8 T9 V; V3 c2 G* M# H8 ^  r

7 D+ ]# {9 V! t

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-1 16:42 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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