基于单片机智能遥控小车的设计.docx

上传人:b****3 文档编号:3686316 上传时间:2022-11-24 格式:DOCX 页数:100 大小:4.06MB
下载 相关 举报
基于单片机智能遥控小车的设计.docx_第1页
第1页 / 共100页
基于单片机智能遥控小车的设计.docx_第2页
第2页 / 共100页
基于单片机智能遥控小车的设计.docx_第3页
第3页 / 共100页
基于单片机智能遥控小车的设计.docx_第4页
第4页 / 共100页
基于单片机智能遥控小车的设计.docx_第5页
第5页 / 共100页
点击查看更多>>
下载资源
资源描述

基于单片机智能遥控小车的设计.docx

《基于单片机智能遥控小车的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机智能遥控小车的设计.docx(100页珍藏版)》请在冰豆网上搜索。

基于单片机智能遥控小车的设计.docx

基于单片机智能遥控小车的设计

编号

 

单片机课程设计

(级)

 

题 目:

基于单片机智能红外遥控小车的设计

学  院:

 物理与机电工程学院  

专 业:

   电子信息科学与技术 

作者姓名:

指导教师:

职称:

副教授 

完成日期:

20年 1月 6日

 

二〇一七年一月

 

基于单片机智能红外遥控小车的设计

摘     要

本次设计的简易智能小车,采用STC89C52RC单片机作为小车的检测和控制核心;采用红外线遥控远程人为控制小车行驶状态;采用SM4105W80U3显示小车处于自动行驶还是遥控行驶;可以实现小车的前进、后退、左转、右转、停止运动。

 

关键词:

STC89C52RC;红外遥控

 

1 前 言  

本设计能实现对小车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求.本设计采用MCS-51系列中的STC89C52RC单片机。

以STC89C52RC为控制核心,使用红外遥控对小车的前进、后退、左转、右转、停止运动进行实时的控制。

  

本次设计主要内容是基于STC89C52RC设计一部智能小车,小车能够实现自动前进,和红外遥控的智能小车控制系统,包括了对驱动电路,红外通讯等的探索和研究。

 

2 方案设计与论证 

2.1 遥控方案的选择  

由于属于小范围内遥控,小车在小范围内行驶,为了减少设计成本,增加便利性,所以采用常用的家用电视红外遥控器作为红外遥控发射部分,只需在小车上加装红外接收装置即可.定义遥控器的上一曲键为左转键,暂停键为右转键,下一曲键为停止键,CH健为前进键,音量增大键为后退键,实现小车行驶的基本控制。

 

红外遥控系统的组成如图2。

1所示。

发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。

图2.1红外流程图 

2。

2 遥控对小车的控制 

切换到红外遥控功能,对小车的前进、后退、左转、右转、停止运动实现实时控制,具体如下所述:

(1)前进是左右两个电机同时顺时针旋转,实现小车的前进;

(2)后退是左右两个电机同时逆时针旋转,实现小车的后退;

(3)停止是左右两个电机同时停止旋转,实现小车的停止;

(4)右转是右电机逆时针旋转和左电机顺时针旋转同时工作,实现小车的右转;

(5)左转是左电机逆时针旋转和右电机顺时针旋转同时工作,实现小车的左转; 

实现不同的运动方式,是通过PWM信号对L293D芯片中的H桥进行控制。

电桥一端接电源,另一端接了一个三极管.三极管导通时,电桥通过三极管接地,电机电枢中有电流通过;三极管截止时,电桥浮空,电机电枢中没有电流通过。

系统通过电桥的输出端为转向电机供电。

通过对继电器开闭的控制即可控制电机的开断和转速方向进而达到控制玩具车前行与倒车的目的。

2。

3 系统原理图

 系统原理图如图2.2所示:

LED显示模块接P1。

1—1.7口;红外遥控接P3。

2口;看门狗定时器接2.7口:

电机控制接P0.0-0.3口;蜂鸣器接P0.7口;功能切换键接P3.4口。

 

图2.2系统框图

3 硬件设计 

3.189C52单片机硬件结构 

89C52单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。

如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。

它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。

但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。

 

3.2 最小应用系统设计 

3.2。

1最小系统

用89C52单片机进行构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图3。

1所示。

由于集成度的限制,最小系统只能用作一些最小的控制单元。

但也拥有一些有点:

 

(1) 有可供用户使用的大量I/O口线。

 

(2) 内部存储器容量有限。

 

(3) 应用系统开发具有特殊性。

