单片机遥控小汽车的设计方法(5)

2019-03-16 20:00

哈尔滨工程大学本科生毕业论文

找到光源,这些事件都有一个共同点,就是系统要对这些事件做出相应的处理或采取相应的措施。所以为了简化编程,让这些事件在主任务中能得到统一的处理,可以给这些事件编上号,然后由一个消息搜集模块去等待各种消息。一旦某个事件发生,该模块马上给主任务返回该事件的编号,即消息值,让主任务按照消息值分类去处理消息。

在消息搜集模块的头文件中定义了如下若干个消息:

//消息的结构为:高三位,消息分类码,可以加快消息处理的速 //度;低五位,消息值。 #define NULL 0 //按键消息的定义

#define MSG_K_QIAN 0x01 #define MSG_K_HOU 0x02 #define MSG_K_ZUO 0x03 #define MSG_K_YOU 0x04 #define MSG_K_TING 0x05 #define MSG_K_MODE 0x06 #define MSG_K_FEN 0x07 #define MSG_K_REC 0x08

//“前进”按键消息 //“后退”按键消息 //“左转”按键消息 //“右转”按键消息 //“停止”按键消息 //“模式选择”按键消息 //“漏粉”按键消息 //“记录路线”按键消息

//“显示切换”按键消息

#define MSG_K_DISPMODE 0x09 //超声避障消息

#define MSG_QIANZHANG 0x14 #define MSG_HOUZHANG 0x15

//前方出现障碍消息

//后方出现障碍消息

#define MSG_NOQIANZHANG 0x16 //前方障碍消失消息 #define MSG_NOHOUZHANG 0x17 //光源消息

#define MSG_NOTFOUND 0x28 #define MSG_FOUND 0x29

13

//后方障碍消失消息

//没有发现光源消息 //发现光源消息

哈尔滨工程大学本科生毕业论文

//主从机之间的控制消息 #define MSG_BEGINFIND 0x31 #define MSG_ENDFIND 0x32

extern uchar getmsg(void); extern uchar imgetch(void);

消息搜集模块对外提供了两个接口函数:getmsg()函数一直等待到有消息时返回消息值;imgetch()函数立即返回按键值,这是为了某些地方使用上的灵活而设置的。

有了这个消息搜集模块后,主任务执行的大部分时间就会停留在getmsg()函数内等待消息,当有按键命令或遇到障碍时返回消息值,主任务对其进行相应的处理。

主任务处理消息可以设计成如下结构: while(1) {

switch(getmsg())

//消息分类处理

//消息循环

//开始寻找光源命令消息

//停止寻找光源消息

{

case MSG_K_QIAN: … break; case MSG_K_HOU:

… break; case …

}

}

14

//“前进”按键消息处理

//“后退”按键消息处理

哈尔滨工程大学本科生毕业论文

2.5本章小结

本章将系统拆分成了若干个功能模块,并且采用两个AT89C52单片机来各分担一部分功能。在软件方面通过对结构的特殊设计,基本上实现了多任务并发运行,并且通过软件的分层结构将功能实现和具体的硬件分离开,再加上消息驱动的结构,这将给后续的各模块软件的设计带来方便。

15

哈尔滨工程大学本科生毕业论文

第3章 各模块的详细设计

3.1 红外遥控模块的设计

3.1.1 遥控模块的功能需求

遥控模块采用红外遥控方式,因为采用红外遥控抗干扰能力强,且不会对周围的无线电设备产生干扰电波,接口简单;但是红外方式遥控的距离比较有限,一般在几米之内。鉴于本设计不需要远距离遥控,所以综合考虑之下采用红外遥控较为合适。

本设计中要求能用遥控器控制小车的前进、后退、左转、右转、停止、记录路线、寻找光源等很多种功能;遥控距离在几米之内即可;并且要在遥控发射模块加入语音识别模块,能够实现声控功能。 3.1.2 编解码芯片的选型

由于在遥控端的按键数目有多个,而红外通道传输的只能是由0、1组成的串行代码,所以需要在发射端对按键进行“并-串”编码,在接收端相应的要进行“串-并”解码。码的波特率在收、发两端应该是一致的。

方案一,使用MC145026、MC145027编解码芯片,其特殊的编码方式保证了信息的可靠传输,但是外围器件参数的选定较为烦琐,并且不能利用到其所提供的地址功能,也就是说传输的信息当中地址码部分是多余的,这就降低了信道的利用率。

方案二,采用台湾瑞昱公司生产的专用于遥控车模的CMOS大规模集成电路TX-2/RX-2,该编解码芯片具有5种控制功能,使用方便,所以本设计中采用了该方案。 3.1.3 遥控模块原理图

遥控模块发送部分原理如图3.1所示。TX-2的11脚和12脚之间接的电阻决定振荡频率;3脚接地;10脚接3-5V电源;14脚、1脚、4脚、5脚、6脚分别为5路发射控制端;9脚为发射指示端,当有按

16

哈尔滨工程大学本科生毕业论文

键按下时LED1发光提示;7脚为带载波的编码信号输出端,即编码信号已经内调制到38KHZ的载波上,该脚的信号通过一个NPN型三极管放大后可直接驱动红外发射二极管发射信号;8脚为不带载波的编码信号输出端。

3.1.3 遥控发射端按键数目的扩展

图3.1 遥控发射原理图

图3.2 遥控接收电路图

遥控接收电路如图3.2所示。RX-2的4脚和5脚之间接的电阻阻值要和TX-2的11脚、12脚间的电阻阻值接近,相差在20%之内方可正确的解码,本设计中这两个电阻都选用150KΩ;2脚接地;13脚接3-5V电源;3脚接输入信号,由一体化红外接收头1838输出的信号

17


单片机遥控小汽车的设计方法(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:认识自己,了解社会

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: