单片机自动控制打铃系统设计

合集下载

单片机自动打铃系统设计

单片机自动打铃系统设计

自动打铃系统----学校上下课自动打铃设计设计人:要求:(1)实现上下课的打铃,并通过语音提示上下课;(2)按下开机键,显示当前年月日时间,在LCD液晶屏显示年,月,日,星期,时,分,秒,年-月-日-星期显示在第一行,格式xx-xx-xx-星期x;时分秒显示在第二行,格式xx-xx-xx(24小时格式);(3)能够设置当前时间;(4)使用语音芯片提示上下课,上课时提示:“亲爱的同学们,上课了”,重复2遍,下课时提示:“亲爱的同学们,下课了“,重复2遍。

(5)允许使用时钟芯片。

《摘要》单片机的外接石英晶体振荡器能提供稳定、准确的基准频率,并经12分频后向部定时器提供实时基准频率信号,设定定时器工作在中断方式下,连续对此频率信号进行分频计数,便可得秒信号,再对秒信号进行计数便可得到分、时等实时时钟信息。

如果石英晶体振荡器的频率信号为6MHZ,设定定时器定时工作方式1下,定时器为3CBOH,则定时器每100ms产生1次中断,在定时器的中断定时处理程序中,每10次中断,则向秒计数器加1,秒计数器计数到60则向分计数器进位(并建立分进位标志),分计数器计数自动打铃系统,是以一片8位单片机为核心的实时时钟及控制系统。

我们知道到60,则向时计数器进位,如此周而复始的连续计数,便可获得时、分、秒的信号,建立一个实时时钟。

接下来便可以进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间(小时与分、存放在RAM中)与信息时间表上的作息时间(小时与分,存放在ROM)是否相同,如有相同者,则进行报时处理并控制打铃,如有不相同则返回主程序,如此便实现了报时控制的要求。

《关键词》单片机;时间设置电路;计时电路;显示电路;定时打铃控制电路《引言》始的无人问津到现在的随处可见,红绿灯,记分牌,电子秒表,遥控器,电饭煲,电视等只要是电子产随着科技的不断发展,各种芯片都得到了很好的发展,80C51 同样如此,从开品,都会和芯片有关,其实芯片并不是什么神秘的高科技,它只是里面装了一些己编好的程序而己.而这里要介绍的是用汇编语言来编程的一个系统,它能够让一个学校或企业集团实现打铃自动化,总之,一个需要时间系统的机构实现自动提醒功能。

基于单片机的打铃系统

基于单片机的打铃系统

基于单片机的打铃系统一、系统简介打铃系统是一种用于管理学校、工厂、办公室等场所时间的设施,它可以自动地、准确地实现时间的管理。

本文所介绍的打铃系统基于单片机开发,通过编程实现各种铃声的播放,实现按时响铃的功能。

二、系统硬件组成打铃系统基于AT89S52单片机实现。

除了单片机之外,还需要以下硬件:1.时钟电路:用于提供准确的时钟信号。

2.按键:用于设定铃声和时间,以及启动和停止铃声。

3.位选器:用于选择哪个七段数码管进行显示。

4.七段数码管:用于显示当前时间和设定的时间。

5.蜂鸣器:用于播放铃声。

6.电源模块:用于提供系统所需的电源。

三、系统程序实现1.时钟模块时钟模块是整个打铃系统的核心模块,它通过内部定时器实现时钟计时。

定时器的具体参数需要根据外部晶体振荡器的频率进行设置。

在计时过程中,将当前时间实时显示在七段数码管上,并提供按键设置时间的功能。

2.铃声模块铃声模块主要负责蜂鸣器的控制,通过控制蜂鸣器的高低电平来实现各种铃声的播放。

在设定的时间到达时,蜂鸣器会自动响起预先设置好的铃声。

当按下停止键时,蜂鸣器会停止响铃。

四、系统优化设计为了提高打铃系统的稳定性和可靠性,需要进行一些优化设计。

其中的一些优化设计包括:1.电源管理:系统的电源管理非常重要,可以通过使用稳压器等组件来提高系统的抗噪声性能和稳定性。

2.按键处理:按键可以使用中断或轮询的方式进行处理,使用中断方式可以提高系统的实时性。

3.时钟精度:系统的时钟精度非常关键,需要使用高精度的外部晶体振荡器并进行一定的校准以提高时钟的准确性。

四、系统应用本文所介绍的打铃系统可以广泛应用于学校、工厂、办公室等场所。

它可以帮助管理者准确地掌握各个时间点,提高管理效率和准确性。

同时,通过优化设计可以大大提高系统的性能和稳定性。

五、总结打铃系统是一种非常实用的设施,通过单片机等电子技术的应用,可以实现自动化、智能化的时间管理。

本文介绍了基于单片机的打铃系统的硬件组成和程序实现,以及针对性的优化设计,以期为相关领域的读者提供一些借鉴和参考。

基于单片机自动打铃系统设计

基于单片机自动打铃系统设计

目录第一部分设计任务 (2)1、毕业设计的主要任务 (2)2、单片机总体设计思路 (2)第二部分设计说明 (3)1、单片机介绍 (3)2、设计说明 (3)3、软件设计 (8)第三部分设计成果 (12)1、开机运行图 (12)2、自动打铃器源程序 (12)第四部分结束语 (15)第五部分致谢 (18)第六部分参考文献 (19)第一部分设计任务1、毕业设计的主要任务设计一个采用4位数码管显示时间秒、分、时,伴有调时校正电路,响铃控制则是通过作息时间表和定时器来实现自动打铃的单片机控制系统。

对于不同的季节,作息时间可能不同,可以制定多个作息时间表采用开关切换达到目的。

本设计采用了1个开关实现夏季和冬季作息时间的切换,完成一个自动循环。

2、单片机总体设计思路(1)设计能正常工作的一个单片机最小硬件系统,外围电路包括设置键盘,LCD或LED的显示屏。

(2)进行软件设计,利用单片机系统时钟先设计一个高精度的内部时钟系统,最小精确时间为期1秒。

(3)在秒计数器的基础上设计一个24小时时钟,并设计若干定时功能。

(4)设计打铃执行机构,完成自动打铃功能。

第二部分设计说明1、单片机介绍本系统主要由主控模块,时钟模块,显示模块,键盘接口模块等4部分构成。

通过内部定时产生中断,从而使驱动电铃打铃。

设定51单片机工作在定时器工作方式1,每100ms产生一次中断,利用软件将基准100ms单元进行累加,当定时器产生10次中断就产生1S信号,这是秒单元加1。

同理,对分单有采用动态扫描LED的显示。

本系统采用四个按键,当时钟时间和设置时间一直时元和时单元计数从而产生秒、分、时的值,通过六位七段显示器进行显示。

由于动态显示法需要数据所存等硬件,接口作,进行打铃,每次打铃30s较复杂,考虑显示只有六位,且系统没有其他浮躁的处理程序。

2、设计说明2.1 AT89C51简介一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。

基于单片机控制的智能门铃设计

基于单片机控制的智能门铃设计

基于单片机控制的智能门铃设计第一章导言智能家居技术的发展日益迅猛,为我们的生活带来了诸多便利。

智能门铃作为智能家居的一部分,不仅能提供安全保障,还能方便我们与来访者进行互动。

本文将介绍一种基于单片机控制的智能门铃设计,旨在为读者提供一种简单、可靠的智能门铃解决方案。

第二章系统设计2.1 硬件设计智能门铃的硬件设计包括单片机、传感器、触摸屏、摄像头等组件。

其中,单片机作为控制中心,负责接收传感器信息,控制门铃的各项功能。

传感器可以包括人体红外传感器、声音传感器等,用于检测有人靠近门口或有人按门铃按钮。

触摸屏用于显示门铃的状态,让用户可以方便地进行操作。

摄像头则可以实时拍摄门口的画面,并通过触摸屏显示给用户。

2.2 软件设计智能门铃的软件设计包括单片机程序、手机应用程序等。

单片机程序负责接收传感器信息,控制各个组件的工作,并与手机应用程序进行通信。

手机应用程序可以实现与智能门铃的远程连接,包括查看门口画面、远程开锁等功能。

