智能循迹小车实训报告
循迹小车实习报告

一、实习背景随着科技的发展,自动化技术在各个领域得到了广泛应用。
智能循迹小车作为自动化技术的一个重要应用,具有广泛的前景。
为了提高我们的实践能力,培养我们的创新精神,我们参加了智能循迹小车实习课程。
通过本次实习,我们学习了智能循迹小车的设计、制作和调试方法,了解了其工作原理,提高了我们的动手能力和团队协作能力。
二、实习目的1. 熟悉智能循迹小车的结构、原理和功能。
2. 掌握智能循迹小车的制作方法,提高动手能力。
3. 学习电路设计、传感器应用、单片机编程等知识。
4. 培养团队协作精神,提高沟通能力。
三、实习内容1. 智能循迹小车原理及结构智能循迹小车主要由以下几部分组成:车体、驱动电机、传感器、单片机、控制电路等。
车体是智能循迹小车的承载部分,驱动电机负责提供动力,传感器用于检测路面信息,单片机负责处理传感器信息,控制电路负责将单片机的指令转换为电机驱动信号。
2. 电路设计电路设计主要包括以下几个方面:(1)电源电路:为智能循迹小车提供稳定的电源。
(2)驱动电路:将单片机的控制信号转换为电机驱动信号。
(3)传感器电路:将传感器信号转换为单片机可识别的信号。
(4)控制电路:对单片机输出的控制信号进行放大、滤波等处理。
3. 传感器应用智能循迹小车主要采用红外传感器进行路面检测。
红外传感器具有体积小、成本低、安装方便等优点。
在制作过程中,我们需要对红外传感器进行调试,使其能够准确检测路面信息。
4. 单片机编程单片机编程是智能循迹小车实现智能控制的关键。
我们主要学习了C语言编程,掌握了单片机的基本指令、函数、中断等知识。
在编程过程中,我们需要编写程序,使单片机能够根据传感器信息控制小车行驶。
5. 调试与优化在制作过程中,我们需要对智能循迹小车进行调试,使其能够稳定、准确地行驶。
调试过程中,我们需要对电路、传感器、单片机等部分进行调整,以达到最佳效果。
四、实习成果通过本次实习,我们成功制作了一台智能循迹小车,并使其能够稳定、准确地行驶。
智能寻迹小车实验报告

智能寻迹小车实验报告
实验目的:
设计一个智能寻迹小车,能够依据环境中的黑线自主行驶,并避开障碍物。
实验材料:
1. Arduino开发板
2. 电机驱动模块
3. 智能车底盘
4. 红外传感器
5. 电源线
6. 杜邦线
7. 电池
实验步骤:
1. 按照智能车底盘的说明书将车底盘组装起来。
2. 将Arduino开发板安装在车底盘上,并与电机驱动模块连接。
3. 连接红外传感器到Arduino开发板上,以便检测黑线。
4. 配置代码,使小车能够依据红外传感器检测到的黑线自主行驶。
可以使用PID控制算法来控制小车的速度和方向。
5. 测试小车的寻迹功能,可以在地面上绘制黑线,观察小车是否能够准确地跟随黑线行驶。
6. 根据需要,可以添加避障功能。
可以使用超声波传感器或红外避障传感器来检测障碍物,并调整小车的行驶路线。
实验结果:
经过实验,可以发现小车能够依据红外传感器检测到的黑线自主行驶,并能够避开障碍物。
小车的寻迹功能和避障功能能够实现预期的效果。
实验总结:
本次实验成功设计并实现了智能寻迹小车。
通过使用Arduino 开发板、电机驱动模块和红外传感器等材料,配合合适的代码配置,小车能够准确地跟随黑线行驶,并能够避开障碍物。
该实验展示了智能小车的基本原理和应用,为进一步研究和开发智能车提供了基础。
智能循迹小车实验报告

