>
摘要:为了保护用户用电的权益,使非法用户在不知道密码的情况下,无法使用电源并实行相应的操作,特开发出此密码电源开关。文章详细叙述了密码电源开关的硬件结构和软件设计流程,通过论述表明,用单片机控制的密码电源开关具有结构灵活、开发经济、工作稳定等优势。
关键词:密码电源开关;硬件结构;软件设计
随着现代技术的发展,电与我们生活的关系越来越密切,从工业生产到居家生活的每一个细节都离不开电。但令人头疼的是却有许多人在偷电漏电,盗用别人的电源使用,给别人造成了经济上的损失。现在,在同一间办公室办公的情况越来越普遍了,为了使非法用户在不知道密码的情况下,无法使用电源,笔者在这里设计了一个密码电源开关,它是基于微控制芯片A T
工作原理及硬件结构
利用
单片机最小系统
如图2 所示,
继电器电路
本系统中要实现用弱电去控制强电,所以我们使用了继电器,用以对电源通断的控制,如图3 所示,继电器通过一个三极管直接连接到P0 口,当P0口为高电平时,继电器导通,接通外部电源,反之,断开外部电源。
外部存储器的扩展
为了把修改后的正确密码保存起来,不至于在断电后密码丢失,所以在设计中通过I
在I
其他硬件电路
本系统中的使用到的按键较少,只有4 个,分别是通道选择,功能切换,数字切换/ 修改延时,确认/修改密码。为了简化电路结构,节省成本,在系统中未使用扫描键盘的连接思路,而是采用了图5 的连接方法。
按键一端接P3 口,一端接地,当有按键按下时,相应口的电平就会被拉低。然后用软件程序就可以检查出是哪个键按下,随后执行相应的功能。因为P3 口全做了I/ O 口使用,所以在连接硬件的时候,每一个口上都接了一个上拉电阻。L ED 显示部分通过模拟串行口来进行显示,时钟线和数据线连接到单片机的普通口。电源电路使用典型的电源电路,一个整流桥加一个稳压管,就可以构成一个电源电路。为了增加系统的可操作性,特加了三个L ED 指示灯,分别是修改延时指示灯、修改密码指示灯、告警灯,都直接连接在P1 口,用程序控制。
控制软件设计
结合设计的要求和电路要实现的功能,系统的主要程序流程如下:
主程序
这个程序采用了数枝状的结构,这样比较适合于此硬件电路,也容易实现系统的功能。在主程序中,反复查询与按键相连的端口,一但发现有按键按下,迅速判断出来是哪个按键按下,然后调用相应的子程序,并执行功能,待执行完后,又返回主程序等待。
输入数字子程序
输入数字键可以实现两个功能,一个是单纯的输入数字,从0 到9 循环,每修改一次,数字都要保存到显示缓冲区中,以便打开电源,关闭电源,修改密码时使用。输入数字键一般是和确认键配合使用的,因为在这个系统中采用的是串行显示,所以每次只能显示一位,共有四位数字,从低位到高位显示的时候,当每一位上的数字选好后,都要确认一下,才能移到下一位显示。如图7 所示在每一次输入完数字以后,都要查询一下是否有修改延时的要求,如果有,那么就要执行修改延时的功能,在本系统中,最大延时取了5 分钟,这个值到实际中是可以修该的。修改后的延时值存在一个特定的存储区中,以备触发定时器时使用。本系统中采用延时的功能主要是为了保护用电器,例如冰箱之类的大功率用电器,它要求在每次关电和开电之间应该有一定的延时,以保护用电器,延长寿命。而这个设计就恰恰满足了这种要求,它可以在你关闭电源时自动启动定时器延时,如果定时时间未结束,即使密码输入正确,也无法开机。
选路子程序
选路子程序比较简单,通过反复循环来实现路数的选择,选好的路数存到特定的存储单元中,作为判断条件供其他程序使用。
确认子程序
确认程序主要实现对输入数字的确认及判断系统是否有延时要求。
修改延时/ 修改密码子程序
程序主要作用就是实现修改密码和修改延时,可以通过外部按键来切换,在外部各有一个指示灯,来显示现在处于什么状态。修改延时时只要修改延时灯点亮,就可以通过输入数字键来修改延时。当修改密码指示灯亮时,就可以修改密码。修改好的密码通过特定的端口送到外部存储器AT
比较子程序
比较子程序主要实现对输入的密码和原始密码进行比较的作用,可以实现对继电器的开与关的控制及控制延时的打开的控制。延时的关闭是在定时器里完成的,在这里就不再过多的阐述了。
部分程序如下:
MOV SP , # 60H
MOV TMOD , # 01H ;设置定时器T0
MOV TH0 , # 3CH
MOV TL0 , # 0B0H ;100 毫秒初值
SETB EA
MOV DINGSHI_CZ , # 01H ;存计数次数
MOV XGMM_PASS , # 00H ;修改密码允许标志清0
MOV 0CH , #
MOV 0DH , #
MOV 0EH , #
; ....................
MOV 4AH , # 00H
MOV 4BH , # 00H
MOV 4CH , # 00H
MOV 4DH , # 00H ;清显示屏的代码
LCALL CL EAR ;清显示器
MOV A , # 00H
MOV P0 ,A
MOV R4 , # 08H ;控制路数的次数
MOV R3 , # 00H ;控制路数,默认第1 路
MOV R0 , # 30H ;密码缓存首地址
MOV R5 , # 00H
MOV R7 , # 05H ;控制定时次数,最大5 分钟
MOV A , # 01H
MOV 38H ,A
MOV OPEN_SHU T1 , # 00H ;控制各路的开与关
MOV OPEN_SHU T2 , # 00H
MOV OPEN_SHU T3 , # 00H
MOV OPEN_SHU T4 , # 00H
MOV OPEN_SHU T5 , # 00H
MOV OPEN_SHU T6 , # 00H
MOV OPEN_SHU T7 , # 00H
MOV OPEN_SHU T8 , # 00H
MOV YANSHI , # 00H ;关延时标志位
; ........查询是否有键按下........
START :
SETB P3. 2
SETB P3. 3
SETB P3. 4
SETB P3. 5
LCALL DL10_MS
MOV A ,P3
JNB ACC. 2 ,FUN0
JNB ACC. 3 ,FUN1
JNB ACC. 4 ,FUN2
JNB ACC. 5 ,FUN3
LCALL DL10_MS
LJMP START ;查询是否有键按下
FUN0 : LJMP XUANLU ;调用选路子程序
FUN1 : LJMP INPU T_SZ ;调用输入数字子程序
FUN2 : LJMP YES_MOVE ;调用确认子程序
FUN3 : LJMP GNQH ;调用功能切换子程序
结束语
本文较为详细地介绍了以单片机为核心的密码电源开关的设计,使51 系列单片机充分应用在了控制系统中。该系统实现简单,结构灵活(按键部分也可以采用中断的连接方法) ,开发经济,具有一定的市场前景。