第三章功能实现3.1 人体红外检测智能门铃通过人体红外传感器可以实时检测门口有无人靠近,当有人靠近时,门铃会自动启动,并通过触摸屏显示来访者的画面。

这样一来,就可以及时知道门外有人来访,增加了家庭的安全性。

3.2 声音识别智能门铃还可以通过声音传感器识别来访者按门铃的声音,当有人按门铃按钮时,门铃会发出提示音,并通过触摸屏显示来访者的画面。

这样一来,即使主人不在家,也可以通过智能门铃知道有人来访,方便进行远程互动。

3.3 视频监控智能门铃内置摄像头,可以实时拍摄门口的画面,并通过触摸屏显示给用户。

用户可以通过触摸屏查看门外的画面,了解来访者的情况。

同时,智能门铃还支持远程视频监控,用户可以通过手机应用程序远程连接智能门铃,随时查看门口的情况。

3.4 远程开锁智能门铃还可以与家庭的门锁系统进行连接,实现远程开锁功能。

当用户接到来访者的请求时,可以通过手机应用程序远程开启门锁,方便来访者进入家中。

单片机打铃的设计 - 副本

单片机打铃的设计 - 副本

湖南工业职业技术学院Hunan Industry Polytechnic类别毕业设计题目单片机自动控制打铃系统设计系名称电气工程系专业及班级机电一体化S2012-4学生姓名文智新学号03指导教师张宇驰、汪建宇摘要本设计是一种基于STC89C52单片机控制的自动打铃系统设计。

它具有多项显示和控制功能:能用LCD实时显示当前年、月、日、星期、时间;可对时间进行调整;具有闹铃及整点报时功能;可显示万年历等功能。

并且它以单片机的 C51 语言进行软件设计,增加了程序的可读性和可移植性,便于扩展和更改。

本文通过对一个基于单片机的能实现万年历功能电子时钟的设计,从而达到学习、了解单片机相关指令在各方面的应用。

系统由主控制器STC89C52、时钟电路DS1302、显示电路、按键电路、和复位电路等部分构成,能实现时钟日历显示的功能,能进行时、分、秒的显示并且装有自动打铃系统。

关键词: 单片机万年历时钟电路DS1302 C52目录引言 (1)第一章设计简介及方案论述 (2)1.1 作息时间控制钟概述 (2)1.2 本设计任务和主要内容 (2)1.2.1 设计任务 (2)1.2.2 主要内容 (2)第二章系统硬件电路设计 (3)2.1 遥控部分 (3)2.2 STC89C52单片机性能介绍 (4)2.2.1 时钟电路 (5)2.2.2 复位及复位电路 (6)2.2.3 STC89C52具体介绍如下 (7)2.2.4 STC89C52主要功能 (8)2.2.5 单片机引脚图 (9)2.3 DS1302性能介绍 (9)2.3.1 DS1302引脚排列 (9)2.3.2 DS1302的控制字节 (10)2.3.3 数据输入输出(I/O) (10)2.3.4 DS1302的寄存器 (11)2.4 1602 液晶模块 (11)2.4.1 1602字符液晶 (11)2.4.2 1602简介 (11)2.4.3 1602接线图 (12)2.5蜂鸣器模块和电源模块 (12)第三章系统软件设计 (13)3.1 系统软件设计的主要内容 (13)3.2主程序流程设计 (14)毕业设计结论分析 (15)参考文献 (16)附录1 (17)附录2 (18)引言多功能数字万年历已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、医院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

基于单片机的自动打铃系统

基于单片机的自动打铃系统

1.任务
单片机实现按照下面表格的时刻设定各个时间节点,到一个时间节点就打铃。

通过键盘实现对时间节点的设定,设定的时间数值保存到内存当中。

利用定时器实现对当前时刻的累加,并通过数码管不断显示。

打铃通过蜂鸣器来实现。

当然,为简化自己的程序,不必完全实现下表中所有的时间节点。

打铃情况设计
2.思路
单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。

利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。

建立完一个实时时钟后接下来进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间与信息时间表上的作息时间是否相同,相同者,则进行报时处理并控制打铃,不相同则返回主程序。

其余请参考《基于单片机的电子时钟的设计》文档。

基于单片机控制的校园自动打铃器作息时钟设计-大学毕业论文毕业设计学位论文范文模板参考资料

基于单片机控制的校园自动打铃器作息时钟设计-大学毕业论文毕业设计学位论文范文模板参考资料

校园自动打铃器作息时钟摘要本文介绍了以AT89S51单片机为控制核心的自动打铃器产品,该电路具有时钟功能,可通过产品的上的设置键对要报警的时间点逐个的设置进去,打玲器只要走到设置好的时间就能报警。

输出效果由报警模块与显示模块组成,显示模块主要采用数码管来显示时间,让人们可以看到自动打铃器的时间是否与我们生活的时间一致,如果有误差则可以通过按键对时间进行调整。

该打铃器是一种电路比较简单,功能完善,且比较实用的自动打铃器。

它不但可以适用于学校及企业工厂等场所。

关键字:单片机自动控制数码显示调整目录一.引言 (3)二.方案比较 (4)2.1方案一基于数模电路的自动打铃器 (4)2.2方案二基于A T89S51控制的自动打铃器 (5)三.硬件电路设计 (5)3.1微控制器 (5)3.2振荡电路 (6)3.3复位电路 (6)3.4控键电路 (7)3.5显示电路 (8)3.6报警电路 (9)四.软件系统设计 (10)4.1主程序设计 (10)4.2定时1mS子程序设计 (10)4.3显示子程序设计 (10)4.4软件抗干扰设计 (11)五.系统调试与测试 (13)5.1软件仿真 (13)5.2硬件电路安装 (14)5.2.1单片机振荡电路安装 (14)5.2.2单片机复位电路安装 (14)5.2.3单片机控键电路安装 (14)5.2.4单片机显示电路安装 (15)5.2.5单片机报警电路安装 (15)5.2.6整机电路安装与调试 (15)结束语............................................................................................................. 错误!未定义书签。

参考文献.. (16)附录1:总设计原理图 (17)附录2:源程序 (18)一.引言打铃器是一种广泛应用于企业和学校单位。

就以对学校单位而言,自动打铃器是为了对了广大师生的作息时间做更好的管理,它一种学校必备电子设备,也是一种逐渐成型的电子产品,打铃器多为小规模集成电路构成,其性能单一,工作起来不够理想。

单片机打铃系统设计(完整)

单片机打铃系统设计(完整)

目录前言................................................................... . (1)第1章方案比较与选择 (2)1.1系统的比较与选................... ..... .... ......... (2)1.2显示器的比较与选择 (2)1.3时钟芯片的比较与选择................... . (2)第2章系统框图 (3)2.1系统框图 (3)第3章原理分析 (4)3.189C52简介 (4)3.2键盘控制模块 (7)3.3时钟电路模块............. ............. ............. ........... . (7)3.4复位电路模块........... ........ ........... ................ .. (7)3.5系统电源模块........ ........ ........... ................ ....... (8)3.6液晶显示模块........ ........ ........... ................ ......... .. (8)3.7打铃模块....... ........ . ......... .......... ................ .. (9)3.8 ISP下载线接口....... ........ .......... .......... ............ . (9)第4章系统软件设计 (10)4.1软件调试 (11)结论..................................................... .............13 致谢.................... .... .... .... .... ...................... (24)参考文献....................... ..... ..... ..... .. (26)单片机打铃系统设计前言随着现代科技的发展,管理水平的完善,具有自动提示功能的打铃器能够为企业节省人力资源,减少开支,对做到一体化管理具有很大的帮助。

基于单片机的电铃控制系统的设计方案

基于单片机的电铃控制系统的设计方案

基于单片机的电铃控制系统的设计方案绪论1.1 课题的提出及意义单片机作息时间控制系统是在数字电子钟的基础上,添加了电铃控制电路和音响控制电路,使其具有时钟、定闹等多重功能的一个小型的智能化系统。

此系统可以实现对时间的智能化控制,摆脱了传统的由人来控制时间的长短的不便,可广泛应用在学校、工厂和机关的自动打铃、计时、路灯及室照明和其他对象控制,因此具有广阔的市场和良好的经济效益。

