智能闹钟.docx
- 文档编号:4748403
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:15
- 大小:246.88KB
智能闹钟.docx
《智能闹钟.docx》由会员分享,可在线阅读,更多相关《智能闹钟.docx(15页珍藏版)》请在冰点文库上搜索。
智能闹钟
智能闹钟
1.设计思路
本设计是一个智能闹钟,采用美国DALLAS公司生产的时钟芯片,产生时间信号传递给单片机,经单片机处理,再通过LED8段数码管显示出来。
用户通过键盘来设定闹钟定时时间,当达到定时时间,单片机将声音传感器和喇叭开启,声音传感器采集外部声音信号,将外界的声音大小转变成电流大小,输入发光二极管,再通过光敏三极管来控制阻值大小,来控制喇叭发出的声音的大小,从而实现喇叭声音随外界声音变化而变化.
图1系统结构框图
2.方案设计
2.1单片机
方案一如果用8031系列,由于它没有内部RAM,系统又需要大量内存存储数据,因而不可用。
方案二8051或8052系列具有片内ROM或EPROM,而52子系列与51子系列的不同之处在于:
片内数据存储器增支256字节;片内程序存储器增之8KB(8032无);有3个16位定时/计数器,6个中断源。
8051片内程序存储器为4KB,对于本设计来说已经足够,因此选择8051弹片机。
2.2时钟功能
方案一用软件实现,直接用单片机的定时器编程以实现时钟;
方案二用专门的时钟芯片实现时钟的记时,再把时间数据送入单片机,由单片机控制显示。
比较两种方案,用软件实现时钟固然可以,但是程序运行的每一步都需要时间,多一步或少一步程序都会影响记时的准确度,用专用时钟芯片可以实现准确记时。
因此选择方案二。
2.3显示器
方案一液晶显示器。
如果选择此方案,将会降低系统的功耗,这样就可以用电池供电,便于携带。
但液晶显示器的驱动电路复杂,使用起来有一定的难度。
方案二用数码管作为显示器。
数码管的驱动电路简单,使用方便,如果选择了此方案,那么在夜间看时间的时候就不需要有光源,非常方便。
其缺点是功耗较大。
由于数码管使用起来较为方便,在夜间看时间也很方便,因此我们选择了方案二。
2.4键盘
方案一4*3矩阵式键盘。
如果选择此方案,那么在修改时钟或设置闹铃时间时就可以直接从键盘输入,方便、快捷,但程序较为复杂。
方案二独立式按键。
如果设置过多按键,将会占用较多I/O口,而且会给布线带来不便,此方案适用于按键较少的情况。
因此选择方案一。
3.单元电路设计
3.1单片机系统
图2AT89C51最小系统电路图
单片机采用AT89C51,使用P0口作为I/O口,则需外接上拉电阻。
使用P0.0、P0.1、P0.2、P0.3分别与74LS48译码器的输入端相连接;P0.4、P0.5、P0.6、P0.7分别与显示电路的4个LED数码管片选信号相连接;P1.0到P1.6连接外接键盘;P1.7(即B0)作为功放的输出端与功放驱动电路相连接;P2.0到P2.2分别与时钟芯片DS1302的/RET(“5”)、I/O(“6”)、SCLK(“7”)三个引脚相连接;31脚(即/EA)接高电平,因此首先执行片内程序存储器的程序;19脚(即X1)与18脚(即X2)连接外部振荡电路;9脚(即RESET)连接复位电路。
3.2键盘电路
键盘电路采用4*3行列式键盘,用P1口线组成行、列结构,按键设置在行列的交点上。
当进行键盘扫描时,则将扫描信号送至P1.4、P1.5、P1.6,再从P1.0、P1.1、P1.2、P1.3读取键盘状态,即可判断哪个键盘被按下。
P1.0、P1.1、P1.2、P1.3分别连接一个10K的上拉电阻到公共接点上,公共接点连接在VCC上,因此采用低电平扫描。
送入P1.4、P1.5、P1.6的扫描信号中,只有
按键S0到S11分别代表的意义是“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“闹钟”与“时间”。
一个为低电平(即0),其余为高电平。
紧接着读取P1.0、P1.1、P1.2、P1.3的状态,哪个为低电平(即0)则表示被按下,如果都是高电平,则从头开始继续扫描。
当长时间按下“闹钟”键时,为开启或关闭闹钟;当短时间按下“闹钟”键时,为设置闹钟时间。
当按下“时间”键时,为设置时间。
电路图如下图3所示:
图34*3键盘电路图
3.3功放电路
本系统是利用程序产生高电平,送到P1.7(即B1)口,驱动麦克风和三极管导通,采集声音信号并转化为电流,从而影响二极管的发光亮度在通过光敏三极管来控制喇叭发出的声音的大小
图4功放电路图
3.5显示电路
图5显示电路图
数码管在夜间看时间的时候就不需要有光源,非常方便,因此采用4个共阳极8段LED数码管作为显示系统,片选信号分别连接在A4(P0.4)、A5(P0.5)、A6(P0.6)、A7(P0.7),LED8段数码管的a、b、c、d、e、f、g分别与74LS48译码器的输出端相连接。
LED数码管的dp端接高电平。
电路图如上图4所示。
3.6时钟电路
图6DS1302时钟电路图
选用DS1302作为时钟芯片,X1与X2连接32.768kHz的晶体振荡电路,DS1302与单片机AT89C51采用串行数据传输方式,/RET、I/O、SCLK分别与单片机的P2.0(B1)、P2.1(B2)、P2.2(B3)相连接。
Vcc2(即“1”)连接电源。
电路图如上图5所示。
4程序设计
4.1主程序流程图
N
Y
N
Y
Y
N
Y
N
Y
图7主程序流程图
系统启动后,进行初始化设置,键盘扫描,显示当前的时间。
判断闹钟或时钟是否需要设置,如果需要则进行相应的设置,如果不需要则跳转到判断闹钟是否开启,如果没有开启则跳回键盘扫描,开启则进行判断闹钟与时间是否相等,相等则放音乐同时显示代码,进行输入码与显示代码比较是否相等,相等则关闭音乐,转到键盘扫描,否则一直播放音乐直到正确输入代码。
4.2比较闹钟与时间程序
43H,42H存放闹钟的时位;41H,40H存放闹钟的分位
33H,32H存放时间的时位;31H,30H存放时间的分位
图8比较闹钟与时间程序
MOVA,33H
XRLA,43H
JNZTO-END
…………
MOVA,30H
XRLA,40H
JNZTO-END
SETBF0
SETBP1.7
TO-END:
POPA
RET
判断33H与43H存储的内容是否相等,如果不相等则停止该程序,相等说明时间与闹钟时位的高位相等;继续判断32H与42H分别存储的时间与闹钟时位的低位是否相等,不相等则停止该程序,相等则继续判断31H与41H分别存储的时间与闹钟分位的高位是否相等,与上面同理;当判断30H与40H存储的内容是否相等时,如果相等则说明闹钟时间到达,音乐开启,F0=1,此时按键可以使用,反之则停止该程序。
4.3键盘扫描程序
系统启动后,判断有无按键按下,R2存储是哪个按键按下,然后判断R2的值。
当R2为11时,F0置位,进行时间调整,调整完毕则显示,并从新开始键盘扫描。
当R2为10时,进行1秒钟的延时,判断是否长按闹钟键(S10),如果长按,则进行闹钟开启与关闭设置,R1为FFH时闹钟开启,R1为00H时闹钟关闭;如果没有长按,则直接跳转到进行F0置位,闹钟调整。
调整完毕则显示,并从新开始键盘扫描。
当R2为其他数值时,判断F0是否为1,如果F0为1时,调用相应键值程序,否则返回键盘扫描。
F0的值判断数字键“0”到“9”是否开启,当为1时开启,反之关闭。
在调整时间、闹钟、显示代码时F0为1。
N
Y
N
R2为11R2为其他
R2为10Y
N
Y
N
YN
Y
N
Y
图9键盘扫描流程图
4.4对DS1302操作的程序
初始化要求/RST为低电平,SCLK为低电平,/RST被设置为高就启动了一个数据传送的过程。
SCLK的16个方波完成一次数据传送,前8个方波用于输入命令字节,后8个方波用于数据的输出(读DS1302)或数据的输入(写DS1302)。
在SCLK的上升沿,I/O线上数据被送入DS1302,在SCLK下降沿DS1302输出数据在I/O线上。
读DS1302驱动程序图,如下图所示:
图10读DS1302驱动程序图
读写操作各用一个程序,读DS1302如上图所示,写DS1302程序框图与之相似,只需上图第二个循环中“读数据字节一位”改为“写数据字节一位”即可。
读DS1302驱动程序:
RDRTC:
CLR/RET;置控制引脚为低电平,禁止数据传送
NOP
CLRSCLK;初始化串行时钟线为低电平
NOP
SETB/RET;置控制引脚为高电平,允许数据传送
NOP
MOVA,#0BFH;准备“接收多字节数据”的命令码
MOVR2,#8;1字节命令码需要传送8次
RDRTC0:
CLRSCLK;置串行时钟线为低电平
RRCA;将最低位传送给进位标志C
MOVP2.1,A;再传送至数据端口
NOP
SETBSCLK;置串行时钟线为高电平,其上升沿发送1位数据
DJNZR2,RDRTC0;直到发送完1字节的命令码
MOVR0,#2EH
RDRTC1:
MOVR2,#8;每字节数据需要接受8次
RDRTC2:
CLRSCLK;置串行时钟线为低电平,其下降沿接收1位数据
NOP
MOVC,P2.1;将数据端口的信息传送给进位标志C
RRCA
SETBSCLK;置串行时钟线为高电平
DJNZR2,RDRTC2;直到接收到1个完整字节的数据
MOV@R0,A
INCR0
DJNZR3,RDRTC1;直到接收完全部数据
CLR/RET
RET
5小结
本文介绍了一种智能闹钟设计。
本设计是由中央控制器、时钟系统、存储器、显示器及键盘部分组成。
控制器采用单片机AT89C51,时钟系统使用时钟芯片DS1302,用LED8段数码管作为显示器,用单片机内置ROM作为存储器件。
单片机通过时钟芯片DS1302获取时间数据,对数据处理后,单片机再把时间数据送LED数码管显示器显示,还可以显示代码;当到达所设定的闹铃时间后,单片机将麦克风导通,产生的电流控制二极管的发光亮度,再通过光敏三级管控制喇叭得音量。
用户可以通过键盘设置闹铃的时间和校正当前的时间。
软件部分采用汇编语言,分别对键盘、显示、时钟等进行相应的程序编辑,将编好的程序在仿真软件中进行仿真,看程序是不是能够按照所想的运行方向正常的运行并对其修改。
在整个设计过程中也存在许多问题,程序各个之间的连接不如设想的流畅,但基本上实现了时钟、闹钟与音乐的功能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 闹钟