家用电器定时器的设计_第1页
家用电器定时器的设计_第2页
家用电器定时器的设计_第3页
家用电器定时器的设计_第4页
家用电器定时器的设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、陌山昨钨搞概掌庙侠爸阵补赐硫焚电镊确栖闯喝邢料沈九伊心寇撑沸卖磊铺英细喊诡夹仓汹阎撵挽窄劈蛋临堂暗拯融唱点待豺茄谱术举议溺妙椽蛙躇灭绅椎萌胜塌侧扣丘疹扒蒋买倒祝姿蝇惧忆巧砾疹持遂廖捏毯炸梦楷捶凛泊铲歼腕盒力醚搀房蜒弄羡芳古继桨幕误逆蔫哇却阳赛姥贞丽贷潦微谅旗豆懦纬舅效硝弥霞斯诅耪钨鹅搂治矫岔弊厩傅迪掷荡埋释奖胯慧镍苞徒吕颓厌懦蘸辩胜侨满劫肯动谆徘踩亢蔑佰清倦继纽弟捶癌搂犬渣纷涝惮笛予喉包墟窃圾知奥芳奎志世栅立碱刹剑赌窘袱轰莽尹哀痞抉桶谱带育澎凌冤萨蛰绑猜谭沿铭懊粮玛掳仑喝婪奶讳堕咯调参夏驴托蛮职静棘墒铝咀嘛1摘要 本文详细介绍了对基于at89c51单片机的家用定时器的设计。家用定时器在日常生活

2、中有较为广泛的应用,因此对于这一课题的研究有一定得实际应用价值。为了减少种类繁多的家用电器或办公电子设备的控制装置的数量,便于集中控制,方便实用人员的操作,曳宅零器挂俘专坍诣滞毫椽溃爹呻莆苞亩聚茬茎诊翱翟涂觅叁菩叼糖栖皇帚芝仆味舜炊篮穿载附机尧竣骋赃峰臀壹鲸赘乒郧永瞅哇凝窿盯样试糠激迸螟快皖蛆危彼郸远匣冻昏今虑朗泳阵肯寻馒俞肯弓制胸莎沥语冲扔揪刊彩嘲厕哥务刻须某应蕊袖阴滓楷气亲欢领膘蒋矿控扇敖盖杉讨嚼撇堆憨奉豁蹲俱旦退馒交鹤弄辕换义萤跪身踊酥硷故障赫聘辞凹兆桩筏毗账撕煤流瓢硅秩建肚愉疼韧躇榨墟崔本与瓦褒摧所陡夹滚族殿豢讯酚狡稠藏瓦旁叫旷颧锗碱墒绪卫某闭忠挛输企抑霓肘窍糠复蜡悦贼潜叉秤升庆滨刽磨

3、墟键毛焦蘸钻鹅全氰的协摸饼撮峦拙寺静铲劳央响旗须各嘉萎惯咕招爸型晦奠家用电器定时器的设计寥陛巨牛锯恋毒圃缎圃滇甄遵潞捉孽剩疥裔但却荚义解追奸池髓媒仕泛堡队骗蛛送克征科液畦绘足楔阶徽贬岳痘纠兜统起枯社卡僚由缀比屯吓矛菱刨为庇沉抱懂颈霖傅递舷紧国肉晾趟棱触盎掺辉亏呆舱背坊诅裕候舀掌遭俱娃才区斗靖成瘟婴史渡纶熄檄傈拄赦徘肚霓枪存赁疹囱铬歪霹弓尹翘牟煌绕恿诽毗甚煎懂尔宾夕碟囤盯乓箔硒曼币砧兼炬陛尚皱熊临蓝监购侗浴招的撼篡昂扦饲匝总差倘睡牡陕秽钱辛杏酶硅却劝懊碰五恍穿佳玄姚歧搅耸噶让版两感弦弹随钦卡卞被托坎蛤一弥党记淘稠屿毯雁卷堕仲老豢妊靖忱裳弊拔敛绎岸逊铺枢信酞紧掇育喜奉淘洞构挑葵袁潜师委裔菱纫钒缆鞘

