基于AT89C51的密码电源开关设计.docx
- 文档编号:24302132
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:10
- 大小:191.80KB
基于AT89C51的密码电源开关设计.docx
《基于AT89C51的密码电源开关设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C51的密码电源开关设计.docx(10页珍藏版)》请在冰豆网上搜索。
基于AT89C51的密码电源开关设计
基于AT89C51的密码电源开关设计
襄樊学院物电系电子信息工程0511班王臣浩
内容摘要
为了保护用户用电的权益,使非法用户在不知道密码的情况下,无法使用电源并实行相应的操作,特开发出此密码电源开关。
文章详细叙述了密码电源开关的硬件结构和软件设计流程,通过论述表明,用单片机控制的密码电源开关具有结构灵活、开发经济、工作稳定等优势。
关键词硬件结构;软件设计;密码电源开关;
一.引言
随着现代技术的发展,电与我们生活的关系越来越密切,从工业生产到居家生活的每一个细节都离不开电。
但令人头疼的是却有许多人在偷电漏电,盗用别人的电源使用,给别人造成了经济上的损失。
现在,在同一间办公室办公的情况越来越普遍了,为了使非法用户在不知道密码的情况下,无法使用电源,笔者在这里设计了一个密码电源开关,它是基于微控制芯片AT89C51的一项新的具有实用价值的系统。
这个系统结构简单,保密性好,可以同时控制多路电源,具有输入错误密码告警,输入正确密码开、关电源,用电器关电后自动启动保护延时等功能。
2.工作原理及硬件结构
利用89C51设计的密码电源开关原理如图1所示,系统以89C51为核心,89C51是Intel公司的一款集CPU、RAM、ROM、I/O接口、定时器/计数器、中断系统为一体的单片机,片上带有4K的ROM和128×8位的RAM。
系统中按键采用查询方法与单片机连接,可以实现输入正确密码开电源,输入正确密码关电源,修改密码,修改延时等功能。
8路继电器全部连接在P0口,通过P0口的电平变化来控制继电器,进而控制电源的开关,为了节省端口,LED显示连在普通口,因为要在关电后保证密码不丢失,利用I2C技术在单片机外部扩展了一个E2PROM(AT24C02),来存储正确的密码。
图1密码电源开关原理框图
图2.单片机最小系统
如图2所示(其中INT0对应key1,INY1对应key2,T0对应key3,T1对应key4)。
89C51的外部通过18,19脚连接一个晶振和两个电容,构成振荡电路,可以为单片机提供时钟频率。
9脚通过一个10kΩ电阻和一个10μF的电容构成了一个简单的复位电路,EA接高电平,ALEPSEN信号不用,这样就构成了一个单片机最小系统。
这个最小系统未设复位键,系统加电时自动复位。
继电器电路
本系统中要实现用弱电去控制强电,所以我们使用了继电器,用以对电源通断的控制,如图3所示,继电器通过一个三极管直接连接到P0口,当P0口为高电平时,继电器导通,接通外部电源,反之,断开外部电源。
外部存储器的扩展
为了把修改后的正确密码保存起来,不至于在断电后密码丢失,所以在设计中通过I2C技术扩展了一个外部存储器。
I2C总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。
如图4所示,因为89C51没有直接的I2C接口,所以使用模拟I2C技术,SDA连接在P2.3口,SCL连接在P2.2口,用软件程序控制数据的输入输出。
图3继电器与单片机的连接电路
图4利用IC2扩展的外部存储器
在I2C总线上传送的一个数据字节由8位组成。
总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位。
数据传送首先传送最高位(MSB),首先由主机发出启动信号“S”(SDA在SCL高电平期间由高电平跳变为低电平),然后由主机发送一个字节的数据。
启动信号后的第一个字节数据具有特殊含义:
高7位是从机的地址,第8位是传送方向位,0表示主机发送数据(写),1表示主机接收数据(读)。
被寻址到的从机设备按传送方向位设置为对应工作方式。
标准I2C总线的设备都有一个七位地址,所有连接在I2C总线上的设备都接收启动信号后的第一个字节,并将接收到的地址与自己的地址进行比较,如果地址相符则为主机要寻访的从机,应在第9位应答时钟脉冲时向SDA线送出低电平作为应答。
除了第一字节是通用呼叫地址或十位从机地址之外,第二字节开始即数据字节。
数据传送完毕,由主机发出停止信号“P”(SDA在SCL高电平期间由低电平跳变为高电平)。
AT24CX系列串行E2PROM具有I2C总线接口功能,功耗小,宽电源电压(根据不同型号2.5V~6.0V),工作电流约为3mA,静态电流随电源电压不同为30μA~110μA,所以在本系统中使用AT24C02作为外部存储器。
其他硬件电路
本系统中的使用到的按键较少,只有4个,分别是通道选择,功能切换,数字切换/修改延时,确认/修改密码。
为了简化电路结构,节省成本,在系统中未使用扫描键盘的连接思路,而是采用了图5的连接方法。
图5密码电源开头的键盘连接
按键一端接P3口,一端接地,当有按键按下时,相应口的电平就会被拉低。
然后用软件程序就可以检查出是哪个键按下,随后执行相应的功能。
因为P3口全做了I/O口使用,所以在连接硬件的时候,每一个口上都接了一个上拉电阻。
LED显示部分通过模拟串行口来进行显示,时钟线和数据线连接到单片机的普通口。
电源电路使用典型的电源电路,一个整流桥加一个稳压管,就可以构成一个电源电路。
为了增加系统的可操作性,特加了三个LED指示灯,分别是修改延时指示灯、修改密码指示灯、告警灯,都直接连接在P1口,用程序控制。
三.控制软件设计
结合设计的要求和电路要实现的功能,系统的主要程序流程如下:
主程序
图6单片机主程序流程图
这个程序采用了数枝状的结构,这样比较适合于此硬件电路,也容易实现系统的功能。
在主程序中,反复查询与按键相连的端口,一但发现有按键按下,迅速判断出来是哪个按键按下,然后调用相应的子程序,并执行功能,待执行完后,又返回主程序等待。
输入数字子程序
图7输入数字子程序流程图
输入数字键可以实现两个功能,一个是单纯的输入数字,从0到9循环,每修改一次,数字都要保存到显示缓冲区中,以便打开电源,关闭电源,修改密码时使用。
输入数字键一般是和确认键配合使用的,因为在这个系统中采用的是串行显示,所以每次只能显示一位,共有四位数字,从低位到高位显示的时候,当每一位上的数字选好后,都要确认一下,才能移到下一位显示。
如图7所示在每一次输入完数字以后,都要查询一下是否有修改延时的要求,如果有,那么就要执行修改延时的功能,在本系统中,最大延时取了5分钟,这个值到实际中是可以修该的。
修改后的延时值存在一个特定的存储区中,以备触发定时器时使用。
本系统中采用延时的功能主要是为了保护用电器,例如冰箱之类的大功率用电器,它要求在每次关电和开电之间应该有一定的延时,以保护用电器,延长寿命。
而这个设计就恰恰满足了这种要求,它可以在你关闭电源时自动启动定时器延时,如果定时时间未结束,即使密码输入正确,也无法开机。
选路子程序
选路子程序比较简单,通过反复循环来实现路数的选择,选好的路数存到特定的存储单元中,作为判断条件供其他程序使用。
确认子程序
确认程序主要实现对输入数字的确认及判断系统是否有延时要求。
修改延时/修改密码子程序
图8修改延时/修改密码子程序流程图
程序主要作用就是实现修改密码和修改延时,可以通过外部按键来切换,在外部各有一个指示灯,来显示现在处于什么状态。
修改延时时只要修改延时灯点亮,就可以通过输入数字键来修改延时。
当修改密码指示灯亮时,就可以修改密码。
修改好的密码通过特定的端口送到外部存储器AT24C02保存起来。
比较子程序
图9比较子程序流程图
比较子程序主要实现对输入的密码和原始密码进行比较的作用,可以实现对继电器的开与关的控制及控制延时的打开的控制。
延时的关闭是在定时器里完成的。
四.结束语
本文较为详细地介绍了以单片机为核心的密码电源开关的设计,使51系列单片机充分应用在了控制系统中。
该系统实现简单,结构灵活(按键部分也可以采用中断的连接方法),开发经济,具有一定的市场前景。
6.参考文献
[1]张毅刚《新编MCS-51单片机应用设计》哈尔滨工业大学出版社
[2]李建忠《单片机原理及应用》西安电子科技大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C51 密码 电源开关 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)