基于单片机的定时开关控制器的设计与实现.docx
《基于单片机的定时开关控制器的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于单片机的定时开关控制器的设计与实现.docx(34页珍藏版)》请在冰豆网上搜索。
![基于单片机的定时开关控制器的设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-2/7/a0b35f68-da31-4fad-913e-80552e8388bc/a0b35f68-da31-4fad-913e-80552e8388bc1.gif)
基于单片机的定时开关控制器的设计与实现
基于单片机的定时开关控制器的设计与实现
摘要
随着时代的进步,电子行业的发展,定时器的应用也越来越广泛。
但传统的定时器都是使用发条驱动式、电机传动式等机械定时器。
电子定时器相对传统定时器来说,有体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用等优点。
本设计采用51单片机为核心,阐述了系统工作原理,给出了软件流程。
该电子定时器在满足对电器的电源进行控制,同时也要满足电子定时器的简易操作。
最大时间能达到24h。
关键词
定时器;单片机;数字电路;智能;
DesignandImplementationofTimingSwitch
ControllerBasedonMCU
Abstract
With the progress of era, the development of electronic industry, the application of the timer is becoming more and more widely.But the traditional timer are using spring motor type, motor drive type or clock type mechanical timer, etc.Electronic timer timer relative labor pain, small volume, light weight, low cost, high precision, long life, and safe and reliable, convenient adjustment, suitable for frequent use.This design adopts the 51 single-chip microcomputer as the core, this paper expounds the working principle of the system, the software flow is given.Meet the electronic timer to control the power of the electrical appliances, at the same time to facilitate users to the operation of the electronic timer.Maximum time can reach 24 h.
Keywords
Timer;MCU;digital circuit;
1引言
1.1研究背景与应用
随着时代的进步,定时器的应用越来越广泛,电子定时器在工业中经常用于延时自动开关、定时、报警。
在家用电器中经常用于延时自动开关、定时。
延时自动开关可用于电视机、收音机、录音机、催眠器、门灯、路灯、汽车头灯、转弯灯以及其他电器的延时断电和延时自停电源。
定时可用于照相定时曝光、定时闪光、定时调速、定时烘箱、冰箱门定时报警、定时水位报警、延时催眠器、延时电铃、延时电子锁、触摸定时开关等等,例如数控机床的定时器,在工作一段时间后便能自动切断电源停止工作。
电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。
单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。
定时器主要由显示电路、输入设备、单片机最小系统电路和报警电路组成,但并不是所有的定时器都有显示和报警功能,有许多功能简单的定时器,比如洗衣机的内部定时器就没有显示功能,也有一些家用电器没有报警功能,都是自动定时到一定时间后自动关闭电源。
还有很多定时器用途单一,只适合一种电器的应用。
传统的定时器,通过按键输入定时值,而随着发展,定时器的应用也会越来越广泛,各种智能化的性能也开始逐步实现。
在电子技术飞速发展的今天,电子产品的人性化和智能化已经非常成熟,其发展前景仍然不可估量。
如今的人们需求的是一种能给自己带来方便的电子产品,当然最好是人性化和智能化的,如何能做到智能化呢?
单片机的引入就是一个很好的例子。
单片机又称单片微型计算机,也称为微控制器,是微型计算机的一个重要分支,单片机是20世纪70年代中期发展起来的一种大规模集成电路芯片,是集CPU,RAM,ROM,I/O接口和中断系统于同一硅片上的器件。
单片机的诞生标志着计算机正式形成了通过计算机系统和嵌入式计算机系统两个分支。
目前单片机已渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
单片机已在广阔的计算机应用领域中表现得淋漓尽致电器因此,单片机已成为电子类工作者必须掌握的专业技术之一。
单片机就是一个微型中央处理器,通过编程即能完成很多智能化的工作 ,因此它的出现给电子技术智能化和微型化起到了很大的推动作用。
单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。
但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:
单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。
从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程)方法实现了。
这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。
微控制技术是一种全新的概念,是对传统控制技术的一次革命。
随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。
单片机具有体积小、功耗低、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。
例如精密的测量设备(功率计,示波器,各种分析仪)。
1.2主要研究内容
本文设计的定时开关电源插座电路系统[1]主要是利用单片机P89V51RD2FN作为主控制元件,通过外围电路控制可控开关的通断以达到定时开、关的目的。
P89V51具有体积小、功能强大、运行速度快、价格低廉等优点,非常适合制作集成度较高的控制电路。
通过键盘键入程序控制可控开关和译码器来实现数码管的显示。
主板电路包括MCUP89V51、键盘与显示、输入与输出口、可控开关和稳压等电路组成。
本次设计的主要研究方向以及技术关键如下:
(1)合理选取定时器方案,提高系统的精度;
(2)交直流电压转换;
(3)多路优先译码器的选取及扩展;
(4)与微机连接进行程序的汇编输入,实现对定时功能的调试;
(5)显示部分中数码管的四位一体共阴接法。
主要技术指标如下:
(1)具有电子钟功能,显示为四位数
(2)可设定定时起动(开始)时间与定时结束(关断)时间
(3)定时开始,指示灯亮;定时结束,指示灯灭
(4)定时范围可以选择
(5)开关次数:
≥2次/天
(6)时钟日差:
≤±2秒/天
(7)工作温度范围:
-10º~50º
(8)工作条件:
AC220V,10A,50Hz
(9)使用范围:
办公室电源开关、实验室电源开关等
(10)插头插座孔型:
插头国标三扁型
2系统基本方案的选择与论证
2.1本设计方案思路
单片机虽然种类繁多,但每片单片机内部结构都大同小异,均由控制器、运算器、存储器、输入端口、输出端口等组成。
各个厂商制成了多种型号的单片机。
任何一种单片机不论功能如何强大,都是通过其I/O口来发辉作用的,用户可根据所需来选择单片机的型号,引脚最少从8脚到近百脚的都有。
本设计实现通过定时电路来控制电源插座开关的通断,和时钟电路的显示为主要目的;以时钟信号的检测,信号控制,信号译码和数据显示为主要设计内容。
本设计用单片机设计的体积小巧的定时器来控制电源开关插座的通电和断电,并还能作为一台数字钟使用实现时间显示。
根据需要选用了一片40条引脚的P89V512FN单片机[6],属于飞利浦80C51系列单片机,带64KB闪存和1024字节RAM。
并且P89V51系列单片机内部包含64位FLASH的ISP(在线可编程系统)和IAP(在应用编程)。
其设计的几个基本模块如下图2.1,包括:
插头插座(孔型),控制开关,电平转换器,单片机系统,显示电路部分[5]。
本次系统基本方案的选择主要包括可控开关的选择,时钟信号的实现,译码方案的选择,单片机芯片的选择。
图2.1定时开关电源插座的设计原理框图
2.2可控开关设计的选择
本设计中的定时操作是通过可控开关收到外部电路的控制信号后延时通断的。
其中延时实现方式分类一般按常规可分为以下几种:
a、通电延时;b、接通延时;c、断电延时;d、断开延时;e、(间隔)定时;f、往复延时;g、星三角启动延时;h、程序式延时。
方案一:
普通晶闸管
一种以硅单晶为基本材料P1N1P2N2四层三端器件,由于它特性类似于真空闸流管,所以国际上通称为硅晶体闸流管,简称可控硅T。
又由于可控硅最初应用于可控整流方面所以又称为硅可控整流元件,简称为可控硅SCR。
在性能上,可控硅不仅具有单向导电性,而且还具有比硅整流元件(俗称“死硅”)更为可贵的可控性。
它只有导通和关断两种状态普通可控硅在电路中最基本的用途就是可控整流。
大家熟悉的二极管整流电路属于不可控整流电路。
如果把二极管换成可控硅,就可以构成可控整流电路。
方案二:
继电器
继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
它是一种当输入量(电、磁、声、光、热)达到一定值时,输出量将发生跳跃式变化的自动控制器件。
其中电磁继电器是在输入电路内电流的作用下,由机械部件的相对运动产生预定响应的一种继电器。
电磁继电器的工作原理和特性如下:
电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。
只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。
当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。
这样吸合、释放,从而达到了在电路中的导通、切断的目的。
对于继电器的“常开、常闭”触点,可以这样来区分:
继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。
还可选用时间继电器,时间继电器是一种利用电磁原理和机械原理实现延时控制的控制电器,一般可分为通电延时型和断电延时型两种类型。
断电延时时间继电器里有延时常开接点、延时常闭接点、瞬时常开接点和瞬时常闭接点。
其原理如下:
当断电延时时间继电器的“线圈”断电开接点—时,延时常开接点——经过设定时间后断开;延时常闭接点——经过设定时间后接通;瞬时常开接点——立刻断开;瞬时常闭接点——立刻接通。
方案选取:
可控硅优点如下:
无触点,开断无涌流,开端速度快,可以控制过零开断。
缺点:
成本高,控制相对复杂,容量小,功耗大,发热严重;继电器优点:
技术成熟可靠,触点容量相对较大,成本低,几乎零功耗,发热量小。
缺点:
开断时会产生涌流,由于反应稍慢,无法用于很精细开断控制电路中,如移向调压等。
综合考虑两种可控开关各自的优缺点,在本设计中最终是采用电磁继电器通断主电路,主要是考虑到继电器结构简单,消耗电能少体积小,成本低,且控制时动作快、可靠性好。
这类继电器在制成电灯定时节电开关或电风扇的定时并调速开关或电热器的定时并调温开关,或电灯的定时并调光开关或通用的定时并调压插座都有广泛的应用。
2.3时钟信号的实现
本设计实现通过定时电路来控制电源插座开关的通断,和时钟电路的显示为主要目的;以时钟信号的检测,信号控制,信号译码和数据显示为主要设计内容。
定时器是本设计系统中的重点,时间控制器(即定时器)既可以通过纯硬件实现,也可以通过软硬件结合实现,根据时间控制器的核心部件—秒信号的产生原理,通常有四种形式,如下所述。
方案一:
采用石英钟专用芯片的实现形式
采用石英钟专用芯片的实现的时间控制器,具有实现简单、计时精度高的特点。
石英计时芯片比较多,常用的型号有STP5512F、SM5546A和D60400等。
如结合利用5512F的2秒输出信号作为秒信号电路的计数脉冲,可实现电子时钟。
方案二:
采用NE555时基电路的实现形式
采用NE555时基电路或其他振荡电路产生秒脉冲信号,作为秒加法电路的时钟信号或微处理器的外部中断输入信号,可构成时间控制器。
由555构成的秒脉冲发生器电路[2]。
输出的脉冲信号Vo的频率f=1.443/(Ra+2Rb)*C,可以通过调节这3个参数,使输出Vo的频率为精确的1HZ。
但这类定时器精度低,脉冲周期由外接的电阻和电容决定,常用于旋转灯光控制等。
方案三:
采用单片机常用的时钟芯片
通常采用并行的实时时钟芯片计时、EEPROM作为存储器,但对一些微小型智能控制设备而言,并行实时时钟芯片封装形式大,再加上EEPROM,占用扩展线多,使电路结构很难进一步简化。
Dallas公司生产的串行实时时钟芯片DS1302[3]具有实时时钟和静态RAM,采用串行通信,可方便地与单片机接口。
除了在工业控制中使用外,还可以应用到一般的时钟计数上。
方案四:
用软件来实现定时。
通常利用单片机或多媒体或PLC内部的定时器,编写大量的源程序来设计,常称为软件定时器。
电子定时器[4]可用一般数字电路搭建而成,一台四位数的定时器要用十多片数字电路组成,电路结构复杂、体积庞大,而且功能有一定的局限性。
在进行定时电路设计时,如果需要定时的时间不是很精确且时间较短的话,往往采用555定时集成电路来实现。
然而,若需要定时的时间较长(如1小时以上)则采用专用的集成电路定时器比较方便[5],而且使用定时器专用集成电路所设计的应用电路比较简单,同时调试也比较容易。
本设计采用单片机作为主硬件电路,外围电路简单,配合软件设计,使用其灵活的编程实现定时,译码和时间显示等,使定时器插座可有更多的扩展功能选择。
方案选取:
在单片机的内部RAM中,需要设置显示缓冲区,显示的时分秒值是从显示缓冲区中取出的,在RAM中设置四个单元作为显示缓冲区,分别是7AH、7BH、7CH。
为使电路和原理叙述方便,我们这里不显示秒值,秒的进位我们通过闪烁分值实现。
这样我们一共有四位LED分别显示时和分值,同时时钟都需要校准的。
在程序中还需设置显示码表,要显示的数值通过查表指令将显示用的真正码值送到LED上。
我们用单片P89V51RD2FN[7]的P1.5,P3.6和P3.7这三个I/O口外接微动开关来实现时和分的校正,其中P1.5实现每按一次小时或分值加1,连续按下数值累计下去,实现时钟的校准。
时钟的最小计时单位是秒,但使用单片机定时器来进行计时,若使用6.0MHz的晶振,即使按工作方式1工作,最大的计时时间也只能到131ms,所以我们可把每个定时时间取125ms,这样定时器溢出8次(125ms×8=1000ms)就得到最小的计时单位秒。
而要实现8次计数用软件方法实现是轻而易举的。
我们使用定时器1,以工作方式1工作,定时器进行125ms定时。
采用中断方法进行溢出次数的累计,当计满8次即得到1秒的计时。
一个时钟的计时累加,要实现分、时的进位,要用到多种进制,秒、分、时中的进位是十进制,秒向分进位和分向时进位却是六十进制,而每天又有十二小时制或二十四小时制,它们分别又是十二进制和二十四进制。
从秒到分和从分到小时可以通过软件累加和数值比较方法实现。
2.4译码方案的选择
本设计显示电路可分为三大块:
键盘电路,输入端译码电路和输出控制端数码显示电路。
显示电路端译码通过硬件译码或软件译码都可以实现。
方案一:
硬件译码
上面的三大显示模块和显示段码完全由硬件电路设计实现,具体的硬件电路。
对于相应的本系统中单片机,我们可选用简化的51系列单片机AT89C2051[7](20管脚),显示电路主要由七段共阳显示译码器74LS47、3线-8线译码器74LS138、4个PNP型三极管和四个数码管组成。
通过AT89C2051的P1.4~P1.7口将要显示字符的BCD码输出到74LS47的四个输人端,然后译码并输出相应的笔段来驱动LED数码管(共阳)。
电路图中数码管的低电平段选信号由P1口的P1.0-P1.6输出,其真值表见下表2.1。
P1.7输出秒闪烁信号,P3口的P3.0、P3.1输出位选信号给74LS138。
74LS138被选中的端口输出低电平,PNP三极管导通,对应的数码管点亮。
P3.2、P3.3、P3.4、P3.5分别作“调时”、“调分”、“定时开”、“定时减”的功能按钮开关,P3.7输出控制信号,使双向可控开关通电或断电,控制“输出插座”接通或断开220V交流电,从而控制外接电器的工作状态。
其中A/D转换器采用宽工作电压,单输入通道,串行I/O接口8位A/D转换器TLC548CP。
表2.10-9显示真值表
显示字符
p1口(p1.7-p1.0)
16进制数
0
00111111
3F
1
00000110
06
2
01011011
5B
3
01001111
4F
4
01100110
66
5
01101101
6D
6
01111101
7D
7
00000111
07
8
01111111
7F
9
01101111
6F
其中P3.2、P3.3、P3.4、P3.5分别作“调时”、“调分”、“定时开”、“定时减”的功能按钮开关;P3.7输出控制信号,使继电器线圈通电或断电,控制“输出插座”接通或断开220V交流电,从而控制外接电器的工作状态。
数码管选用四位一体共阳接法,每个数码管由7段笔划组成,每段笔划由一只数码管点亮,其管压降为1.7-2.2V、电流5-20毫安。
LED数码管显示采用动态扫描方式,见下图2.2。
即在某一时刻,只有一个数码管被点亮。
数码管的位选信号由AT89C2051的P3.3~P3.5输出,并经74LSl38译码后通过三极管放大,以驱动相应的数码管。
LED数码管具有低电压小电流情况下发光,能与cmos以及ltl电路很好的兼容。
发光响应时间短(<0.1μs),高频特性好,单色性好,亮度高。
体积小重量清,有很好的抗冲击能力。
寿命长,寿命高达10万小时以上,甚至可以达到100万小时。
成本低可以广泛的使用在各种电子仪器仪表上。
本设计译码电路选取74LS138译码集成芯片,其管脚分布如下图2.3,用来驱动4个LED,从功能表上可以看出它的输出只有一个低电平,也就是可以用来用灌电流的方式进行驱动LED,工作电压Vcc=5V,输出可以直接连接LED,没有带来不稳定因素,当然实际中应该串接保护电阻,估计常用的200-300欧姆都可以。
图2.2LED动态扫描电路
图2.374LS138的管脚分布图
从总的设计可以看出,单片机的控制输出是通过P3.0~P3.2口完成的。
当程序开始时,这三个口的输出状态都是低电平,AT89C2051通过程序查询三路输出的ON或OFF状态预置时间是否已到,若时间到,则改变相应的输出状态,以完成对外部电路的控制。
方案二:
软件译码
即上面的三大显示模块和显示段码完全由软件设计实现。
对于硬件译码来说,扩展多片的外部程序存储器采用多片的ROM扩展时,其片选信号CS的处理方法若采用全硬件实现,优点是扩展的各个EPROM的地址空间可以是连续的,能得到64K的完整空间;缺点是电路结构复杂,需附加译码器电路,常用的如上面提到的74138。
由于单片机本身具有较强的逻辑控制能力,采用软件译码并不复杂。
其译码逻辑可以随意编程设定,不受硬件逻辑限制,同时还能简化硬件电路结构。
因此,在单片机应用系统中使用非常广泛。
综上,本设计LED译码和显示模块就是采用软件译码实现,程序编写用C语言。
作为一种结构化的程序设计语言,C语言的特点就是可以使你尽量少地对硬件进行操作,具有很强的功能性、结构性和可移植性,常常被优选作为单片机系统的编程语言。
用C编写程序比汇编更符合人们的思考习惯,开发者可以摆脱与硬件无必要的接触,更专心的考虑功能和算法而不是考虑一些细节问题,这样就减少了开发和调试的时间。
C语言具有良好的程序结构,适用于模块化程序设计,因此采用C语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,将功能模块化,由不同的模块完成不同的功能,这样可使整个应用系统程序结构清晰,易于调试和维护。
不同的功能模块,分别指定相应的入口参数和出口参数,对于一些要重复调用的程序一般把其编成函数,这样可以减少程序代码的长度,又便于整个程序的管理,还可增强可读性和移植性。
3硬件设计
本设计的硬件电路包括单片机P89V512FN电路、键盘输入与数码显示输出、信号输入与输出口、三孔扁平插座,可控开关和稳压器等电路组成。
具体主要有三个模块:
单片机控制数码显示模块;插座串接继电器模块;AC/DC5V输出稳压模块(如下图3.1)。
随着外加220V/50HZ的交流电加到插座的同时,AC/DC实现电压交直流的转换,把220V的交流电变为5V的直流电用于SRD电磁继电器的工作电压。
可控开关装置中的电磁继电器[8]收到单片机高低脉冲电平的变化相应做出吸合或断开的指令控制,从而控制插座电源的通断。
而单片机软件编程通过串口输入和USB接口主要实现键盘、LED显示等各模块的功能,采用C语言编程,来控制译码器译码以及数码管显示。
本设计硬件部分电路图见附录1。
其中本系统的核心单片机MCUP89V512FN为40脚600MIL封装,是CMOS型飞利浦80C51系列单片机,带有2KB闪存E2PROM型。
该单片机除了少了两个并口外,能兼容MCS-51系列单片机的所有功能,且具备体积小、功能强、运行速度快等特点。
该电路可通过单片机的P3.7口连接一个键盘电路来实现对参数的人工自由设定,同时可通过串口连接4位LED数码管,以分别显示小时、分钟和秒。
系统定时启动是通过P3.0口完成的。
程序开始时这三个口的输出状态都是低电平,P89V512FN通过程序查询P3.0口输出ON或OFF的状态预置时间是否已到,如果已到时间,则改变相应的输出状态,从而完成对外部电路的控制。
P89V51RD2的典型特性是它的X2方式选项。
利用该特性,设计者可使应用程序以传统的80C51时钟频率(每个机器周期包含12个时钟)或X2方式(每个机器周期包含6个时钟)的时钟频率运行,选择X2方式可在相同时钟频率下获得2倍的吞吐量。
从该特性获益的另一种方法是将时钟频率减半来保持特性不变,这样可以极大地降低EMI。
Flash程序存储器支持并行和串行在系统编程(ISP),ISP允许在软件控制下对成品中的器件进行重复编程。
应用固件的产生/更新能力实现了ISP的大范围应用。
5V的工作电压,操作频率为0~40MHz。
图3.1本设计的三大模块
如附录1,上半部分是数码管显示电路;下半部分是由桥式整流二极管和LM7805组成的AC/DC稳压电路,将220V的交流电压整流,滤波后输出直流5V电压用于单片机的工作电压;中间部分是由四个按扭开关和单片机相应管脚(P1.4,P1.5,P3.6,P3.7)连接,分别对应LED时间显示模式控制(开关SW1)、操作控制(SW5)、执行加键(开关SW2),执行减键(开关SW3)。
此外还有单片机外接热敏电阻,复位键(开关SW4)以及蜂鸣