完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
|
|
|
|
|
|
|
|
我也要啊,呜呜呜呜呜不会啊
|
|
|
|
|
|
自己动手吧 很简单的
|
|
|
|
|
|
/* =======直流电机的PWM速度控制程序======== */
/* 晶振采用11.0592M,产生的PWM的频率约为91Hz */ #include #include #define uchar unsigned char #define uint unsigned int ***it en1=P2^0; /* L298的Enable A */ ***it en2=P2^1; /* L298的Enable B */ ***it s1=P2^2; /* L298的Input 1 */ ***it s2=P2^3; /* L298的Input 2 */ ***it s3=P2^4; /* L298的Input 3 */ ***it s4=P2^5; /* L298的Input 4 */ uchar t=0; /* 中断计数器 */ uchar m1=0; /* 电机1速度值 */ uchar m2=0; /* 电机2速度值 */ uchar tmp1,tmp2; /* 电机当前速度值 */ /* 电机控制函数 index-电机号(1,2); speed-电机速度(-100—100) */ void motor(uchar index, char speed) { if(speed>=-100 && speed<=100) { if(index==1) /* 电机1的处理 */ { m1=abs(speed); /* 取速度的绝对值 */ if(speed<0) /* 速度值为负则反转 */ { s1=0; s2=1; } else /* 不为负数则正转 */ { s1=1; s2=0; } } if(index==2) /* 电机2的处理 */ { m2=abs(speed); /* 电机2的速度控制 */ if(speed<0) /* 电机2的方向控制 */ { s3=0; s4=1; } else { s3=1; s4=0; } } } } void delay(uint j) /* 简易延时函数 */ { for(j;j>0;j--); } void main() { char i; TMOD=0x02; /* 设定T0的工作模式为2 */ TH0=0x9B; /* 装入定时器的初值 */ TL0=0x9B; EA=1; /* 开中断 */ ET0=1; /* 定时器0允许中断 */ TR0=1; /* 启动定时器0 */ while(1) /* 电机实际控制演示 */ { for(i=0;i<=100;i++) /* 正转加速 */ { motor(1,i); motor(2,i); delay(5000); } for(i=100;i>0;i--) /* 正转减速 */ { motor(1,i); motor(2,i); delay(5000); } for(i=0;i<=100;i++) /* 反转加速 */ { motor(1,-i); motor(2,-i); delay(5000); } for(i=100;i>0;i--) /* 反转减速 */ { motor(1,-i); motor(2,-i); delay(5000); } } } void timer0() interrupt 1 /* T0中断服务程序 */ { if(t==0) /* 1个PWM周期完成后才会接受新数值 */ { tmp1=m1; tmp2=m2; } if(t if(t>=100) t=0; /* 1个PWM信号由100次中断产生 */ } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
路过啦,,, 呵呵
|
|
|
|
|
a6588621 发表于 2013-4-28 12:55 "TH0=0x9B; /* 装入定时器的初值 */ TL0=0x9B; " 这段话的意思是赋初值39835吗,好奇怪的数字 。。能帮忙解答一下吗,谢谢! |
|
|
|
|
|
TMOD=0x02; /* 设定T0的工作模式为2 */
好好看一下定时器吧。带自动重装功能的8位计数器,TL0和TL1为8位计数器,将TH0/TH1存储值自动重装入至TL0/TL1。 |
|
|
|
|
|
都是大神啊!!!!!!!!!!
|
|
|
|
|
|
多谢分享!!!!
|
|
|
|
|
|
stc12c5a60s2自身可即可产生两路pwm,对其寄存器进行设置即可,楼上的程序是普通51模拟的吧。。。。。。
|
|
|
|
|
|
我也赞同楼上,求真正的stc12的pwm
|
|
|
|
|
|
这个电机1电机2是什么意思,是驱动两个电机还是一个直流电机里有两个电机?
|
|
|
|
|
|
|
|
|
|
|
|
不错,提供了思路!
|
|
|
|
|
|
学习了
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16899 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 18:12 , Processed in 2.190957 second(s), Total 103, Slave 86 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3571