通过此次设计,我们要掌握以下方面的知识:(l)单片机的原理及应用。

(2)Protel 软件的使用。

(3)作息时间控制系统的原理和实现方法。

此外,通过该课题的设计,要达到提高我们综合能力的目的,如综合应用所学知识能力、资料查询能力、计算机应用能力、语言表达能力、论文撰写能力等,尤其是要提高我们单片机应用技术的实践操作技能和利用单片机进行科技革新、开发和创新的基本能力,同时使我们初步掌握单片机应用系统设计、研制的方法。

特别是如果我们毕业以后从事与单片机相关的工作,这就可以大大缩短我们在未来工作岗位上的适应期,使我们尽快在工作中担当主角,发挥我们的作用。

1.2 设计要求1.2.1 基本要求(1)基本计时和显示功能(用12小时制显示)。

包括上下午标志,时、分的数字显示,秒信号指示。

(2)能设置当前时间(含上、下午,时,分)(3)能实现基本打铃功能,规定:(4)设计能正常工作的一个单片机最小硬件系统,外围电路包括设置键盘,LCD 或LED的显示器;上午6:00起床铃:打铃5秒、停2秒、再打铃 5 秒。

下午10:30熄灯铃:打铃 5 秒、停 2 秒、再打铃 5 秒。

铃声可用小喇叭播放,凡是用到铃声功能的均按此处理1.2.2 发挥部分(1)增加整点报时功能,整点时响铃 5 秒,要求有控制启动和关闭功能。

(2)增加调整起床铃、熄灯铃时间的功能。

(3)增设上午 4 节课的上下课打铃功能,规定如下:7.30 上课,8.20 下课:8.30上课,9.20 下课;9.40 上课,10.30 下课;10.40 上课,11.30下课;每次铃声5 秒。

基于单片机的自动打铃系统设计很完整

基于单片机的自动打铃系统设计很完整

摘要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。

简易自动打铃系统的出现,使学校上下课铃声得以有效管制,对于减轻学校管理人员工作量、提高学校各工作效率,减少管理人员因忘记打铃,从而导致老师拖延课程时间起到明显效果。

本系统采用单片机STC89C52为中心器件来设计简易自动打铃控制器,系统实用性强、操作简单、扩展性强。

关键词:单片机;8255扩张芯片;数码管显示时钟模块;键盘调时钟模块;定时蜂鸣器鸣叫模块。

目录简易自动打铃系统 (1)设计要求 (1)1方案论证与对比 (1)1.1方案一 (1)1.2方案二 (1)1.3方案对比与选择 (1)2单元电路设计与计算 (2)2.1复位电路 (2)2.2时钟电路 (2)2.3按键电路 (3)2.4数码显示功能说明 (4)2.5蜂鸣器电路 (4)3系统软件工作流程 (5)3.1系统软件设计流程图 (5)3.2按键处理流程图 (5)3.3定时器中断流程图 (6)3.4响铃流程图 (7)4系统功能测试与整体指标 (8)4.1系统各功能模块的性能调试与测试 (8)4.2系统功能测试 (9)4.3系统误差原因分析 (9)4.4系统整体指标测试 (9)5详细仪器清单 (10)6总结与思考致谢 (10)7参考文献 (11)附录一:总设计原理图 (11)附录二:总设计PCB板图 (12)附录三:程序 (13)简易自动打铃系统设计要求利用单片机作为控制核心,完成一个简易自动打铃系统。

具体功能要求如下:(1)基本计时和显示功能(12小时制)。

可设置当前时间(包括上下午标志,时、分的数字显示)。

(2)能实现基本打铃功能,规定:上午7:30早自习:打铃5秒、停2秒、再打铃5秒。

单片机教学打铃控制器程序设计-课程设计

单片机教学打铃控制器程序设计-课程设计

教师学科教案[ 20 – 20 学年度第__学期]任教学科:_____________任教年级:_____________任教老师:_____________xx市实验学校单片机教学打铃控制器程序设计-课程设计单片机教学打铃控制器程序设计一、课程设计题:单片机教学打铃控制器程序设计二、设计要求:用LED数码管显示时、分、秒时间,尽量减少时间积累误差,具有秒闪功能。

最多能设置40个打铃时间点,打铃时间点数据用非易失存储器存储,防止掉电丢失数据;能逐个检查、修改、删除已设置的打铃时间点和增加打铃时间点。

对时、打铃时间点用键盘设置,键盘设计简单、易于操作。

具有强电驱动功能,便于控制220V的电铃。

三、设计报告要求:说明设计作品的功能、特点、应用范围;方案对比,确定方案。

电路工作原理、操作方法;编程方法、程序框图及关键程序清单。

课程设计总结。

