欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机的定时开关控制器.doc

    • 资源ID:4871793       资源大小:472KB        全文页数:22页
    • 资源格式: DOC        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的定时开关控制器.doc

    1、17 基于单片机的定时开关控制器摘要:本实验基于STC89C51RC为核心,设计具备按键功能和数码管显示功能的外围硬件电路,以便控制器能够在设定的开关时刻控制输出继电器的动作,进而控制负载电源的启闭,并完成软件程序设计。可以实现电源的直接启动/关闭;也可以通过按键设置负载电源的启动时间,最大预约时间为12小时。关键词:STC89C51RC;继电器 Timer Switch Controller Based On MCUAbstract: Based on the experimental STC89C51RC as the core, the design has the key functi

    2、on and digital tube display peripheral hardware circuit function, so that the controller can control the output relay set the switch point of the action,then control the opening and closing load power supply, and complete the software program design. Direct start / can realize the power off; can als

    3、o set the button load power start-up time, maximum reservation for 12 hours.Key Words :STC89C51RC;Relay 目录 1 硬件部分结构功能简介1 1.1 STC89C51RC单片机介绍1 1.2 STC89C51RC单片机的主要性能1 1.3 STC89C51RC单片机管脚说明2 2 硬件电路设计3 2.1 单片机最小系统3 2.1.1 复位电路3 2.1.2 时钟电路3 2.2 按键电路4 2.3 显示功能5 2.4 中断系统5 2.5 继电器7 2.6 电路设计7 3 软件设计8 总 结10 参

    4、考文献11 致 谢12 附 录13 1 硬件部分结构功能简介1.1 STC89C51RC单片机介绍STC89C51RC系列单片机是深圳宏晶科技公司推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机。STC89C51RC系列单片机具有ISP(在系统中可编程)动能和IAP(在应用可编程)功能,无需购买专用编辑器,可以通过串行口直接下载用户程序。单片机主控电路的主要元件是STC89C51RC单片机,其外形如下图(图1-1): 图1-1 STC89C51RC各个引脚 1.2 STC89C51RC单片机的主要性能 与单片机产品兼容4K字节在系统可编程Flash存储器、100

    5、0次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程/口、三个16位定时器/计数器、八个中断源、全双工UART串行通道低功耗空闲和掉电模式、掉电后中断可唤醒看门狗定时器,双数据指针、掉电标识符。1.3 STC89C51RC单片机管脚说明VCC供电电压。GND接地。P0口8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口带内部上拉电阻的8位双向I/O口

    6、,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口带内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输

    7、出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。在编程/校验时,P3口可接收某些控制信号。RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的

    8、1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部

    9、锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡器的输出。 2 硬件电路设计2.1单片机最小系统 2.1.1 复位电路复位电路就是在RST端(9脚)外接的一个电路,目的是使单片机上的电开始工作时,内部电路从初始状态开始工作,或者在工作中人为让单片机重新从初始状态开始工作。在时钟工作的情况下,只要复位引脚高电平保持在两个机器周期以上的时间,STC89C51RC便能完成系统重置的各项工作,使得内部特殊功能寄存器的内容均被设置成已知状态,并且从地

    10、址0000H处读入程序代码而执行程序。(图2-1) 图2-1 复位电路 2.1.2. 时钟电路时钟电路是产生CPU校准时序,是单片机的控制核心。STC89C51RC的时钟信号可通过内部振荡方式和外部振荡方式两种方式得到。本次设计使用的是片内振荡方式,通过外接12MHz的晶振来实现时钟电路的时序控制。在使用片内振荡器时,XTAL1和XTAL2分别为反向放大器的输入端和输出端。外接晶体以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。当使用外部时钟驱动时,XTAL2引脚应悬空,而由XTAL1引脚上的信号驱动,或者XTAL1引脚应悬空,而由XTAL2引脚上的信号驱动。外部振荡器再通过一个2

    11、分频的触发器来形成内部时钟所需要的信号。在电容器C1、C2选择时方面,一般选择其值为530pF。本系统中所用的电容值为22pF,具体的电路接法如图2-2所示。 图2-2 晶振电路图2.2按键电路 按键电路如图2-3所示 图2-3 按键电路系统中共有四六个独立按键,分别与P2.0、P2.1、P2.2、P2.3、P2.3、P2.4、P2.5连接。开始键(P2.0):按下该键,电源和负载接通或当预约调试结束后按下该键, 电源将在设定时间到达后接通。关闭键(P2.1):按下该键,切断电源。预约键(P2.2):第一次按下该键,可以对电源的接通时间进行“小时”调整;第二次按下该键,可以对电源接通时间进行“

    12、分钟”调整。加“1”键(P2.3):按下该键,调“小时”时间加1,最大可加到11;调“分钟”时间加1,最大可加到59.即最长定时时间为11小时59分钟。减“1”键(P2.4):按下该键,调“小时”时小时减1,最小值为0;调“分钟”时分钟减1,最小值为0.预留键(P2.5):在本设计中,没有作用。2.3 显示功能1.按键指示灯D1:只要有按键按下,该指示灯会点亮。2.电源开关状态指示灯D3:当电源和负载接通时,该灯点亮。3.四位数码管(图2-4):前两位显示小时,后两位显示分钟。上电即显示“-”;预约调小时前两位闪烁,预约调分钟后两位闪烁。预约时间内,倒计时显示。 图2-4 LED数码管 2.4

    13、中断系统中断系统的作用主要是对外部或内部的终端请求进行管理与处理。STC89S51RC共有5个中断源,其中有2个外部中断源和3个内部中断源。中断函数如下/-外部中断0中断函数- void int0()interrupt 0 using 0 uchar keynum; display(); /动态显示程序作为去抖动 if(INT0=0) /判断是否有按键按下 keynum=GetKeyNum(); /有效键,获取键值 while(INT0=0); /等待按键释放 Keyprocess(keynum); /按键处理 /-定时器0中断子函数- void time0() interrupt 1 /处理

    14、调时、显示器闪烁 static uchar ledcnt,num; /设置静态变量 TH0=(65536-50000)/256; /定时50ms TL0=(65536-50000)%256; if(Onflag & (hour | min)!=0) |! Onflag) /指示灯每隔0.5s闪烁 ledcnt+; if(ledcnt=10) / 10 X 50mS=0.5S ledcnt=0; LED=LED; if(Setflag!=0) /调时闪烁 num+;if(num=5) num=0; flag=flag;/-定时器1中断子函数-void time1() interrupt 3 TH

    15、1=(65536-50000)/256; TL1=(65536-50000)%256;calculate(); /计时 2.5 继电器 本设计是用单片机控制继电器达到以弱控强的电路,下面再来介绍一下单片机和强电之间的桥梁-电磁继电器。电磁继电器是有触点电继电器是有触点电继电器的一种。它是利用电磁效应实现电路开、关控制作用的原件,广泛应用在电子设备、仪器仪表及自动化设备中。在各种自动设备中,都要求用一个低电压电路提控制一个高电压的电器电路。这样不仅可以为电子线路和电器电路提供良好的电隔离,还可以保护电子电路和人员安全。 图2-5 继电器开关电路 2.6 电路设计 根据设计要求,选用STC89C5

    16、1RC作为电路控制核心,电路中包含了时钟电路、复位电路作为单片机的最小系统。晶体振荡器频率为12MHz,这样单片机的机器周期恰好为1s。P0.0-P0.7作为四位七段数码管的段码输出端,P1.0-P1.3作为四位数码管(共阴极)的位码输出端。P2.0-P2.5作为键盘信号的输入端。P3.6作为控制信号的输出端控制继电器吸合与释放。 由于P0口输出端为漏极开路门,他要输出高电平才有效,必须外接上拉电阻,本设计中上空电阻阻值为10K。由于P0口输出电流有限,为减轻单片机的负担,在P0口外接了一个8路同相三态双向驱动器(起电流放大作用)。19脚是它的片选端,低电平有效,1脚是输入/输出端口转换用,当

    17、该引脚接高电平时,信号由“A”端传向“B”端,当该引脚接低电平,信号由“B”端传向“A”端。P1口通过一个六反相器74LS04和数码管的位码输入端相连,故P1.0-P1.3输出低电平时,相应的数码管点亮。附录2中六个独立按键分别和P2.0-P2.5相连接,通过上拉电阻和电源相连接,当按键没有按下时,P2.0-P2.5端口输入为“1”,表示没有信号输入。这六个按键只要有一个按键按下时,8输入与非门74HC30的输出端必然输出高电平(它的逻辑功能为:全1出0,由0出1),经非门电路74LS04倒相后,按键按下时输出为低电平,该低电平信号接单片机的外部中断信号输入端(即P3.2引脚),从而引起单片机

    18、中断正常执行的主程序,转而去执行中断服务程序。 3 软件设计 程序开始首先对按键变量和小时、分钟变量进行定义,对共阴极数码管的段码(字型码)以一维数组方式定义。另外对延时函数、定时器初始化子函数、求按键子函数、按键处理子函数、计时子函数、显示子函数进行声明。 主函数 图3-1 程序主函数在定时器T0、T1初始化和外部中断0()子函数中,规定定时器T0、T1的工作模式为方式1,定时时间为50ms。外部中断0采用下降沿触发方式。定时器工作在中断方式,即定时时间到,立即停止执行主函数,转而去执行中断服务函数。 图3-2 定时器T0中断服务函数 图3-3 外部中断T1中断服务函数 图3-4 外部中断0

    19、中断服务函数在显示子函数中,上电复位后4位数码管显示“- - - -”。其中包括走时转换函数,负责将定时器走时数据转换为分钟的十位和个位,超过60分钟的数据再转换为小时的十位和个位。在计时子函数中,设置每50ms中断1次,秒计数器中计数值为200时,时间为1分钟。分钟计数器计数值为60时,时间为1小时预约时间到,单片机P3.6引脚输出低电平,驱动三极管饱和导通,继电器的线圈中有电流经过,从而产生吸合动作,接通电源,用电器开始工作。(程序见附录2) 总 结经过几周的辛苦设计,现在终于可以画上一个圆满句号了。回想起来做毕业设计的整个过程,其中有苦也有甜。毕业设计的难度不仅是检验大学所学的深度,也是

    20、对自己能力的一种提高。下面我对整个毕业设计的过程简单的做一下总结。首先,进行选题选定。选题是毕业设计的开端,选择恰当的感兴趣的题目,这对于整个毕业设计是否能够顺利进行关系极大。好比走路,开始的第一步具有决定意义的,第一步迈向何方,需要慎重考虑。否则,就可能走许多弯路、费许多周折,甚至可能做的全是无用功。 参考文献1戴佳 戴卫.51单片机C语言应用程序设计实例精讲.电子工业出版社,20062余宏生.吴建设.电子CAD技能实训.人民邮电出版社,20063李贵庭.单片机应用技术及项目化训练.西南交通大学出版社,20094刘建清.从零开始学单片机C语言.国防工业,20065钟富昭等.8051单片机典型

    21、模块设计与应用M.人民邮电出版社,20076李乃夫.可编程控制器原理、应用、实验 M.北京:中国轻工业出版社,2003.7章文浩.可编程控制器原理及实验 M.北京:国防工业出版社,2003.8谭浩强 著.C语言设计(第三版)清华大学出版社9王洪庆 主编.微型计算机控制技术 机械工业出版社 .2012.910王静霞 主编. 杨宏丽 刘俐 副主编.单片机应用技术 C语言版电子工业出版社.201211朱定华.单片机原理及接口技术实验M.北京:北方交通大学出版社,200212何立民.MCS51系列单片机应用系统设计系统配置与接口技术M.北京:北京航空航天大学出版 社,1999.11 致谢首先要感谢在大

    22、学两年半教育我的老师,没有他们给予我扎实的基础,我想我是不能完成这次毕业设计的。在这两个多月的毕业设计中,我真诚地感谢老师和同学们的帮助,在他们的帮助下我顺利的完成了此次毕业设计。在本次设计过程中李学明老师始终给予了我无私的帮助,在最开始的设计思路的构建、资料的选取等是我能顺利完成这次设计的关键。 13附录1系统仿真原理图 13附录2主程序 #include #define uchar unsigned char #define uint unsigned int sbit KEYON =P20; / 开始键 sbit KEYOFF=P21; / 关闭键 sbit KEYSET=P22; /

    23、预约键sbit KEYINC=P23; /加1键 sbit KEYDEC=P24; / 减1键 sbit KEYFREE=P25; /预留键sbit POWER=P36; /电源开关指示灯 sbit LED=P33 ; /按键指示灯uchar code dispcode=0x3f,0x06,0x05b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; /0-9的字型码uchar data disbuf=0,0,0,0; /显示缓冲区uchar hour,min ; /小时、分变量bit Onflag,flag;uchar Setflag;void delay(u

    24、char); /延时子函数void init(void); /定时器初始化子函数uchar GetKeyNum(); /求按键号void Keyprocess(uchar); /按键处理子函数void calculate(); /计时子函数void display(); /显示子函数 /-主函数-void main(void) init(); P1=0x00; while(1) display(); /-定时器TO、T1初始化,外部中断0初始化子函数-void init() TMOD=0x11; /TO、T1作定时器、工作方式1 TH0=(65536-50000)/256 ; /定时50ms TL0=(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; IT0=1; /选择外部中断0为下降沿触发方式 EX0=1; /开外部中断0 ET1=1; /开定时器1 ET0=1; /开定时器0 EA =1; /开总中断 TR0=


    注意事项

    本文(基于单片机的定时开关控制器.doc)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开