图3.1最小系统电路图

3.2。

2烧写接口电路 

RST置高电平,然后向单片机串行发送编程命令。

P1。

7(SCK)输入移位脉冲,P1。

6(MISO)串行输出,P1.5(MOSI)串行输入。

被烧写的单片机一定是最小系统(单片机已经接好电源,晶振,可以运行)。

如图3。

2烧写接口电路。

图3.2烧录程序电路图

3.2.3 PWM脉宽调速 

本设计调速采用PWM控制,选用了常用的双极式H型变换器,它是由4个三极电力晶体管和四个续流二极管组成的桥式电路.图3.3为双极式H型可逆PWM变换器的电路原理图. 

4个电力晶体管的基极驱动电压分为两组。

VT1和VT4同时导通和关断,其驱动电路中Ub1=Ub4;VT2和VT3同时动作,其驱动电压Ub2=Ub3=—Ub1。

 

双极式PWM变换器的优点如下:

(1)电流一定连续; 

(2)可使电动机在四象限中运行; 

(3)电机停止时有微振电流,能消除静摩擦死区; 

(4)低速时,每个晶体管的驱动脉冲仍较宽,有利于保证晶体管可靠导通; (5)低速平稳性好,调速范围可达20000左右。

图3.3PWM驱动电路图

3.2.4电源的设计 

本设计的电源为车载电源.为保证电源工作可靠,单片机系统与动力伺服系统的电源采用了大功率、大容量的蓄电池;而传感器的工作电源则采用了小巧轻便的干电池。

3。

3 红外线遥控电路 

方便起见,本设计直接采用电视遥控器作为红外遥控的发射器,只需在小车上加装红外接收装置即可 

红外接收器的电路图如图3.4所示:

图3.4红外线遥控电路

3.4 显示电路设计

本设计中用一片1位七段数码管SM4105W80U3作显示器,显示数字。

  

七段数码管SM4105W80U3中的a﹑b﹑c﹑d﹑e﹑f﹑g﹑dp分别连接在单片机的P2。

1—P2.7,分别控制各段码,与单片机的连接如图3。

5所示。

图3。

5 显示电路图

4 软件设计 

4。

1 设计流程 

一个智能化的系统,软件设计必不可少,软件设计是更具系统需求,通过编程语言控制单片机的行为,实现智能控制。

 

模块化的程序设计有以下有点:

(1)单个模块比起一个完整的程序易编写及调试; 

(2)模块可以共存,一个模块可以被多个任务在不同条件下调用;

(3)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。

 

本系统软件采用模块化结构,由主程序﹑中断子程序显示子程序﹑算法子程序、遥控子程序构成。

 

本次设计采用的即是模块化的软件编程,各程序功能清晰、明确.软件流程图如图4。

1所示:

 

 

 

图4.1流程图

4。

2 软件抗干扰技术

提高小车智能控制的可靠性,仅靠硬件抗干扰是不够的,需要进一步借助于软件抗干扰技术来克服某些干扰。

在单片机控制系统中,如能正确的采用软件抗干扰技术,与硬件干扰措施构成双道抗干扰防线,无疑为了将大大提高控制系统的可靠性。

经常采用的软件抗干扰技术是数字滤波技术、指令冗余技术、软件陷阱技术等。

4。

3 程序设计 

软件设计采用模块化设计,思路清晰,也便于查找问题。

红外遥控键位对应子程序流程图如图4。

2所示

开始开始

 

图4.2 红外遥控流程图

5不足与展望

本次设计的总体效果不是很好,控制灵敏性较差,寻迹和避障功能没有很好的实现。

因此要设计具有优良的调速特性,调速平滑,方便使用,控制精确,转动灵敏,可实现频繁的无极快速起动、制动和转动,需要满足生产过程自动化系统各种不同的特殊要求.为此,设计制造高性能、高可靠性的智能小车控制系统有着十分重要的现实意义。

6设计心得

经过这次课程设计我感受颇多,在正式进行设计之前,我参考了一些网上的资料,通过对这些设计方案来开拓自己的思路,最后终于有了自己的思路。

此次课程设计不仅是对前面所学单片机技术和运动控制理论的一种检验,更是对所学知识大融合,站在新的高度看待新的问题,而且也是对自己运用所学知识的能力的一种提高.通过这次课程设计使我明白了自己原来知识还比较欠缺,自己要学习的东西还太多。

以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低.通过这次课程设计,我才明白学习是一个长期积累的过程。

 

参考文献