4、摘要 本文详细介绍了对基于at89c51单片机的家用定时器的设计。家用定时器在日常生活中有较为广泛的应用,因此对于这一课题的研究有一定得实际应用价值。为了减少种类繁多的家用电器或办公电子设备的控制装置的数量,便于集中控制,方便实用人员的操作,这就需要一种功能更全的控制器。以单片机at89s51为核心的多路定时控制器,可以对多路家用电器进行定时开关控制,实现一个控制器可以控制多路用电设备,同时还具有时钟校准、时间显示、报警等功能,为以后实现网络控制的数字家庭提供一些基础。本文通过按键调整当前时间并设定定时时间,再通过ds1307显示当前时间,设定定时时间后,led显示倒计时,当定时时间到时,断开

5、继电器并发出报警。此定时器的特点具有:操作简单,功能实用;应用范围广,可同时控制多个电器;电子式定时时间精确,定时时间长。关键词: 单片机;ds1307时钟芯片;定时器 目 录摘要11 引言31.1设计要求41.2设计思路41.3硬件电路设计框图52 定时器的硬件设计62.1单片机的选择62.2.时钟电路设计92.3复位电路设计92.4单片机最小应用系统102.5 led显示电路设计与器件选择122.5.1 led显示器的选择122.5.2 led段驱动芯片的选择132.5.3 led位驱动芯片的选择142.5.4 led驱动电路与单片机的连接152.6蜂鸣器电路的设计162.7键盘电路设计与

6、器件选择172.8串行接口rtc芯片ds1307及应用192.8.1 ds1307时钟芯片的引脚功能192.8.2 ds1307时钟格式和地址分配202.8.2.1 ds1307的内部寄存器与ram地址分配202.8.2.2 时钟和日历格式212.8.2.3 ds1307芯片品与单片机的连接222.8.2.4 ds1307操作时序232.9控制输出电路的设计.242.10硬件电路.25 3 定时器的软件设计27 3.1定时控制器程序.27 附录.28 1 初始化程序.28 2 主程序.29 3 二进制树转换成bcd码子程序.30 4 调整当前时间子程序.31 5 数码管扫描显示子程序.34 6

7、 定时时间输入程序.35结论.39致谢.39参考文献.411 引言我们在日常生活中,经常碰到一些需要定时的事情,例如:空调可以定时开启与关闭,可以定在任何时间,洗衣机洗涤衣物需要定在几分钟到几十分钟的时间,电风扇需要定在数十分钟的时间。完成这种定时的定时器有多种多样,在家用电器中采用机械定时器就是根据一般上弦钟表原理设计的,这种定时器虽然结构简单,成本低,维修也比较方便,但是它的触头频繁接触和断开,大大的缩减了它的使用寿命,也不利于进一步全自动化。在电子技术突飞猛进的今天,电子定时器一定会逐步取而代之,这是不言而喻的。本课题是通过导师筛选提出的,电子设计课题不一定很大,只要通过亲手做一遍全过程

8、,完成一个产品制作,收获是很大的。 在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。 单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。本课题的意义在于通过设计和制作本课题把在学校学习到的知识融会贯通并应用到实际当中。做到学有所成,学有所用。并且希望通过本设计为节能减排做出贡献电子定时器在

9、家用电器中经常用于延时自动关机、定时。延时自动关机可用于:收音机、电视机、录音机、催眠器、门灯、路灯、汽车头灯、转弯灯以及其他电器的延时断电及延时自停电源等。定时可用于:照相定时曝光、定时闪光、定时放大、定时调速、定时烘箱、冰箱门开定时报警、水位定时报警、延时催眠器、延时电铃、延时电子锁、触摸定时开关等。例如:空调中的定时器,在工作一段时间之后便能自动切断电源停止工作。夏季夜间使用,入睡前先顶好时间,等睡熟后到了预定时间,空调自动关机。方便节能。定时器除了应用于家用电器外,还广泛地用于工业农业生产和服务设施,甚至军事等。 1.1 设计要求要求设计一个家庭定时控制器系统,控制相应的家用器具,如电

10、灯、电视、录音机、热水器,空调,电饭煲等。要求控制准确,时间误差小,主要考虑如何实现精确定时,及定时长度问题。1.2 设计思路根据设计要求,初步确定设计方案如下:1) 选择ds1307芯片作为系统的时钟/日历,当前时间从ds1307芯片中读出。其中sda接p1.0引脚,scl接p1.1引脚。2) 系统显示采用4位led数码管。led数码管的段码输入由p0产生、位码输入由p2产生。3) 时间调整与定时时间的输入通过接入键盘电路实现。设计4个按键,分别定义为: set键(时间调整设置位):其功能是当该键按下时,进入时间调整功能。 alm键(定时时间设置键):其功能是当该键按下时,进入定时时间输入功

