简易自动打铃系统
自动打铃器

自动打铃器 (3)自动打铃器是一种能够根据预设的时间或者条件自动触发铃声的装置。
在各种不同的场合,自动打铃器都扮演着重要的角色,如学校上下课,公司上下班,定时提醒等。
下面我们将从几个方面详细介绍自动打铃器的原理、应用和未来的发展趋势。
一、自动打铃器的原理自动打铃器主要利用定时器或者计数器来控制电路的运行,以达到自动触发铃声的目的。
根据不同的原理,自动打铃器可以分为机械式和电子式两种。
1.机械式自动打铃器机械式自动打铃器主要利用钟表机构或者定时器齿轮等机械部件来控制时间,当达到预设时间时,通过机械连杆带动铃铛发出铃声。
这种打铃器一般需要手动上链或者拨动开关来启动,同时也有一定的误差存在。
2.电子式自动打铃器电子式自动打铃器则是利用电子电路来控制时间,常用的有数字电路和单片机等。
数字电路通过设定不同的时间参数来实现定时打铃,而单片机则可以通过编程来实现更为复杂的控制逻辑,如铃声的持续时间、间隔时间等。
二、自动打铃器的应用自动打铃器被广泛应用于各种场合,如学校、公司、车站、码头等。
在学校中,自动打铃器可以用来控制上下课的时间,提高学校的教学管理水平;在公司中,自动打铃器可以用来控制上下班的时间,提高公司的工作效率;在车站、码头等场合,自动打铃器可以用来通知乘客列车或船只的开行时间等。
此外,自动打铃器还可以用于定时提醒,如定时叫醒、定时吃药等。
在一些工业生产中,也需要用到自动打铃器来控制生产节拍和时间,提高生产效率。
三、自动打铃器的未来发展趋势随着科技的不断发展,自动打铃器也在不断升级换代,未来将会有更多新的技术应用到自动打铃器中。
1.网络化未来的自动打铃器将会更加网络化,可以通过互联网进行远程控制和监控。
例如,在车站、码头等场合,管理员可以通过互联网远程控制打铃器的开关和铃声持续时间等参数,以适应不同的情况和需求。
2.智能化未来的自动打铃器将会更加智能化,可以利用人工智能技术实现自我学习和自我调整。
例如,通过机器学习和大数据分析技术,自动打铃器可以学习用户的使用习惯并自动调整参数,为用户提供更加智能化的服务。
自动打铃控制器的PLC控制系统设计

自动打铃控制器的P L C 控制系统设计-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN设计任务书一.课题名称:自动打铃控制器的设计二.概述目前,学校打铃系统的控制均有专用的控制器,这种控制器由单片机或数字系统组成。
当然,用PLC控制也完全可以达到准确定时打铃的目的。
图1所示为PLC控制自动打铃系统组成框图。
图1 PLC控制自动打铃系统组成框图根据学校作息时间表,该控制系统的要求具体如下:(1)上课铃与下课铃要能分开(铃声响的频率不一样),起床、晚自习等时间的铃声为连续打铃,每次打铃的时间为15s。
(2)要具备时间调整功能。
(3)星期六、星期日不打铃,星期一至星期五按表1所示作息时间打铃。
(4)具有时间显示功能,要有秒、分、时和星期的显示。
表1 作息时间表1.根据题意,设计该PLC控制系统。
2.PLC选择及I/O及其它PLC元器件分配。
3.选择电器元件,编制元件目录表。
4.绘制梯形图。
5.用计算机绘制主电路图、PLC控制电路图、电器元件布置图。
6.编写设计说明书及设计小结。
四.设计方案提示1.电子钟程序电子钟程序分别设有秒、分显示(00~59),时显示(00~23)和星期显示(1~6、日)。
其中电子钟计数功能可采用移位指令实现,0~9显示译码电路可用组合逻辑功能完成。
“00~59”六十进制秒、分计数的个位向十位进位的处理方法是:当个位计数到9,第10个脉冲到来时,个位数应该显示0,而十位数应显示1,这是两位数的显示应为10。
对于时显示00~23及星期一至星期日的进位方法处理类似。
有区别的是星期日显示可用数字“”表示,即星期日显示不是显示数字“7”,而是显示数字“8”。
2.打铃程序要使电子钟在显示时间7:40时打铃,可以将7:40的特征码“1”找出来,再驱动一“定时器”电路,使定时器定时15s,打铃也将响应15s。
其余上课的特殊码处理方法相同。
而当下课时,将产生特征码“2”,驱动下课打铃“定时器”电路,打铃15s后停止,但此时打铃的铃声应和特征码“1”时(即上课)不同。
自动打铃系统

淮南职业技术学院毕业设计题目:学院自动打铃系统设计系别:煤矿机电系专业:矿山机电二班姓名:王灿学号: 1003044 指导教师:刘立群摘要学校以及一些企事业单位通常使用电铃声作为上下课、上下班等作息时间信号。
电铃已是学校以及一些企事业单位不可缺少的设备,随着社会的发展不但对其需求量越来越大,对电铃的自动控制要求也越来越高,于是人们设计了通过不同控制方式来实现的自动打铃系统。
本文介绍一种采用三菱PLC控制的作息时间自动打铃控制系统,详细地阐述了系统的组成、系统硬件接线和系统软件设计,并详细介绍了系统工作原理。
该系统具有外设电路配置简单、扩展方便、操作容易,可靠性高实用性强等特点。
该系统用于学校电铃的自动控制,具有周末和假期控制功能和星期与时间的显示功能,实现了作息时间无人控制的自动化、科学化管理与操作。
关键词:作息时间控制系统,PLC,I/O接线,软件设计概述PLC即可编程控制器(Programmable logic Controller),是指以计算机技术为基础的新型工业控制装置。
PLC是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。
它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。
PLC及其有关的外围设备都应该按易于与工业控制系统形成一个整体,易于扩展其功能的原则而设计。
20世纪70年代中末期,可编程控制器进入实用化发展阶段,计算机技术已全面引入可编程控制器中,使其功能发生了飞跃。
更高的运算速度、超小型体积、更可靠的工业抗干扰设计、模拟量运算、PID功能及极高的性价比奠定了它在现代工业中的地位。
20世纪80年代初,可编程控制器在先进工业国家中已获得广泛应用。
这个时期可编程控制器发展的特点是大规模、高速度、高性能、产品系列化。
这个阶段的另一个特点是世界上生产可编程控制器的国家日益增多,产量日益上升,这标志着可编程控制器已步入成熟阶段。
电脑雨花石打铃系统设置教程

电脑雨花石打铃系统设置教程随着科技的不断进步,电脑在我们生活和工作中扮演着越来越重要的角色。
而在一些特定的场景中,我们常常需要用到打铃系统来提醒我们进行某项任务或活动。
电脑雨花石打铃系统是一款功能强大且易于使用的打铃软件,本文将为大家详细介绍如何进行系统的设置。
一、安装电脑雨花石打铃系统我们需要下载并安装电脑雨花石打铃系统。
在官方网站上搜索“电脑雨花石打铃系统”即可找到相关的下载链接。
下载完成后,双击安装包进行安装,按照提示一步步进行操作即可。
二、打开电脑雨花石打铃系统安装完成后,我们可以在桌面或开始菜单中找到电脑雨花石打铃系统的图标,双击打开软件。
三、设置打铃时间在打开的软件界面中,我们可以看到一个日历,点击日期可以进入设置界面。
在设置界面中,我们可以设置打铃的时间、重复周期以及铃声等参数。
点击“添加”按钮,选择想要设置的时间,并选择铃声文件,最后点击“确定”按钮保存设置即可。
四、设置打铃提示除了设置打铃的时间,我们还可以设置打铃的提示内容。
在设置界面中,找到“提示语”一栏,点击“编辑”按钮进行编辑,输入想要的提示内容,并保存设置。
五、设置打铃模式电脑雨花石打铃系统提供了多种打铃模式供我们选择。
在设置界面中,找到“打铃模式”一栏,点击下拉菜单选择想要的模式,如循环模式、单次模式等。
六、保存设置在完成所有设置后,点击设置界面中的“保存”按钮,将设置保存到系统中。
七、测试设置为了确保设置的准确性,我们可以点击软件界面中的“测试”按钮进行测试。
系统将按照设置的时间进行打铃,并显示设置的提示内容。
八、启动打铃系统在完成所有设置后,我们需要确保电脑雨花石打铃系统在开机时自动启动。
在软件界面中找到“启动项”一栏,点击“添加”按钮将软件添加到启动项中,这样每次开机时系统都会自动启动。
九、管理打铃任务在软件界面中,我们可以找到“打铃任务”一栏,点击进入管理界面。
在这里,我们可以添加、编辑、删除打铃任务,以及查看已完成的任务。
打铃系统