附件:参考电路图24C02芯片资料及参考程序课程设计元器件清单元器件名规格/型号单板数量购买数量备注电阻510Ω、1/4W210K、1/4W21K、1/4W1电阻排510Ω*81瓷片电容30pF2独石电容0.1µF4电解电容220µF/16V1二极管1N40071发光二极管Ф3MM、红光4三极管90131晶体12MHz(矮封装)1集成块78051AT89S52124C02174071IC插座40PIN18PIN114PIN1数码管2位动态、红光、共阴极(FJ5202AH)3继电器5V、AC220V/5A(HRS4H-S-DC5V)1接插件IDC101套按键国产欧姆龙轻触按键,带透明帽8套-------------------------------------------------------------------------------- 程序:;**************教学打铃控制器程序*********;CPU: AT89S52, Fosc=12MHz;++++++++++++++++++变量定义+++++++++++++++SET_TIME BIT P1.0 ;时间设定SET_ALARM BIT P1.1 ;打铃设定LEFT BIT P1.2 ;左移位UP BIT P1.3 ;上翻/加1DOWN BIT P1.4 ;下翻/减1RIGHT BIT P1.5 ;右移位ESC BIT P1.6 ;取消/退出ENTER BIT P1.7 ;确认KEY_BUF EQU 30H ;原按键状态KEY_ST EQU 31H ;键闭合标志,ON:0FFH,OFF:00HSCL BIT P3.3 ;IIC时钟线SDA BIT P3.2 ;IIC数据线FLASH_S BIT P3.1 ;秒闪CONTREL BIT P3.4 ;控制;1=ONH_MEM EQU 10H ;时M_MEM EQU 11H ;分S_MEM EQU 12H ;秒CT_50MS EQU 13H ;50mS计数器NEW_TIME EQU 14H ;时间更新标志,0FFH更新DIS_MEM1 EQU 15H ;显示数据存储器1DIS_MEM2 EQU 16H ;显示数据存储器2DIS_MEM3 EQU 17H ;显示数据存储器3DIS_BUF1 EQU 20H ;显示缓冲器1(段码,左)DIS_BUF2 EQU 21H ;显示缓冲器2(段码)DIS_BUF3 EQU 22H ;显示缓冲器3(段码)DIS_BUF4 EQU 23H ;显示缓冲器4(段码)DIS_BUF5 EQU 24H ;显示缓冲器5(段码)DIS_BUF6 EQU 25H ;显示缓冲器6(段码,右)AL_NUMBER EQU 26H ;打铃序号AL_TOTA EQU 27H ;打铃点总数ALARM_ST EQU 28H ;打铃状态,0FFH正在打铃TIME_OVER EQU 29H ;按键返回时间计数器TOTA_ADDR EQU 60H ;打铃点总数在24C02中的存储地址ORG 0000HAJMP STARTORG 0002BHAJMP INT_T0 ;T2中断向量ORG 0030HSTART: MOV SP,#60HCLR CONTRELCLR FLASH_SMOV H_MEM,#12MOV S_MEM,#0MOV CT_50MS,#20MOV NEW_TIME,#0MOV KEY_ST,#0MOV R4,#TOTA_ADDR ;从24C02读打铃时间点总数MOV R0,#AL_TOTAMOV R3,#1ACALL RD_EEROMMOV A,AL_TOTA ;总数大于0,小于、等于40判断JZ JMP_RDCLR CSUBB A,#40JC RD_AL_LISTMOV AL_TOTA,#0MOV R4,#TOTA_ADDRMOV R3,#1MOV R0,#AL_TOTAACALL WR_EEROMSJMP JMP_RDRD_AL_LIST:MOV A,AL_TOTA ;从24C02读打铃时间表RL AMOV R3,A;R0:RAM地址指针,R2:8位移位计数器;R3:数据字节计数器;R4:24C02 存储地址MOV R0,#80HMOV R4,#00HACALL RD_EEROMJMP_RD: MOV TH2,#3CH ;T2工作方式、时间常数MOV TL2 , #0ABHMOV RCAP2H, #3CHMOV RCAP2L, #0ABHMOV T2CON , #04HSETB ET2 ;开中断SETB EAWAITE: ACALL DISPLAYACALL KEY_CHECKMOV A,KEY_STCJNE A,#00H,KEY_MAINMOV A,NEW_TIMECJNE A,#0FFH,WAITENEW_DIS:MOV A,H_MEMACALL HBCDMOV DIS_MEM1,AMOV A,M_MEMACALL HBCDMOV DIS_MEM2,AMOV A,S_MEMACALL HBCDMOV DIS_MEM3,AACALL DIS_TIMEMOV A,ALARM_STJNZ CHEK_OFFMOV A,S_MEMJNZ WAITEACALL CHEK_AL ;打铃检测CHEK_OFF: MOV A,S_MEMCLR CSUBB A,#20JC WAITECLR CONTRELMOV ALARM_ST,#0SJMP WAITE;SJMP $;********打铃控制子程序*************** CHEK_AL:MOV A,AL_TOTAJZ CHEK_ENDMOV R0,#80HMOV R6,AL_TOTACHK_LOOP: MOV A,@R0CJNE A,H_MEM,NEXT_AL_1INC R0MOV A,@R0CJNE A,M_MEM,NEXT_AL_2SETB CONTRELMOV ALARM_ST,#0FFHSJMP CHEK_ENDNEXT_AL_1:INC R0NEXT_AL_2:INC R0DJNZ R6,CHK_LOOPCLR CONTRELMOV ALARM_ST,#0CHEK_END:RET;********键盘处理程序段*************** KEY_MAIN:MOV KEY_ST,#0JNB SET_TIME,TIME_SETJNB SET_ALARM,JMP_SET_ASJMP NEW_DISJMP_SET_A:AJMP ALARM_SET;========时间设置===================== TIME_SET:MOV TIME_OVER,#30MOV R5,H_MEMMOV R6,M_MEMMOV R7,S_MEMSET_H: JNB FLASH_S,GATE_HMOV DIS_MEM1,#0AAHSJMP CLS_HGATE_H: MOV A,R5ACALL HBCDMOV DIS_MEM1,AMOV A,R6ACALL HBCDMOV DIS_MEM2,AMOV A,R7ACALL HBCDMOV DIS_MEM3,ACLS_H: ACALL DIS_TIMEACALL DISPLAYMOV A,NEW_TIMECJNE A,#0FFH,JMP_1MOV NEW_TIME,#0DJNZ TIME_OVER,JMP_1AJMP WAITEJMP_1: ACALL KEY_CHECKMOV A,KEY_STCJNE A,#0FFH,SET_HMOV KEY_ST,#0MOV TIME_OVER,#30JNB UP,H_UPJNB DOWN,H_DOWNJNB LEFT,JMP_SET_SJNB RIGHT,SET_MJNB ESC,JMP_ESCJNB ENTER,JMP_OKSJMP SET_HJMP_ESC:AJMP TIME_SET_ESCJMP_OK: AJMP TIME_SET_OKJMP_SET_S:AJMP SET_SH_UP: CJNE R5,#23,INC_HMOV R5,#0FFHINC_H: INC R5AJMP GATE_HH_DOWN: CJNE R5,#0,DEC_HMOV R5,#24DEC_H: DEC R5AJMP GATE_H;===========分钟设置=============== SET_M: JNB FLASH_S,GATE_MMOV DIS_MEM2,#0AAHSJMP CLS_MGATE_M: MOV A,R6ACALL HBCDMOV DIS_MEM2,AMOV A,R5ACALL HBCDMOV DIS_MEM1,AMOV A,R7ACALL HBCDMOV DIS_MEM3,ACLS_M: ACALL DIS_TIMEACALL DISPLAYMOV A,NEW_TIMECJNE A,#0FFH,JMP_2MOV NEW_TIME,#0DJNZ TIME_OVER,JMP_2AJMP WAITEJMP_2: ACALL KEY_CHECKMOV A,KEY_STCJNE A,#0FFH,SET_MMOV KEY_ST,#0MOV TIME_OVER,#30JNB UP,M_UPJNB DOWN,M_DOWNJNB LEFT,JMP_SET_HJNB RIGHT,SET_SJNB ESC,TIME_SET_ESCJNB ENTER,TIME_SET_OKSJMP SET_MM_UP: CJNE R6,#59,INC_MMOV R6,#0FFHINC_M: INC R6AJMP GATE_MM_DOWN: CJNE R6,#0,DEC_MMOV R6,#60DEC_M: DEC R6AJMP GATE_MJMP_SET_H:AJMP SET_H;============秒设置================= SET_S: JNB FLASH_S,GATE_SMOV DIS_MEM3,#0AAHSJMP CLS_SGATE_S: MOV A,R7ACALL HBCDMOV DIS_MEM3,AMOV A,R5ACALL HBCDMOV DIS_MEM1,AMOV A,R6ACALL HBCDMOV DIS_MEM2,ACLS_S: ACALL DIS_TIMEACALL DISPLAYMOV A,NEW_TIMECJNE A,#0FFH,JMP_3MOV NEW_TIME,#0DJNZ TIME_OVER,JMP_3AJMP WAITEJMP_3: ACALL KEY_CHECKMOV A,KEY_STCJNE A,#0FFH,SET_SMOV KEY_ST,#0MOV TIME_OVER,#30JNB UP,S_UPJNB DOWN,S_DOWNJNB LEFT,JMP_SET_S_MJNB RIGHT,JMP_S_HJNB ESC,TIME_SET_ESCJNB ENTER,TIME_SET_OKSJMP SET_SJMP_S_H:AJMP SET_HS_UP: CJNE R7,#59,INC_SMOV R7,#0FFHINC_S: INC R7AJMP GATE_SS_DOWN: CJNE R7,#0,DEC_SMOV R7,#60DEC_S: DEC R7AJMP GATE_SJMP_SET_S_M:AJMP SET_M;====================================== TIME_SET_ESC:AJMP NEW_DIS ;时间设置取消/返回TIME_SET_OK:MOV S_MEM,R7 ;时间设置确认/返回MOV M_MEM,R6MOV H_MEM,R5AJMP NEW_DIS;=========打铃设置程序段=============== ALARM_SET:MOV TIME_OVER,#20MOV AL_NUMBER,AL_TOTAAL_LIST:MOV A,AL_NUMBERJNZ NUMBER_NMOV DIS_MEM1,#0MOV DIS_MEM2,#0AAHMOV DIS_MEM3,#0AAHACALL DIS_TIMEAJMP WAITE_ANUMBER_N:DEC ARL AADD A,#80HMOV R0,AMOV A,AL_NUMBERACALL HBCDMOV DIS_MEM1,AMOV A,@R0ACALL HBCDMOV DIS_MEM2,AINC R0MOV A,@R0ACALL HBCDMOV DIS_MEM3,AACALL DIS_TIMEWAITE_A:ACALL DISPLAYMOV A,NEW_TIMECJNE A,#0FFH,JMP_4MOV NEW_TIME,#0DJNZ TIME_OVER,JMP_4AJMP WAITEJMP_4: ACALL KEY_CHECKMOV A,KEY_STCJNE A,#0FFH,WAITE_AMOV KEY_ST,#0MOV TIME_OVER,#20JNB UP,NUM_UPJNB DOWN,NUM_DOWNJNB ESC,JMP_ESC_ALJNB ENTER,JMP_OK_ALJNB SET_ALARM,JMP_DEL_ALJNB SET_TIME,CHANGE_ALSJMP WAITE_AJMP_DEL_AL:AJMP DEL_AL;-------------------------------------NUM_UP: MOV A,AL_NUMBERCJNE A,AL_TOTA,INC_NUMMOV AL_NUMBER,#0FFHINC_NUM:INC AL_NUMBERAJMP AL_LIST;-------------------------------------NUM_DOWN:MOV A,AL_NUMBERCJNE A,#0,DEC_NUMMOV AL_NUMBER,AL_TOTASJMP J_DECNUMDEC_NUM:DEC AL_NUMBERJ_DECNUM:AJMP AL_LIST;==========修改打铃时间点================= CHANGE_AL:MOV A,AL_NUMBERJZ JMP_ADD_ALDEC ARL AADD A,#80HMOV R0,AMOV A,@R0MOV R6,AINC R0MOV A,@R0MOV R7,A;------------时修改------------------ SET_AL_H:JNB FLASH_S,GATE_AL_H MOV DIS_MEM2,#0AAH SJMP CLS_AL_HGATE_AL_H:MOV A,AL_NUMBERACALL HBCDMOV DIS_MEM1,AMOV A,R6ACALL HBCDMOV DIS_MEM2,ACLS_AL_H:MOV A,R7ACALL HBCDMOV DIS_MEM3,AACALL DIS_TIMEACALL DISPLAYMOV A,NEW_TIMECJNE A,#0FFH,JMP_5MOV NEW_TIME,#0DJNZ TIME_OVER,JMP_5 AJMP WAITEJMP_5: ACALL KEY_CHECK MOV A,KEY_STCJNE A,#0FFH,SET_AL_H MOV KEY_ST,#0MOV TIME_OVER,#20JNB UP,AL_H_UPJNB DOWN,AL_H_DOWNJNB LEFT,SET_AL_MJNB RIGHT,SET_AL_MJNB ESC,JMP_AL_LISTJNB ENTER,JMP_SET_AL_OK SJMP SET_AL_HJMP_ESC_AL:AJMP ESC_ALJMP_OK_AL:AJMP OK_ALJMP_ADD_AL:AJMP ADD_ALJMP_SET_AL_OK:AJMP SET_AL_OKJMP_AL_LIST:AJMP AL_LISTAL_H_UP:CJNE R6,#23,INC_H_AL MOV R6,#0FFHINC_H_AL:INC R6AJMP GATE_AL_HAL_H_DOWN:CJNE R6,#0,DEC_H_ALMOV R6,#24DEC_H_AL:DEC R6AJMP GATE_AL_H;----------分修改---------------- SET_AL_M:JNB FLASH_S,GATE_AL_MMOV DIS_MEM3,#0AAHSJMP CLS_AL_MGATE_AL_M:MOV A,AL_NUMBERACALL HBCDMOV DIS_MEM1,AMOV A,R7ACALL HBCDMOV DIS_MEM3,ACLS_AL_M:MOV A,R6ACALL HBCDMOV DIS_MEM2,AACALL DIS_TIMEACALL DISPLAYMOV A,NEW_TIMECJNE A,#0FFH,JMP_6MOV NEW_TIME,#0DJNZ TIME_OVER,JMP_6AJMP WAITEJMP_6: ACALL KEY_CHECKMOV A,KEY_STCJNE A,#0FFH,SET_AL_MMOV KEY_ST,#0MOV TIME_OVER,#20JNB UP,AL_M_UPJNB DOWN,AL_M_DOWNJNB LEFT,JMP_SET_AL_HJNB RIGHT,JMP_SET_AL_HJNB ESC,JMP_AL_LISTJNB ENTER,SET_AL_OKSJMP SET_AL_MJMP_SET_AL_H:AJMP SET_AL_HAL_M_UP:CJNE R7,#59,INC_M_ALMOV R7,#0FFHINC_M_AL:INC R7AJMP GATE_AL_MAL_M_DOWN:CJNE R7,#0,DEC_M_ALMOV R7,#60DEC_M_AL:DEC R7AJMP GATE_AL_M;=====打铃点设置确认/返回到列表状态====== SET_AL_OK:NOPMOV A,AL_NUMBERDEC ARL AADD A,#80HMOV R0,AMOV A,R6MOV @R0,AINC R0MOV A,R7MOV @R0,AMOV R0,#80HMOV R2,AL_TOTAACALL UP_LIST ;调升序排序程序AJMP ALARM_SET;==========增加打铃时间点================ ADD_AL: INC AL_TOTAMOV AL_NUMBER,AL_TOTAMOV R6,#08MOV R7,#0MOV A,AL_NUMBERDEC ARL AADD A,#80HMOV R0,AMOV A,R6MOV @R0,AINC R0MOV A,R7MOV @R0,AAJMP SET_AL_H;==========打铃设置取消/返回========== ESC_AL: MOV R4,#TOTA_ADDRMOV R0,#AL_TOTAMOV R3,#1ACALL RD_EEROMMOV A,AL_TOTAJZ EXIT_SET_ALRL AMOV R3,AMOV R0,#80HMOV R4,#00HACALL RD_EEROMEXIT_SET_AL:AJMP NEW_DIS;=========打铃设置确认/返回=========== OK_AL: MOV R0,#AL_TOTAMOV R3,#1MOV R4,#TOTA_ADDRACALL WR_EEROMMOV A,AL_TOTAJZ JMP_NEW_DISMOV A,AL_TOTARL AMOV R0,#80HMOV R3,AMOV R4,#0ACALL WR_EEROMJMP_NEW_DIS:AJMP NEW_DISJMP_AL_SET:AJMP ALARM_SET;========删除打铃时间点=========== DEL_AL: MOV A,AL_TOTAJZ JMP_AL_SETJNB FLASH_S,GATE_DISMOV DIS_MEM1,#0AAHMOV DIS_MEM2,#0AAHMOV DIS_MEM3,#0AAHSJMP CLS_DISGATE_DIS:MOV A,AL_NUMBER ACALL HBCDMOV DIS_MEM1,AMOV A,AL_NUMBERDEC ARL AADD A,#80HMOV R0,AMOV A,@R0ACALL HBCDMOV DIS_MEM2,AINC R0MOV A,@R0ACALL HBCDMOV DIS_MEM3,ACLS_DIS:ACALL DIS_TIME ACALL DISPLAYMOV A,NEW_TIMECJNE A,#0FFH,JMP_7MOV NEW_TIME,#0DJNZ TIME_OVER,JMP_7 AJMP WAITEJMP_7: ACALL KEY_CHECK MOV A,KEY_STCJNE A,#0FFH,DEL_AL MOV KEY_ST,#0MOV TIME_OVER,#20JNB ENTER,DEL_LISTJNB ESC,JMP_AL_SET_D AJMP DEL_ALJMP_AL_SET_D:AJMP ALARM_SET;------删除列表数据----------- DEL_LIST:MOV A,AL_TOTADEC AJZ CLR_TOTAMOV A,AL_TOTACLR CSUBB A,AL_NUMBERJZ NEW_LISTRL AMOV R3,AMOV A,AL_NUMBERDEC ARL AADD A,#80HMOV R0,AINC AINC AMOV R1,AMOVE_LIST_AL:MOV A,@R1MOV @R0,AINC R1INC R0DJNZ R3,MOVE_LIST_ALNEW_LIST:DEC AL_TOTAMOV R0,#80HMOV R2,AL_TOTAACALL UP_LISTLJMP ALARM_SETCLR_TOTA:MOV AL_TOTA,#0LJMP ALARM_SET;============================================= ;*************T0中断服务子程序**************** INT_T0: PUSH ACC ;保护现场PUSH PSWCLR TF2MOV TL0,#0B0H ;50mS 定时常数MOV TH0,#3CHDJNZ CT_50MS,CK_500MSMOV CT_50MS,#20 ;DELAY 1 SECONDMOV NEW_TIME,#0FFH;置秒标志MOV A,S_MEMCJNE A,#59,SECOND ;判断秒=59MOV S_MEM,#0FFHMOV A,M_MEMCJNE A,#59,MINUTE ;判断分=59MOV M_MEM,#0FFHMOV A,H_MEMCJNE A,#23,HOUR ;判断时=23MOV H_MEM,#0FFHHOUR: INC H_MEM ;时加1MINUTE: INC M_MEM ;分加1SECOND: INC S_MEM ;秒加1CPL FLASH_SSJMP EXIT_T0CK_500MS:MOV A,CT_50MSCJNE A,#10,EXIT_T0CPL FLASH_S ;秒闪EXIT_T0:POP PSW ;恢复现场POP ACCRETI ;中断返回;====================================== ;*********拆字查表子程序*************** DIS_TIME:PUSH ACCPUSH BMOV A,DIS_MEM1ACALL DIS_H_LMOV DIS_BUF1,AMOV DIS_BUF2,BMOV A,DIS_MEM2ACALL DIS_H_LMOV DIS_BUF3,AMOV DIS_BUF4,BMOV A,DIS_MEM3ACALL DIS_H_LMOV DIS_BUF5,AMOV DIS_BUF6,BPOP BPOP ACCRET;++++++++++++++++++++++++++++++++++++ DIS_H_L:MOV B,AANL A,#0FHMOV DPTR,#LEDSEGMOVC A,@A+DPTRXCH A,BSWAP AANL A,#0FHMOV DPTR,#LEDSEGMOVC A,@A+DPTRRET;====================================== ;*********数码管扫描子程序************* ;执行时间:10mS;++++++++++++++++++++++++++++++++++++++DISPLAY:PUSH ACCPUSH PSWPUSH 00HMOV P0,#0MOV A,#0FEHMOV R0,#DIS_BUF1DIS_LOOP:MOV P2,AMOV P0,@R0ACALL DLY_DISMOV P0,#0RL AINC R0JB ACC.6,DIS_LOOPMOV P2,#0FFHPOP 00HPOP PSWPOP ACCRET;-----------------------------------DLY_DIS:PUSH 02HPUSH 03HMOV R2,#4DLY_LOOP:MOV R3,#204DJNZ R3,$DJNZ R2,DLY_LOOPPOP 03HPOP 02HRET;====================================== ;*********键盘检测子程序*************** ;检测有无按键按下;键闭合标志KEY_ST,ON:0FFH,OFF:00H;++++++++++++++++++++++++++++++++++++++ KEY_CHECK:PUSH ACCMOV P1,#0FFHMOV A,P1CPL AJZ KEY_OFFACALL DISPLAYMOV A,P1CPL AJZ KEY_OFFMOV A,KEY_BUFCPL AJNZ KEY_OFFMOV KEY_BUF,P1;XRL A,KEY_BUF;JZ KEY_OFFMOV KEY_ST,#0FFHSJMP EXIT_KKEY_OFF:MOV KEY_ST,#0MOV KEY_BUF,P1EXIT_K: POP ACCRET;=========================================;****单字节十六进制整数转换成单字节BCD码整数****;入口条件:待转换的单字节十六进制整数在累加器A中。

