基于单片机的遥控小车控制(8)
东华理工大学长江学院毕业设计(论文)
虽然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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




