智能控制开关设计.docx
- 文档编号:9147251
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:226.37KB
智能控制开关设计.docx
《智能控制开关设计.docx》由会员分享,可在线阅读,更多相关《智能控制开关设计.docx(20页珍藏版)》请在冰豆网上搜索。
智能控制开关设计
《单片机原理与应用》
课程设计说明书
2009级电气工程及其自动化专业0906073班级
题目智能控制开关的设计
姓名郑太锋学号090607344
指导教师王义琴职称讲师
二О一二年六月三日
一、智能控制开关设计的基本原理
智能控制开关是由单片机89C51控制电路、按键与LCD显示电路和掉电存储电路以及电源电路组成,采用了行列式键盘,实时控制和显示分别采用了89C51和1602LCD液晶,用1602LCD作为来显示时间和要定时的时间,并且这两个芯片接通电源可以直接用单片机编程对它进行操作。
电路采用光电耦合器件(MOC3041)进行隔离控制,软件系统主要完成修改时间、定时通断电等功能。
二、设计方案
智能开关控制的原理框图如图1所示。
它由以下几个部件组成:
单片机89C51、电源电路、掉电存储电路、开关控制、键盘输入和显示以及电源电路组成。
时间显示采用LCD1602,以降低对单片机端口数的要求,同时也降低系统的功耗。
时间控制电路和键盘输入以及掉电存储都通过89C2051的I/O口控制。
电源部分:
电源部分由整流、滤波和集成稳压器组成,以保证系统稳定工作。
图1智能开关控制系统原理框图
三、硬件设计
1AT89C51单片机及其引脚说明
AT89C51单片机是51系列单片机的一个成员,内部自带4K字节可编程FLASH可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,与IntelMCS-51系列单片机的指令和输出管脚相兼容。
由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C51构成的单片机系统是具有结构简单、造价低廉、效率高的微控制系统,减少了硬件开销,节省了成本,提高了系统的性价比。
AT89C51是一个有40个引脚的芯片,与8031相比,AT89C51自带4K的ROM和128B的RAM,因此编写中小型系统就无需任何硬件进行扩展。
AT89C51芯片的40个引脚功能为:
VCC:
电源电压。
GND:
接地。
RST:
复位输入。
当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡放大器的输出。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
P0口:
8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
8位双向I/O口。
引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。
P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1”后,可用作输入。
在闪速编程与编程校验期间,P1口也可接收编码数据。
P2口:
带内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
引脚P3.0~P3.7为带内部上拉的双向I/0引脚。
P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。
P3口也可用作特殊功能口,其功能见表1。
P3口同时也可为闪速存储器编程和编程校验接收控制信号。
表1P3口特殊功能
P3口引脚
特殊功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
2DS12887时钟芯片及引脚说明
采用独立按键占用了单片机I/O口,因此在设计该系统时,为了减少单片机I/O口的使用,采用了行列式键盘,如下图2所示。
图2为行列式键盘原理图
实时控制和显示分别采用了DS12887时钟芯片和1602LCD液晶,DS12887时钟芯片可直接替换IBMAT计算机的时钟/日历与MC146818B和DS1287管脚兼容,在掉电方式下持续工作十年以上,内部包含锂电池,时钟和辅助电路系统,记量秒、分、小时、星期、日期、月、年和润年直到2100年,可用二进制或BCD码表示时间,日历和闹钟,12或24小时方式,有上下午的12小时方式等功能;为了减小整个系统的功耗,不采用数码管作为显示器件,而用1602LCD作为来显示时间和要定时的时间,并且这两个芯片接通电源可以直接用单片机编程对它进行操作。
下图3为实时控制和显示电路原理图。
图3实时控制和显示电路原理图
3密码、时间掉电存储电路
由于系统要显示的内容比较简单,但是定时的时间设置好了,断电了之后什么都没了,再一个进入系统需要密码,并且该密码可以人为通过键盘设置,但是设置好了,断了电和设置好的时间一样会丢失,因此为了保护时间和密码,该系统就需要有断电存储电路,由于显示量不多,所以选用I2C器件AT24C02。
该存储电路如图4所示。
图4密码、时间掉电存储电路
4电源电路
为了给该数据采集系统提供一个比较稳定的工作环境,就此为该系统设计了一个稳压电源模块,电路原理如下图5所示,该电源模块5V固定输出,采用了稳压模块7805,该系列集成稳压模块具有过流、过热和调整管安全工作区保护,以防止过载而损坏。
对于整个系统的工作而言,增加了电路的可靠性能和稳定性能。
图5电源原理图
5开关控制电路
该电路采用光电耦合器件(MOC3041)进行隔离控制,MOC3041是耐压为400V的光耦器件,它的输出级由过零触发器的双向可控硅构成,它控制着主电路双向可控硅的导通与关断。
100Ω电阻与0.01uF电容组成双向可控硅保护电路,原理图如下图6所示。
图6开关控制电路
四、软件设计
本系统的软件系统主要完成修改时间、修改密码、定时通断电等功能。
在程序设计过程中,加强了部分软件抗干扰措施,以达到按键的灵活性,确保整个系统的正常运行。
系统流程图如图7所示
图7程序流程图
系统程序
FMBIT20H.0
RINGBITp1.0
PLUSBITp3.5
MINUSBITp3.4
STPBITp3.3
PWRBITP2.7
MSEQU7FH
SECNEQU7EH
MINUEQU7DH
HOUREQU7CH
BCDHEQU7BH
BCDMEQU7AH
NUMBEQU16
BUFFEQU60H
TTEQU20
ORG0000H
LJMPSTART
ORG000BH
LJMPINTT0
START:
LCALLCLEAR
LCALLINIT
MAIN:
LCALLBTBCD
LCALLDISP
JBCFM,MAINA
LCALLkey
;JNBRING,MAIN
MOVA,SECN
SUBBA,#TT
JCMAIN
SETBRING
SETBPWR
LJMPMAIN
MAINA:
LCALLBTBCD
LCALLCOMP
LJMPMAIN
CLEAR:
MOVR0,#7FH
MOVR7,#20H
CLEA1:
MOV@R0,#0H;FULLZERO
DECR0
DJNZR7,CLEA1
RET
INIT:
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVMS,#20;
SETBTR0
SETBEA
SETBET0
MOVSP,#30H
RET
BTBCD:
MOVA,SECN
MOVB,#10
DIVAB
MOVBUFF,B
MOVBUFF+1,A
MOVA,MINU
MOVB,#10
DIVAB
MOVBUFF+2,B
MOVBUFF+3,A
SWAPA
ORLA,B
MOVBCDM,A
MOVA,HOUR
MOVB,#10
DIVAB
MOVBUFF+4,B
MOVBUFF+5,A
SWAPA
ORLA,B
MOVBCDH,A
RET
KEY:
MOVB,MINU
INCB
INCB
SETBSTP
JNBSTP,KEY11
SETBPLUS
JBplus,key2A
LCALLBTBCD
LCALLDDISP
SETBPLUS
JNBplus,key22;min+
KEY2A:
SETBMINUS
JBminus,keyDD;min-
LCALLDDISP
LCALLBTBCD
LCALLDDISP
SETBMINUS
JNBMINUS,key33;min+
keydd:
ljmpkeyd
KEY11:
LCALLDDISP
LCALLDDISP
SETBSTP
JNBSTP,KEY1
SJMPKEYDD
KEY22:
LJMPKEY2
key33:
ljmpkey3
key1:
LCALLDDISP
LCALLBTBCD
MOVBUFF+2,#11h
MOVBUFF+3,#11h
MOVBUFF,#11h
MOVBUFF+1,#11h;turnoffelseBITsecondmin
SETBPLUS
JNBplus,key5;ADJUSTHOUR+
SETBMINUS
JNBminus,key4;ADJUSTHOUR-
SETBSTP
JBSTP,KEY1
LCALLDDISP
LCALLBTBCD
SETBstp
JBstp,KEY1
key6:
LcallDDisp
lcallBTBCD
SETBSTP
JnBSTP,KEY6
LJMPKEYD
KEY5:
lcallDDisp;
LCALLDDISP
SETBPLUS
JBPLUS,KEY1
INCHOUR;+1
MOVA,HOUR
CLRC
SUBBA,#24
JCKEY1
MOVHOUR,#00
LJMPKEY1
key4:
lcallDDisp
LCALLDDISP
SETBMINUS
JBMINUS,KEY1
DECHOUR;
MOVA,HOUR
CLRC
SUBBA,#24
JCKEY1
MOVHOUR,#23
LJMPKEY1
key2:
lcallDDisp;ADJUSTMINU
SETBPLUS
JBPLUS,KEYD
INCMINU;+1
MOVA,MINU
CLRC
SUBBA,#60
JCKEYD
MOVMINU,#00
LJMPkeyd
key3:
lcallDDisp
SETBMINUS
JBMINUS,KEYD
DECMINU
MOVA,MINU
CLRC
SUBBA,#60
JCKEYD
MOVMINU,#59
keyd:
ret
;----------------------------------
comp:
PUSHDPH
PUSHDPL
PUSHACC
MOVDPTR,#ALARM
MOVR6,#NUMB
COMP1:
CLRA
MOVCA,@A+DPTR
INCDPTR
CJNEA,BCDH,comp0
CLRA
MOVCA,@A+DPTR
CJNEA,BCDM,comp0
clrRING
clrPWR;turnontherings
comp0:
incdptr;pointingtonextHOUR
comp2:
DJNZR6,COMP1
compd:
POPACC
POPDPL
POPDPH
RET
;-----------------------------------
Disp:
movr0,#BUFF;R1ISAVAILIABLE
Movr2,#06h
Movr3,#01h;
movdptr,#table
Disp1:
Mova,r3
Movp2,a
RLa
Movr3,a
Mova,@r0
movca,@a+dptr
movp0,a
Incr0
Lcalldelay
Djnzr2,disp1
Ret
table:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
db77H,7CH,39H,5EH,79H,71H,40H,00H;
tabl:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H
DB90H,88H,83H,0C6H,0A1H,86H,84H,0FFH
;--------------------------------------------
DDISP:
MOVR1,#03H
DDIS1:
LCALLDISP
DJNZR1,DDIS1
RET
delay:
MOVR7,#100
delay0:
MOVR6,#10
delay1:
DJNZR6,delay1
DJNZR7,delay0
RET
;-----------------------------------------
INTT0:
PUSHpsw
Pushacc
MOVtl1,#0B0h
;65536-50000=15536=3CB0H
MOVTH1,#3CH
DJNZMS,INTD
MOVMS,#14;恢复计数值
INCSECN
MOVA,SECN
CJNEA,#60,INTD;
MOVSECN,#0;
INCminu;
SETBFM;setupflagperminute
MOVA,MINU
CJNEA,#60,INTD;
MOVMINU,#0;
INCHOUR;
MOVA,HOUR
CJNEA,#24,INTD;
MOVHOUR,#00H
INTD:
POPACC
POPPSW
RETI
ALARM:
DW0800H,0845H,0850H,0935H,0955H,1040H,1045H,1130H
DW1400h,1445h,1450h,1535h,1545h,1630h,1635h,1725h
END
五、结论
该智能控制开关由单片机89C51控制电路、按键与LCD显示电路和掉电存储电路以及电源电路组成,电路十分的简单,主要由51芯片编程实现,功能十分的强大,时间精度非常高,是一款比较实用的智能开关。
六、参考资料
[1]谢自美,《电子线路设计·实验·测试》。
华中理工大学出版社
[2]张毅坤陈善久裘雪红,《单片微型计算机原理及应用》,
西安电子科技大学出版社
[3]沈任元吴勇,《常用电子元器件手册》,机械工业出版社
[4]吴金戌沈庆阳郭庭吉,《8051单片机实践与应用》,清华大学出版社
[5]吕国芳张玉华,AT24C02在电压控制系统中的应用,
国外电子测量技术#2004年增刊
[6]陈世同,梁辉,张成,毛泽安,AT24C02在光纤陀螺测试中的应用,
第32卷第12期应用科技
[7]王念旭.DSP基础与应用系统设计[M].北京:
北京航空航天大学出版社,2000.
[8]曾繁泰,陈美金.VHDL程序设计[M].北京:
清华大学出版社,2000.
[9]李现勇.VisualC++串口通信技术与工程实践[M].北京:
人民邮电出版社,2002.
[10]闫胜利,DS12887功能简介以及在LED显示屏中的应用,
长春工程学院学报(自然科学版)2001年第2卷第2期
[11]李及.MCS-96系列单片机原理与应用[M].长春:
吉林科学出版社,1996.
[12]何立民.单片机应用技术选编[M].北京:
北京航空航天大学出版社,1997.
[13]王福瑞.单片微机测控系统设计大全[M].北京:
北京航空航天大学出版社,1999.
[14]孙涵芳.Intel16位单片机[M].北京:
北京航空航天大学出版社,1995.
[15]佟云峰,时钟芯片在单片机系统中的应用,
昆明冶金高等专科学校学报
[16]刘红,韩太林,实时日历时钟芯片DS12887与MCU-51单片机的接口技术
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 控制 开关 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)