基于51单片机的自动打铃系统课程设计

基于51单片机的自动打铃系统课程设计

湖南人文科技学院课程设计报告课程设计:单片机课程设计设计题目:自动打铃系统系别:通信与操纵工程系专业:电子信息工程班级:学生姓名:学号:起止日期:指导教师:教研室主任:摘要单片机确实是微操纵器,是面向应用对象设计、突出操纵功能的芯片。

单片机接上晶振、复位电路和相应的接口电路,装载软件后就能够够组成单片机应用系统。

将它嵌入到形形色色的应用系统中,就组成了众多产品、设备的智能化核心。

本设计确实是应用单片机壮大的操纵功能制作而成的闪烁的LED小灯,该设计包括以下几点功能:实现24小时制电子钟,6为数码管显示,显示时分,显示格式为A/P 12—00,打铃时刻为早:7:30 ,晚:10:30;系统利用2只按键,一个用于调整分钟,一个为小时调整。

本设计采纳的是STC89C52单片机,该单片机采纳的MCU51内核,因此具有专门好的兼容性,内部带有8KB的ROM,能够存储大量的程序,最突出特点是具有ISP在系统烧写功能,使得烧写程序加倍方便。

显示器件采纳通用型七段共阴极数码管;键盘调整部份采纳的是独立键盘。