智能循迹小车实验报告第一篇:智能循迹小车实验报告摘要本设计主要有单片机模块、传感器模块、电机驱动模块以及电源模块组成,小车具有自主寻迹的功能。
本次设计采用STC公司的89C52单片机作为控制芯片,传感器模块采用红外光电对管和比较器实现,能够轻松识别黑白两色路面,同时具有抗环境干扰能力,电机模块由L298N芯片和两个直流电机构成,组成了智能车的动力系统,电源采用7.2V的直流电池,经过系统组装,从而实现了小车的自动循迹的功能。
关键词智能小车单片机红外光对管 STC89C52 L298N 1 绪论随着科学技术的发展,机器人的设计越来越精细,功能越来越复杂,智能小车作为其的一个分支,也在不断发展。
在近几年的电子设计大赛中,关于小车的智能化功能的实现也多种多样,因此本次我们也打算设计一智能小车,使其能自动识别预制道路,按照设计的道路自行寻迹。
设计任务与要求采用MCS-51单片机为控制芯片(也可采用其他的芯片),红外对管为识别器件、步进电机为行进部件,设计出一个能够识别以白底为道路色,宽度10mm左右的黑色胶带制作的不规则的封闭曲线为引导轨迹并能沿该轨迹行进的智能寻迹机器小车。
方案设计与方案选择3.1 硬件部分可分为四个模块:单片机模块、传感器模块、电机驱动模块以及电源模块。
3.1.1 单片机模块为小车运行的核心部件,起控制小车的所有运行状态的作用。
由于以前自己开发板使用的是ATMEL公司的STC89C52,所以让然选择这个芯片作为控制核心部件。
STC89C52是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。
其程序和数据存储是分开的。
3.1.2 传感器模块方案一:使用光敏电阻组成光敏探测器采集路面信息。
阻值经过比较器输出高低电平进行分析,但是光照影响很大,不能稳定工作。
方案二:使用光电传感器来采集路面信息。
循迹小车的装调实训报告

一、实训背景随着科技的飞速发展,智能机器人技术逐渐成为研究的热点。
循迹小车作为一种典型的智能机器人,具有简单、实用、成本低等优点,是学习和研究智能控制技术的重要工具。
本实训旨在通过组装和调试循迹小车,使学生掌握智能控制系统的基本原理和装调方法,提高学生的动手能力和创新意识。
二、实训目的1. 熟悉循迹小车的结构和工作原理;2. 学会循迹小车的组装和调试方法;3. 培养学生的团队协作能力和创新意识;4. 提高学生对智能控制技术的认识和应用能力。
三、实训内容1. 循迹小车简介循迹小车是一种能够在特定路径上自动行驶的智能小车。
它通过检测地面上的线条或标记,根据反馈信号调整行驶方向,实现自动循迹。
循迹小车主要由以下几个部分组成:(1)车体:包括车身、轮子、支架等;(2)传感器:用于检测地面上的线条或标记;(3)控制器:根据传感器信号控制小车行驶;(4)驱动器:将控制器输出的信号转换为电机转速,驱动小车行驶;(5)电源:为小车提供电能。
2. 循迹小车组装(1)准备工作:准备好组装所需的材料、工具和电路板;(2)组装车体:将车身、轮子、支架等组装成小车;(3)安装传感器:将传感器安装在车体上,确保传感器能够检测到地面上的线条或标记;(4)连接电路:将传感器、控制器、驱动器和电源等电路连接起来;(5)调试电路:检查电路连接是否正确,确保电路正常工作。
3. 循迹小车调试(1)调试传感器:调整传感器位置,使传感器能够准确检测到地面上的线条或标记;(2)调试控制器:调整控制器参数,使小车能够根据传感器信号准确调整行驶方向;(3)调试驱动器:调整驱动器参数,使电机转速与小车行驶速度相匹配;(4)测试循迹性能:将小车放置在特定路径上,观察小车是否能够自动循迹。
四、实训结果与分析1. 实训结果通过本次实训,学生成功组装和调试了一辆循迹小车,小车能够在特定路径上自动循迹。
2. 实训分析(1)组装过程中,学生学会了如何使用工具,提高了动手能力;(2)调试过程中,学生学会了如何调整传感器、控制器和驱动器参数,提高了对智能控制技术的认识;(3)团队合作方面,学生学会了相互协作、沟通和解决问题,提高了团队协作能力;(4)创新意识方面,学生在实训过程中积极思考,提出了一些改进方案,提高了创新意识。
循迹小车的实验报告

循迹小车的实验报告循迹小车的实验报告引言:循迹小车是一种基于光电传感器的智能机器人,能够通过感知地面上的黑线,实现自主导航。
本次实验旨在探索循迹小车的工作原理及其应用,并对其性能进行评估。
一、实验背景循迹小车作为一种智能机器人,广泛应用于工业自动化、仓储物流、智能家居等领域。
其基本原理是通过光电传感器感知地面上的黑线,根据传感器信号控制电机的转动,从而实现沿着黑线行进。
二、实验过程1. 实验器材准备本次实验所需器材有循迹小车、黑线地毯、计算机等。
通过连接计算机和循迹小车,可以实现对小车的控制和数据传输。
2. 实验步骤(1)将黑线地毯铺设在实验场地上,并保证地毯表面光滑清洁。
(2)将循迹小车放置在地毯上,确保其底部的光电传感器与黑线接触。
(3)通过计算机控制循迹小车的启动,观察小车是否能够准确跟踪黑线行进。
(4)记录小车在不同条件下的行进速度、转弯半径等数据,并进行分析。
三、实验结果1. 循迹性能评估通过实验观察和数据记录,我们发现循迹小车在较为平整、光线充足的黑线地毯上表现较好,能够准确跟踪黑线行进。
然而,在黑线不明显、光线较暗的情况下,小车的循迹性能会有所下降。
2. 行进速度与转弯半径根据实验数据分析,循迹小车的行进速度受到多种因素的影响,包括地面摩擦力、电机功率等。
在实验中,我们发现增加电机功率可以提高小车的行进速度,但同时也会增大转弯半径。
3. 应用前景循迹小车作为一种智能机器人,具有广泛的应用前景。
在工业自动化领域,循迹小车可以用于物料搬运、装配线操作等任务;在仓储物流领域,循迹小车可以实现货物的自动分拣、运输等功能;在智能家居领域,循迹小车可以作为家庭服务机器人,提供家居清洁、送餐等服务。
四、实验总结通过本次实验,我们深入了解了循迹小车的工作原理和应用前景。
循迹小车的循迹性能受到地面条件和光线影响,需要进一步优化。
在实际应用中,循迹小车可以广泛应用于工业自动化、仓储物流和智能家居等领域,为人们的生活和工作带来便利。
智能循迹避障小车实习报告

智能循迹避障小车实习报告一、实习背景及目的随着科技的不断发展,嵌入式系统在各个领域的应用越来越广泛。
智能小车作为一种典型的嵌入式系统应用产品,不仅可以锻炼学生的动手能力,还能深入理解嵌入式系统的原理和应用。
本次实习旨在让学生通过设计制作智能循迹避障小车,掌握嵌入式系统的基本原理,提高动手实践能力,培养创新意识和团队协作精神。
二、实习内容与过程1. 实习准备在实习开始前,我们先学习了嵌入式系统的基本原理,了解了微控制器(如STM32)的工作原理和编程方法。
同时,我们还学习了如何使用相关开发工具(如Keil、CubeMX)进行程序开发和仿真。
2. 设计思路根据实习要求,我们确定了智能循迹避障小车的主要功能:远程控制、循迹、避障。
为了实现这些功能,我们需要选用合适的微控制器、传感器、电机驱动模块等硬件,并编写相应的软件程序。
3. 硬件设计我们选用了STM32F103C8T6作为主控制器,它具有高性能、低功耗的特点。
为了实现循迹功能,我们采用了红外传感器来检测地面上的黑线。
为了实现避障功能,我们采用了超声波传感器来检测前方的障碍物。
此外,我们还选用了两个直流电机来驱动小车行驶,并通过L298N驱动模块来控制电机转动。
4. 软件设计软件设计主要包括初始化配置、循迹算法实现、避障算法实现和远程控制实现。
我们使用了CubeMX工具对STM32的硬件资源进行配置,包括时钟、GPIO、ADC、PWM 等。
然后,我们编写了循迹算法和避障算法,通过不断地读取红外传感器和超声波传感器的数据,调整小车的行驶方向和速度,实现循迹和避障功能。
最后,我们通过蓝牙模块实现了手机APP对小车的远程控制。
5. 实习成果经过一段时间的紧张设计与制作,我们的智能循迹避障小车终于完成了。
在实习总结会议上,我们进行了演示,展示了小车的循迹、避障和远程控制功能。
通过实习,我们不仅掌握了嵌入式系统的设计方法,还提高了团队协作能力。
三、实习收获与反思通过本次实习,我们深入了解了嵌入式系统的设计原理,学会了使用相关开发工具和硬件设备,提高了动手实践能力。
单片机循迹小车实训报告

