单片机学校打铃系统

2020-02-13来源: 51hei关键字:单片机  打铃系统

第1章 设计任务书
1.1目的与目标

在学校生活中,每一天和下一堂课都离不开打铃器的使用。铃声可以为在校学生和老师提供提醒,同时也可以作为提醒学生日程安排,让我们有时间感,形成一个规律的时钟,对自己的健康也有很大的好处。对于那些上课拖堂现象,广大教师知识的发展也给一个班的时间提醒学生,以免耽误下一节课的上课时间。


随着现代科学技术的发展,提高管理水平,已使钟装置自动提示节省人力资源,降低成本,对实现综合管理有很大帮助。而自动打铃系统继续影响着我们的生活和学习,它已广泛应用于各个学校,它可以实现学校的办公自动化,为学校管理服务。自动打铃器配有微电脑,充分发挥了体积小、价格便宜、功耗低、可靠性好等优点,而且还可以修改为学校课表,方便广大师生。自动打铃系统的研究和应用已经非常普及,选择这一课题的原因是看其成熟性和通用性。


在第二十世纪和第二十一世纪的半导体和集成电路技术的电子技术的发展,电子技术已渗透到各行各业,具有更快的林格电子表格为自然主要依据时间和更新提供参考,现在各种功能,层出不穷的贝尔更先进使用智能设备的使用,离不开供应链管理。单片机只是一个微型计算机,包括中央处理器杯、随机存取存储器ram、只读存储器ROM、I/O口、串口等部件,可作为系统的主控制器,其他部分电路将集成在一起构成一个智能控制系统。


基于以上原因,本课题设计了一款基于单片机的自动打铃系统,使用简单方便、功能齐全。


1.2软硬件环境

1.硬件清单:

元器件名称

个数

元器件名称

个数

AT89C52单片机

1

DS1302时钟芯片

1

LCD1602液晶

1

32.768KHz晶振

1

9012三极管

1

蜂鸣器

1

3V纽扣电池座

1

12MHz晶振

1

20uF电容

2

电源开关

1

10uF电容

1

万用板

1

10Ω电阻

1

SW-PB按键

5

2K电阻

2




2、软件

Proteus7.5sp3

记事本

第2章 设计、制作2.1 总体设计

系统设计框图如下:


系统软件设计流程图如图所示。

程序设计过程:首先要定义单片机的引脚,然后初始化器件,再利用DS1307的读写时序读取时间数据。再利用按键进入时间设定状态,设定完时间后单片机通过比较时间是否到达设定的时间来确定是否到打铃时间,如果达到打铃时间,则控制蜂鸣器响LED灯亮。


2.2各部分的电路设计

2.2.1时钟电路设计

时钟芯片的SCL引脚和SDA引脚分别由单片机的P3.1和P3.2引脚控制,单片机只需按照DS1302的工作时序来控制即可实现时间的写入和读取,其中DS1302的时钟端与数据端需外接上拉电阻,本设计选用5针排阻来充当上拉电阻。


2.2.2按键电路

由单片机的P1口控制按键电路。本设计中按键用于设定定时时间、打铃时间间隔,所以只需4路按键即可实现所需功能,采用独立式按键即可。由于按键是机械式触点,所以在断开或闭合时,一般都有抖动产生,虽然这个抖动时间在我们看来非常短,但是单片机执行指令的速度为微秒级别,很容易会读取这个时间而将其判断为真正的工作状态,从而引起误判。因此,在设计中必须考虑到按键抖动的影响。常用的去抖动的方法有两种:硬件方法和软件方法。硬件方法一般是加电容或者RS触发器;软件方法是在单片机在检测引脚所连接的按键的工作状态时加一个延时程序再次确认,通过2次的确认就可以确保按键的工作状态不受机械抖动的影响了。

2.2.3单片机电路

晶振电路用于产生单片机工作时所需要的时钟信号,单片机的指令必须在时钟信号下按照时序执行。晶振电路通常用两种设计方式:内部振荡方式和外部振荡方式。内部振荡方式是在单片机的XTAL1和XTAL2引脚外接一个晶体振荡器,与单片机内部的振荡器组成时钟信号;外部振荡方式是在外部将已有的脉冲信号引入单片机内,一般用于使单片机的时钟与外部信号保持同步。本设计选用内部振荡方式,在XTAL1和XTAL2引脚之间连接一个12MHz的晶振,再分别外接30p的对地电容。