通过这次设计能够加倍牢固的把握单片机的应用技术,增强动手能力、硬件设计能力和软件设计能力。

关键字:单片机;电子钟;打铃;晶振;数码管;按键目录第一章方案论证设计................................................................ 错误!未定义书签。

1.1 设计的应用意义........................................................... 错误!未定义书签。

1.2 设计方案选择............................................................... 错误!未定义书签。

1.3 整体设计框图............................................................... 错误!未定义书签。

自动控制打铃系统设计

自动控制打铃系统设计

教学系审核意见:主任签字:年月日简易自动打铃系统设计设计要求1.基本计时和显示功能(12小时制)。

2.可设置当前时间(包括上下午标志,时、分的数字显示)。

3.能在上午7:30(早自习)和下午10:30(晚熄灯)定点打铃,且每次打铃均为响铃5s,停2s,再响5s。

1.方案论证与对比1.1方案一采用时钟芯片和键盘实现功能方案一原理框图如图1-1所示:DS1302芯片蜂鸣器89C52单片机8255芯片数码管键盘图 1-1 采用时钟芯片和键盘实现功能该系统用DS1302对时、分、秒计时和设置打铃时间,采用三线串行数据传输接口与STC89C52进行同步通信,用矩阵键盘来设置时间值,并通过8255芯片读入设置值,最后通过89C52单片机芯片综合控制[1],把当前时间送到数码管显示,到点把信号送入蜂鸣器,实现打铃。

1.2方案二:采用中断定时实现功能方案二原理框图如图1-2所示:图 1-2 采用中断定时实现功能该系统以STC89C52单片机为核心控制部件。

用8255做I/O 拓展芯片,数码管接8255的PA 、PB 引脚,用动态扫描的方式显示当前时间。

蜂鸣器与单片机的P2.0口相连,当打铃时间到时,由STC89C52发出打铃指令。

以外部INT0和INT1中断按钮实现调时功能。

1.3方案比较本设计要求能实现基本计时和打铃功能。

计时和打铃时间设计,方案一中用到了DS1302时钟芯片计时和打铃时间设置;方案二中采用定时器中断来计时并结合软件设置打铃时间。

上述两种方案中:方案一的外围硬件电路设计复杂,而且时钟芯片没有得到充分利用,而方案二的软件计时具有硬件开销小,成本低,外围电路设计简单等优点。

蜂鸣器中 断 数码管8255芯片89C52调时设计,方案一中用矩阵键盘实现调时功能;方案二中采用外部中断0和1的两个按钮来实现调时。

上述两种方案中:方案一的软件设计比方案二的难度系数大,使程序易读性不强。

综合对计时的精密程度要求不高的本系统,本设计采用方案一来实现功能。

自动打铃系统设计

自动打铃系统设计

《微机原理与接口技术》课程设计任务书(一)
题目:自动打铃系统设计
一、课程设计任务
本课题要求应用以51单片机为核心设计一自动打铃系统,能完成基本计时和显示功能,用LCD显示时间、铃声可用蜂鸣器发出。

二、课程设计目的
通过本次课程设计使学生掌握:1)掌握以单片机为核心的控制系统的分析和设计的基本方法;2)控制程序的设计及实现方法;3)提高学生对单片机实时控制系统的设计和调试能力。

三、课程设计要求
基本计时和显示功能(用12小时制显示)。

包括上下午标志,时、分的数字显示,秒信号指示,并能设置当前时间(含上、下午,时,分)。

能实现基本打铃功能,规定:
上午8:00上课铃:打铃10秒、停2秒、再打铃10秒。

下午5:30下课铃:打铃10秒、停2秒、再打铃10秒。

四、课程设计内容
1、人机对话“界面”的设计;
2、内存端口及外设的设置;
3、硬件电路原理图、软件清单。

五、课程设计报告要求
报告中提供如下内容:
1、目录
2、正文
(1)课程设计任务书;
(2)总体设计方案
(3)针对人机对话“界面”要有操作使用说明,以便用户能够正确使用本产品;
(4)硬件原理图,以便厂家生成产(可手画也可用protel软件);
(5)程序流程图及清单(子程序不提供清单,但应列表反映每一个子程序的名称及其功能);
(6)调试、运行及其结果;
3、收获、体会
4、参考文献
六、课程设计进度安排
七、课程设计考核办法
本课程设计满分为100分,从课程设计平时表现、课程设计报告及课程设计答辩三个方面进行评分,其所占比例分别为20%、40%、40%。