一、实训目的通过本次单片机循迹小车实训,使学生掌握单片机的基本原理和编程方法,了解循迹小车的构造和工作原理,提高学生动手能力和实践能力,培养学生的创新精神和团队协作精神。
二、实训背景随着科技的不断发展,单片机在各个领域得到了广泛应用。
单片机具有体积小、功耗低、成本低、易于编程等优点,是现代电子设备的核心控制单元。
循迹小车作为一种典型的嵌入式系统,具有较好的应用前景。
通过本次实训,学生可以了解单片机在循迹小车中的应用,提高自己的实际操作能力。
三、实训内容1. 硬件部分(1)单片机:选用AT89C52单片机作为循迹小车的核心控制单元。
(2)循迹传感器:采用红外传感器,用于检测地面上的黑色轨迹线。
(3)电机驱动模块:选用L298N电机驱动模块,驱动直流电机。
(4)电源模块:采用可充电锂电池,为整个系统提供稳定的电源。
(5)其他辅助元件:如电阻、电容、二极管等。
2. 软件部分(1)系统初始化:设置单片机的IO口、定时器、中断等。
(2)循迹算法:根据红外传感器的输入信号,判断小车与轨迹线的相对位置,控制小车行驶方向。
(3)电机控制:根据循迹算法的结果,控制电机的转速和方向,实现小车的前进、后退、左转和右转等动作。
(4)数据通信:通过串口通信,将小车行驶过程中的数据传输到上位机。
四、实训步骤1. 硬件搭建(1)根据电路图,将各个模块连接起来。
(2)检查电路连接是否正确,确保各个模块正常工作。
2. 软件编程(1)编写系统初始化程序,设置单片机的IO口、定时器、中断等。
(2)编写循迹算法程序,根据红外传感器的输入信号,判断小车与轨迹线的相对位置。
(3)编写电机控制程序,根据循迹算法的结果,控制电机的转速和方向。
(4)编写数据通信程序,通过串口通信,将小车行驶过程中的数据传输到上位机。
3. 调试与优化(1)将编写好的程序烧录到单片机中。
(2)调试程序,观察循迹小车的运行状态。
(3)根据调试结果,优化循迹算法和电机控制程序。
模拟循迹小车实验报告

