基于PIC12F675单片机的可编程多功能时间继电器的设计摘要:定时控制是最基本的自动控制方式,由单片机制作的定时控制,具有定时精确,电路简单等诸多优点,能够实现多种定时模式,利用MCU内部的多个TMR模块,可以设计成多个集成的时间继电器,利用MCU内部的多路ADC转换模块通过各自的电位器独立调整延时时间,而且各定时模块可以级联控制,实现电动机控制电路的简化,如果通过IO口连接外部信号,便于实现多种简单的自动控制。
关键词:MCU、定时器、AD转换、级联控制1、引言常用的电子时间继电器普遍使用CD4060振荡计数分频CMOS集成电流构成,一般采用外部RC振荡器,定时精度低、控制功能单一。
由于这种电子时间继电器内部带有小功率稳压电源模块,用引脚较少的单片机取代原数字电路芯片,可以实现多个定时器集成在一起,或者多个定时级联控制。
如果用较少引脚的单片机构成时间继电器,则提高定时精度,而且实现多个时间继电器的集成,通过编程可以实现多个时间继电器的级联控制。
从而可以大大简化控制电路,节省了线材。
2、单片机及选型单片机又称微控器MCU,生产厂家和品牌很多。
众所周知proteus是开发单片机产品最好用的仿真软件,不但能够进行单片机仿真,而且能够进行电路仿真和PCB电路设计,因此选型时首先考虑容易购置且在proteus中有仿真模型的MCU产品。
经典的普林斯顿构架的51单片机,内部资源少,引脚多,不适合单片机产品的开发。
PIC单片机虽然品种繁多,但是一个IDE软件可以通吃,而且在proteus仿真软件有丰富的仿真模型,这样便于电路研发设计。
其中有PIC12F675[1]单片机是PICF12系列单片机中内部资源较为丰富的品种。
其内部有两个可编程定时器模块TMR0和TMR1,还具有4路10位ADC转换模块和比较器模块,比较适合制作时间继电器的控制电路。
选用PIC单片机的另一个好处是有廉价的替代品,台湾的麦肯单片机质优价廉,可以直接取代。
1.基于PIC675单片机的一次定时的时间继电器去掉原电子时间继电器的数字集成电路芯片,用PIC12F675取代,借用原电路接口,可制作单路、两路多功能时间继电器。
3.1 程序算法时间调节仍然使用原有的电位器,利用内部的ADC模块的转换结果控制定时器的设定值,达到调节时间的目的。
在定时要求不很高的情况下,通过配置字设置可以使用内部复位和内部振荡器,这样可以节省宝贵的IO端口,实际上内部高精度振荡器可以满足几乎所有定时要求。
PIC12F675单片机内集了10位的ADC[2]模块,占用了两个字节的转换数据寄存器ADRESH和ARSEL,选择左对齐方式,仅取用ADRSEH就相当于8位ADC模块,已经能够满足要求。
PIC12F675单片机内集了8位定时/计数器TMR0和16位的定时/计数器TMR1,在一次定时用的时间继电器中,可选用其中任意一个。
如果采用中断方式工作,定时时间越长,则中断的次数越少。
因此首先考虑选用TMR1模块。
TMR1[1]定时计数模块带有3bit的预分频器,最大分频比8,如果选择4MHz的内部时钟,由于PIC单片机一个机器周期有4个时钟周期,定时计数脉冲频率是系统时钟的4分频,因此计时时钟为1MHz。
TMR1一次中断最大定时间隔为:,适当选取设定值可得0.5秒的时间间隔。
TMR1H的设定值256-244=12,TMR1L的设定值256-36=220即可满足要求。
将ADC转换结果做软件计数的上限,仅取高8位时,最长定时时间128秒,如果取10位转换结果做软件计数的上限,则最长延时时间512秒。
3.2程序设计:#include"pic12rf675.h"__CONFIG=0x0004;unsigned char m;unsigned int n;void main(){CMCON=0x07; //关闭比较器功能,低4位为数字IOANSEL=0x51; //设为GP1、GP2、GP5普通数字I/O口,GP0为模拟量输入口ADCON0=0; //选择转换通道0TRISIO=0x21; //设置GP0、GP5为输入,其它为输出。
ADCON0=0x01; //使能ADC模块T1CON=0x39; //设定分频比8,定时器模式,使能TMR1。
TMR1H=12; //设定计数器的计数初始值,一次中断时间0.5秒TMR1L=220;GIE=1; //开放全局中断PEIE=1; //开放第一外设中断TMR1IE=1; //开TMR1溢出中断n=0; //初始化软件计数器计数值m=0xFF;while(1){while (GPIO5==1) //如果复位开关断开{if(nelse{GPIO1=1; //否则继电器得电,软件计数器停止。
n>m;}}if(GPIO5==0) //如果复位按键按下{GPIO1=0; //继电器失电n=0; //软件计数器复位}}}void interrupt ISR() //定时器TMR1中断服务函数{TMR1H=12; //重装计数器初始值TMR1L=220;n ++; //软件计数器加1TMR1IF=0; //复位TMR1定时器重新计数GPIO2=~GPIO2; //指示灯反转,亮灭一次1秒钟。
ADCON0|=0x02; //启动AD转换while (ADCON0&0x02==1); //等待转换完成m=ADRESH; //将转换值读入存储器m中。
}3.3proteus仿真如图3所示:SB是复位按钮,如果定时时间到后,继电器动作,灯泡L1得到供电而点亮。
此后如果按一下复位按钮,则重新开始下一次定时。
R1、C1构成上电复位电路,尽管设置了内部复位,但是没有外部复位,电路将不能仿真。
实际电路安装后无需外部复位也能够正常工作。
D1是橙色发光二极管,系统上电后会亮灭各0.5秒,指示系统处于正常供电状态。
为了降低继电器的工作电流,因此选用工作电压12V的继电器RL1,电压采用未经稳压的12V电源供电,因为借用了原电子时间继电器的电源部分。
1.两路定时器方案两台以上的大电机顺序启动控制电路中,设计一双路或多路时间继电器,可以简化控制电路降低成本。
在上述设计方案中PIC12F675的GP4口没有使用,实际电路中GP3口也可以节省出来,一般时间继电器不设置复位按钮,因此GP5也能节省出来,如果增加一个电位器和继电器,可以构成两路定时器。
4.1使用一个二次延时的时间继电器构成的三台电动机顺序启动逆序停止控制电路用该时间继电器控制交流接触器实现电动机延时自动控制,可以结合接触器的连锁控制,在控制时间到达后,自动切断时间继电器的供电,以节省能耗延长时间继电器的使用寿命。
使用一个二次定时的时间继电器的三态电动机顺序启动、逆序停止控制电路。
SBG是启动按钮(绿色按钮),SBR是启动按钮(红色按钮)SBY时急停按钮。
4.2 三台大功率电动机顺序启动逆序停止电路工作过程分析4.2.1顺序启动过程按下启动按钮SBG后KM1首先得电吸合,第一台电动机启动。
由于中间继电器KA没有得电其常闭触点闭合,因此KM1自锁保持,同时由于KM3线圈没有得电,其常闭触点闭合,双时间继电器线圈得电。
该时间继电器的第一路首先工作,延时一段时间后其KT-1常开触点接通,KM2得电并自锁,第二台电动机启动。
双时间继电器的第一路延时到达后,第二路开始工作,再延时一段时间后,其常开触点KT-2闭合,接触器KM3得电吸合并自锁,第三台电动机启动。
于是实现了三台大电机的顺序启动。
KM3得电后,常闭触点切断了时间继电器线圈KT的供电,达到了省电节能的目的。
4.2.2 逆序停止过程三台电动机顺序启动后,如果按下停止按钮SBR,中间继电器KA吸合并自锁,KA常闭触点断开,于是KM3失电释放,第三台电动机停止运行。
同时双时间继电器KT线圈得电,第一路时间继电器首先工作,延时一段时间后KT-1断开,使得KM2自锁失效,KM2失电释放,于是第二台电动机停止。
继之双时间继电器的第二路开始计时工作,再延时一段时间后,KT-2断开,KM1自锁失效,接触器KM1失电释放,控制电路全部断电,实现了逆序停止。
4.2.3 过载保护电动机运行过程中,如果其中任一台电动机出现过载,其热继电器的常开触点闭合,中间继电器KA得电,如同按下停止按钮一样电动机自动实现逆序停止。
4.2.4 急停保护如果运行中出现紧急情况,按下急停按钮SBY,控制电路立即断电,所有接触器线圈立即失电,三台电动机同时停止运行。
参考资料1、PIC12F629/675中文数据手册第1页、第31~32页2、PIC单片机实例与进阶陈立伟等编著清华大学出版社 2012年1月第一版第154~156页3、PIC单片机易学通三恒星科技编著人民邮电出版社 2006年7月第一版第83页4、PIC单片机原理、开发方法与实践何乐生编著高等教育出版社 2011年1月第一版第233页5、PIC单片机原理与实践曾辉编著北京航空航天大学出版社 2017年1月第一版第300页。