发布时间:2018/10/31 13:16:48 来源:本站
为满足系统要求将系统电路板设计为两块:主控板和分控板。主控板控板采用STC89C52单片机,各个功能通过不同模块来实现,主要包括:单片机最小系统(晶振电路、复位电路)[4]、232电平转换电路、CAN总线控制器电路、CAN总线收发器电路、12864液晶显示电路、DS1302实时时钟电路、AT24C02存储器电路、光信号采集电路、模数转换电路、按键电路、电源电路等组成主控板系统架构。
软件设计就是对各个硬件模块的操作。主要包括:按键程序、12864显示程序、CAN总线程序、DS1302实时时钟程序、AT24C02程序、AD转换程序。
主控板主函数主要包括对各个硬件模块的初始化初始化包括:SJA1000、12864液晶、SIM900A模块、DS1302时钟芯片。读取AT24C02存储器中的系统状态信息并发送到分控板,之后进入主循环扫描按键状态、读取AD采集的亮度值、等待SIM900A产生串口中断。分控板主函数首先初始化SJA1000芯片,PWM输出配置。初始化完成后等待接收主控板发送的开关及亮度信息[5]。主控板主程序流程图如图1所示。
CAN总线通信部分主要是对SJA1000芯片内部寄存器的初始化,包括:首先进入复位模式,设置始终分频寄存器,使能接收中断,设置验收代码寄存器,设置验收屏蔽寄存器,设置CAN总线传输波特率,设置输出方式,最后进入运行模式,打开中断。
本次设计12864液晶工作在串行模式,主要是对其进行初始化操作。首先设置液晶工作在基本指令集,打开显示,清屏。之后等待主程序调用。
图1 主控板主程序流程
编程时没有模块化编程,把所有程序全部写到同一个文件中。现象不正确需要修改时特别麻烦。可读性差。之后学习模块化编程,将程序按照硬件模块分为几个对应的模块来编程。这样各个文件都不是很长而且条理清晰,很容易就能读懂,且修改时也很方便。之后在编写程序的过程中还遇到了一些问题,在老师和同学的以及自己的努力下一一解决,最终完成本系统。
LED路灯是一种节能半导体冷光源路灯[6],由于该系统可能应用的各种复杂的环境中所以在硬件的设计过程中,最主要是要具有较强的抗干扰能力。在选择构成系统电路的元器件时,应着重考虑其工作温度范围、抗干扰性能。在硬件的制作过程中,应尽量减小电源的波动对系统的影响,以及在做PCB板时可通过网格线的方式增加系统的抗干扰能力。本系统能适应复杂环境。所有开关均使用电子器件无机械开关也适用于煤矿,易燃气体的化工厂等。
![]() |
||
|
||