一、实验目的1. 理解循迹小车的工作原理,掌握模拟循迹技术。
2. 学习使用传感器检测道路情况,并根据检测结果进行小车控制。
3. 提高嵌入式系统设计和编程能力。
二、实验原理循迹小车是一种能够按照预设轨迹运行的智能小车。
其工作原理是:通过安装在车身上的传感器检测道路情况,并将检测到的信息传输给单片机,单片机根据接收到的信息对小车进行控制,使小车按照预设轨迹运行。
本实验中,我们采用红外对管作为传感器,通过检测红外对管对光线反射的强弱来判断小车是否偏离预设轨迹。
当红外对管检测到光线反射较强时,表示小车偏离了预设轨迹;当红外对管检测到光线反射较弱时,表示小车位于预设轨迹上。
三、实验器材1. 单片机开发板(如STC89C52)2. 红外对管传感器3. 电机驱动模块4. 电机5. 轮胎6. 跑道7. 电阻、电容等电子元件8. 编程软件(如Keil)四、实验步骤1. 硬件连接:将红外对管传感器连接到单片机的I/O口,将电机驱动模块连接到单片机的PWM口,将电机连接到电机驱动模块。
2. 编程:编写程序,实现以下功能:(1)初始化红外对管传感器和电机驱动模块;(2)读取红外对管传感器的状态,判断小车是否偏离预设轨迹;(3)根据红外对管传感器的状态,控制电机驱动模块使小车按照预设轨迹运行。
3. 调试:将程序烧录到单片机中,进行调试。
观察小车是否能够按照预设轨迹运行。
五、实验结果与分析1. 实验结果:经过调试,小车能够按照预设轨迹运行。
2. 分析:(1)红外对管传感器能够有效地检测道路情况,判断小车是否偏离预设轨迹;(2)单片机能够根据红外对管传感器的状态,及时调整电机的转速,使小车按照预设轨迹运行;(3)电机驱动模块能够稳定地驱动电机,使小车运动平稳。
六、实验总结通过本次实验,我们掌握了模拟循迹小车的工作原理,学会了使用传感器检测道路情况,并根据检测结果进行小车控制。
同时,我们还提高了嵌入式系统设计和编程能力。
七、改进建议1. 可以尝试使用其他类型的传感器,如光电传感器、红外线传感器等,以提高循迹精度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实训报告课程名称:单片机实训完成日期:2014 年 7 月 10 日任务书实训(习)题目:智能小车的功能设计与实现实训(习)目的:(1)、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(2)培养针对课程需要。
锻炼学生查阅有关手册、图标及文献资料的自学能力,提高组成系统、编程、调试的动手能力;(3)对课程的方案分析、选择、比较、熟悉单片机系统开发、研制的过程,软硬件设计的方法、内容及步骤。
实训(习)内容:安装智能小车及相关功能设计、调试实训(习)要求:1. 本实训要求由一个团队完成,团队人员不超过8个人。
2. 通过所学知识并利用智能小车、计算机、 keil软件、烧写软件等完成实训项目,并拟定实训报告。
3. 能正确组装和调试智能小车。
4. 实训完成后,根据实训内容撰写实训报告书一份。
实训报告应包括的主要内容(参考)1 系统硬件组成与工作原理1.1 控制器与最小系统1.2 显示模块与按键模块1.3 报警模块1.4 电机与驱动模块的工作原理与接口1.5循迹模块的工作原理与接口1.6 避障模块的工作原理与接口2 功能方案及软件设计2.1 功能设计2.2 软件设计(结合某一赛道、障碍设置说明程序设计思路,给出流程图、程序代码)3功能调试与总结3.1 功能调试排版要求:正文小4宋体;段首缩进2字,行间距固定值18磅。
内容展开可以按3级标题形式,如:按1 ……、1.1 ……、1.1.1 形式(如果需要)。
每个1级标题另起一页,1级标题三号黑体居中,题序和标题之间空两个空格,不加标点,段前、段后均为1行,固定值22磅。
2级标题:四号黑体左起,四号黑体,段前、段后均为12磅。
三级标题:小四号黑体左起,段前、段后均为6磅。
图名、表名五号黑体,英文、数字字体为Times New Roman页边距:上、下、左3厘米,右2厘米,A4纸打印。
1系统硬件组成与工作原理1.1.1控制器与最小系统最小系统:要使一块单片机芯片工作起来最简陋的接线方式就是单片机的最小系统。
下面STC89C52单片机的最小系统(注意:不同封装的单片机引脚位置不同,下图是DIP40封装)。
将一块单片机芯片接成这样就能工作了。
下面分析一下电路中各个部分的作用:1.供电电路:40脚接电源+5V,20脚接地,这样便完成了单片机的供电。
2.选择使用内部ROM:我们下载程序的时候是将程序下载的单片机内部的ROM里面存放的,将EA/VPP端接到高电平(+5V),就告诉单片机系统我们选择的是内部的ROM,这样单片机工作的时候就会执行内部ROM里面的代码了。
如果将EA/VPP接地,单片机就会执行扩展的外部ROM,我们没有扩展ROM呀,以后在没有扩展ROM的时候我们都将它接高电平就OK。
3.复位电路:复位电路由电阻R1和电容C1组成。
复位电路是用以完成单片机的复位初始化操作的(复位单片机RAM和各个寄存器的值的)。
也就是说,在单片机还没工作之前,我们先把寄存器的值全部复位成初始的默认值然后再开始工作,避免执行程序的时候发生错乱。
那复位电路的工作原理是怎样的呢?在单片机没上电的时候,电容C1两个极板没有电荷,在单片机上电的瞬间,电容C1两端获得电压开始充电,既然C1要充电那么就必定有电流通过R1,所以在R1两端产生了瞬时电压,这个电压被加到了单片机的RST端,单片机的RST端得到了一个高电平便复位了。
随着时间的推移,C1充满电了,再也没电流通过R1了,R1两端便没有了电压,单片机的RST引脚又由高电平变成了低电平,这时,单片机便开始工作了。
值得注意的是,要引起单片机的复位,加在RST端的高电平必须保持在一定的时间以上(连续2个机器周期以上高电平)。
4.时钟电路:时钟电路由C2、C3和晶振Y1组成。
时钟电路的作用是给单片机提供时钟脉冲,只有给单片机提供时钟脉冲单片机才会执行程序。
1.2 显示模块与按键模块1.2.1 显示模块学习目标认识数码管是什么东西?用HJ-1G 点亮第一个数码管,认识一个新的芯片HJ573 集成电路的应用。
1.2.4 单个数码管原理图如果需要显示“3”字符,则“E”“F”“DP”段都不显示,其他段点亮可以根据上图算出需要的8 位段码值:共阴16 进制:0x4F共阳16 进制:0xB0本开发板使用共阴数码管1.2.5开发板数码管模块原理图1.3 源码编写开始写程序之前认识一下锁存器(74HC573):顾名思义,就是把输入端的数据锁存(或送)到输出端,请看下图中的U3 元件,第11 角(锁存端)为高电平的时候,右边D0-D7 的输入与左边Q0-Q7 的输出是直通的,就是说,输入端是什么电平,输出端就是什么电平,可以把它当作不存在。
当第11 角为低电平的时候,左右两端就被断开了,无论输入端怎么变化,输出端都不会变化,当第11 角由低电平变为高电平的一瞬间,输入端的数据立刻被传送到输出端,并且在11 角保持为高电平期间,输出端数据始终与输入端数据相同,如果此时我们再次把第11 角设置为低电平,那么以后当输入端无论再怎么变化,输出端都不会变化而是保持刚才第11 角在下降沿(由高电平到低电平跳变)之间时输入端的值,这样就达到了锁存数据的目的,这也就是所谓的总线设计思路,一个8 位的数据线加一个锁存器后就可以扩接多个元件,当选通哪个元件的片选信号,就送数据给那个元件。
先说这个元件,以后用到别的元件我们再解释。
74HC573 11 脚接高电平,锁存不起作用,相当于直通。
相应的段赋值“1”有效。
74HC138 A、B、C赋值0~7,则输出端分别是Y0~Y7置“0”,如P2=0,则Y0=0;P2=6;则Y6=0;即选通第七个数码管。
程序如下/*-----------------------------------------------内容:数码管使用动态扫描显示,所以可以同时看到数码管同时显示数字或者字符,扫描原理可以参#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit dula=P2^6;sbit wela=P2^7;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void main(void) //每一个C 语言程序有且只有一个主函数,{while(1) //循环条件永远为真,以下程序一直执行下去。
{dula=1;P0=0x5b; //显示一个2dula=0;wela=1;P0=0xfe; //显示一位数码管?可以自己修改显示位数wela=0;delay(1);}}多个数码管同时显示上一节单个数码管显示,实际使用中单个数码管往往不能满足要求,这就需要多个数码管组合使用,单个数码管一般用静态显示,占用IO 口线较多,如果使用普通的静态显示,单片机的IO 口是不够用的。
所以就需要使用动态扫描。
通过程序让任意一位数码管显示任意一种字符,这样我们可以以时间为轴,循环显示每个数码管需要的数值,当循环显示的时间比较小时,眼睛就不能分辨出闪烁,而是看到一个静态的数值显示,可以通过下载“数码管动态扫描”和“数码管动态扫描演示”,就可以深入了解这个原理,以后使用的数码管显示的部分都是基于这个原理的。
1.4总结数码管是最常用的显示输出模块,可以显示温度,时间,步进电机转速等,数码管里面简单一点说是集成了8 个发光管,由点变成线,由7 条线1 个点组成1 个数码管,发光管我们会写程序控制它了,这个数码管一定难不到我们,原理方法是一样的,这次不是单片机IO 口直接驱动的,是加了573 还有138 共同来控制数码管的点亮,主要是为了节省单片机IO 口,一口多用,一个8 位IO 口实现多功能控制。
1.5.1 学习目标独立按键是区别于矩阵键盘的一种按键方式,主要是按键直接连接到IO 口,另外一端连接VCC 或者GND,一般情况连接到GND(地),也就是按键按下的时候,IO 口的电平被强制拉低,即0,而通过IO 输入检测该端口电平就可以判断按键是否按下。
1.5.2 硬件电路1.6 原理图1.6.1 触点存在抖动现象说明由于按键本身都存在不同的机械抖动,单片机属于高速检测器件,可以很容易检测出抖动,但抖动并不是我们需要的,容易造成误操作,所以正常使用过程中需要添加去抖动程序,主要用于跳过抖动,避免造成干扰。
1.6.2 开发板独立按键模块原理图1.7 源码编写独立按键软件操作简单,主要检测按键连接的IO 口是否为“0”,为“0”表示按键按下。
用以下语句:Sbit KEY1 = P3^0;If(!KEY1){//添加按键按下时需要执行的操作}实际使用中按键有固定的机械抖动,根据不同按键抖动时间不同,一般4-15mS,根据这个特点,需要延时躲避抖动,由于按下和释放都会存着抖动,实际使用程序需要进行2 次去抖。
具体程序如下:#include <reg52.h>sbit BY1=P3^4; //定义按键的输入端S2键unsigned char count; //按键计数,每按一下,count加1unsigned char temp;unsigned char a,b;void delay10ms(void) //延时程序{unsigned char i,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}key() //按键判断程序{if(BY1==0) //判断是否按下键盘{delay10ms(); //延时,软件去干扰if(BY1==0) //确认按键按下{count++; //按键计数加1if(count==8) //计8次重新计数{count=0; //将count清零}}while(BY1==0);//按键锁定,每按一次count只加1.}}move() //广告灯向左移动移动函数{a=temp<<count;b=temp>>(8-count);P1=a|b;}main(){count=0; //初始华参数设置temp=0xfe;P1=0xff;P1=temp;while(1) //永远循环,扫描判断按键是否按下{key(); //调用按键识别函数move(); //调用广告灯移动函数}}//如果有干扰请加去抖程序//红外接收头部分用黑色物质遮光,防止干扰按键,因为红外接收和按键使用同一个端口1.3 报警模块一、蜂鸣器介绍蜂鸣器有两种:一种是有源蜂鸣器,只要给它加上恒定的电压,就能发声,另一种是无源蜂鸣器,必须给它加上一定频率的方波或正弦波才能发声,一般实验板配的是无源蜂鸣器,HJ-1G 开发板也不例外,由于驱动蜂鸣器电流要求比较大,所以我们使用8550 三极管来放大驱动,电路如下:FM IO 口为P2.3图2 蜂鸣器外形图注意:喇叭和蜂鸣器不同,如果蜂鸣器直接加5V 电源则发出固定频率的声音。