直流电机c语言驱动程序,C语言直流电机控制主程序.docx

main.c

#include

#include

#include

bit Moto_Dir=0;

uchar irq_count;

uchar irq_count_t;

uchar PWM_TIME_H,PWM_TIME_L;

短延时***************************bit i=0;

短延时

***************************

/*********************** void ShortDelay(void) { uchar x,y;

for(x=0;x<5;x++) for(y=0;y<125;y++) _Nop();

return;

}

***************************************************

************************

***************************

void main(void)

{

PWM1=0; PWM2=0; PWM3=1; PWM4=1;

irq_count=0;

i=0;

PWM_TIME_H=80;

PWM_TIME_L=20;

while(1){ //**************if(LEFT_KEY){

while(1)

{ //**************

if(LEFT_KEY)

{ ShortDelay();

if(LEFT_KEY) //

按键处理

**************************

延时去抖

ET1=1;

// T1

使能

TMOD=0x11;

// T1

都为方式 1计时 */

TH1=0xFC; TL1=0x18; // T1

初值

TR1=1;

//

定时器启动

EA=1;

//

开全局中断

Moto_Dir=1;

PWM3HPPWM4H1- } end if(LEFTIKEY) wh=e(LEFTIKEYX end if(LEFTIKEY) if(RQHTIKEY) 宀 shortDe-ay()八 if(RQHTIKEY)二 宀

MofolDig 八

PWM3H1- PWM4HP

)lend if(RQHTIKEY) wh=e(R_GHTIKEY)八 end if(RQHTIKEY) if(UPIKEY) 宀 shortDe-ay()八 if(UPIKEY) =

宀 if(PWMIT_MEIH V 70) 宀

PWMIT 一 MEIH—J.

PWMIT_MEIL H 100—PWMIT_MEIH- } end if(UPIKEY) wh=e(UPIKEYX end if(UPIKEY) if(DOWNIKEY) 宀 shortDe-ay()八 if(DOWNIKEY) =Mt卑卅草

if(PWMIT_MEIH A 96)

PWMIT_MEIH++

PWMIT_MEIL H 100—PWMIT_MEIH- } end if(DlNIKEY) wh=e(DOWNIKEY)八 end if(DOWNIKEY) // end wh=e(_k)

}

}

// T1定时器中断发PW脉冲

void timer1(void) interrupt 3 using 1

{

TH1=0xFC;

TL1=0x18;

irq_count++;

if (irq_count>=irq_count_t)

{ irq_count=0; i=~i;

if(i==1)

irq_count_t = PWM_TIME_H; else

irq_count_t = PWM_TIME_L; if(Moto_Dir==1)

{ PWM2=~PWM2; PWM1=1; } else

{ PWM2=1; PWM1=~PWM1; }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值