由于1308内部集成了强大的信号处理功能,所以在本系统中使用这个1308的接收头的时候我们只需要在外部加上一个滤波电路就可以了,这个RC滤
波电路是为了滤除电源端的干扰信号。具体应用电路图如图4所示
图4
3. 液晶显示模块
在本系统中我们采用1602字符型液晶显示模块来显示步进电机的转速、起停以及正反转等步进电机的状态。字符型液晶显示模块是专门用于显示字母、数字、符号等的点阵型液晶显示模块。分4位和8位数据传输方式。提供5*7点阵+光标和5*10点阵+光标的显示模式。可以显示两行每行8个字符。提供内部自动上电复位电路,+5V工作电压。一共有16个引脚,其中一对电源引脚、一对LED背光电源引脚、LCD驱动电压引脚、一个模式选择引脚、一个读写操作引脚、一个使能引脚以及7个数据引脚。其中LCD驱动电压V0可通过滑动变阻器进行调节,一般V0为零伏。具体应用电路图如图5所示
图5
4. 步进电机驱动模块
本系统采用额定电压为5VDC,相数为4相的步进电机,驱动方式为4相8拍。一共有5跟线连接,其中红色的为电源线。采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。由于单片机P口输出的电流比较弱不能驱动步进电机,所以要加一个
ULN2003芯片来放大电流使之能驱动步进电机工作。ULN2003是高耐压、大
电流达林顿陈列,由七个硅NPN 达林顿管组成。ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。步进电机驱动电路如图6所示
图6
三、硬件电路设计 本系统采用的核心器件是AT89C51单片机,有4个P口,其中P1 P2 P3内部含有上拉电阻,P0口内部不含上拉电阻。在本系统中用P0口来控制LCD液晶显示模块,p1口来控制步进电机的驱动,外部中断0(P3.2)来接3收红外控制信号。AT89C51单片机引脚图如图7所示
图7
单片机复位电路的设计。当AT89C51单片机的复位引脚RST(全称RESET)
出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。89C51单片机提供了上电复位和按键复位两种方式,本系统中采用按键复位电路。具体复位电路如图8所示,其中C4是104陶瓷电容,C3是22uf/25V的电解电容,R1的阻值为10K欧。 单片机时钟电路的设计。89C51提供了外部时钟电路和内部时钟电路两种方式,本系统采用11.0592MHz晶振的外部时钟电路方式,在晶振两端接2个30pf的陶瓷电容。这两个电容成为晶振的负载电容,它会影响晶振的谐振频率和输出幅度。具体晶振电路如图9所示
图8
图9
四、系统软件设计 本系统的软件设计分LCD显示子程序、红外解码判断子程序、步进电机控制程序和主程序组成。整个系统采用C语言进行编写。 1. 主程序
主程序包括系统的初始化、LCD子程序的调用以及定时器中断函数和步进电机控制函数组成。系统初始化包括对LCD显示模块数据位、命令位,红外解码标志位以及步进电机停止转动的等级的定义与初始化,定时器中断函数主要设定定时器中断间隔和步进电机转动的等级,步进电机控制函数由步进电机索引函数和对索引值的加减函数组成。系统的主程序流程图如图10所示
开始系统初始化调用LCD函数定时器中断处理函数步进电机控制函数结束
图10
2. LCD子程序
LCD子程序主要实现的功能是显示步进电机的状态。LCD第一行显示静态的“B140415 08 09 23”,这个是我组三同学的学号,第二行动态的显示静态的“RANK:”和不同速度步进电机转动的等级以及正反转的标志,正反转的标志为正转为“+”,反转为“-”。系统LCD显示子程序流程图如图11所示
写命令函数写数据函数显示静态字符函数显示动态字符函数LCD显示结束图11