基于单片机的教学打铃控制器设计

基于单片机的教学打铃控制器设计

基于单片机的教学打铃控制器设计随着社会的快速发展和教育的变革,学校的管理也越来越智能化。

其中,教学打铃系统尤其是一项必需的管理手段。

然而,在传统的打铃系统中,存在诸多问题,例如频繁出现的故障、安装和维护成本高昂以及难以满足不同场合的多样化需求等。

因此,基于单片机的教学打铃控制器应运而生,成为教学管理的重要工具。

基于单片机的教学打铃控制器是一种高效可靠、精度高、注册应用广泛的数字化打铃系统。

与传统打铃系统相比,它使用单片机作为核心控制器,实现程序控制,程序实时性好,可靠性高。

同时,该系统具有更多的功能,如定时功能、周计划功能、多语言查询等,能够满足各种不同的场合与需求。

该系统的硬件主要包括打铃控制器、时钟电路、显示器、键盘等部分。

打铃控制器采用单片机,通过输入、处理、输出的方式实现了控制信号的转换与传递。

时钟电路则可精确地控制打铃时间,增强了系统的稳定性。

显示器和键盘则起到人机交互的作用,在更方便且人性化的操作中发挥了至关重要的作用。

在软件方面,该控制器系统主要设计功能包括实时时钟、计时计划、语音提示、多级权限等。

实时时钟功能可根据自行设定的时间表档案精确设置铃声播放时间。

计时计划则可以通过统计不同的节次和课程时间来实现不同的课程的铃声控制。

在语音提示功能中,您可以将语音文件录入系统,并实现系统的语音提示功能。

多级权限功能可以有效地实现不同权限的用户对铃声的控制,从而避免了教学管理中出现的非法操作和误操作等。

在教学管理中,基于单片机的教学打铃控制器有着广泛的应用,特别是在学校、科研机构、实验室等场所。

其优越的性能和丰富的功能使其成为教学管理的不可或缺的一部分。

通过该系统,学校教育管理人员可以更好地实现对铃声的管理和控制,有效地提高学校的学习效率。

总之,基于单片机的教学打铃控制器是一种高效、精准且具备广泛应用前景的数字化打铃系统。

它的应用为学校教学管理提供了较好的解决方案,不仅便捷高效,而且成本低廉、维护简单。

基于单片机控制的自动打铃器毕业设计

基于单片机控制的自动打铃器毕业设计

目录摘要 (1)第一章系统设计要求 (2)第二章硬件总体设计方案 (3)第三章软件总体设计方案 (10)第四章课程设计结果分析 (22)第五章总结 (23)参考文献 (24)电子钟设计摘要:单片机即单片微型计算机。

(Single-Chip Microcomputer ),是集 CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。

他体积小,成本低,功能强,广泛应用于工业自动化上和智能产品。

时钟,自从它被发明的那天起,就成为了人类的好朋友,但随着时间的推移,科学技术的不断发展,时钟的应用越来越广范,人们对时间计量的精度要求也越来越高。

怎样让时钟更好的为人民服务,怎样让我们的老朋友再次焕发青春呢?这就要求我们不断设计出新型的时钟,来不断满足人们的日常生活需要。

然而市场上的时钟便宜的比较笨重,简单实用的又比较昂贵。

那么,有没有一款既简单实用价格又便宜的时钟呢?我的毕业设计设想:可不可以利用单片机功能集成化高,价格又便宜的特点设计一款结构既简单,价格又便宜的单片机电子时钟呢?基于这种情况,我多方查阅资料,反复论证设计出了这款既简单实用,又价格便宜的——多功能电子时钟关键词:单片机时钟计时第一章系统设计要求1.1 基本功能(1)能够显示时分秒(2)能够调整时分秒1.2 扩展功能(1)能够任意设臵定时时间(2)定时时间到闹铃能够报警(3)实现了秒表功能第二章 硬件总体设计方案本次设计时钟电路,使用了AT89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用C 语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、显示屏即可满足设计要求。

2.1系统功能实现总体设计思路此设计原理框图如图2-1所示,此电路包括以下四个部分:单片机,键盘,闹铃电路及显示电路。

基于单片机的自动打铃器的设计毕业设计

基于单片机的自动打铃器的设计毕业设计

基于单片机的自动打铃器的设计毕业设计目录摘要 (I)Abstract (II)第一章绪论 (1)1.1单片机设计的目的和意义 (1)1.2单片机发展现状和前景展望 (1)1.2.1课题发展现状 (1)1.2.2课题前景展望 (2)1.3Protel 99 SE概述 (2)1.3.1Protel 99 SE的组成 (3)1.3.2Protel 99 SE的应用 (4)1.3.3电路板的设计步骤 (6)第二章单元模块的设计 (8)2.1电源模块 (8)2.2单片机最小系统模块 (8)2.3时钟模块 (9)2.4按键模块 (11)2.5显示模块 (12)2.5.1主要技术参数 (13)2.5.2引脚功能 (13)2.5.3基本操作时序 (14)2.5.4状态字说明 (14)2.5.5RAM地址映射图 (14)2.5.6指令说明 (15)2.5.7接口时序图 (16)2.6喇叭模块 (18)第三章系统软件设计 (19)3.1系统软件按键程序设计 (20)3.2系统软件打铃器时间设置设计 (21)第四章系统功能介绍及调试 (22)4.1打铃器功能简介 (22)4.2打铃器优点 (22)4.3打铃器缺点与不足 (22)4.4系统调试 (22)4.3.1硬件调试 (22)4.3.2软件调试 (23)结束语 (24)参考文献 (25)致谢 (26)附录 (27)附录1 (27)附录2 (41)基于单片机的自动打铃器的设计摘要:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

本文首先概述了单片机电路的发展历史,单片机设计方法和工具的变革,单片机技术及发展,C语言硬件描述语言,Protel 99 se的应用,典型的单片机电路设计流程,然后详细地介绍了单片机自动打铃器与控制电路的完整的设计过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机自动控制打铃系统,是以一片8位单片机为核心的实时时钟及控制系统.我们知道单片机的外接石英晶体震荡器能提供稳定、准确的基准频率,并经12分频后向内部定时器提供实时基准频率信号,设定定时器工作在中断方式下,连续对此频率信号进行分频计数,便可得到秒信号,再对秒信号进行计数便可得到分、时等实时时钟信息.如果石英晶体震荡器的频率信号为6MHZ,设定定时器定时器工作在方式1下,定时器为3CB0H,则定时器每100ms产生1次中断,在定时器的中断定时处理程序中,每10次中断,则向秒计数器加1,秒计数器计数到60则向分计数器进位(并建立分进位标志),分计数器计数到60,则向时计数器进位,如此周而复始的连续技术,便可获得时、分、秒的信号,建立一个实时时钟.接下来便可以进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间(小时与分、存放在RAM中)与信息时间表上的作息时间(小时与分,存放在ROM)是否相同,如有相同者,则进行报时处理并控制打铃,如有不相同则返回主程序,如此便实现了报时控制的要求.2.2 ISP下载电缆的电路及程序设计简介能实现ISP功能的硬件电路,通常被称为“下载电缆”。

ATMEL公司推出的AT89S51/52单片机就具有ISP功能。

用计算机并行口实现ISP功能,在电路设计上非常灵活。

(1)下载电缆的电路设计:计算机并行接口共有25个口线,主要包括数据端口D0~D7(端口地址为378H,用于数据输出);状态端口Busy、nAck、PE、Select、nError(端口地址为379H,用于数据输入);控制端口nSelin、nlnit、nStrobe(端口地址为37AH,用于输出控制)。

从中选出4个口线来模拟ISP所需的引脚,就非常灵活,只需考虑数据的输入、输出方向及操作方便即可。

但要注意同一端口的数据方向必须一致,例如数据端口是8位同时操作的,只能全部作为输入或输出,而不能将一部分做输入,另一部分做输出。

