单片机灭火机器人红外定位算法(编辑修改稿)内容摘要:

理,以指导 整个系统在 下一步的工作。 火源探测模块的框图如 图 31 所示 : 图 31 系统的软件设计 该部分的软件设计主要是涉及到传感器测得温度与火源定位的关系。 火源定位是根据自由空间的能量损耗公 式由测得温度推算出来的。 系统功能的实现 传感器组把测得温度分别通过模数转换传给单片机,单片机通过一定的处理,比较得出温度最高的三个传感器,根据能量在自由空间的衰减规律可知,火源与传感器的距离与传感器测得温度的大小 呈 负相关, 温度越高,距离火源越近,所以,火源即在这三个传感器所对的那个方向上 具体的方位可以通过相应的公式计算出来,这将在第五章中详细推算。 单片机再根据测算结果来计算出机器人要走的路线,并以此来控制机器人的动作。 系统方案设计 中考虑的综合因素 总体方案做指导,指挥全局,设计的初期只能做个大 的方向大体规划,方案要不断修改,才能体现其完善。 当然,这里提的只是慢慢向完善靠拢,方案的设计中,大抵不用考虑细节,细节方面的考虑在系统的硬件设计和软件设计方面尤其重要,细节体现品质,在具体的设计中,打败这个设计的最终结果的,往往不在方案上,而在细节的把握上,所以本次设计中,在硬件设计和软件设计方面更加注意了细节的把握,尽量用自己所学的东西让系统尽量没有什么差错。 上面介绍了本次设计中要设计的各模块的功能及相互间的连接 ,这里主要介 红外测温模块 A/D 转换模块 51 单片机 3 系统总体方案 7 绍在本次实验系统方案设计中要综合考虑的因素 , 本次设计方案当中,尽量对各个方面进 行了周密考虑,希望能制定出一个合理的,周全的方案,在所做方案中具体考虑了以下的几点: ●硬件的选择能否适应系统提出的要求 ●硬件芯片是否能够买到,或者是否和你的预期花费有矛盾换句话说,就是你要用的东西一定要能买到而且要相对你来说不要太贵,这点要求很实际,以做过的工程而言,这个是必须考虑的东西,你不可能用了一个片子,却不知道它是否还在生产,就算它还在生产,也要事先知道它的价格,考虑的程度上可以更进一步,灵活的使用芯片,同功能价格比较低的芯片还是很多的。 ●硬件实现的接口问题,在实际的系统设计中,要实现很多的通 信, 比 如说,单片机与芯片之间的通信 ,传感器与芯片之间的通信 等,采用什么样的接口比较重要。 ●所设计的硬件系统的资源能否满足要求,比如说:片上的 ROM 和 RAM 能否满足软件要求, 传感器的选择是否符合算法要求等。 4 实验系统的硬件设计 8 4 实验系统的硬件设计 硬件器件的选择 AT89C51 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器( FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。 该器件采用 ATMEL 高密度非易失 存储器制造技术制造,与工业标准的 MCS51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 图 41 1.主要特性: 8031 CPU 与 MCS51 兼容 4K 字节可编程 FLASH 存储器 (寿命: 1000 写 /擦循环 ) 全静态工作: 0Hz24KHz 三级程序存储器保密锁定 128*8 位内部 RAM 32 条可编程 I/O 线 两个 16 位定时器 /计数器 6 个中断源 4 实验系统的硬件设计 9 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 2.管脚说明 : VCC:供电电压。 GND:接地。 P0 口: P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当 P1 口的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外部程序数据存储器,它可以被定义为数据 /地址的第八位。 在 FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行 校验时, P0 输出原码,此时 P0 外部必须被拉高。 P1 口: P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口, P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在 FLASH编程和校验时, P1 口作为第八位地址接收。 P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口, P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写 “1”时,其管脚被内部上拉电阻拉高,且作为输入。 并因此作为输入时, P2 口的管脚被外部 拉低,将输出电流。 这是由于内部上拉的缘故。 P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2 口输出地址的高八位。 在给出地址 “1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口: P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个TTL 门电流。 当 P3 口写入 “1”后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平, P3 口将输出电流( ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示: 口管脚 备选功能 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断 0) 4 实验系统的硬件设计 10 /INT1(外部中断 1) T0(记时器 0 外部输入) T1(记时器 1 外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两 个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 FLASH 编程期间,此引脚用于输入编程脉冲。 在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。 此时, ALE 只有在执行 MOVX, MOVC 指令是 ALE 才起作用。 另外,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE 禁止 ,置位无效。 /PSEN:外部程序存储器的选通信号。 在由外部程序存储器取指期间,每个机器周期两次 /PSEN 有效。 但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 /EA/VPP :当 /EA 保持低电平时,则在此期间外部程序存储器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1 时, /EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟 工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.振荡器特性: XTAL1 和 XTAL2 分别为反向放大器的输入和输出。 该反向放大器可以配置为片内振荡器。 石晶振荡和陶瓷振荡均可采用。 如采用外部时钟源驱动器件, XTAL24 实验系统的硬件设计 11 应不接。 有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 4.芯片擦除: 整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE管脚处于低电 平 10ms 来完成。 在芯片擦操作中,代码阵列全被写 “1” 且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外, AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。