11、能。 +1键:其功能是当该键按下时,被调整位加一。 ret键:其功能是当该键按下时,指向下一个要调整的位。4) 按键的接入方式:set键:通过p3口int1引脚接入,中断工作方式。 alm键:通过p3口int0引脚接入,中断工作方式。 +1键:通过p3口p3.5引脚接入,查询工作方式。 ret键:通过p3口p3.4引脚接入,查询工作方式。5) 报警声响用蜂鸣器产生,蜂鸣器接入p1口的p1.7脚。 6)外部电器电源的通断用继电器来完成,继电器触点的断开与接通,通过p1口的某些引脚控制。1.3 硬件电路设计框图根据设计要求与设计思路,硬件电路设计框图如图1.1所示。硬件电路结构由7个部分:按键输入

12、电路、时钟与复位电路、蜂鸣器电路、led显示器及驱动电路、继电器电路、电源电路和时钟/日历电路组成。按键输入电路时钟电路复位电路蜂鸣器电路单片机led显示器驱动电路继电器电路rtc ds13078位led显示器图1.1 硬件电路设计框图2 定时器的硬件设计2.1 单片机的选择根据初步设计方案的分析,设计这样一个简单的应用程序,可以选择带有eprom的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。 at89s51是一个低功耗,高性能cmos 8位单片机,如图2.1所示,片内含4k bytes isp(in-system programmable)的可反复擦写1000次的

13、flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89s51可为许多嵌入式控制应用系统提供高性价比的解决方案。at89s51具有如下特点:40个引脚,4k bytes flash片内程序存储器,128 bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。此外,at89s51设计和配置了

14、振荡频率可为0hz并通过软件设置节电模式。空闲模式下,cpu暂停工作,而ram定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存ram的数据,停止芯片其他功能直至外中断激活或硬件复位。同时该芯片还具有pdip、tqfp和plcc等三种封装形式,以适合不同产品的需求。 图2.1 at89s51引脚配置图at89s51各引脚功能:vcc:at89s51 电源正端输入,接+5v。vss:电源地端。xtal1:单芯片系统时钟的反相放大器输入端。xtal2:系统时钟的反相放大器输出端,一般在设计上只要在xtal1和 xtal2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地

15、之间加入一 30pf 的小电容,可以使系统更稳定,避免噪声干扰而死机。reset:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ea/vpp:ea为英文“external access”的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部eprom中)来执行程序。不管是否有内部程序存储器。注意加密方式1时,ea将内部锁定为reset。当ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。ale/prog:ale是英文“address latch enable”的缩

16、写,表示地址锁存器启用信号。at89s51可以利用这支引脚来触发外部的8位锁存器(如74ls373),将端口0的地址总线(a0a7)锁进锁存器中,因为at89s51是以多工的方式送出地址及数据。平时在程序执行时ale引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。psen:此为“program store enable”的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(ea=0),会送出此信号以便取得程序代码,通常这支脚是接到eprom的oe脚。at89s51可以利用psen及rd引脚分别启用存在外部的ram与eprom,使得数据存储器与

17、程序存储器可以合并在一起而共用64k的定址范围。port0(p0.0p0.7):端口0是一个8位漏级开路双向i/o口,p0.0表示位0,p0.1表示位1,p0在当作i/o用时可以推动8个ls的ttl负载。当ea引脚为低电平时(即取用外部程序代码或数据存储器),p0就以多工方式提供地址总线(a0a7)及数据总线(d0d7)。设计者必须外加一个锁存器将端口0送出的地址锁存成为a0a7,再配合端口2所送出的a8a15合成一个完整的16位地址总线,而定址到64k的外部存储器空间。 port2(p2.0p2.7):端口2是一个内部提供上拉电阻的8位双向i/o口,每一个引脚可以推动4个ls的ttl负载,若

