自动打铃系统

更新时间:2023-10-12 20:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘要:实现24小时制电子钟,8位数码管显示,显示时分秒 显示格式:23-59-59(小时十位如果为0则不显示) 打铃方式分起床、熄灯铃和上、下课铃两种

系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮 P0口输出数码管段选信号,P2口输出数码管位选信号。晶振12M

关键词:

第 1 页 共 12 页

电子钟;打铃;晶振。

引言:《单片机原理及应用技术》是一门技术性,应用性、实践性很强的

学科。课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的和任务就是配合单片机的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。在实际生活中有好多地方都用到了单片机,因此学习好这门课程有着十分重要的意义。

1.方案论证

1.1 基本方案

(1)基本计时和显示功能(用12小时制显示)。包括上下午标志,时、分的数字显示,秒信号指示。

(2)能设置当前时间(含上、下午,时,分) (3)能实现基本打铃功能,规定:

上午6:00起床铃:打铃5秒、停2秒、再打铃5秒。 下午10:30熄灯铃:打铃5秒、停2秒、再打铃5秒。 铃声可用小喇叭播放,凡是用到铃声功能的均按此处理。

1.2 拓展方案

(1)增加整点报时功能,整点时响铃5秒,要求有控制启动和关闭功能。

(2)增加调整起床铃、熄灯铃时间的功能。 (3)增设上午4节课的上下课打铃功能,规定如下:

7.30 上课,8.20下课:8.30上课,9.20下课;9.40 上课,10.30

下课;10.40上课,11.30下课;每次铃声5秒。

第 2 页 共 12 页

2.硬件详细设计

2.1硬件设计

硬件使用51单片机制作自动打铃系统,主要由51单片机,两个8位数码管数字显示器,4个按钮,以及嗡鸣器组成。

按钮其中三个为时间调节按钮,另外一个负责控制强制打铃或者关闭铃音。使用按钮设定响铃时间以及显示时间。设计图如图2.1所示。

2.1 硬件设计图

3. 软件设计

3.1程序简要说明

1) 2) 3) 4) 5)

实现24小时制电子钟,8位数码管显示,显示时分秒 显示格式:23-59-59(小时十位如果为0则不显示) 到预定时间启动蜂鸣器模拟打铃,蜂鸣器BEEP:P3.7 打铃方式分起床、熄灯铃和上、下课铃两种

系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮

6) 调整选择键SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁 7) 增加键ADD_KEY:P1.1;按一次使选中位加1

第 3 页 共 12 页

8) 减少键DEC_KEY;P1.2;按一次使选中位减1

9) 如果长按ADD_KEY或DEC_KEY,识别后则进行调时快进,此时停止

闪烁

10) 如果选中位是秒,则按增加键或减少键都是将秒清零

11) 强制打铃键DALING_KEY:P1.3;用来强制打铃或强制关闭铃声

12) P0口输出数码管段选信号,P2口输出数码管位选信号。晶振12M

3.2 主程序流程图

开始 初始化 正常走时状态? 打铃时间的比较 打铃时间判断、执行 显示 按键检测 由按钮按下? 按键检测 结束 第 4 页 共 12 页

4.源程序

BEEP EQU P3.7 ;定义蜂鸣器(电

铃)控制信号输出口

ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定时器0中断入口地址

LJMP TIMER_0 ORG 0300H

/*****程序开始,初始化*****/ START:

SETB BEEP ;关闭蜂鸣器(电铃)

SETB 48H ;使用一个bit位用于调时闪烁标志

SETB 47H ;使用一个bit位用于产生脉冲用于调时快进时基 CLR 45H ;关闭响铃方式1标志

CLR 44H ;关闭响铃方式2标志

MOV R1,#0 ;调整选择键功能标志:0正常走时、1调时、2调分、3调秒

MOV 20H,#00H ;用于控制秒基准时钟源的产生

MOV 21H,#00H ;清零秒寄存器 MOV 22H,#00H ;清零分寄存器 MOV 23H,#00H ;清零时寄存器 MOV 24H,#00H ;用于控制调时闪烁的基准时钟的产生

MOV IP,#02H ;IP,IE初始化 MOV IE,#82H

MOV TMOD,#01H ;设定定时器0

工作方式1

MOV TH0,#3CH

MOV TL0,#0B0H ;赋定时初值,定时50ms

SETB TR0 ;启动定时器0 MOV SP,#40H ;重设堆栈指针 /*****主程序*****/ MAIN:

CJNE R1,#00H,MAIN1 ;是否为正常走时状态

LCALL BIJIAO1 ;调用起床、熄灯打铃比较子程序

LCALL BIJIAO2 ;调用上、下课打铃比较子程序

LCALL DALING1 ;调用响铃方式1执行子程序

LCALL DALING2 ;调用响铃方式2执行子程序 MAIN1:

LCALL DISPLAY ;调用显示子程序

LCALL KEY_SCAN ;调用按键检测子程序

JZ MAIN ;无键按下则返回重新循环

LCALL SET_KEY ;调用选择键处理子程序

JB 46H,MAIN ;如果已进行长按调整(调时快进),则不再执行下面的单步调整

LCALL ADD_KEY ;调用增加键处理子程序

LCALL DEC_KEY ;调用减少键处理子程序

第 5 页 共 12 页

本文来源:https://www.bwwdw.com/article/yuqf.html

Top