[1]张毅刚,喜元.原理与应用设计[M]. 北京:

北京市海淀区四季青印刷厂,2010。

[2]张毅刚.新编MCS-51单片机运用设计[M]。

哈尔滨:

哈尔滨工业大学出版社,2003.

[3]张义和,敏男,宏昌,长春.例说51单片机(c语言版)[M]。

北京:

人民邮电出版社,2009.

[4]马忠梅籍顺心张凯马 岩.单片机的C语言应用程序设计[M].北京:

北京航空航天大学,2010。

[5] SamsungElectronics。

S3C44BOXRiscmicrocontroller ARMinstructionsheet.2002.

[6]郭天祥.《51单片机C语言教程》[M]。

子工业出版社,2005年7月.

[7]丁元杰.《单片微机原理及应用》[M],械工业出版社,2005年7月.

[8]楼然苗,光。

《单片机课程设计指导》[M].京:

 北京航空航天大学出版社,2007。

 

附录

1 实物图

2源程序清单

#include〈REGX52.H〉

#include<intrins.h>

sbit LeftLed=P2^0;    

sbit RightLed=P0^7;         

sbit FontLled=P1^7;

sbitLeftIR=P3^5;    

sbitRightIR=P3^6;      

sbitFontIR=P3^7;         

sbit M1A=P0^0;          

sbitM1B=P0^1;          

sbitM2A=P0^2;       

sbit M2B=P0^3;        

sbitB1=P0^4;      

sbit SB1=P0^6;         

sbitIRIN=P3^3;       

unsignedcharcodeLedShowData[]={

0x03,0x9F,0x25,0x0D,0x99, 

  0x49,0x41,0x1F,0x01,0x19

};

unsignedcharcodeRecvData[]={

0x19,0x46,0x15,0x43,0x44,

0x40,0x0D,0x0E,0x00,0x0F

};

unsigned char IRCOM[7];

staticunsignedintLedFlash;     

bitEnableLight=0;        

#defineShowPortP2      

unsignedchartemp=1;

voidtingzhi()

{

 M1A=0;           

  M1B=0;         

 M2A=0;              

 M2B=0;

}

voidqianjin()

  M1A=1;         

M1B=0;       

  M2A=1;      

M2B=0;

}

voidhoutui()

{

   M1A=0;          

 M1B=1;      

 M2A=0;            

M2B=1;

}

void zuozhuan()

M1A=0;         

M1B=1;         

M2A=1;          

 M2B=0;

}

voidyouzhuan()

{

M1A=1;             

M1B=0;        

  M2A=0;        

M2B=1;

voidDelay1ms(unsignedinti)

unsigned charj,k; 

do{

 j=10;

do{ 

 k=50; 

do{ 

 _nop_(); 

 }while(—-k);

 }while(--j);

}while(--i);

} 

voiddelay_nus(unsignedint i)

{

 i=i/10;

while(——i);

}  

voiddelay_nms(unsignedint n)

n=n+1;

while(-—n)

delay_nus(900); 

} 

voiddelayms(unsignedcharx)        

{

unsigned chari;          

 while(x--)         

  for(i= 0; i〈13;i++){}   

 }

voidDelay()            

{

 unsignedint DelayTime=30000;    

while(DelayTime—-);       

return;                

void ControlCar(unsignedcharConType) 

tingzhi();

switch(ConType)          

 case1:

 //前进         

LeftLed=0 ;

qianjin();

 break;

case2:

//后退     

{ 

LeftLed=1;

houtui();         

 break;

}

 case3:

//左转    

zuozhuan();         

break;

 }

 case 4:

//右转    

 {

youzhuan();         

break;

 case8:

//停止      

tingzhi();

break;    

}

voidControlCar_yaokong(unsignedchar ConType) 

{

tingzhi();

 switch(ConType)     

 case1:

 //前进    

{

tingzhi();

Delay1ms(150);

LeftLed=0;

qianjin();

 break;

case 2:

//后退      

{ 

tingzhi();

Delay1ms(150);

LeftLed =1 ; 

houtui();            

 break;

}

case3:

//左转         

 { 

tingzhi();

Delay1ms(150);

 zuozhuan();      

break;

 }

case4:

//右转      

{

 tingzhi();

Delay1ms(150);

 youzhuan();              

break;

 }

 case8:

 //停止         

 {

  tingzhi();

break;        

}

 }

}

voidmain()          