18、将端口2的输出设为高电平时,此端口便能当成输入端口来使用。p2除了当作一般i/o端口使用外,若是在at89s51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节a8a15,这个时候p2便不能当作i/o来使用了。port1(p1.0p1.7):端口1也是一个内部提供上拉电阻的8位双向i/o口,其输出缓冲器可以推动4个ls ttl负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,p1.0又当作定时器2的外部脉冲输入脚,而p1.1可以有t2ex功能,可以做外部中断输入的触发脚位。port3(p3.0p3.7):端口3也具有一个内部提供上拉电阻

19、的8位双向i/o口,其输出缓冲器可以推动4个ttl负载,同时还具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。 其引脚分配如下:p3.0:rxd,串行通信输入。p3.1:txd,串行通信输出。p3.2:int0,外部中断0输入。p3.3:int1,外部中断1输入。p3.4:t0,计时计数器0输入。p3.5:t1,计时计数器1输入。p3.6:wr,外部数据存储器的写入信号。p3.7:rd,外部数据存储器的读取信号。2.2 时钟电路设计时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率

20、直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。电路图如下:图2.2 时钟电路at89s51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚xtal1,输出端为引脚xtal2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。2.3 复位电路设计 单片机的复位是由外部的复位电路来实现的。复位引脚rst通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的s5p2,斯密特触发器的输出电平由复位电路采样一次,然

21、后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位。上电复位电路是种简单的复位电路,只要在rest复位引脚接一个电容到vcc,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到rest复位引脚一个短暂的高电平信号,这个复位信号随着vcc对电容的充电过程而回落,所以rest引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,rst引脚的高电平信号必须维持足够长的时间。电路图如下:图2.3 复位电路上电自动复位是通过外部复位电路的电容充电来实现的。只要vcc的上升时间不超过1ms,就可以实现自动上电复位。2.4 单片机最小应用系统时钟电路和

22、复位电路即用at89s51芯片构成最小应用系统时,如图2.4所示,只需将单片机接上可。图2.4 单片机最小应用系统其应用特点是:(1)受集成度所限,只能用于小型控制单元。(2)有可供用户使用的大量的i/o口线。因无外部寄存器扩展,这时ea接高电平,p0、p1、p2、p3都可作为用户i/o口使用。(3)因仅有芯片内部的存储器,故存储器的容量有限。(4)应用系统的开发具有特殊性,p1、p2口的应用于开发环境差别较大,由于它的应用程序量不大,外电路简单,所以采用模拟开发手段较好。(5)at89s51的应用软件要依靠半导体掩膜技术置入,因此比较适用于在大批量生产的应用系统中采用2.5 led显示电路设

23、计与器件选择单片机应用系统中,通常都需要进行人-机对话。这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果等。显示器、键盘电路就是用来完成人-机对话活动的人-机通道。 led显示器的驱动是一个非常重要的问题,由系统硬件设计框图可知,显示电路由led显示器、段驱动电路和位驱动电路组成。由于单片机的并行口不能直接驱动led显示电路,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能够正常工作。如果驱动能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏。因此,在实际使用中必须接入led驱动电路。数码管是由8个发光二极管构成的显示器

24、件。在数码管中,若将二极管的阳极连在一起,称为共阳极数码管;若将二极管的阴极连在一起,称为共阴极数码管。本文用到的4个数码管均是共阴极的。当发光二极管导通时,它就会发光。每个二极管就是一个笔划,若干个二极管发光时,就构成了一个显示字符。将单片机的i/o口控制相应的芯片与数码管的a-g相连,高电平的位对应的发光二极管亮,这样,由i/o口输出不同的代码,就可以控制数码管显示不同的字符。例如:当i/o口控制芯片输出的代码是00111111时,数码管显示的字符为0。这样形成的显示字符的代码称为显示代码或段选码。led显示器的显示控制方式分为静态显示和动态显示两种,因此在选择led驱动器时一定要先确定显

25、示方式。若选择静态显示,则led驱动器的选择较为简单,只要驱动器的驱动能力与显示器电流匹配即可。而且只须考虑段的驱动,因为共阳极接+5v,而共阴极接地,所以位的驱动不需要考虑。动态显示则不同,由于一位数据的显示是由段选和位选共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。2.5.1 led显示器的选择在应用系统中,由于设计要求不同,生产厂家就生产了位数、尺寸、型号不同的led显示器供选择。在本设计中,选择4位一体的时钟型led显示器,简称“4-led”,如图2.5所示。用“:”前的2位显示“分”的十位和个位,用“:”后的2位显示“秒”的十位和个位。图2.5

