单片机路灯控制系统组群控制件 第11页
图7 主CPU 软件流程图 图8 从CPU软件流程图
五 硬件设计
5.1 PIC16F873 特点
PIC16F873 单片机为28 引脚微处理器,除了具有PIC 系列单片机的共同特点外,还具有以下特点: (1) 具有4KB 的FLASH程序存储器; (2) 22 条I/ O 口线; (3) 192 字节数据存储器; (4) 3个定时器; (5) PIC16F873 有5 路10 位A/ D 通道; (6) PIC16F87 有128 字节的EEPROM。可见, PIC16F873 特别适用于步进电机的驱动控制。由于PIC16F873 具有128B 的EEPROM,因此,还可以用于设定参数需要经常修改的应用场合。
5.2 单片机及接口电路
PIC16F873 单片机为核心的原理图,如图9 所示。可以看出该原理图非常简单,所需的外围器件很少,这样就能大大提高系统的可靠性。单片机的RC 端口(11~18 引脚) 为键盘输入与显示端口。对PIC16F873 ,由于片内没有可在线读写的EEPROM,电机信息如相数及励磁表必须在固化程序的过程中一同固化到芯片的程序存储区中。所以PIC16F873 芯片就不需要键盘输入和显示模块来修改电机参数。对PIC16F873 ,由于片内有 EEPROM,所以可以由用户在线修改和更新所驱动的电机的信息。这使得基于PIC16F873 的电机驱动器具有更大的灵活性和通用性。键盘输入和显示模块是通过外引插头与单片机相连的,在信息修改完后,可以拔除以减小驱动器的尺寸[1~3 ] 。
5.3 DS1302的结构及工作原理
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
5.31 引脚功能表及内部结构图
DS1302的引脚及内部结构如图10所示。
5.32 DS1302的控制字节说明
DS1302的控制字如图11所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 5.34 复位
通过把 输入驱动置高电平来启动所有的数据传送。 输入有两种功能:首先, 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次, 提供了终止单字节或多字节数据的传送手段。当 为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置 为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前, 必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。
5.35 数据输入输出
在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7,数据读写时序见图12。
5.36 DS1302的寄存器
DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字见表2。
此外
DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为COH~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM