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

这是PWM电机调速程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这是PWM电机调速程序

6 L8 y! R( Y* Y' z1 ^: Y% c  a" f
/**************************************************/
#include<reg51.h>
#defineuInt unsigned int
% a  U. M/ j3 I8 q3 F/ U+ x#define uchar unsigned char
ucharPWM_T = 0;   //占空比控制变量
//////////////////主程序入口//////////////////////, Y/ [8 D! u1 Z1 T0 Q  ]
void main(void)      
7 _9 Z- T" B9 g8 E! p+ ^{
4 ~% d+ |4 g* |! Dbit flag = 1; //控制灯渐亮渐熄方式
# d' K) Y$ Q7 q3 ?1 c- @4 {uInt n;
TMOD=0x02;  //定时器0,工作模式2,8位定时模式
. ^, P% e* V( F  v$ ]% n4 E5 PTH0=210;     //写入预置初值(取值1-255,数越大PWM频率越高)
! R8 {2 D8 c( C9 a1 }TL0=210;     //写入预置值 (取值1-255,数越大PWM频率越高)
- M- [7 D6 h2 s8 j7 g; L$ p& rTR0=1;       //启动定时器 ( t0 K& j& D/ W6 J8 x. Z& z. I; @' B
ET0=1;       //允许定时器0中断
; ~8 [6 P8 O4 |1 W" \& J  & p' Y$ m" s9 m+ T0 @# }
EA=1;        //允许总中断
P1=0xff; //初始化P1
while(1)     
6 H$ [5 z, j& t6 P  _{    " t! ~# q9 k) Q+ ~: v
  for(n=0;n<600;n++);  //延时,将响应定时器中断,灯会自动加/减一个档次的亮度$ u( b1 E% L) ~" v" m
                            //取值0-65535,数字越大变化越慢
  if(flag==1)  //灯渐亮7 y4 b4 O2 F2 C/ V; _$ r* e
   PWM_T++;
% w, o, c9 ^, l+ |) j4 X7 a  else    //灯渐熄" p/ |5 }: |7 e+ ^1 [
   PWM_T--;/ r1 ~. k; z* L
   
; t* {; b4 G  B9 K! K& k; @7 \  if(PWM_T>=100) //设置灯亮度级别为107 E2 m2 R) ]* l$ y" Q1 b0 U. {
   flag=0;
  if(PWM_T==0)  //限定最低亮度级别为0
& l5 R5 b. b2 d) Z# ?! W! }   flag = 1;$ V+ t& }. ~8 A9 t
}      
}
///////////////////定时器0中断模拟PWM////////////////////( I4 g8 c' y% F- @) l% t( p7 b& s
timer0() interrupt 1 using 2   $ `$ F: p2 e7 |  L8 n* L
{ 5 J$ P9 }% t; K! f
static  uchar   t ;   //PWM计数
t++;   //每次定时器溢出加1
/ Z- _4 g* h% Z* I' c' T+ q, o. _  
( y5 d: e/ ~3 |0 b$ G6 U3 Rif(t==100)   //PWM周期
{
0 g: I8 _" X- D0 |: M  t=0;  //使t=0,开始新的PWM周期 + p. z) }  t$ s7 g9 X3 T7 R' ?
  P1=0x00;  //使LED灯亮   
& o5 C3 {8 Z& l7 }}" [% f+ \# b: ~5 r& n( A7 _
  , G  l+ G: p3 a/ Y" ]  ?! G: q
if(PWM_T==t)  //按照当前占空比切换输出为高电平 4 A% F+ z* h2 f8 s" S- B5 |& f
  P1=0xff;        //使LED灯灭  6 d: h& Q. h9 l9 \
}
/ I& ?2 ^  `" ?% G2 s; a

5 r' f! y! u' ]6 r2 {( A4 S. q

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-5 01:49 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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