51单片机循迹小车程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
/*功能:寻迹小车 使用芯片:AT89S52 或者 STC89C52 或AT89S51 STC89C51 晶振:12MHZ 编译环境:Keil 作者:MH~ */ #include reg51.h // 引用标准库的头文件 #include intrins.h #define uchar unsigned char #define uint unsigned int //=================电机驱动===================== sbit dianji_r = P3^0; //右边电机控制口,低电平转? sbit dianji_l = P3^7; //左边电机控制口,低电平转 //=============循迹感应接口====================== sbit xjmk_r = P3^2;// 右边寻迹模块检测口 INT0 sbit xjmk_l = P3^3;// 左边寻迹模块检测口 INT1 void check_righet();//右边时候检测到黑线测试程序 void check_left();//左边时候检测到黑线测试程序 void delay_50us(uint t); void delayms(uint Ms); uchar r_count;//右边传感器检测到的次数计数单元 uchar l_count; uint time; //***********************主程序****************************** main() { time=50; dianji_r=0;//上电时右侧电机运行 dianji_l=0;//上电时左侧电机运行 EA=1; EX1=1; EX0=1; IT1=0; IT0=0; xjmk_r=1;//置IO为1,准备读取数据 xjmk_l=1; _nop_(); r_count=0; l_count=0; while(1) { _nop_(); // check_righet();//调用右边寻迹检测传感器 // check_left();// if(r_count=1) { delayms(time); dianji_r=0; dianji_l=0; r_count=0; _nop_(); } if(l_count=1) { delayms(time); dianji_r=0; dianji_l=0; l_count=0; _nop_(); } } } void init0int() interrupt 2 { l_count=5; dianji_l=1; dianji_r=0; if(r_count0) { EX0=0; delayms(20); if(time=20)time-=19; EX0=0; } return; } void init1int() interrupt 0 { r_count=5; dianji_r=1; dianji_l=0; if(l_count0) { EX1=0; delayms(20); if(time=20)time-=19; EX1=1;} return; } //******************************************************************************* //函数名称: //功能:左边边时候检测到黑线测试程序 void check_left() { if(xjmk_l==0)//检测右边的传感器是否感应到黑线 { delay_50us(1);//延时,去除机械振动

文档评论(0)

新起点 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档