3.6 单片机I/O口分配
表2 外围电路 L293D 外围电路接口 EN1 IN1 IN2 EN2 IN3 IN4 2个按键 2位数码管 排阻 2个三极管8550的基极 蜂鸣器 红外发射管 红外接收管 红外发射驱动电路 数码管字型端口 数码管位控端口 1个蜂鸣器 右轮电机 控制对象 左轮电机 单片机I/O口 备注 P3.5 P2.0 P3.4 P3.7 P2.1 P3.6 P2.2、P2.6 P1.0~P1.6 P2.5、P2.7 P0.2 小数点不显示 动态显示 38MHz脉冲间歇发送 收到信号为低 1个红外发射管 P2.3 1个红外接收管 P2.2
4 软件电路设计
本系统的程序设计主要包括直流电机直行、后退和停止控制、小车转弯控制、红外发射信号调制、红外接收信号判断、按键读入判断、时间参数设置和数码管动态显示、蜂鸣器等模块。
其中红外发射信号调制所需的38KHz脉冲信号,是由定时器0中断子程序实现的,其定时时间为13?s。行驶时间的计数是由定时器1的中断子程序实现的,最大设置行驶时间为95s。
系统程序是采用C语言设计,程序框图如下:
10
左转 开始 初始化 启动小车前进 计时 Y N 是 否有障 避障 小车前进 停止 图-4主程序流程图
开始 初始化 是否有障Y 蜂鸣器响 小车后退 小车停止 小车左转 停止
图-5 避障程序流程图
11
5 实验结果分析
(1)刚开始时按要求把电路的元器件焊上去,但是调试时功能实现不能达到要求。解决方法:我们从头开始检查电路焊接方面有没有问题,果然发现有虚焊。我们重新焊接。
(2)在确保电路没有问题的时候,小车还是不能行走。
解决方法:检查元器件好坏,在排除元器件问题后,检查程序问题。
(3)在红外避障功能中,小车不能按程序设计一样走,当遇到障碍物时不是先后退在左转而是直接停止。
解决方法:检查电路连接有没有问题,当排除电路连接问题后,检查程序问题,确保程序没有问题时,我们想到可能是接受管的接收参数问题,所以我们在接受管1、2管脚加上一个滤波电路。
6 实验心得
经过一学期的努力,我们的红外避障小车项目如期完成,并取得预期的成果。作为该项目的参与者,我们都有各自的分工协作。 回首这个项目的制作,我们都得益匪浅。最初开始制作小车的前半部分对我们来说并不困难,因为其中涉及到的电路图我们也能看懂,焊接我们在之前的专业学课也学习过。但越到后期制作就越困难重重。首先是程序的编写问题,程序总是不稳定,达不到预期的功能效果。后来在添加红外避障功能的时候更是屡屡出现问题,例如,发射管不亮,发射管亮了,但是接收管又出现不能很好接收信号,数码管显示不完整,蜂鸣器不响等问题。但是经过我们组成员的努力和坚持,才将问题一一排除,成功解决。
一个项目的成功需要反复的尝试和不厌其烦的修正。小车项目的制作给我们提供了一个创新思维、思考问题、解决问题的机会。通过亲身参与实践这个项目,我们各方面的能力都有一定的提高。
这次制作让我们学会了要勤快,多学多问,善于思考,独立但不孤立,承受得住失败,耐得住寂寞,懂得团队的协作和凝聚团队的智慧和力量去解决问题。
7 参考文献
(1) 模拟电子技术 (2)数字电子
(3)谭浩强,《c语言设计》 (4)苏丽萍,《电子技术基础》
12