电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

PWM调速+循迹--智能小车程序

PWM调速+循迹--智能小车程序_第1页
1/54
PWM调速+循迹--智能小车程序_第2页
2/54
PWM调速+循迹--智能小车程序_第3页
3/54
PW 碉速+循迹-智能小车程序〃T0 产生双路 PWM 信号,L298N 为直流电机调速,接 L298N 时相应的管脚上最好接上 10K 的上拉电阻。/晶振采纳 12M,产生的 PWM 的频率约为1Hz */#include#include#define uchar unsigned char#define uint unsigned intsbit en1=P3A4; /* L29 的 Enable A */sbit en2=P3A5; /* L298 的 Enable B */sbit s1=P1A0 ;/* L298 的 Input 1 */sbit s2=P1A1 ;/* L298 的 Input 2 */sbit s3=P1A3; /* L298 的 Input 3 */sbit s4=P1A2; /* L298 的 Input 4 */sbit R=P2A0 ;sbit C=P2A1 ;sbit L=P2A2;sbit key=P1A4;uchar t=0;伸断计数器*/uchar m 仁 0; /电机 1 速度值*/uchar m2=0; /*电机 2 速度值*/uchar tmp1,tmp2; /*电机当前速度值*/电机控制函数index-电机号(1,2); speed 电机 速度(0-1) */void motor(uchar index, char speed){if(speedv=1){if(index==1) / 电机 1 的处理 */{m1=abs(speed); /* 取速度的绝对值*/s1=1;s2=0;}if(index==2) / 电机 2 的处理 */(m2=abs (speed); /* 电机 2 的速度控制*/s3=1;s4=0;}void Back(void) (s1=0;s2=1;s3=1;s4=0;}void GO(void){s1=1;s2=0;s3=1;s4=0;} void TL(void) (sl=l;s2=0;s3=0;s4=l;}void TR(void){sl=0;s2=l;s3=l;s4=0;}void STOP(void){sl = l;s2=l;s3=l;s4=l;void delay(uint j)简易延时函数*/for(j;j>0;j-);} */void delay(uint z){uint x,y;for(x=z;x>0;—)for (y=110; y>0; y-);}void main () uchar i=0j=0;TMOD=0x02; /*设定 TO 的工作模式为 2,位自动重置定时器,每过几个机器周期,计数器加一TH0=0x9B; /*装入定时器的初值,计数 1 次溢出*/TL0=0x9B; /*装入时间常数勺EA=1; /*开中断*/ET0=l; /定时器 0 允许中断引TR0=1; /*启动定时器 0 */ whilQ){if(key==1){/电机实际控制演示*/if(i<=1)正转加速{motor(1,i);motor(2,i); delay(50); i;++}else{GO();}}else{ EA=0; while(1){ if((L|C|R)==0) STOP(); if(L&R) GO(); if(L==0){ while(C){TL();}}if(R==0)( while(C)(TR().;}}void timer0() interrupt 1 /* 中 T 断 服 务 程 序 */ (if(t==0) / * 个 1 PWM 周 期 完 成 后 才 会 接 受 新 数 值*/( tmp1=m1;tmp2=m2;}if(t

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

PWM调速+循迹--智能小车程序

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群