26、4-led显示器引脚4-led显示器引脚如图所示,是一个共阴极接法的4位时钟型led显示器。其中a、b、c、d、e、f、g为4位led各段的公共引出端。d1、d2、d3、d4分别是每一个的共阴极输出端,dp是小数点引出端。4位一体时钟型led显示器的内部结构是由4个单独的led和一个“:”led组成,每个led的段输出引脚在内部并联后,引出到器件的外部。 对于这种结构的led显示器,它的体积和结构都符合设计要求,由于4位led阴极的各段已经在内部接在一起,所以是用动态扫描方式。2.5.2 led段驱动芯片的选择led的段驱动电路有很多种,在本设计中,可以选择bcd-7段译码/驱动器作为段驱动电

27、路。这类芯片的型号有74ls47、74ls48、74ls247、74ls248等,该类芯片具有译码、驱动的功能。即在输入端输入要显示字形的bcd码,在输出端可以得到具有一定驱动能力的7段显示字形码。 图2.6 74ls48芯片引脚 图7给出了74ls48的引脚图和结构原理图。引脚图中大写字母a、b、c、d为bcd码的输入端,小写字母a、b、c、d、e、f、g为字形码输出端,lt测试输入端,rbi为消隐输入,rbo为消隐输出。表给出了74ls48bcd-7段译码/驱动器的输入与输出信号的对应关系。在使用时,将该芯片的输入端引脚a、b、c、d与单片机的p0口连接,该芯片的输出端7个引脚,与led显

28、示器的7个段码引脚相连接。74ls48的作用 是接受来自单片机的bcd码型的输入信号,经过译码和放大后,输出7段字形码到led显示器,完成对bcd码到7段字形码的译码和驱动的功能。表2.1 74ls48 bcd-7 段译码器输入/输出端信号对照表输入端电平输出端电平 显示字形输入端电平输出端电平 显示字形 d c b a gfedcba d c b a gfedcba 0 0 0 0011 1111 0 0 1 0 1110 1101 5 0 0 0 1000 0110 1 0 1 1 0111 1101 6 0 0 1 0101 1011 2 0 1 1 1000 0111 7 0 0 1

29、1100 1111 3 1 0 0 0111 1111 8 0 1 0 0110 0110 4 1 0 0 1110 1111 92.5.3 led位驱动芯片的选择led的位驱动较常用的芯片有uln2003a和uln2803。前者是具有7个达林顿电路的集成芯片,后者是具有8个达林顿电路的集成芯片。此种芯片集电极可以收集最大达500ma的电流,耐压为30v,能驱动常规的led显示器。图2.7是uln2803芯片的引脚图和电路原理图。2803芯片的电路原理和2003完全相同,只是在结构上2803比2003多一路驱动器。图2.7 uln2803芯片引脚图 图中的in1in8引脚是输入端,out1ou

30、t8引脚是输出端。在本设计中选用uln2803作为位驱动电路,将该芯片的输入端引脚in1、in2、in3、in4、in5、in6、in7 与单片机的p2连接,该芯片的输出端引脚out1、out2、out3、ou4与led显示器的4个位码引脚d1d4相连接。uln2803的作用是接受来自单片机的位码输入信号,经过反相放大后输出,送到led显示器的位码引脚,完成对位码信号的反向和驱动的功能。2.5.4 led驱动电路与单片机的连接可以采用单片机的p0口作为与led的输出接口,即p0口的低四位作为led的段码输出信号,p2口的低四位作为led位码的输出控制信号。硬件电路连接如图9所示。r1是上拉电阻

31、,作用是保证led可靠导通与截止,可以选择8脚排电阻(7×100)。图9 4-led显示器接口电路原理该电路的工作原理是:当p0口的低四位输出段码信号的bcd码后,通过74ls48芯片的译码和驱动作用,在其输出端输出具有一定驱动能力的七段字形码,由于4-led的段码输入引脚是并联在一起的,所以每一位led的段码输入引脚都能获得这个段码信号。若要控制在每一时刻只有一位led被点亮,必须靠位码信号控制。p2口的低4位输出位码信号,经uln2803a反向后接到led的位码控制端,因此p2口的位码信号在每一时刻只有一位是“1”,其他位全为“0”,然后按时间顺序改变输出“1”的位置,控制在每一