单片机在启动时需要复位,使系统各器件处于初始状态。复位引脚为RST,当系统上电后晶振电路稳定后,RST引脚有一个高电平且持续2个机器周期以上,单片机系统就可以实现复位功能。复位一般有手动复位和上电复位功能。手动复位是在RST引脚设置按键,当按键按下时,RST引脚会有高电平,即可实现复位功能;上电复位是在RST引脚连接一个电解电容接至电源,再接一个电阻接地,系统上电时,电容充电,只要电源的上升时间不超过1ms,就可以实现复位功能。本设计选用按键复位。

2.2.4显示电路

单片机的P2口作为LCD1602的数据线端口,P3口控制LCD1602的使能端。单片机读取数据后,通过控制LCD1602的读写端、复位端和使能端将其设置为写入数据状态,再将数据通过P2口送入LCD1602实现显示功能。

2.2.5打铃电路

打铃电路一般用声音或音乐作为提醒,本设计选用蜂鸣器和LED灯实现声光双重打铃功能,电路如图3-7所示。打铃时间到时,单片机P3.3引脚置高,三极管9013导通,继而蜂鸣器和LED灯导通,实现蜂鸣和灯亮打铃功能。


系统蜂鸣器的工作原理如下:当单片机端口输出高电平时,三极管B极(三极管的各个参数如3.6节所示)处于高电平,三极管不导通,蜂鸣器不响。当单片机端口输出低电平时,三极管B极处于低电平,三极管导通,蜂鸣器鸣响。在本系统中如果要运用到实际中的话本来是要把单片机端口P3.4口接上继电器再控制220V电源的电铃的,但由于各种原因,在这次设计中我是用蜂鸣器来显示出打铃的效果的,蜂鸣器与单片机的连接图如图所示。


2.3 硬件连接

2.4 程序设计

第3章 调试3.1源程序的编辑


一、使用的工具:记事本

二、编辑的具体操作步骤

1、ds1302 内部RAM   RAM0  1100 000R/W   1读 0写

                                                                      RAM1  1100 001R/W

                                                                             .......

RAM30 1111 110R/W

定义ds1302时钟线、数据线和复位线。

2、写一个数据到对应的地址里

3、从对应的地址读一个数据出来

4、把要的时间 年月日 都读出来

5、把要写的时间 年月日 都写入ds1302里

6、把数据保存到ds1302 RAM中**0-31

7、设置ds1302时间函数

8、把数据从ds1302 RAM读出来**0-31

9、初始化ds1302时间

10、AT89C51扇区分布

第一扇区:1000H--11FF

第二扇区:1200H--13FF

第三扇区:1400H--15FF

第四扇区:1600H--17FF

第五扇区:1800H--19FF

第六扇区:1A00H--1BFF

第七扇区:1C00H--1DFF

第八扇区:1E00H--1FFF

11、AT89C52扇区分布

第一扇区:2000H--21FF

第二扇区:2200H--23FF

第三扇区:2400H--25FF

第四扇区:2600H--27FF

第五扇区:2800H--29FF

第六扇区:2A00H--2BFF

第七扇区:2C00H--2DFF

第八扇区:2E00H--2FFF

12、打开 ISP,IAP 功能

13、关闭 ISP,IAP 功能

14、触发代码

15、字节读

16、扇区擦除

17、字节写

18、延时函数

19、lcd1602写命令函数

20、lcd1602写数据函数

21、lcd1602初始化设置

22、lcd1602上显示两位十进制数

23、lcd1602上显示两位十进制数

24、lcd1602上显示这字符函数

25、控制光标函数

26、开机液晶显示函数 初始化液晶的内容

三、编辑时注意的问题

1、写一个数据到对应的地址里时要低位在前

2、从对应的地址读一个数据出来时要注意最后返回读出来的数据

3、把要写的时间 年月日 都写入ds1302里要记得开始时打开写保护,结束时关闭写保护

4、把数据保存到ds1302 RAM中**0-31时地址是从第二位开始的

5、初始化ds1302时间第一次读写数据时要把IO品拿低


四、给出过程中的截图。

3.2 编译

一、使用的工具Proteus7.5sp3

二、编译的过程(主要步骤,要有截图)

三、编译后的结果

3.3 烧写

烧写工具的名称

烧写的过程(主要步骤,要有截图)

3.4 调试

调试的主要过程(或调试的主要内容)

出现问题的原因是什么,如何解决?

最终的调试结果


第4章 总结