{

 bitRunFlag=0;      

 LedFlash=3000;         

 EX1=1;             

IT1=1;          

 EA=1;        

 ControlCar(8);      

  while

(1)     

 {

if(P3_2==0)

 {

delay_nms(10);

 if(P3_2== 0)

temp++;

 while(!

P3_2);

 }

 if(temp〉3)

temp = 1;

}

 switch(temp)

case1:

ShowPort=LedShowData[1];Robot_Traction();

EX1 =0;break;

case2:

ShowPort=LedShowData[2];Robot_Avoidance();

EX1=0;break;

case3:

ShowPort=LedShowData[3];

EX1=1;break;

 }

}

void IR_IN()interrupt2using0     

unsignedcharj,k,N=0;        

EX1= 0;          

 delayms(15);            

 if(IRIN==1)               

 EX1=1;            

return;           

} 

while(!

IRIN)           

 {

    delayms(1);          

for(j=0;j<4;j++)      

 { 

for(k=0;k<8;k++)          

 {

 while(IRIN)      

  {

  delayms

(1);            

 }

   while (!

IRIN)           

 {

   delayms

(1);        

 }

   while(IRIN)        

   {

  delayms

(1);      

    N++;             

if(N>=30)             

   {

  EX1=1;        

  return;         

  }   

 }

 IRCOM[j]=IRCOM[j]>〉1;         

 if(N>=8)       

   IRCOM[j]=IRCOM[j]|0x80;      

   N=0;            

 }

}

if(IRCOM[2]!

=~IRCOM[3])      

 {

 EX1=1;              

 return;              

}

 for(j=0;j<10;j++)           

 {

  if(IRCOM[2]==RecvData[j])         

{

ControlCar_yaokong(j);       

  }

} 

EX1= 1;            

 

西安航空学院

本科毕业设计(论文)开题报告

 

题 目:

 基于单片机的智能窗的设计

学生姓名:

院(系):

电子工程学院

专业班级:

 测控技术与仪器班  

指导教师:

 刘阳   

完成时间:

  2017年月   日

 

要 求

1、开题报告是毕业设计(论文)的总体构想,由学生在毕业设计(论文)工作前期独立完成.

2、开题报告正文用A4纸打印,各级标题用4号宋体字加黑,正文用小4号宋体字,20磅行距。

3、参考文献不少于5篇(不包括辞典、手册),著录格式应符合GB7714—87《文后参考文献著录规则》要求。

4、年月日等的填写,用阿拉伯数字书写。

要符合《关于出版物上数字用法的试行规定》,如“2005年2月26日”.

5、所有签名必须手写,不得打印。

 

一、课题的意义  

 21世纪是信息化的世纪,各种电信和互联网新技术推动了人类文明的巨大进步.随着科学技术的飞跃发展,生活水平的不断提高,人们对安全、舒适、健康的生活需求变得日益迫切。

而近年来,智能家居概念已经逐渐深入到国民的生活之中,且不断地影响着人们的思维。

因此,众多有能力的小区、别墅用户已经开始安装使用智能家居系统,并尝试智能化为家居生活带来的安全、舒适和便利。

 时光飞逝,日夜如梭。

智能家居系统在经历了早期混乱的概念纷争之后,目前已经逐渐进入理性时代.如今的智能家居市场已经不再是海尔、微软等专业家电控制和IT厂家的天下,越来越多的楼宇对讲厂商开始涉及并深入到智能家居行业,猛烈地冲击着楼宇对讲市场格局,从而使得市场竞争更加激烈。

尽管如此,用户的需求才是第一位的,所以各厂家的产品研发主要以市场需求为导向.

 由于我国房地产行业的迅速发展,也带动了我国门窗幕墙行业的迅速发展,随着消费者生活水平的提高,智能化的产品如雨后春笋,正逐步发展和壮大。

因智能家居控制系统布线简单、功能灵活,扩展容易而被人们广泛接受和应用。

相信在不久的将来我们生活中会越来越多的智能家居来代替传统家居。

而我们的智能窗户就是在这样的环境下应运而生的,因此具有广阔的市场空间和应用前景。

二、国内外发展现状

   随着人们经济能力的日益提升,人们也开始对物质生活水平越来越关注了,  在生活产品的选择上有了很大的提高,加上城市建设步伐的日益加快和,智能窗帘已经进入了我们的生活.21世纪是科技的时代,智能窗帘有很好的市场前景,而我们常用的窗帘轨道都是钢丝绳手拉式或滑轨式,只有一站部分高收入的家庭

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

当前位置:首页 > 工程科技 > 能源化工

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

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