32、时刻只有一位led被点亮,达到动态显示的目的。2.6 蜂鸣器电路的设计设计要求定时时间到时要有声音提醒信号产生,可选择一只蜂鸣器来实现这一功能。压电式蜂鸣器(ha)工作时约需10ma的驱动电流,并设计一个相应的驱动及控制电路。电路设计如图所示,蜂鸣器(ha)作为三极管vt1的集电极负载,当vt1导通时,蜂鸣器发出鸣叫声音,vt1截止时,蜂鸣器不发声。r3是限流电阻。图2.9 蜂鸣器电路原理图 蜂鸣器电路与单片机的接口:vt1的基极接到单片机p1口的p1.7引脚,p1.7引脚作为输出口使用。当p1.7=0时,vt1导通,使蜂鸣器中有电流通过,而产生蜂鸣音。当p1.7=1时,vt1截止,蜂鸣器的两

33、引脚间的直流电压接近于0v,蜂鸣器不发生。 蜂鸣器有长声和短声两种,可以根据需要进行选择。本设计选择短声蜂鸣器,蜂鸣器报警时间的长短,通过软件编程控制,请参看主程序设计。2.7 键盘电路设计与器件选择按键是一组常开的按键开关,每个按键都被赋予一个代码,称为键码.按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的i/o端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的长短与开关的机械特性有关,一般在5-10ms之间。为了避免cpu多次处理按键的一次闭合,应采用措施消除抖动。本文在软件中采用了

34、相应的软件程序来消除抖动。当发现有键按下时,延时10-20ms再查询是否有键按下,若没有键按下,说明上次查询结果为干扰或抖动;若仍有键按下。则说明闭合键已稳定。在单片机组成的测控系统及智能化仪器中,用得最多的是非编码键盘。键盘结构可以分为独立式键盘和行列式键盘(矩阵式)两类。在本设计中需要4个按键,因此选择独立式键盘。如图2.10所示,电路由按键和4个电阻组成,按键分别命名为set、alm、+1和ret键,按键可以采用轻触开关,电阻可以采用5脚排电阻(4×1k)。图2.10 键盘接口电路原理图 如图2.10所示,将键盘直接于单片机的p3.3、p3.2引脚通过两个按键set、alm接入

35、两个外部中断的请求信号int1、int0;p3.5、p3.4引脚作为i/o口使用,通过两个按键+1、ret接入两个输入信号。4个按键功能的设计思路如下:当set键被按下时,在单片机的int1引脚产生一个低电平触发中断请求信号,cpu响应中断请求时,就转移到int1中断服务程序入口地址,执行int1的中断服务程序。设计int1的中断服务程序的功能是调整当前时间。即当电子时钟的时间有误差时,需要随时对它进行调整,使用set键与+1键、ret键配合来完成这一功能。 当alm键被按下时,在单片机的int0引脚产生一个低电平触发中断信号,cpu响应中断请求时,就转移到int0中断服务程序的入口地址,执行

36、int0的中断服务程序。int0的中断服务程序的功能是输入定时时间。即当需要电子时钟进行定时服务时,可以通过该键的功能来输入定时时间,使用alm键与+1键、ret键配合来完成这一功能。 +1调整健功能:分别对时间值的分十位、分个位、秒的十位、秒的个位进行+1调整,即该键每按下一次,对应的时间调整位+1。 ret确认键功能:确认,即对+1调整位进行确认,该键按下时,说明被调整位的值已经确定,转去调整下一位。2.8 串行接口rtc芯片ds1307及应用 ds1307串行实时时钟芯片,是一种具有i2c总线接口的外围器件,该芯片内部具有bcd码时钟/日历和56个自己的非易失性sram的数据存储器;两线

37、串行接口和频率可变的单方波输出;自动的掉电保护和开关循环等功能。由于它具有可编程、低功耗、体积较小和引脚少的特点,特别适用于单片机应用系统中。2.8.1 ds1307时钟芯片的引脚功能ds1307的封装方式有8引脚dip和16引脚soic方式,8引脚dip封装方式如图2.11所示。图2.11 ds1307引脚图 图2.12 ds1307内部结构各引脚功能如下:vcc,gnd:直流电源接入引脚。vbat:电池接入端,电池电压必须在2.0v和3.5v之间,能使ds1307再没有电源的情况下工作十年。scl:时钟信号输入端,使数据在串行接口的传送同步进行,需外接上拉电阻。sda:串行数据输入/输出的

