基于AT89S52单片机巡线小车.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单片机的巡线小车 组员:潘伟裕、马李、梁海洋 目录 摘要················································2 电路设计方案的分析····························2 1.1电源模块 ··································2 1.2红外传感模块······························3 1.3控制模块··································4 1.4电机驱动模块······························5 硬件设计······································6 程序编写····································· 设计失败的分析及补救方案················ 心得体会································ 摘要: 本作品以AT89S52为核心,采用红外光传感器收集信号,再经LM339处理传输,采用双电机,利用“H桥”驱动。 本次项目设计,目的是促进小组成员之间的沟通,增进小组成员之间的感情,提高动手能力。通过这次项目培训,我们的成员相互沟通交流、相互帮助学习,锻炼了我们的动手能力,促进了相互间的交流认识。 电路设计方案的分析 电源模块 用12v电池供电,12v经“H桥”驱动电机,同时经过7805输出稳定的5v电压为红外系统、控制系统供电。电路如图(1.1): 红外传感模块 本车子用5个红外传感器,每个红外发射管接1K电阻限流,接收管则串联一个6.8k电阻和一个10k可调电阻,以适应不同的光线环境(注:6.8k后改为250k,10k可调电阻失去作用)。电路如图1.2: 红外传感器由left_21、left_11、middle、right_11、right_21输出感应信号。由于信号若直接输给单片机,单片机没法辨认,故经比较器LM339处理,再传给单片机,电路如图1.3 (注:图中R1_1、R1_2、R1_3、R1_4后改为每个LM339接10k可调电阻)图中两芯片的“in+4”脚没有用做红外信号的输入,但直接接vcc,是为了不让管脚悬空,利于芯片工作的稳定。LM339的输出管脚以被外界拉低,故接上拉电阻,再接到单片机管脚。 控制模块 控制模块使用AT89S52单片机,用P2.0、P2.1、P2.2、P2.3、P2.4接收信号,用管脚P1.0、P1.1、P1.2、P1.3控制电机的驱动。电路如图1.4: 电机驱动模块 采用双电机驱动,”H桥”可双向驱动电机。电机调速由单片机输出的方波实现,频率为30HZ左右,脉宽占空比大,则电机转速大。电路如图1.5: 图中“电机1_1”、“电机1_2”是一个电机的两个接口。另外一个电机的驱动电路与之相同。 二、 硬件设计 三、 程序编写 实现程序如下: #includereg52.h #define uchar unsigned char #define run_right() {left_f=1;left_b=0;right_f=1;right_b=1;} #define run_left() {left_f=1;left_b=1;right_f=0;right_b=1;} #define forward() {left_f=1;left_b=0;right_f=0;right_b=1;} sbit left_2=P2^0; sbit left_1=P2^1; sbit mid=P2^2; sbit right_1=P2^3; sbit right_2=P2^4; sbit left_f=P1^0; sbit left_b=P1^1; sbit right_b=P1^2; sbit right_f=P1^3; /******************延时函数*********************/ void delay(int x) { int a; for(;x0;x--) for(a=30;a--;); } /***********************************************/ /*****************电机控制*********************/ void for_left_2() //车子要右转,速度最慢 { while(1) { run_right(); delay(4); run_left();delay(1); //右转脉

文档评论(0)

ipad0b + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档