当前位置:文档之家› 基于单片机的简易智能插座设计

基于单片机的简易智能插座设计

基于单片机的简易智能插座设计
文章提出一种基于8位8051内核单片机的智能插座设计方案,以单片机STC89C51RC作为智能插座系统的主控芯片,将LCD1602作为人机交互介质,实时显示当前时间和目标时间,从而通过单片机对电磁继电器的控制实现了以弱电控制强电,自动导通或断开电路的目的。

标签:智能插座;STC89C51RC;单片机;LCD1602
引言
随着物联网技术的迅猛发展,智能家居正在逐渐步入寻常百姓的日常家庭生活之中。

智能家居系统在兼具传统普通家居的一些功能的同时也在逐步地让人们享受着作为智能家居所给生活带来的安全性、舒适性以及便利性,特别是自身所具有的节能环保的一些独特优势。

智能插座是智能家居构成系统中最基本同时也是必不可缺少的设备之一,它具有自主提前定时,自动通断电从而实现节能省电的特点,用户可以根据家庭实際需要随意提前设定智能插座的通电时间或断电时间从而满足自己的生活需要。

在本设计中选取基于8位8051内核的STC89C51RC 单片机作为主控芯片,以LCD1602作为人机交互的可视介质,实现了单组定时功能,并且可通过对继电器的控制达到自动导通或断开电路的目的。

1 系统硬件设计
系统硬件电路共分为单片机最小系统模块、LCD1602显示模块、按键输入模块和继电器控制模块四个部分。

其中,单片机最小系统是整个系统的核心控制单元,负责协调和控制外围数字电路或模拟器件;LCD1602显示模块用来实时显示当前时间和目标时间;按键输入模块用来设定当前时间和目标时间;继电器控制模块是整个智能插座系统设计中最终的受控单元,相当于一个电路开关,用来实现导通或断开电路。

1.1 单片机最小系统模块
单片机是单片微型计算机(Single Chip Microcomputer)的简称,就是把组成微型计算机的各个部件,比如中央处理器CPU、随机存取存储器RAM、只读存储器ROM、可编程存储器EPROM、并行及串行输入输出I/O接口电路、定时器/计数器、中断控制器等集成在一块半导体芯片上而构成的一个微型计算机系统[1]。

一片单片机外接上时钟电路和复位电路就是一个单片机系统,通常我们称之为单片机最小系统。

本设计所采用的单片机型号为STC89C51RC,它是一款基于8051内核,采用CMOS工艺生产,具有低功耗特点的8位单片机。

STC89C51RC拥有4个8位并行输入输出I/O接口:P0口、P1口、P2口和P3口,2个16位定时器/计数器、6级中断系统和21个特殊功能寄存器SFR等。

单片机的定时功能是通过内置的时钟电路和定时电路而实现的,我们采用内部时钟方式来产生时钟,将单片机片内的高增益反相放大器通过XTAL1和XTAL2外接片外晶体振荡器与瓷片电容组成的并联谐振回路所构成的自激振荡器来提供振荡时钟。

我们在该时钟电路中采用12MHZ的石英晶振,单片机时钟频率为12MHZ,12个时钟周期为一个机器周期,那么此时单片机的机器周期就是1μs。

1.2 LCD1602显示模块
液晶显示器简称为LCD,它的工作原理一般是通过电流刺激液晶分子并配合液晶屏背光来形成画面。

目前市面常见的各种型号液晶显示器通常是按照液晶最大能显示字符的行列数来命名的,例如LCD1602每行最多可以显示16个字符,一共可以显示2行。

本设计使用的LCD1602采用5V直流电压驱动,内置了128个字符的ASCII 字符集字库,只能显示ASCII字符而不能显示汉字,如果希望显示汉字则可以选择LCD12864。

设计中我们将单片机P0端口作为LCD1602的8位数据接口,通过并行方式操作,P2 端口作为LCD1602的数据/命令选择接口(H/L),P2 端口作为LCD1602的读/写选择接口(H/L),P2 端口作为LCD1602的使能接口,高电平有效。

1.3 按键输入模块
我们采用四个小弹性按键作为单片机的外围输入控制器件,用来设定当前时间和智能插座导通/断开的目标时间。

本设计中我们把四个按键的一端接地,另一端分别与单片机的P2 、P2 、P2 、P2 相连并接入电路,确保单片机P2 、P2 、P2 、P2 四个I/O端口被赋予高电平状态,我们让单片机不断的循环检测这四个I/O端口是否变为低电平,当按键闭合时,即表示该I/O端口通过按键与地相连,变成低电平,程序一旦检测到I/O端口变为低电平就说明该端口与之对应的按键被按下,那么单片机执行相应的程序指令。