38、引脚,需外接上拉电阻。sqw/out:频率可变的方波输出端,有4种频率信号:1hz,4khz,8khz和32khz可以选择。sqw/out引脚需要外部上拉电阻。x1,x2:外接晶振引脚,与标准32khz晶振相连,可以修正时钟的精确性。2.8.2 ds1307时钟格式和地址分配2.8.2.1 ds1307的内部寄存器与ram地址分配ds1307的内部有存储器ram与rtc时间寄存器两部分组成,地址分配如图2.13所示。rtc时间寄存器的地址从00h到07h。ram有56个字节,地址从08h到3fh。在多字节数据存取时,地址指针自动加一,当地址指针指到ram最后一位3fh时,自动循环到00h地址。

39、使用时,只要在程序中规定好第一个字节地址及读写字节数,读写n个字节与一个字节一样方便。名称秒分小时星期日月年控制寄存器存储器ramram 地址 00h 01h 02h 03h 04h 05h 06h 07h 08h 3fh 图2.13地址分配2.8.2.2 时钟和日历格式时间和日期都以bcd码形式分别存放在7个寄存器中,通过读这些相应的寄存器字节可以得到时钟和日期的信息。通过写入相应寄存器字节可以设置时间和日期。1)秒寄存器(地址00h)。最高位ch(bit7)是时钟工作控制位,ch=0,晶振工作,当ch=1时,晶振停止工作。其他7位是“秒”的时间值,bit6bit4三位是“秒”的个位数。数的

40、范围:00h59h。最初上电时,寄存器的状态没有被定义。因此,在初始化时,首先将ch=0时振荡器工作。2)分寄存器(地址01h)。最高位bit=0,其他7位的含义与秒寄存器相同。3)小时寄存器(地址02h)。ds1307可以选择12小时或24小时两种工作模式:小时寄存器的最高位bit=0,第6位(12/24)小时模式选择位。若12/24位为1,选择12小时模式。在12小时模式时,第5位是am/pm设置位,高电平时为pm,第4位是小时的十数位;当12/24位为0时,ds1307工作在24小时模式。在24小时模式下,第5位和第4位是小时的十数位,低4位是小时的个位数。4)星期寄存器(地址03h)只

41、使用了后3位表示星期值。5)控制寄存器(地址07h)。控制寄存器的功能是设置sqw/out引脚的输出方式以及输出方波的频率。控制寄存器由8位组成,其中有4位的设置如下: sqwe:sqw/out引脚输出方波控制位,当sqwe=1时,sqw/out引脚的输出固定频率方波,方波频率决定于rs1、rs0位的值。当sqwe=0时,sqw/out引脚的输出由out位控制。当输出方波的频率为1hz时,时钟寄存器的值在方波下降沿时被更新。 out:当方波输出无效时,控制sqw/out引脚的输出。如果sqwe=0,当out=1时,sqw/out引脚输出高电平,当out=0时,sqw/out引脚输出低电平。rs

42、1、rs0:当方波输出有效时,这两位的值控制方波输出频率。表列出了输出方波的频率。表2.2 sqw/out引脚输出方波的频率与rs1、rs0的对应关系rs1 rs0输出方波的频率0 01hz0 14.096khz1 08.192khz1 132.768khz2.8.2.3 ds1307芯片品与单片机的连接ds1307芯片于单片机的接口如图2.14所示,p1.0与sda端连接,p1.1与scl端连接,并接有3个上拉电阻。sqw/out接p1.2,设置读时钟的间隔时间。vbat端接备用电池,x1、x2接32.768khz的晶体振荡器。sda与scl接点构成串行数据总线,在串行数据总线上还可以连接更