本设计是一种为上课时间设计的自动打铃系统,可在工厂、工厂车间、学生等场所使用,能起到很好的时钟功能,方便人们的日常生活。在硬件设计部分,LCD对LCD进行监控,具有功耗低、工作电压低的特点,显示质量高、可视面积大,能很好地实现设计要求,减少了软件编程的难度。


自动打铃系统还存在不足和缺点,主要表现在这些方面:虽然系统能够很好的实现打铃的要求,但是能够设定的打铃时间只有六个,这是因为想降低编程时的难度,在不影响其功能的前提下,降低了要求;还有就是其扩展性不强,后续的发展比较困难,制约了系统的升级,在商品竞争中没什么优势,需要进一步的研究和开发。


通过此次期末设计,我对所学专业的知识有了很好的回顾和实践,提高了自己的动手和思

[1] [2]
关键字:单片机  打铃系统 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic488113.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:解决51单片机复位触发的4种方法
下一篇:单片机驱动19264液晶大数字时钟程序

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

基于52单片机控制编码器显示程序
#include "reg52.h"    #define uchar unsigned char#define uint unsigned int#define LCD1602_DATAPINS P0sbit LCD1602_E=P2^7;sbit LCD1602_RW=P2^5;sbit LCD1602_RS=P2^6;sbit DIR=P1^0;sbit STEP=P1^1;sbit K1=P3^1;sbit K2=P3^0;typedef unsigned int u16;   //对数据类型进行声明定义typedef unsigned char
发表于 2020-02-08
单片机步进电机转速控制程序(速度LED显示)
单片机源程序如下://数码管位 高位-----低位//四个按键控制步进电机:正转,反转,加1,减1//上电时电机启动,数码管上显示速度最小档1,加减档位均能通过数码管显示出来,电机采用单双八拍方式//电机转速一共10档,通过按键调节转速 //电机正转时最高位数码管显示0,反转时显示1  #include<reg51.h>#define uchar unsigned char#define uint unsigned int#define led P0//数码管段选#define haha P2sbit s1 = P1^0;sbit s2 = P1^1;sbit s3 = P3^0;sbit
发表于 2020-02-08
单片机步进电机转速控制程序(速度LED显示)
STC单片机+DM134实现LED多段控制
 单片机源程序如下://============================================================================//================翼芯科技 LED流星灯8段16段==软件生成生成数据=================//============================================================================   //  此源码版权属 翼芯科技 全权享有,如欲引用,敬请署名并告知//         
发表于 2020-02-08
STC单片机+DM134实现LED多段控制
基于51单片机的数字电容测量仪设计
本设计详细介绍了一种基于单片机的数字式电容测量仪设计方案及实现方法。设计的主要方法是采用555芯片构成单稳态触发器,将电容容量转换为脉冲宽度。通过单片机的计时器测量脉宽, 根据已知的R值,通过单片机的运算功能,计算出电容容量,最后,再通过单片机的普通I/O口控制液晶屏显示出电容容量的计算结果。系统的测量范围为10pF~ 500uF, 具有多个量程,可根据用户需要由用户选择,与用户的交互是通过键盘实现,不同量程的实现是通过单片机的I/O口控制继电器的吸合与断开来选择不同的R值,从而实现不同的量程。同时,本设计注重设计方法及流程,首先根据原理设计电路,再通过protues仿真,利用keil编程,进而借助altium designer
发表于 2020-02-08
基于51单片机的数字电容测量仪设计
基于51单片机的pwm直流电机调速
仿真原理图如下单片机源程序如下:#include <reg52.h>/********************************************** 定时器初值*********************************************/#define T0HIGH        0xec#define T0LOWW        0x8a
发表于 2020-02-08
基于51单片机的pwm直流电机调速
手把手教你单片机串口通信-基础篇
1的个数之和应为偶数。接收字符时,对1的个数进行校验,若字符不一致,则说明传输数据过程中出现错误。代码和校验发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据时,同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,一致则无差。循环冗余校验通过某种数学预算实现有效信息与校验位之间的循环校验,常用语对磁盘信息的传输、存储区的完整性校验。串口的基本结构SBUF:51单片机中的特殊寄存器,串行数据缓冲器(一个接收一个发送),两个其实是共用的一个地址99H,但是两个在物理上面是分开的。当发送使用时,就采用SBUF=XXX;  
发表于 2020-02-08
手把手教你单片机串口通信-基础篇
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved