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

这是PWM电机调速程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这是PWM电机调速程序

9 h/ @1 d9 w8 f+ i
/**************************************************/
#include<reg51.h>
#defineuInt unsigned int4 a! j2 g. f0 q+ K/ h
#define uchar unsigned char
ucharPWM_T = 0;   //占空比控制变量
//////////////////主程序入口//////////////////////
5 v- Y9 b2 o, @) |& `void main(void)      
. I$ c6 N" p" P7 j/ W% x{
3 z3 N# X0 t& T7 y4 |' w* bbit flag = 1; //控制灯渐亮渐熄方式
) f; h9 C, x% Q; S) Q1 u! UuInt n;
TMOD=0x02;  //定时器0,工作模式2,8位定时模式
; D* [# T, G0 a( STH0=210;     //写入预置初值(取值1-255,数越大PWM频率越高)
8 A" l3 o& T: b) G. U9 RTL0=210;     //写入预置值 (取值1-255,数越大PWM频率越高)0 n: e# q  R0 C  q! S8 x3 Q
TR0=1;       //启动定时器 ; h/ l  N0 Z8 [2 c
ET0=1;       //允许定时器0中断' a2 x: _8 S: s
  7 u( [, T( \, @/ b8 p
EA=1;        //允许总中断
P1=0xff; //初始化P1
while(1)     
. ^) T' @+ x% v( r- U8 i1 |{   
+ v8 r1 r, J# {9 o! ~  for(n=0;n<600;n++);  //延时,将响应定时器中断,灯会自动加/减一个档次的亮度! b4 p( O9 A% d6 \+ I5 D
                            //取值0-65535,数字越大变化越慢
  if(flag==1)  //灯渐亮
  a' o2 `6 ~' @0 Z   PWM_T++;- K' f4 |# [7 D/ b. O, |. U6 h
  else    //灯渐熄
( `4 q; ?0 u/ R# F- x/ F" d* J   PWM_T--;
1 b' e+ I" n4 u$ s2 U0 x2 \  w    # P2 G! |! I* I3 o$ Q+ Y5 H# z
  if(PWM_T>=100) //设置灯亮度级别为10
% S: p  v( U7 T   flag=0;
  if(PWM_T==0)  //限定最低亮度级别为02 l/ v( ]8 w! ~& Z* j+ h* {
   flag = 1;
# G- R* S! h) n2 W4 A# w}      
}
///////////////////定时器0中断模拟PWM////////////////////  K' R+ X. k" s* g
timer0() interrupt 1 using 2   7 O0 }4 G0 s/ h! {( K! z
{
% O8 D% i0 l. ^/ mstatic  uchar   t ;   //PWM计数
t++;   //每次定时器溢出加1
5 b# U* ^1 `! B" F2 v  
# H1 K3 I' V- w. D/ V1 zif(t==100)   //PWM周期
{
% U1 ]8 ?" I" ^1 J0 I& i  t=0;  //使t=0,开始新的PWM周期 8 z" L9 J, ]% p* L" P& D8 H, e
  P1=0x00;  //使LED灯亮   4 s: N# e! ~) u) L( O8 O5 f: v
}; y: V% Y) Z+ c" T/ c
  , `  H, h. z9 H6 e" r, f% h( G
if(PWM_T==t)  //按照当前占空比切换输出为高电平 ! f- v! g& ]" A# ?; C
  P1=0xff;        //使LED灯灭  " J, k! J1 ]1 R6 ?/ Y2 F" Q
}
0 j9 U8 k/ v. b/ b7 ?( u7 G4 T0 |

2 {! w* p% C, [

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-21 14:11 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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