基于单片机的打铃系统设计Word文档格式.docx
- 文档编号:20537182
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:30
- 大小:1.48MB
基于单片机的打铃系统设计Word文档格式.docx
《基于单片机的打铃系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的打铃系统设计Word文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
50-11:
第五节课
13:
30-14:
第六节课
14:
20-15:
第七节课
15:
20-16:
第八节课
16:
10-16:
晚自习
19:
00-20:
熄灯
22:
1.2设计方案选择
1.2.1方案一:
数字电路设计的自动打铃系统
利用函数信号发生器来进行脉冲信号输出,利用74160N来设置十进制和六进制的进位输出。
利用数码显示器来显示时间,利用或门、与门、非门、与非门、等电路元件进行组合实现打铃的控制。
1.2.2方案二:
基于单片机的自动打铃系统设计
单片机部存储器设三个字节分别存放时钟的时、分、秒信息。
利用定时器与软件结合实现1秒定时中断,没产生一次中断,存储器相应的秒值加1;
若秒值达到60,则将其清零,并将相应的分字节值加1;
若分值达到60,则清零分字节,并将时字节值加1;
若时值达到24,则将时字节清零。
建立完一个实时时钟后接下来进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间与信息时间表上的作息时间是否相同,相同者,则进行报时处理并控制打铃,不相同则返回主程序。
1.2.3方案确定
方案一的设计只能事先设定打铃时间不能完全自动打铃,且在修改打铃时间上存在一定的困难。
而方案二中的设计能完全实现自动化,诠释了我们这次毕业设计的主题。
并在修改打铃时间上有了很大的方便,只需修改一部分程序便能实现不同的需要。
因此我选择方案二进行设计。
1.3基本方案
1.3.1设计课题简要概述
自动打铃装置用于工厂、学校等地的时间控制,本设计是按照学校作息时问设定的,模拟了电了钟显示时、分、秒。
还根据学校的作息时间按时打铃,本系统有4个按钮,分别用来调时、调分、秒和强制打铃及强制关铃,以保证始终与标准时间相吻合。
首先设计出本系统的硬件基本框图,根据框图设计电气原理图,简要概述基本原理,按照设计技术参数设计出各部分程序。
1.3.2系统软硬件划分
由于需要最小系统设计,因此,极介于系统的硬件成本,所有能用软件实现的功能都用软件完成,如按键的去抖,采用延时,显示部分用动态显示等,这样硬件部分的设计可以采用单片机最小系统,所谓最小系统时仅有程序存储器和时钟及复位电路的单片机系统。
1.3.3单片机选型
根据课题的具体容,任务要求,计时、校时、定时、键盘显示等功能,经多方面考虑,所选系统选项用.与MSC-51单片机完全兼容的AT89C51低功耗单片机。
1.4总体设计框图
图一整体框图
第二章硬件电路设计
2.1基本原理概述
本系统主要由主控模块,时钟模块,显示模块,键盘接口模块等4部分构成。
通过部定时产生中断,从而使驱动电铃打铃。
设定51单片机工作在定时器工作方式1,每100ms产生一次中断,利用软件将基准100ms单元进行累加,当定时器产生10次中断就产生lS信号,这是秒单元加1。
同理,对分单元和时单元计数从而产生秒,分,时的值,通过六位七段显示器进行显示。
由于动态显示法需要数据所存等硬件,接口较复杂,考虑显示只有六位,且系统没有其他浮躁的处理程序,所有采用动态扫描LED的显示。
本系统采用四个按键,当时钟时间和设置时间一直时,驱动程序动作,进行打铃,每次打铃30S
2.2主要原件参数及功能简介
2.2.1主控器AT89C51
AT89C51公司生产的AT89C51单片机用高性能的静态89C51设计,由先进工艺制造,并带有非易失性FLASH程序存储器,它是·
种高性能、低功耗的8位CMOS微处理芯片,市场应用最多,主要特点有:
有4K的FLASH程序存储器
256字节部RAM
电源控制模式:
时钟可停止和恢复,空闲模式,掉电模式
6个中断源
4个中断优先级
4个8位I/O口
全双工增强型UART
2个16位定时、计数器
图二AT89C51
2.2.2DS1302时钟电路DS1302
(1)性能特性
实时时钟可对秒,分,时等进行计数,存在高速数据暂存的31*8位RAM,最少引脚的串行I/O口;
2.5~~5.5V电压工作围;
2.5V耗电小于300nA;
用于时钟或RAM数据读/写的单字节或多字节数据传送方式;
简单的3线接口;
可选的慢速充电的能力。
DS1302时钟芯片包括实时时钟和31字节的静态RAM,它经过一个简单的串行接口与微处理器通信,实时时钟提供秒,分,时等信息,时钟运行可以采用24H,或带AM/PM的12H格式,采用三线接口与CPU进行同眇通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302有主电源/后备电源双电源引脚;
1)性能特性
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:
1.RSE复位,2.I/O数据线,3.SCLK串行时钟。
时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。
DS1302工作时功耗很低,保持数据和时钟信息时功率小十1mW。
提供秒分时日日期。
月年的信息,每月的天数和闰年的天数可自动调整时钟,操作可通过AM/PM指示决定采用24或12小时格式。
2)管脚描述
XIXZ32.768KHz晶振管脚
GND接地
RST复位脚
I/O数据输入/输出引脚
SCLK串行时钟
Vcc1,Vcc2电源供电管脚
DS1302串行时钟芯片8脚DIP
DS1302S串行时钟芯片8脚SOIC200mil
DS1302Z串行时钟芯片8脚SOIC150mil
图三DS1302
2.3单元电路的设计
2.3.1时钟电路设计
(2)工作原理
DS1302在任何数据传送时必须先初始化,把RST引脚置为高电平,然后把8位地址和命令装入移位寄存器,数据在SCLK的上升沿被输入,无论是读周期还是写周期开始8位指定40个寄存器中哪个将被访问到,在开始8个时钟周期,把命令字节装入揿位寄存器之后,另外的时钟周期在闱时操作时输出数据,在写操作时写入数据,时钟脉冲的个数在单位字节下为8加8,在多字节方式下为8加字节数,最大可达248字节数。
为了提高对32个地址的寻址能力,可以把时钟或RAM寄存器规定为多字节方式,在多字节方式中,读或写从地址0的位0开始,必须管按数据传送的次序电先的8个寄存器。
但是当以多个字节写RAM时,为了传送数据不必写所有31字节,不管是否写了全部31字节,所写的每个字节都将传送至RAM。
时钟暂停:
秒寄存器的位7定义位时钟暂停位,当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时,停止振荡,当它为0时时钟将开始启动。
8051通过串口向DS1302写数据的程序框图如图3.2,其中,Px可以是8051单片机的任何一位I/O口,注意因为DS1302的数据发送或接收时序和8051的串行口不完全一致,因此,需要在TXD的输出端加反相器,另外,接收数据时,不能以串行口的接收方式接收,必须将串行口当作普通I/O口进行数据接收.
DS1302的晶振选用32.768KHZ,电容推荐值为6PF,因为振荡频率较低,也可以不接电容,对计时精度影响不大。
图3.2DS1302写数据的程序框图
2.3.1显示电路设计
显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路,数码管分别为十时,时,十分,分,十秒,秒显示,显示时采用串行口输出段码,用74LS164来驱动数码管扫描只需7ms。
4LS164部位8个D触发器,用以实现数据的串行移位,74LS164位TTL单向8位移位寄存器,可实现串行输入并行输出,CPU位时钟输入端,可接到串行口TXD端。
每个时钟信号的上升沿加到CP端时,移位寄存器移一位,8个时钟脉冲过后,8为二进制数个部移入74LS164中,MR为复位端,当该位为低电平时,移位寄存器各位复O。
当它为高电平时时钟脉冲才起作用。
图四显示电路
2.3.2键盘接口电路设计
由于键盘只有四个,采用独立式按钮,分别与8051的P1.0,P1.1,P1.2相连,用普通按钮10K上拉电阻,用查询法完成读健功能。
图五按键电路
2.3.3响铃电路设计
响铃电路用到了蜂鸣器、三极管、1K电阻。
蜂鸣器两端分别接地和三极管。
三极管一段电源另一端与电阻相连并接入AT89C51的P3.7接口。
图六响铃电路
2.4总体运行进程
首先实现24小时制电子钟,在8位数码管显示,显示为时分秒,实现的格式为:
23-59-59。
到达预定时间启动蜂鸣器开始打铃,打铃的方式分为起床、熄灯和上下课铃两种。
系统使用了4个按键,3只按键用来调整时间,另一只为强制打铃按钮。
通过选择键选择调整位,选中位闪烁,按增加键为选中位加1,按减少键为选中位减1。
按强制打铃按钮是实现强制打铃或者强制关闭打铃。
第三章软件电路设计及流程图
3.1基本原理概述
主程序首先是初始化部分,主要是计时单元清零,中断初始化,堆栈指针初始化,启动定时器工作,然后是调用显示子程序。
主程序的起始存储地址是0000H单元,但由于本系统用了定时器T0的中断,中断服务程序入口地址为000BH,因此从0000H单元起存放一条短调转指令AJMP,使真正的主程序从0300H单元开始存放。
3.1.1中断服务程序设计
单片机部的定时/计数器T0定时100ms,即0.1s,10次中断即为1秒,60秒为1分,60分为1小时,24小时为一天,如此循环,从而实现计时功能。
编写中断服务程序关键要注意:
1.现场保护,本系统中是累加器A和程序状态字PSW值的保护。
2.计时处理时采用的确十进制,因此时,分,秒单元加1后要进行十进制调整,即要执行DAA指令,还要注意的是时计到24就回零,分和秒计到60就回零。
3.中断返回前的现场恢复。
3.1.2显示程序设计和按键判断与按键处理程序设计
显示采用的是动态显示,段控和位控都经过反相器,显示的字形代码是共阳的显示代码,位控信号输出时是高电平有效,在校时时,采用的是点亮小数点信位调节器标志,哪位小数点亮表示调整的是该为的值。
显示子程序的第一部分是拆字,显示缓冲区是2FH—2AH;
第二部分是查字型码,输出段控和位控信号,由于采用的是动态显示,所以每出输出一位的段控和位控信号要延时一定的时间,使LED显示器显示的字符时稳定的。
按键判断程序有编写时应注意按键的去抖动,该系统采用的是延时去抖动的方法,延时是通过调用子程序来实现的,每个按键按下后都要等待释放后再返回。
按键处理程序中的按键式校时的,所以进入按键处理程序后就关闭定时中断,对于动能键注意设置显示标志。
3.2流程图
3.2.1系统主程序流程图
3.2.2系统定时中断流程图
第四章系统程序设计
4.1程序设计概要
程序名称:
51单片机自动扫铃机控制系统
说明:
实现24小时制电子钟,8位数码管显示,显示时分秒显示格式:
23-59-59(小时十位如果为0则不显示)。
到预定时问启动蜂鸣器模拟打铃,蜂鸣器BEEP:
P3.7。
打铃方式分起床、熄幻铃和上、下课铃两种。
系统使用4只按键,3只按键用来调整时间,另一只为闹钟按钮即定时扫铃。
键SET_KFY:
PI.0;
通过选择键选择调整位,选中位闪烁。
增加键ADD_KEY:
PI.1;
按一次使选中位加1。
减少键DEC_KEY:
PI.2;
按一次使选中位位。
1
如果长按ADD_KEY或DEC_KEY,识别后则进行调时快进,此时停止闪烁。
如果选中位是秒,则按增加键或减少键都是将秒清零。
定时扫铃键DALING_KEY:
P1.3;
用来强制打铃或强制关闭铃声PO口输出数码管段选信号,P2口输出数码管位选信号。
晶振12M
4.2源程序清单
根据以上流程图思想,现设计系统程序思路描写如下系统的主程序如下所示:
BEEPEQUP3.7;
定义蜂l鸣器(电铃)控制信号输出口
ORG0000H;
程序入日地址
LJMPSTART
ORG000BH;
定时器0中断入日地址
LJMPTIMER_O
ORG0300H
/*****程序开始,初始化*****/
START:
SETBBEEP;
关闭蜂鸣器(电铃)
SETB48H;
使用一个bit位用于调时闪烁标志
SETB47H;
使用一个bit位用十产生脉冲用十调时快进时基
CLR45H;
关闭响铃方式标志
MOVRI,#0调整选择键功能标志:
0正常走时、1调时、2调分、3调秒
MOV20H,#00H;
用于控制秒基准时钟源的产生
MOV21H,#00H;
清零秒寄存器
MOV22H,#00H;
清零分寄存器
MOV23H,#00H;
清零时寄存器
MOV24H,#00H;
用于控制调时闪烁的基准时钟的产生
MOVIP,#02H;
IP,IE初始化
MOVIE,#82H
MOVTMOD,#olH;
设定定时器01作方式1
MOVTHO,#3CH
MOVTLO,#oBoH;
赋定时初值,定时50ms
SETBTRO;
启动定时器0
MOVSP,#4OH;
重设堆栈指针
/*****主程序*****/
MAIN:
CJNER1,#00H,MAINl;
是否为正常走时状态
LCALLBIJIAO1;
调用起床、熄灯打铃比较子程序
LCALLBIJIAO2;
调用上、下课少打铃比较子程序
LCALLDALING;
调用响铃方式执行子程序
MAIN1:
LCALLDlSPLAY;
调用显示子程序
LCALLKEY_SCAN;
调用按键检测子程序
JZMAIN;
无键按下则返回重新循环
LCALLSET_KEY;
调用选择键处理子程序
JB46H,MAIN;
如果已进行长按调招(调时快进),则不再执行下面的单步调整
LCALLADD_KEY;
调用增加键处理子程序
LCALLDEC_KEY;
躺用减少键处理子程序
LCALLDALING_KEY;
处理强制打铃/强制关闭铃声键
LJMPMAIN;
重新循环
程序结束
(主程序中引用到的字程序如下)
/*****定时中断服务程序*****/
TIMER_O:
PUCHACC
PUCHPSW;
保护现场
MOVTHO,#3CH
MOVTLO,#0B0H;
重新赋定时初值
CPL47H;
产生脉冲用于调时快进时基
INC24H
MOVA,24H
CJNEA,#l0,ADD_TIME;
产0.5秒基准时钟,用于调时闪烁
CPL48H;
取反调时闪烁标志位
MOV24IJ,#00H
ADD_TIME:
INC20H
MOVA,20H
CJNEA,#20,RETI1;
产生l秒基准时钟
MOV20H,#O0H;
一秒钟时间到,清零20H
MOVA,21H
ADDA,#01H
DAA;
做十进制调整
MOV21H,A
CJNEA,#60H,RETIl
一分钟到
MOVA,22H
DAA
MOV22H,A
CJNEA,#60H,RETI1
一小时到
MOVA,23H
MOV23H,A
CJNEA,#24H,RETI1
到24点,清零小时
RETI1:
POPPSW
POPACC;
恢复现场
RET1;
中断返回
/*****显示处理*****/
DISPLAY:
MOVA,#21H;
秒
ANLA,#0FH
MOV2FH,A;
转换出秒个位,存入2FH
MOVA,21H
ANLA,#OFOH
SWAPA
MOV2EH,A;
转换出秒十位,存入2EH
JB46H,MIN;
如果长按按键(调时快进),则跳过闪烁处理
CJNER1,#3,MIN;
如果R1为3,闪烁秒位待调整
JB48H,MIN
MOVZFH,#OAH;
使该位为10,查表得到使该位不显示的输出
MOV2EH,#0AH
MIN:
MOVA,#22H;
分
MOV2DH,A;
转换出分个位,存入2DH
MOV2CH,A;
转换出分十位,存入2CH
JB46H,HOUR;
CJNER1,#2,HOUR;
如果R1为2,闪烁秒位待调整
JB48H,HOUR
MOVZDH,#OAH;
MOV2CH,#0AH
HOUR:
MOVA,#23H;
时
MOV2BH,A;
转换出时个位,存入2BH
ANLA,#OFOH
MOV2AH,A;
转换出时十位,存入2AH
JB46H,DISP;
CJNER1,#1,DISP;
如果R1为1,闪烁秒位待调整
JB48H,DISP
MOVZBH,#OAH;
MOV2AH,#0AH
/*****数码管动态扫描显示*****/
DISP:
MOVDPTR,#TABLE
MOVA,2FH
MOVCA,A+DPTR
MOVP0,A
CLRP2.7
LCALLDELAY
SETBP2.7;
显示秒个位
MOVA,2EH
CLRP2.6
SETBP2.6;
显示秒十位
MOVA,#0BFH
CLRP2.5
SETBP2.5;
显示“-”
MOVA,2DH
CLRP2.4
SETBP2.4;
显示分个位
MOVA,2CH
CLRP2.3
SETBP2.3;
显示分十位
CLRP2.2
SETBP2.2;
MOVA,2BH
CLRP2.1
SETBP2.1;
显示时个位
MOVDPTR,#TABLE1;
该位使用TABLE1以消除前置0
MOVA,2AH
CLRP2.0
SETBP2.0;
显示时十位
RET
/*****按键检测子程序*****/
KEY_SCAN:
CLR46H;
关闭长按调整(调时快进)标志
MOVP1,#OFFH;
将P1口设置成输入状态
MOVA,P1
CPLA
ANLA,#OFH;
P1口低4位连接4个按键,只判断该4位
JZFXIT_KFY;
无键按下则返回
LCALLDELAY;
延时去抖动
MOVA,P1;
重新判断
ANLA,#OFH
JZEXIT_KEY;
键盘去抖动
MOVR5,A;
临时将键值存入R5
MOVR4,#0OH;
用于控制调时快进速度
;
设置为OOH是为了在进入长按处理前加长延时区分用户的长按与短按,防止误快进
LOOP:
;
进入长按处理
LCALLDISPLAY;
使长按时显示正常
MOVA,Pl
ANLA,#OFH
JB47H,LOOP1
INCR4;
调时快进间隔时间基准加l
LOOP1:
CJNER1,#03H,LOOP2;
如果调秒时长按,则不处理
LJMPLOOP3
LOOP2:
CJNER4,#99H,LOOP3
MOVR4,#7OH;
确认用户长按后,重新设定起始值,加快调时快进速度
SETB46H;
长按调整〔调时快进)标志
LCALLADDKEY
LCALLDECKEY
LOOP3:
JNZLOOP;
等待键释放
MOVA,R5;
输出键值
EXIT_KEY;
/*****延时子程序*****/
DELAY:
MOVR7,#150
DJNZR7,$
/*****选择键处理子程序*****/
SET_KEY:
CJNER5,#01H,EXIT;
选择键键值
INCR1;
调整选择功能标识加一
SETBBEEP
CJNER1,#4,EXIT
MOVR1,#0
调时闪烁基准清零
/*****增加键处理子程序*****/
ADD_KEY:
CJNER5,#02H,EXIT;
增加键键值
CJNER1,#01H,NEXT1;
选择键功能标志为l,调时,否则跳出
CJNEA,#24H,EXIT
MOV23H,#00H
NEXT1:
CJNER1,#02H,NEXT2;
选择键功能标志为2,调分,否则跳出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 打铃 系统 设计