基于51单片机点光源自动跟踪系统设计_综合设计报告(编辑修改稿)内容摘要:

用来精确检测太阳的视高度。 其电路图如如 210所示。 图 210 检测电路 单片机模块 的内部结构和引脚 AT89C52 是一个低功耗高性能单片机, 40 个引脚, 32 个外部双向输入 /输出( I/O)端口,同时内含 2个外部中断口, 2 个 16 位可编程 定时计数器, 2个全双工串行通信口, AT89C52 可以按照常规方法进行编程,也可以在线编程。 其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。 管脚说明如下: VCC:电源。 GND:地。 14 P0 口: P0 口是一个 8 位漏极开路的双向 I/O 口。 作为输出口,每位能驱动 8 个 TTL 逻辑电平。 对 P0 端口写“ 1”时,引脚用做高阻抗输入。 当访问外部程序和数据存储器时, P0 口也被作为低 8 位地址 /数据复用。 在这种模式下, P0 具有内部上拉电阻。 在 Flash 编程时, P0 口也用来接收指令字节;在程序校验时,输出指令字节。 在程序校验时,需要外部上拉电阻。 P1 口: P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口, P1 输出缓冲器能驱动 4 个 TT 逻辑电平。 当对 P1 端口写“ 1”时,内部上拉电阻把端口拉高,此 时可以作为输入口使用。 当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。 此外, 和 分别作为定时器 /计数器 2 的外部计数输入( )和定时器 /计数器 2的触发输入( ),在 Flash 编程和校验时, P1 口接收低 8 位地址字节。 P2 口: P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口, P2 输出缓冲器能驱动 4 个 TT 逻辑电平。 对 P2 端口写“ 1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 当作为输入使用时,被外部拉低的引脚由于 内部电阻的原因,将输出电流( IIL)。 P3 口: P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口, P2 输出缓冲器能驱动 4 个 TT 逻辑电平。 对 P3 端口写“ 1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。 P3口也可作为 AT89C52 的一些特殊功能口,如下所示: RXD(串行输入口) TXD(串行输出口) /INT0(外部中断 0) /INT1(外部中断 1) T0(记时器 0外部输入) T1(记时器 1外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 15 RST: 复位输入。 在晶振工作时, RST 脚持续两个机器周期高电平将使单片机复位。 看门狗计时完成后, RST 脚输出 96 个晶振周期的高电平。 特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功能无效。 在 DISRTO 默认状态下,复位高电平有效。 ALE/PROG:地址锁存控制信 号( ALE)在访问外部程序存储器时,锁存低 8 位地址的输出脉冲。 在 Flash 编程时,此引脚( PROG)也用做编程输入脉冲。 PSEN:外部程序存储器选通信号( PSEN)是外部程序存储器选通信号。 当AT89S52 从外部程序存储器执行外部代码时, PSEN 在每个机器周期被激活两次,而在访问外部数据存储器时, PSEN 将不被激活。 EA/VPP:访问外部程序存储器控制信号。 为使能从 0000H 到 FFFFH 的外部程序存储器读取指令, EA 必须接 GND。 为了执行内部程序指令, EA应该接 VCC。 在Flash 编程期 间, EA 也接收 12 伏 VPP 电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 AT89S52 单片机引脚功能介绍 (如图 211): 图 211 AT89S52 DIP 封装管脚分布图 单片机 1通过与 ADC0809 连接,接收 ADC0809 转换后的数据并对其作出判断与比较,在 P2 口发出信号与单片机 2通信。 其电路连接图如图 212 所示: 16 图 212 单片机 1 电路图 单片 机 2 通过接收单片机 1 的 P2 口发出的信号作出判断控制水平与竖直方向上的电机运作以求太阳能板正对光线。 其电路连接图如图 213 所示: 图 213 单片机 2 电路图 17 单片机 1 主要负责接收 ADC0809 转换后的数据,并通过比较产生控制信号并将信号发送给单片机 2,而单片机 2 主要负责接收信号然后通过信号控制两台步进电机的运作从而达到实验目的。 两片单片机的通信接口协议如表 25 所示: 表 25 单片机通信 接线 1 接线 2 接线 3 单片机 1 P2^6 P2^5 P2^4 单片机 2 P3^2 P3^3 P3^4 系统软件设计 本设计,程序采用 C语言进行设计。 程序中主要有以下几个主要子程序:主程序, ADC0809 初始化、采集、转换数据程序,电机驱动控制程序。 程序源代码见附录。 18 三、 总体调试 软硬件调试 硬件焊接及程序编写完成后,在对整个系统调试的过程中,出现了电机不运转等问题。 主要通过单独调试各个模块及检查相关硬件电路的焊接,找出问题所在,然后针对问题逐个击破,最后成功完成本设计。 主要问题及解决方案 通道比较阀值的设置 由于采用 ADC0809 进行数模转换,而在转换过程中光敏电阻的采光是时时变化的,所以 8个通道的数据比较过程会有一定波动,如不加阀值比较则会致使电机不停工作,最后太阳能板无法准确对光。 在阀值的选定上,通过实物测试,最后选定在 +5( 5)。 这个阀值既能数据比较的准确性又能保证电机的正常运转。 电机的防抖 在最初程序编写过程,由于没考虑到检测时候的延时及数据的波动,导致最初的太阳能板在最后对光时不停波动。 后来通过程序延时的加入、数据比较时阀 值的引入及实物测试终于使此问题得到改善,成功完成太阳能板的对光。 19 四、 设计总结 本次课程设计使我对设计一个完整的计算机控制系统有了更全面的体会,通过绘制电路原理图,温故了 PROTEL 软件,提高了我的动手设计能力。 电路焊接过程中,通过每个对模块的焊接和测试,极大地提高了我动手分析解决问题的能力。 本设计通过两片 AT89C52 分别控制数模转换芯片 ADC0809 与电机驱动控制芯片构成数据采集转换电路与电机驱动控制电路实现光源的自适应控制。 同时又利用单片机 AT89C52 内部计时器,节约了大量资源。 但是,由于存在步进电机转角度数精度不高、手工制作的实验装置的不规整等非线性、 ADC0809 数据转换不够精确等问题,所以存在误差,所以本设计还有待继续研究和改进。 在本次课程设计中,通过和队员之间的合作,使得我们能顺利完成设计任务,体会到了合作的力量,增强了我团队合作意识,在方案选择和电路原理图的设计过程中,感谢老师的悉心指导,才能顺利地完成设计,节省了很多时间来应付更大的障碍。 特在此忠心感谢。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。