24V直流电机H桥驱动电路及51单片机C程序Word文件下载.docx

上传人:b****6 文档编号:21729791 上传时间:2023-02-01 格式:DOCX 页数:8 大小:55.61KB
下载 相关 举报
24V直流电机H桥驱动电路及51单片机C程序Word文件下载.docx_第1页
第1页 / 共8页
24V直流电机H桥驱动电路及51单片机C程序Word文件下载.docx_第2页
第2页 / 共8页
24V直流电机H桥驱动电路及51单片机C程序Word文件下载.docx_第3页
第3页 / 共8页
24V直流电机H桥驱动电路及51单片机C程序Word文件下载.docx_第4页
第4页 / 共8页
24V直流电机H桥驱动电路及51单片机C程序Word文件下载.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

24V直流电机H桥驱动电路及51单片机C程序Word文件下载.docx

《24V直流电机H桥驱动电路及51单片机C程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《24V直流电机H桥驱动电路及51单片机C程序Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。

24V直流电机H桥驱动电路及51单片机C程序Word文件下载.docx

//正反转

sbitkey3=P2^1;

//UP

sbitkey4=P2^0;

//DOWN

ucharrun_flag;

//0停止;

1启动

uchardirection_flag;

//0正转;

1反转

ucharcount;

//加,减计数--key

 

//=======================================

voidstatus_initial(void);

voidPWM_initial(void);

voiddelay_1us(ucharx);

voiddelay_led(ucharx);

voidkey_scan(void);

voidM_run(void);

voidmain()//注:

在程序里面,对两路PWM进行互锁,防止H桥电路共态导通!

{//调试时,也要特别注意!

status_initial();

PWM_initial();

while

(1)

{

key_scan();

M_run();

}

}

voidstatus_initial(void)

{

/*

CCAP0H=0XFF;

CCAP0L=0XFF;

//占空比为0%

CCAP1H=0XFF;

CCAP1L=0XFF;

*/

run_flag=0;

direction_flag=0;

count=0;

//----------------给定一个初始值,设定电机开机的初始转速?

?

或者按下启动,up启动加速

P1=0x00;

//灯灭

voidPWM_initial(void)

CCON=0X00;

CMOD=0X02;

//空闲模式下PCA计数器继续工作,使用系统时钟,禁止CCON的CF位中断

CCAPM0=0X42;

//01000010允许比较器功能,允许CCP0脚用作脉宽调节输出

CCAPM1=0X42;

//同上,8位PWM,无中断

//PCA捕捉/比较寄存器--低八位和高八位------频率f=SYSclk/256

//工作于PWM模式,用于控制输出的占空比

//当寄存器CL的值小于[EPCnL,CCAPnL]时,输出为低;

当寄存器CL的值等于或大于【EPCnL,CCAPnL】时,输出为高;

//当CL的值有FF变为00溢出时,[EPCnH,CCAPnH]的内容装载到[EPCnL,CCAPnL]中

//当EPCnL=0及CCAPnL=00H时,固定输出高

//当EPCnL=1及CCAPnL=FFH时,固定输出低

CL=0;

//PCA的16位计数器--低八位和高八位

CH=0;

CR=1;

//启动PCA定时器

voiddelay_1us(ucharx)

uchari,j;

for(i=0;

i<

x;

i++)

for(j=0;

j<

120;

j++);

voiddelay_led(ucharx)

j=x;

while(j--)

for(i=0;

100;

i++)//时间再调整

{

_nop_();

}

voidkey_scan(void)

uchartemp;

P2=0xff;

temp=P2;

temp=temp|0x0f;

if(temp==0x0f)//检测是否有按键按下

//============================启动停止key1

if(key1==0)

delay_1us(10);

if(key1==0)

if(run_flag==1)

run_flag=0;

//stop

else

run_flag=1;

//start

//============================正转反转key2

if(key2==0)

if(key2==0)

if(direction_flag==1)

direction_flag=0;

//正

direction_flag=1;

//反

//============================upkey3

if(key3==0)

if(count==0)

count=0;

count--;

//============================downkey4

if(key4==0)

if(count==255)

count=255;

count++;

}

//=====================================

voidM_run(void)

uchari,temp;

if(run_flag==0)//stop

//=========================不转

CCAP0H=0XFF;

CCAP0L=0XFF;

CCAP1H=0XFF;

CCAP1L=0XFF;

//占空比为0%

//==============================led_display不转,灯不亮

temp=0x00;

P1=temp;

if(run_flag==1)//run

temp=0xff;

CY=0;

if(direction_flag==0)//正转

CCAP0H=0XFF;

CCAP0L=0XFF;

CCAP1H=count;

CCAP1L=count;

//==============================led_display

for(i=0;

8;

{

P1=temp;

temp=temp<

<

1;

delay_led(count);

}

if(direction_flag==1)//反转

CCAP1H=0XFF;

CCAP1L=0XFF;

CCAP0H=count;

CCAP0L=count;

temp=temp>

>

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1