摘要在现如今快节奏的生活中,人们对于时间的要求越来越苛刻,很多时候都需要对时间进行规划,然后到时间点就要有时间提醒,这就必须用到时钟提醒装置,亦可称为打铃装置。
打铃装置有很多种,比如手机的打铃系统,闹钟的机械打铃装置,广播打铃系统等等,但是日常生活中见得最多的还是校园的自动打铃系统。
在学校生活中,每天上下课都离不开打铃系统的使用。
打铃器可以为上下课的学生和老师们提供时间提醒,有利于师生对上课和学习的合理安排,同时,也可作为一个提醒学生们作息时间的时间表,让老师和学生都能有一个规律和科学的时间安排。
因此,打铃系统的核心部分也是时钟部分,为系统提供时间基准。
本设计主要是针对适用于校园打铃系统要求的,其介绍了一种基于单片机的自动打铃系统的设计方法,系统以AT89C52单片机作为控制器,以DS1302时钟芯片作为系统提供时间,并在液晶显示器上显示,通过按键可以设定定时打铃时间。
系统软件设计采用C语言来完成,C语言语法简洁,使用方便,用于完成软件设计非常方便。
本文提出的设计方法电路简单、成本低廉、实用性强。
关键字:AT89C52单片机、DS1302、液晶显示器、打铃器AbstractNow fast-paced life, the time more and more demanding, often need time to plan and then to the point in time there should be reminded, which must be used to clock reminder can also be calledrang the bell device. Rang the bell device are many, such as the phone rang the bell system, mechanical bell device of the alarm clock, radio bell systems, etc., but in daily life appear or campus automatic bell system. In school life, the last class of the day are inseparable from the bell system. The bell can provide time for the last class of students and teachers to remind conducive to a reasonable arrangement of the teachers and students to school and learning, but also as a reminder of the schedule of the students schedule, so that teachers and students cana law and scientific timing. Therefore, the core part is the clock part of the bell system, the system provides a time reference.This design is mainly for the applicable requirements of the campus bell system, introduced a microcontroller-based automatic bell system design method, the system controller is AT89C52 SCM , the DS1302clock chip provide the system with time, and the LCD displayed on the monitor button can set the time interval of the timer rang the bell time. System software design using C language, C language syntax is simple, easy to use, very convenient to be used to complete the software design. This paper presents the design circuit is simple, low cost, and practical.Key words: AT89C52 SCM the DS1302 LCD monitors Rang the bell目录摘要 (1)Abstract ....................................................................................................... 错误!未定义书签。
单片机自动打铃系统

前言20世纪80年代人类社会进入信息时代以来,人们的一切社会活动都是以信息获取与信息交换为中心,因此,信息技术进入发展新时期,而作为信息技术的基础与支柱之一, 最早的是在学校见过的以物理器件和电磁原理做成的电铃器,其打铃方式单调,适用范围有限,而且会出现各个打铃执行器响铃不同步,打铃时间不准确的情况.随后出现了以微型计算机为核心的打铃器,精度大大提高,更扩大了其功能和集成度最早的工业控制只有靠操作人员的五官感觉和直接控制,后来有了集成芯片可显示控制设备的工作状态.不用工作人员去手动控制,可实现自动化,更像智能方向发展。
早期的集中式打铃系统是基于模拟信号的,他需要一对一的物理连接,而且计算的速度和精度低,信号传输的抗干扰能力也差,而且后来有了数字信号和单片机控制技术,出现了集成电路,集中式数字控制系统于七八十年代占主导地位,采用单片机,微机作为控制器,控制器内部传输的是数字信号,因此克服了模拟仪表控制系统中模拟信号精度低的缺陷,提高了系统的抗干扰能力.集成式打铃系统的优点是易于根据全局情况进行控制计算和判断。
在控制方式选择上芯片可以统一调度和安排; 不足的是,对控制器本身要求高了,必须具有足够的处理能力和较高的可靠性。
单片机诞生于20世纪70年代末,经历了SCM、MCU、SOC三大阶段 1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。
在开创嵌入式系统独立发展道路上,Intel公司功不可没。
2.MCU微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。
基于单片机的简易自动打铃系统设计

