教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

基于单片机的遥控小车控制(8)

来源:网络收集 时间:2026-05-05
导读: 东华理工大学长江学院毕业设计(论文) 虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。 (6) C语言允许直接访问物理地址,对硬件进行操作 由于C语言允许直接访问物理地址,可以直接对

东华理工大学长江学院毕业设计(论文)

虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。

(6) C语言允许直接访问物理地址,对硬件进行操作

由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。

生成目标代码质量高,程序执行效率高,一般只比汇编程序生成的目标代码效率低10~20%。

(7) C语言适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。 3.2.2.2 缺点

a. C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。

b. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。 3.2.2.3 C语言的特点

a. C是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。

b. C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

c. C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。 d. C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。

e. C语言文件由数据序列组成,可以构成二进制文件或文本文件。

21

东华理工大学长江学院毕业设计(论文)

综上所述考虑到汇编语言和C语言,结合自身优势,本设计采用汇编语言进行程序编写。

3.3 软件设计

软件设计采用汇编语言,模块化结构设计。包括初始化程序、主程序、键盘扫描程序、红外发射程序等。在软件设计中注意如下几个问题:

(1)抗干扰措施

①为了保证电路的性能,电阻全部采用精密电阻,电容选用高阻抗优质电容,并且进选择配套,印制电路板的绝缘质量好,布线的安排要合理。实践证明,布线的安排对电路的性能影响是明显的。

②采用软件方法消除抖动,即检测出键闭合后执行一个延时程序,产生一个5ms-10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下,当检测到按键释放后,也要给5ms-10ms的延时,待后延抖动消失后才能转入该键的处理程序。

③电桥电源采用专用桥头电源变压器,使桥路有一个稳定的电流。

其他程序见附录1

22

东华理工大学长江学院毕业设计(论文)

3.4 遥控编码原理介绍

1)遥控码的编码格式

该遥控器采用脉冲个数编码,不同的脉冲个数代表不同的码。最小为2个脉冲,最大为8个脉冲。为了使接收可靠,第一位码宽3ms,其余为1ms,遥控码数据帧间隔大于10ms,如下图所示

发射2个脉冲前进

发射3个脉冲后退

发射4个脉冲左转

3ms 1ms 10ms 帧间隔 发射5个脉冲右转

发射6个脉冲自动驾驶 图3-2遥控编码发送示意图

23

东华理工大学长江学院毕业设计(论文)

2)遥控码的发射

当某个操作键按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,在调成40KHz方波由红外线发光管发射出去。P3.5端口的输出调制波如上图所示。

3)数据帧的接受处理

当红外线接收器输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收数据帧。在数据帧接收时,将对第一位(起始位)码的码宽进行验证。若第一位低电平码的脉宽小于2ms,将作为错误码处理。当间隔位的高电平脉宽大于3ms时,接收结束,然后根据累加器A中的脉冲个数,执行相应输出口的操作。下图为红外线接收器输出的一帧遥控码波形图。

10ms 1ms 10ms 停止位 3ms 1ms 图3-3红外线接收器输出的一帧遥控码波形图

24

东华理工大学长江学院毕业设计(论文)

3.5 系统软件流程图

本节内容主要讲述主程序以及各个子程序、中断程序的实现方法和控制算法。为了便于程序分析,以及系统的调试、键按以及软件移植和修改,系统软件采用了结构化模块设计。主程序主要完成初始化工作,设定小车的初始运行状态,最后循环调用键盘扫描程序。中断程序主要是小车接收模块键盘扫描中断。子程序主要包括键盘扫描子程序、红外发射与接收子程序等。

遥控器主程序流程图与键盘扫描子程序流程图如下图所示: 3.5.1小车发射板主程序流程图

主程序开始首先进行初始化工作,设定小车的初始运行状态,最后循环调用键盘扫描程序。如图3-4所示。

开始 初始化 调用键盘子程序 图3-4 单片机发射板主程序

3.5.2小车发射子程序流程图

当开始工作时,初始化,首先判断前进或者后退键是否按下,当有按下时,先判断是前进还是后退,然后开始判断左转或者右转是否按下,当按下时,执行左转后者右转,再判断什么时候取消按键,当取消按键时,给小车一个复位信号,让它执行原来的动作,途中,如果前进或者后退键被取消了,则立刻停止转动,并给予小车一个停止命令。

当前进和后退都没按下时,扫描自动驾驶键,当按下,则给小车自动驾驶命令,否则循环键盘扫描。

25

…… 此处隐藏:947字,全部文档内容请下载后查看。喜欢就下载吧 ……
基于单片机的遥控小车控制(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/594145.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)