1.4 继电器控制模块
继电器是当输入量(如电压、电流、温度等)达到规定值时,使被控制的输出电路导通或断开的电器。

继电器具有动作快、工作稳定、使用寿命长、体积小等优点,通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种自动开关[2]。

我们所采用的继电器又名电磁继电器,由铁芯、线圈、衔铁和触点簧片等组成。

电磁继电器的工作原理是继电器线圈在通过电流时会通过电磁感应而产生磁场,衔铁在电磁力的作用下克服簧片拉力而吸向铁芯与继电器的常开触点吸合,当线圈断电后,磁场消失,衔铁在弹力的作用下返回初始位置。

本设计中我们采用单片机控制双极型三极管的导通与否来实现控制继电器线圈上电流的导通与断开。

从双极型三极管的结构看,有NPN和PNP两种类型。

但是,无论哪一种类型,管子内部都有三个区、两个PN结,并引出三个电极。

三个区——发射区、基区和集电区;两个PN结——发射结和集电结;三个电极——发射极e、基极b和集电极c[3]。

我们将继电器线圈一端外接5V直流电源正极,另一端串联一个PNP三极管的发射极e,该三极管的集电极c接地,基极b接单片机P1 端口,当P1 置为低电平时三极管导通,此时继电器线圈通电,当P1 置为高电平时三极管不导通,此时继电器线圈断电。

2 系统程序设计
整个系统程序设计的原理就是通过单片机内置的定时器,每50ms触发一次定时器中断,在定时器中断函数中累计触发定时器中断的次数,那么每当定时器中断触发次数累计到20次的时候就表示经历了1s的时间间隔,此时通过单片机计算出当前的时间,然后与目标时间进行对比,如果当前时间与目标时间相等(或者超越目标时间)则说明目标时间已经到达,单片机发出信号控制继电器动作即可达到导通/断开电路的目的。

单片机STC89C51RC内置有两个16位可编程定时器/计数器,即定时器T0和定时器T1,它们同时具有定时和计数功能,通过设置相关的特殊功能寄存器就可以选择启用定时或计数功能。

单片机一旦开启定时功能后,定时器就会在外部石英晶振的作用下自动开始计时,当定时器的计数器计满后会触发定时器中断。

定时器/计数器的本质是一个16位的加1计数器,由高8位和低8位两个寄存器组成,单片机在使用定时器或计数器功能时,需要设置两个与定时器有关的寄存器:定时器/计数器工作方式寄存器TMOD和定时器/计数器控制寄存器TCON。

本设计中我们使用的是工作在工作方式1(16位定时器/计数器)下的定时器T0,需要设置TMOD=0X01。

在1.1节中我们已经提到单片机的机器周期是1μs,那么为了获得50ms的定时间隔,我们需要在定时器T0的高8位寄存器TH0和低8位寄存器TL0中分别装入大小为(65536-50000)/256和(65536-50000)%256的初始值,也就是分别设置寄存器TH0=(65536-50000)/256和寄存器TL0=(65536-50000)%256。

除此之外,我们需要在定时器T0计满时触发定时器中断,所以我们需要依次开总中断,开定时器T0中断,然后启动定时器T0开始计数,即依次设置EA=1,ET0=1,TR0=1。

定时器T0一旦启动便会开始计数,当计数溢出时,自动进入中断服务程序执行代码,执行完中断程序后再回到原来处继续执行。

为了确保定时器T0每次中断的时间间隔都是50ms,我们需要在中断函数中每次为寄存器TH0和TL0重新装入初始值,每进入一次中断需要的时间是50ms,每當中断程序进入了20次,也就是时间累计了1s,此时我们需要将最新的时间数据刷新显示到LCD1602上。

整个程序中,判断是否需要单片机发送信号控制继电器动作的标志就是当前时间是否到达或超越目标时间,我们需要在主程序中不断循环判断这一标志是否达成,当达成这一标志时,我们会让单片机发送信号给继电器,控制继电器线圈电流的通断,从而控制继电器电路的导通/断开。

3 结束语
综上所述,在文章中我们基于8051内核单片机设计的该款简易智能插座,不仅硬件电路设计简洁可靠,而且成本低廉投入少,能够稳定实现智能家居中定时开关电路的功能,同时与目前市场上已有的各种智能插座产品比较,也会发现我们设计的智能插座在功能上仍有很大的扩展空间,在后面的工作中上我们将会考虑将多组定时、WIFI网络控制、微信控制等实用功能引入。

参考文献
[1]张毅坤,陈善久,裘雪红.单片微型计算机原理及应用[M].西安:西安电子科技大学出版社,1998.
[2]郭天祥.新概念51单片机C语言教程——入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009.
[3]杨素行.模拟电子技术基础简明教程(第三版)[M].北京:高等教育出版社,2006.。

相关主题