课程设计报告课程名称:单片机原理及应用课程设计设计题目:简易自动打铃系统系别:专业:班级:学生姓名:学号:起止日期:年月日~ 年月日指导教师:教研室主任:摘要随着科学技术的飞速发展,单片机应用的范围越来越广,本设计正是基于STC89C52型单片机为核心,加上适当的外围部件,设计而成的简易自动打铃系统。
简易自动打铃系统的设计以STC89C52单片机芯片和8255芯片的拓展I/0引脚为核心部件,用定时器中断系统进行计时、数码管显示当前时间、蜂鸣器实现打铃功能、矩阵键盘调整显示时间、电源电路为整个系统提供5V工作电压,由以上模块构成了本系统。
根据设计要求,该简易自动打铃系统可以进行计时和显示,设置当前时间,实现定点打铃等功能。
该设计简单、实用、操作便捷。
关键字:单片机;自动定点打铃;设置时间;中断;矩阵键盘;I/O扩展;目录摘要 (3)目录 (4)设计要求 (5)1.方案论证与对比 (5)1.1方案一采用时钟芯片和键盘实现功能 (5)1.2方案二:采用中断定时实现功能 (5)1.3方案比较 (6)2.单元电路设计与论证 (6)2.1单片机、I/O拓展 (7)2.2打铃电路设计 (8)2.3数码管电路设计 (8)3系统软件工作流程图 (8)3.1主程序工作流程 (8)3.2定时器中断子程序 (9)3.3时间设定子程序 (10)4.系统功能实际测试 (11)4.1程序实际编译测试 (11)4.2系统实际测试 (11)4.3软件调试步骤 (11)4.4子程序调试步骤 (11)4.5调试结果 (12)4.6系统误差及性能分析 (12)5.设计总结 (12)6.详细仪器清单 (14)7. 致谢 (15)8.参考文献 (16)附录1.详细程序 (17)简易自动打铃系统设计设计要求⏹ 1.基本计时和显示功能(12小时制)。
⏹ 2.可设置当前时间(包括上下午标志,时、分的数字显示)。
⏹ 3.能在上午7:45自习)和下午10:00(晚熄灯)定点打铃,且每次打铃均为响铃3s,停1s,再响3s。
校园自动音乐铃声打铃系统