下载电缆的电路如图附件一所示。

该电路主要包括并行接口电路、驱动隔离电路和JTAG接口电路3大部分,这里只所以说JTAG接口电路,是因为ISP传输虽然在协议上符合SPI协议,但引脚是按照JTAG标准而定义的,它们的对应关系如下:TCK对应SCK,D0对应MOSI,TMS对应RST,TDO对应MISO。

(2)并行接口电路该电路是按计算机并行口标准定义的,在电路中采用nStrobe模拟TCK,用D0模拟TDI,用nSelin模拟TMS。

用nACK模拟TDO。

这样的定义方法就决定了TCK时钟和TMS的产生要由并行口的控制端口产生;TDI由并行口的数据端口产生,TDO要由状态端口获取,不同的端口操作地址不同,涉及程序的编写。

这些对应关系见表:(3)驱动隔离电路该电路采用74HC244作为驱动隔离芯片。

74HC244具有2组驱动器,分别由1G 和2G控制使用。

当控制引脚为低电平时,A到Y通路,可以进行数据传输,当控制引脚为高电平时A到Y相当断路,起到隔离作用。

图中R1~R14为限流电阻,防止电流过大烧毁驱动器芯片,R15~R18为上拉电阻,确保空闲时各个点的电平状态。

第三章设计内容及要求3.1 设计要求设计一作息时间自动打铃控制系统,要求:1、走时准确,日误时时钟的时、分、秒,用24小时制进行计时.3、具有调节和校对时间的功能.4、作息时间预制功能,最差≤±1S.2、用6个数码显示实多可以预制36个打铃报时点.5、具备定时打铃输出的功能.6、掉电时有备用电池继续走时,不能停机.3.2 硬件设计⑴、单片机选用AT89S51,它与8051系列单片机全兼容,但其内部带有4KB的FLASH ROM,并支持在线编程技术,设计时无需外接程序存储器,样品可以直接与PC机连机下载程序,为设计和调试带来极大方便.⑵、LED显示系统:6位LED数码管从左至右依次显示时2位、分2为、秒2位,采用24小时制计时.设计时可利用单片机的P0口和P1口作为时钟信号输出,经驱动芯片后驱动数码管显示时间,LED采用动态方式显示.⑶、键盘系统:设置4个程序按键,包括:选择键、调节键、打铃时间设定键、铃声选择键,键盘系统可由P2口构成.另需配置一个非程序按键:系统复位键.选择键:按动选择键,可以选择小时、分钟或回复正常走时,选定的内容快速闪烁.调节键:按一次"调节键",所选定的内容加1,长按"调节键"(按下的时间超过1秒钟以上),则所选定的内容按每秒钟增加10的速度快速增加.当分钟增加到59、小时增加到23时,自动回到0,再丛开始增加.打铃时间设定键:将数码管的显示从走时状态转换到打铃时间设定状态,并根据所按该键的次数,显示相应的打铃时间"编组号".然后可以用"选择键"和"调节键"设定或修改该组的打铃时间.铃声选择键:从两种不同的打铃输出方式中选择一种铃声输出.⑷、电源供电系统:本系统采用220V的电源供电,应设计响应的稳压电源电路.当220V停电时,由备用电池向单片机供电,为了延长电池的工作时间,只需维持实时时钟的运行和计时,而耗电量较大的数码管显示系统和输出驱动等电路应停止工作.⑸、打铃输出控制:当实时时钟运行到报时点对应的时间时,应输出控制信号,一路信号使本系统的一个发光而极管发光,起提示作用;另一路信号通过继电器去控制电铃,使电铃自动打铃.打铃的铃声分两种:1种是连续响铃,持续时间为10秒;另一种断续响铃,停1秒钟,持续时间也是10秒.本系统的工作流程⑴、时间显示:通电或系统复位后,系统自动进入时钟显示,从00:00:00开始计时,此时可以设定当前时间.⑵、时间校对:用"选择键"和"调节键"来调节时间.第一次按"选择键"时,小时的两位数快速闪烁,这时可以用"调节键"来修改小时数.第二次按"选择键"时,分钟的两位数快速闪烁,这时可以用"调节键"来修改分钟数.第三次按"选择键"时,退出时间校对状态,按新的设定时间修复走时.用"调节键"来修改所选定的内容时,则每按一次"调节键",所选定的内容加1,长按"调节键"(按下的时间超过1秒以上),则所选的内容按每秒增加10的速度快速增加.当分钟增加到59、小时增加到23时,自动回复到0,再从开始增加.时钟设置正确后,再次按"选择键"(即第三次按"选择键"),时间校对从00开始计时.如在时间校对过程中,超过30秒时钟时间没按任何按键,则自动恢复原来的时间走时和显示.⑶、打铃时间设置:用户最多可以设定32组自动打铃时间点,当按动"打铃时间设定键"后,数码管显示01 ** **,其中01(前2位)表示报时点的组别,其值从02到32,第三、四位为打铃时间的小时数,第五、六为打铃时间的分钟数.第一次按"打铃时间设定键"时,则显示"01 ──",01则表示第一组报时点,"──"表示该组的报时时间还未设置,为无效状态,此时可以用"选择键"、"调节键"来设置该组的打铃时间:如显示的为"01 ** **"(*表示具体是时间数据),表明该组的打铃时间已经设置,此时也可以用"选择键"、"调节键"来更改该组的打铃时间.当该组的打铃时间设置或更改完毕,按动"打铃时间设定键",可将该组的打铃时间数据存入RAM中,同时组别数据加1,如显示"02 ** **"或"02 ──",然后可以对第二组的打铃时间数据进行修改或设置,再次按动"打铃时间设定键",则将第二组打铃时间存储起来,显示变为"03 ** **"或"03 ──",再对第三组的打铃时间进行修改和设置,依次类推,直到设置完毕.当某一组别的打铃时间显示为"** ──"(则未设置,为无效组别),而继续按"打铃时间设定键",则该组的数据不存储,退出打铃时间设置状态,恢复实时始终走时和显示状态.⑷、打铃时间的查询和消除:按动"打铃时间设定键",可以对各组已设置的打铃时间进行查看,如有错误,则可用上述方法进行修改.如果清楚某组的打铃时间,先用"打铃时间设定键"找到并显示该组的打铃时间,再用"选择键"、"调节键"将该组的打铃时间设定为"** 00 00".再次按动"打铃时间设定键",则可清除该组的时间数据,而后面的各组时间数据的组别依次往前移一位,保证各打铃时间之间不出现空组别或无效组别.如:清除第7组数据后,第8组数据就移至第7组,第9组的数据移至第8组……在时间校对、打铃时间设置、查询与修改过程中,超过30秒钟没按任何一个有效按键,则自动恢复原来的时间走时和显示.⑸、打铃的铃声类别设置:在打铃时间设置过程中,可以用"铃声选择键"来设置打铃的铃声类别.在设置某组别的打铃时间时,默认铃声为"连续铃声",即不按"铃声选择键"时为连续铃声.用此方法可以对每组打铃时间的铃声进行设置或更改.不同的铃声用两个发光二极管进行指示.3.3软件设计⑴、系统资源分配:为了便于程序的设计、阅读及修改,需要先对系统的存储器资源进行分配和说明.⑵、软件流程:根据上述工作流程和设计要求,软件设计可以分为以下几个功能模块:①、主程序:初始化及键盘控制.②、计时程序模块:为定时器0中断服务子程序,完成刷新计时缓冲区的功能.③、时间校对模块:完成实时时钟的时间设定.④、打铃时间设置模块:完成打铃时间的设置与清除.⑤、显示程序模块:完成6位LED数码管的动态显示.⑥、键盘扫描程序模块:判断是否有键按下,并求取键号.⑦、定时比较程序模块:判断报时时间是否,如时间到,则启动打铃处理程序.⑧、打铃程序模块:设置两种不同的打铃模式,并选择其一输出.⑨、其他辅助功能程序:如"选择键"处理、""调节键"处理、"打铃时间设定键"处理等键盘设置程序;拆字、合字处理程序等.第四章程序设计4.1 系统资源分配4.1.1 为方便阅读程序,先对系统的资源分配加以说明。

相关文档
最新文档