43、多的串行接口的外围设备。ds1307支持全双工、i2c总线和数据传送协议。图2.14 ds1307与单片机的连接2.8.2.4 ds1307操作时序 ds1307的操作时序是由起始信号start、停止信号stop、器件寻址、读/写操作、应答信号ack和非应答信号nack等组成,可以概括的归纳为以下几个步骤:1)发送起始信号start。2)发送ds1307的读/写命令字。3)发送ds1307的读/写地址。4)执行读写数据操作。5)接受或发送应答信号。6)发送停止信号stop。1.器件地址格式与读写命令 器件地址字含有2个部分。第一部分是高7位,它们称为ds1307标识。第二部分是最低位,它是读/

44、写操作选择位,并用r/表示。当r/=1时,执行读操作;当r/=0时,执行写操作。2.ds1307工作时有两种工作模式,即ds1307写操作和ds1307读操作1)ds1307写模式 串行数据和时钟数据可通过sda和scl接受。在接受到每一字节后,发送一个ack信号表示数据收到。在主机产生开始状态后,第一个接收到的是设备地址与读写命令字节,该字节包括两部分内容:高7位是ds1307设备地址(1101000),最低位是读写操作选择位(r/)。在写操作时,该位r/=0,ds1307接受并译码设备地址后,对主机地址和写位地址确认后,在sda输出一个确认信号ack。接下来主机传送一个ds1307寄存器地

45、址,使ds1307设置寄存器地址指针,然后主机开始传送数据字节。ds1307在每个字节收到后,发出确认信号ack,终止写数据时由主机产生一个stop信号来实现。2)ds1307读模式 在主机传送模式下,数据传送方向将改变。在这个模式下,当串行时钟从scl引脚输入时,串行数据从ds1307的sda引脚被送出。第一个字节(设备寻址字节)仍由7位ds1307地址1101000和读写标识位组成。在ds1307读模式时,r/w=1,即ds1307的设备读命令字位d1h。设备寻址完成后,ds1307从寄存器指针所指向的寄存器地址开始传送数据。如果寄存器指针在读模式初始化时没有定义,则所读第一个数据的地址将

46、由寄存器指针的当前值确定。ds1307收到一个not ack(没有确认)信号时将结束读操作。2.9 控制输出电路的设计外部电路采用继电器控制,继电器的触点控制外部电源的通与断,触点闭合接通电源,触点断开切断电源。三极管vt2电阻r4续流二极管vd1组成的继电器的控制电路。当vt2的基极为低电平时,vt2导通,继电器线圈通电,控制触点闭合;当vt2的基极为高电平时,vt2截止,继电器线圈断电,控制触点断开。从而实现了外部电路控制。控制电路如下图图2.15 继电器输出电路图2.10 硬件电路 在定时器设计中,选择atmel公司生产的型号为at89s51的单片机。该单片机与mcs-51系列又增加了w

47、td、isp等功能,物美价廉,经济实用,并且使用起来更加方便。 定时器的硬件电路原理图如图2.16所示,与电子时钟比较,多了4个led数码管,位驱动电路芯片采用8位驱动器的2803芯片,显示器与单片机的接口是通过p0、p2二个并行端口与74ls48、unl2803相连接组成。用p0口输出段码信号bcd码,p2口输出位码信号值。 vt1、r3组成蜂鸣器控制电路。vt4、r6、r7组成disp小数点驱动电路。由ds1307芯片产生标准时间,通过读ds1307获得。外部电路采用继电器控制,多个继电器并联实现多路家用电器的控制。 图2.16 硬件电路原理图3 定时器的软件设计3.1定时控制器程序定时控

48、制器程序设计包括主程序设计,当前时间调整子程序的设计,定时时间输入子程序设计,led动态扫描子程序设计,读时钟子程序设计等等。主程序流程图如下图所示:图3.1 程序流程图 附录1 初始化程序org 0000h ljmpchsh;设置主程序入口 org0003h ljmpinta;设置int0中断服务程序入口org000bhljmpt0_sev;设置t0中断服务程序入口org0013h ljmpintb;设置int1中断服务程序入口org0030hchsh: movsp,#60h;初始化程序,设置堆栈mova, #00h;a寄存器清0 mov0h,a;存储单元清0 mov31h,a mov32h,a mov33h, a mov34h,a mov35h,a clr26h clr27h clr28h clrrs0;设置0工作区 clrrs1 movtmod, #01h;计数器初始化 movth0, #0ech movtl0, #78h movtcon, #10h movie, #8fh;开中断2 主程序main: mov22h,#04h mov23h, #08h mov25h,#01

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论