2010年4月9日
1.发布了3.9版。
2010年4月8日
1.开启多声道功能播放时,播放器上显示多声道的控制选项.
2.多个界面上的多声道名称可以定制,定制在SSPS.INI中修改.
2010年4月7日
1.对节假日功能进行了增强,在原有以天为单位的基础上增加了小时的控制,结束时间由天数控制改为日期方式控制.
3.注册功能进行更进,以前的注册用户需要重新注册。
2010年1月10日
1.新增了节假日停播作息表的功能。
2.新增了当天临时整体提前或推后N分钟播放作息表功能,用于临时性的提前上课时铃声调整。
2010年1月8日
1.增加了临时更换作息项至指定星期几功能。
2.注册功能进行了修改,增加授权日期。
3.增加了直接切换晴雨天的快捷菜单与工具栏按钮。
4.发了3.7版。
2010年1月15日
1.发布了3.6版。
2010年1月14日
1.增加了软件在线更新程序。
2010年1月11日
1.修正了3.5版中新建作息项中单一曲目的多声道参数不能保存的BUG。
2.试播功能中加入了对多声道播放的支持。
7.修正修改作息表时另存后,刷新时当前作息表出错的BUG。
8.修正了主界面为列表形式时,最大化后,列表大小没有随之最大化的BUG。
2009年9月3日
1.修正了最后一项作息表可能无法播放的BUG。
2.播放曲目时状态栏中的显示相应曲目名信息。
3.增加了退出时对窗口的大小,位置等信息的记录与恢复。
3.发布1.3版。
12月15日
1.对话框在XP以上操作系统中,将显示XP风格的方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南人文科技学院课程设计报告课程名称:单片机原理及应用课程设计设计题目:简易自动打铃系统系别:通信与控制工程系专业:电子信息工程班级:学生姓名:学号:起止日期:2011年12月19日~2011年12月30日指导教师:教研室主任:摘要随着科学技术的飞速发展,单片机应用的范围越来越广,本设计正是基于STC89C52型单片机为核心,加上适当的外围部件,设计而成的简易自动打铃系统。
简易自动打铃系统的设计以STC89C52单片机芯片和8255芯片的拓展I/0引脚为核心部件,用中断系统进行时间设置,数码管显示当前时间并辅以必要的电路,构成了本系统。
根据设计要求,该简易自动打铃系统可以进行计时和显示,设置当前时间,实现定点打铃等功能。
该设计简单、实用、操作便捷。
关键字:打铃功能、定时器、中断、芯片目录设计要求 (1)1方案论证与对比 (1)1.1方案一 (1)1.2方案二 (1)1.3方案比较 (2)2单元电路设计与论证 (2)2.1中断和复位电路设计 (2)2.2电源电路设计 (3)2.3单片机、I/O拓展 (3)2.4打铃电路设计 (5)2.5数码管电路设计 (5)3系统软件工作流程图 (6)3.1主程序工作流程 (6)3.2定时器中断显示子程序 (6)3.3中断服务子程序 (7)3.4时间设定子程序 (8)4系统功能实际测试 (8)4.1程序实际编译测试 (8)4.2软件调试步骤 (9)4.3子程序调试步骤 (9)4.4调试结果 (10)4.5系统误差及性能分析 (10)5详细仪器清单 (11)6设计总结 (12)参考文献 (12)附录一:程序 (13)附录二:整体电路图 (18)简易自动打铃系统设计要求1、基本计时和显示功能(12小时制)。
可设置当前时间(包括上下午标志,时、分的数字显示)。
2、能实现基本打铃功能,规定:上午7:45早自习打铃3秒、停1秒、再打铃3秒。
下午10:00熄灯打铃3秒、停1秒、再打铃3秒。
1方案论证与对比1.1方案一采用时钟芯片和键盘实现功能,原理框图如图1-1所示:图1-1 采用时钟芯片和键盘实现功能该系统采用DS1302对时、分、秒计时和设置打铃时间,采用三线串行数据传输接口与STC89C52进行同步通信,用矩阵键盘来设置时间值,并通过8255芯片读入设置值,最后通过89C52单片机综合控制,把当前时间送到数码管显示,到点把信号送入蜂鸣器,实现打铃。
1.2方案二采用中断定时实现功能,原理框图如图1-2所示:图1-2 采用中断定时实现功能该系统以STC89C52单片机为核心控制部件。
用8255做I/O扩展芯片,数码管接8255的PA、PB引脚,用动态扫描的方式显示当前时间。
蜂鸣器与单片机的P2.0口相连,当到打铃时间时,由STC89C52发出打铃指令,以外部INT0和INT1中断按钮实现调时功能。
1.3方案比较本设计要求能实现基本计时和打铃功能。
计时和打铃时间设计,方案一中用到了DS1302时钟芯片计时和打铃时间设置;方案二中采用定时器中断计时并结合软件设置打铃时间。
上述两种方案中:方案一的外围电路硬件设计复杂,而且时钟芯片没有得到充分利用,而方案二的软件计时具有硬件开销小,成本低,外围电路设计简单等优点。
对于调时设计,方案一中用矩阵键盘实现调时功能;方案二中采用外部中断0和外部中断1的两个按钮来实现调时。
上述两种方案中:方案一的软件设计比方案二难度系数大,使程序易读性弱。
综合对计时的精密程度要求不高的本系统,本设计采用方案二来实现其功能。
2单元电路设计与论证2.1中断和复位电路设计利用按键实现中断电路如图2-1所示:图 2-1 中断和复位电路图2.2电源电路设计利用USB接口供电,电路图如2-2所示:图 2-2 电源电路图2.3单片机、I/O拓展STC89C52RC是一个低功耗,高性能CMOS 8位单片机,片内含8k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51(单片微型计算机)指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash 存储单元,功能强大的微型计算机的STC89C52可为许多嵌入式控制应用系统提供高性价比的解决方案。
STC89C52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时/计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
主要特性如下:●与MCS-51 兼容●8k可反复擦写(>1000次)Flash ROM●全静态工作:0Hz~24MHz●三级程序存储器锁定●256*8位内部RAM●32可编程I/O线●2个16位可编程定时/计数器●5个中断源●可编程串行通道●低功耗的空闲和掉电模式I/O拓展采用8255芯片,晶振采用12M,单片机用STC89C52,电路如图2-3所示:图 2-3 主控电路图2.4打铃电路设计图2-4打铃电路图2.5数码管电路设计8255的PA口控制数码管的位选,低电平有效,PB口做为段选输出,接1K欧姆的限流电阻。
如图2-5所示:图 2-5 数码管电路图3系统软件工作流程图3.1主程序工作流程主程序首先设置8255的模式,并打开外部中断0,设置其为边沿触发模式;其次在while()循环中执行读秒显示子程序,当定时器满一秒时,在显示缓冲区中加一,等待送入数码管显示;再次按键扫描子程序,如果有外部中断0或外部中断1按钮被按下时,则转入相应功能的子程序中;最后如果当前显示时间满足预设打铃条件,通过打铃判断子程序跳入对应的打铃方式中执行。
详细主程序见附录二,主程序流程图如图3-1.:图3-1 主程序流程图3.2定时器中断显示子程序此子程序为本设计的核心之一,首先初始化定时器T0,设置T0为工作方式1,其初始值为3CB0H(既每次溢出定时50ms),并对其循环20次,然后把时间加一秒,并送入显示缓冲区等待显示。
显示时,先取出内在地址中的数据,然后查得对应的显示用段码从PB口输出,PA口将对应的数码管选中供电,就能显示缓冲区中的数据值。
为了显示秒位和上下午标志在数码管显示上特加了“—”、“A”、“P”这三个特殊字符字。
程序流程图如图3-2:图3-2 定时器中断显示子程序流程图3.3中断服务子程序此子程序是为调时服务的,首先初始化定时器T1,设置T1为工作方式1,其初始值为3CB0H(既每次溢出为50ms),并对其循环8次,然后使数码管被选中的调时位闪烁,子程序流程图如图3-3所示:图3-3 T1中断服务流程图3.4时间设定子程序时间设定模块的设计要点是按键的去抖动处理与“一键多态”的处理。
即只涉及2个键完成了6位时间参数的设定。
“一键多态”即多种功能的实现是根据按键时刻的系统状态,来决定按键采取何种功能。
图3-4 键盘扫描子程序流程图4系统功能实际测试4.1程序实际编译测试在Keil C51编译环境下编译过程中所产生的误差主要是在重装初值的过程中大约需要8个机器周期,本设计采用在程序开始时对定时器赋初值多加8个机器周期来消除此误差。
最后在Keil C51编译环境下编译通过,0警告,0错误。
实际效果图如下图4-1所示:图4-1 实际效果图4.2软件调试步骤1、打开软件后,在Project菜单中选择New Project命令,打开一个新项目。
保存此项目,输入工程文件名后,并保存工程文件的目录。
2、为项目文件选择一个目标器件,即选择8051的类型。
在Data base列表杠框中选择“ATMEL 89C52”,然后确定。
3、上述设置好后,创建源程序文件并输入程序代码。
输入代码后点击“文件/保存”。
4、把源文件添加到项目中,用鼠标指在目标工作区的目标1,点击右键在弹出的菜单中选择添加文件到源代码组,在弹出的添加文件框中,选择需要添加到项目中的文件。
5、开始编译,对项目文件进行编译。
若没有错误后进行硬件测试。
4.3子程序调试步骤子程序高度应一个模块一个模块地进行,首先单独高度各功能子程序,检查程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来进行总调试。
故调试步骤如下:1、蜂鸣器的调试:调试方法:先把打铃程序下载到单片机,让峰鸣器发声,看是否在正确的时间内实现打铃。
2、数码管程序调试:正确的的显示时间是整个程序的关键之一。
调试方法:先把程序调试到单片机,让数码管显示,是否正确的显示时间的变化。
3、键盘调时程序:正确的显示所调的时间是整个程序的关键之一。
调试方法:先把键盘程序和显示程序下载到单片机,让数码管显示,是否正确的所调的时间的变化。
4.4调试结果实现计时和显示功能(12小时制),可设置当前时间(包括上下午标志,时、分的数字显示),能在上午7:45和下午10:00定点打铃,且每次打铃均为响铃3秒,停1秒,再响3秒。
4.5系统误差及性能分析经测试此简易自动打铃系统在一天内会出现时间误差,该误差主要是于由晶振自身的误差所造成的。
另外在中断的过程中,只会在第一次计时时产生时间的偏移,而它所产生累积误差很小,可以忽略。
5详细仪器清单6设计总结通过这次课程设计,我们得到了很多收获和体会,懂得了团队合作的重要性和必要性,以及工程设计的大体过程。
第一,巩固和加深了对单片机基本知识的理解,提高了综合应用所学知识的能力。
第二,增强了根据课程需要选修参考资料,查阅手册,图表和文献资料的自学能力。
通过独立思考,深入研究有关问题,学会了自己分析解决问题的方法。
第三,通过实际方案的分析比较,设计计算,安装调试等环节,初步掌握了简单使用电路的分析方法和工程设计方法。
第四,在这次课程设计过程中,光有理论知识是不够的,还必须懂一些实践中的知识,所以在课程设计的实践中,我们应将实验课和课堂教学结合起来,锻炼自己的理论联系实际的能力与实际动手能力。
第五,掌握了比较常用的实验仪器的使用方法,提高了动手能力。
第六,培养了严谨的工作作风和科学态度。
总之这次课程设计,培养了我们综合应用单片机原理及应用的理论知识和理论联系实际的能力;在设计的过程中,还培养了我们的团队精神,同学共同合作,一齐商量讨论,解决了许多实际问题。
这一切都令我们受益匪浅,在今后的学习工作中我们会一如既往,不断努力,提高自己的实际动手能力。
参考文献[1] 张鑫.单片机原理及应用[M].北京:电子工业出版社,2005.8.[2] 邱关源、罗先觉.电路[M].北京:高等教育出版社,2006.5.[3] 康光华.电子技术基础.数字部分[M].北京:高等教育出版社,2006.1.[4] 康光华.电子技术基础.模拟部分[M].北京:高等教育出版社,2006.1.[5] 祁伟, 杨亭. 单片机C51程序设计教程与实验[M].北京:北京航空航天大学出版社,2006.[6] 楼然苗.李光飞.单片机课程设计指导[M].北京:北京航空航天大学出版社,2007.4[7] 单片机学习网附录一:程序#include "reg52.h"#include<ABSACC.H>#define PA XBYTE[0xD1FF] /*PA口地址*/#define PB XBYTE[0xD2FF] /*PB口地址*/#define PC XBYTE[0xD5FF] /*PC口地址*/#define CON XBYTE[0xD7FF] /*控制字地址*/#define uchar unsigned charCode char dis_7[14]={0xA0,0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA,0x20,0x28,0xff,0x7f,0x30,0x7 0};/* 共阳LED段码表"0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" "A" "P"*/code char scan_con[8]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xBF,0x7f}; // 列扫描控制字data char disdata[8]={0x00,0x05,0x04,0x04,0x0b,0x07,0x00,0x0c};//计时单元数据初值,共6个data char dis[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00};//显示单元数据,共6个数据data char con1s=0x00,con04s=0x00,con=0x00,con05s=0x00,d=0x00;//1秒定时用sbit key0=P3^2; //移位键sbit key1=P3^3; // 加一sbit BEEP=P2^0; //蜂鸣器接口/****************///1毫秒延时程序///***************/delay1ms(int t){int i,j;for(i=0;i<t;i++)for(j=0;j<120;j++);}/***********///扫描程序///**********/scan(){char k;for(k=0;k<6;k++){CON=0X89;PB=dis_7[dis[k]];PA=scan_con[k];delay1ms(1);PA=0xff;}/*****************///键盘调时程序///******************/keyscan(){EA=0;if(key0==0){delay1ms(10);while(key0==0);if(dis[con]==10){dis[7]=dis[con];dis[con]=dis[6];dis[6]=dis[7];} con++;TR0=0;ET0=0;TR1=1;ET1=1;if(con>=6){con=0;TR1=0;ET1=0;TR0=1;ET0=1;}}if(con>=0){if(key1==0){delay1ms(10);while(key1==0);d=con+2;disdata[d]++;if(disdata[d]>=14){disdata[d]=0;}dis[con]=disdata[d];dis[6]=0x0a;}}EA=1;}/************/// 打铃程序//*************/Play1(){uchar i,t;for(i=0;i<100;i++){BEEP=~BEEP;delay1ms(t);}BEEP=1;Play2(){ BEEP=1; }bell(){if((disdata[0]==0x00||disdata[0]==0x01||disdata[0]==0x02)&&disdata[1]==0x00&&disdata[2]==0x05&&disdata[3]==0x04&&disdata[5]==0x07&& disdata[6]==0x00&&disdata[7]==0x0c||(disdata[0]==0x00||disdata[0]==0x01||disdata[0]==0x02)&&disdata[1]==0x00&&disdata[2]==0x00&&disdata[3]==0x00&&di sdata[5]==0x00&&disdata[6]==0x01&&disdata[7]==0x0d){ Play1();}if((disdata[0]==0x03||disdata[0]==0x04)&&disdata[1]==0x00&&disdata[2]==0x05&&dis data[3]==0x04&&disdata[5]==0x07&&disdata[6]==0x00&&disdata[7]==0x0c||(disdata[0]==0x03||disdata[0]==0x04)&&disdata[1]==0x00&&disdata[2]==0x00&&disd ata[3]==0x00&&disdata[5]==0x00&&disdata[6]==0x01&&disdata[7]==0x0d) {Play2();}if((disdata[0]==0x05||disdata[0]==0x06||disdata[0]==0x07)&&disdata[1]==0x00&&disdata[2]==0x05&&disdata[3]==0x04&&disdata[5]==0x07&&disdata[6]==0x00&& disdata[7]==0x0c||(disdata[0]==0x05||disdata[0]==0x06||disdata[0]==0x07)&&disdata[1]= =0x00&&disdata[2]==0x00&&disdata[3]==0x00&&disdata[5]==0x00&&disdata[6]==0x01&& disdata[7]==0x0d){Play1();}}/************///初始化程序///*************/clearmen(){int i;for(i=0;i<6;i++){dis[i]=disdata[i];}TH0=0x3C;TL0=0xB0;// ;50MS定时初值(T0计时用)TH1=0x3C;TL1=0xB0;// ;50MS定时初值(T1计时用)TMOD=0X01;ET0=1;ET1=1;TR1=0;TR0=1;EA=1;}/**********///主程序///*********/main(){clearmen();while(1){scan();keyscan();bell() ;}}/********************///1秒中断处理程序///*******************/void time_intt0(void) interrupt 1{ET0=0;TR0=0;TH0=0x3C;TL0=0xB0;TR0=1;con1s++;con05s=con1s%10;if(con05s==0){disdata[4]--;if( disdata[4]==9){disdata[4]=11;}if(con1s==20){con1s=0x00;disdata[0]++;if(disdata[0]>=10){disdata[0]=0;disdata[1]++;if(disdata[1]>=6){disdata[1]=0;disdata[2]++;if(disdata[2]>=10){disdata[2]=0;disdata[3]++;if(disdata[3]>=6){disdata[3]=0;disdata[5]++;if(disdata[5]>=10){disdata[5]=0;disdata[6]++;}if(disdata[6]==1 ){if(disdata[5]==2){disdata[5]=0;disdata[6]=0;disdata[7]++;if(disdata[7]==14){ disdata[7]=12;}}}}}}}}dis[0]=disdata[2];dis[1]=disdata[3];dis[3]=disdata[5];dis[4]=disdata[6];dis[2]=disdata[4];dis[5]=disdata[7];}ET0=1;}/********************///0.4秒闪烁中断程序///*******************/void time_intt1(void) interrupt 3{EA=0;TR1=0;TH1=0x3C;TL1=0xB0;TR1=1;con04s++;if(con04s==8){con04s=0x00;dis[7]=dis[con];dis[con]=dis[6];dis[6]=dis[7];}EA=1;}附录二:整体电路图。