基于ATC单片机定时闹钟设计

合集下载

基于单片机的定时闹铃设计

基于单片机的定时闹铃设计

时间是现代社会中不可缺少的一项参数,无论是平时生活还是社会生产都需要对时间进行控制,有的场合对其精确性还有很高的要求.采用单片机进行计时,对于社会生产有着十分重要的作用。

本文首先在绪论中介绍了单片机和时钟的概念和现状,然后在对单片机系统、喇叭装置和显示电路做了深入的研究之后,提出了系统总体设计方案,并设计了各部分硬件模块和软件流程,在用汇编语言设计了具体软件程序后,用伟福软件进行了仿真和调试,结果证明了该设计系统的可行性。

由于AT89C51系列单片机的控制器运算能力强,处理速度快,可以精确计时,很好地解决了实际生产生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的适用性。

关键字:AT89C51,定时,LCD显示,仿真,调试Modern society is indispensable to a parameter, whether in peacetime or in social production need to control the time, there are some occasions to its high accuracy requirements. Microcontroller used to time, the community has a production very important role.This paper first introduced in the introduction of the concept of SCM and clock and the status quo, then the SCM system, speakers and display circuit devices do an in-depth study, the overall design of the system proposed programme, all parts of the design of the hardware module And software processes used in the compilation of the specific language of the software design process, Fu Wei-use software simulation and debugging, the results proved the feasibility of the design.As the controller AT89C51 MCU computing capability and processing speed, precision timing, a good solution to the life of the actual production of high precision timing of the request, so the design in modern society has a broad applicability.Keyword: AT89C51, timing, LCD display, simulation, debugging第一章绪论 (1)第一节设计本电子定时闹钟的目的和意义 (1)第二节单片机和数字钟介绍 (1)一、单片机介绍 (1)二、数字钟介绍 (3)第三节本LCD电子闹钟的特点和功能介绍 (4)一、本电子钟设计特点 (4)二、本电子钟的主要功能 (4)第二章总体方案设计与硬件设计 (5)第一节总体设计方案 (5)第二节电路总体概念图设计 (5)第三节 MCS-51单片机硬件结构设计 (6)一、 MCS–51单片机内部总体结构 (6)二、 MCS-51单片机的引脚 (6)三、 MCS-51 的微处理器 (9)四、 MCS-51存储器的结构 (9)五、 MCS-51 的并行I/O口 (14)六、 MCS-51时钟电路与时序 (16)七、 MCS-51的复位和复位电路 (17)第四节主控芯片AT89C51的设计 (18)第五节时钟电路部分设计 (20)第六节 LCD显示电路部分 (21)一、 LCD介绍 (21)二、 LCD的选材 (25)第七节喇叭部分的电路 (26)第三章软件设计 (27)第一节软件设计概述 (27)第二节主函数的设计 (27)第三节部分设计思想的说明 (28)一、程序初始化 (28)二、闹钟的实现 (29)三、显示程序 (29)第四章软件仿真 (31)第一节仿真器介绍 (31)第二节仿真器编程 (33)第三节仿真器执行 (33)总结 (34)外文资料 (35)中文译文 (42)参考文献 (47)致谢 (48)附录 (49)附录1 源程序代码 (49)附件2 系统原理图 (78)太原理工大学阳泉学院——毕业设计说明书第一章绪论第一节设计本电子定时闹钟的目的和意义一、复习和巩固所学过的知识,利用此毕业设计正好可以对所学过的知识进行系统的回顾和总结。

基于单片机的定时闹铃设计

基于单片机的定时闹铃设计

时间是现代社会中不可缺少的一项参数,无论是平时生活还是社会生产都需要对时间进行控制,有的场合对其精确性还有很高的要求.采用单片机进行计时,对于社会生产有着十分重要的作用。

本文首先在绪论中介绍了单片机和时钟的概念和现状,然后在对单片机系统、喇叭装置和显示电路做了深入的研究之后,提出了系统总体设计方案,并设计了各部分硬件模块和软件流程,在用汇编语言设计了具体软件程序后,用伟福软件进行了仿真和调试,结果证明了该设计系统的可行性。

由于AT89C51系列单片机的控制器运算能力强,处理速度快,可以精确计时,很好地解决了实际生产生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的适用性。

关键字:AT89C51,定时,LCD显示,仿真,调试Modern society is indispensable to a parameter, whether in peacetime or in social production need to control the time, there are some occasions to its high accuracy requirements. Microcontroller used to time, the community has a production very important role.This paper first introduced in the introduction of the concept of SCM and clock and the status quo, then the SCM system, speakers and display circuit devices do an in-depth study, the overall design of the system proposed programme, all parts of the design of the hardware module And software processes used in the compilation of the specific language of the software design process, Fu Wei-use software simulation and debugging, the results proved the feasibility of the design.As the controller AT89C51 MCU computing capability and processing speed, precision timing, a good solution to the life of the actual production of high precision timing of the request, so the design in modern society has a broad applicability.Keyword: AT89C51, timing, LCD display, simulation, debugging第一章绪论 (1)第一节设计本电子定时闹钟的目的和意义 (1)第二节单片机和数字钟介绍 (1)一、单片机介绍 (1)二、数字钟介绍 (3)第三节本LCD电子闹钟的特点和功能介绍 (4)一、本电子钟设计特点 (4)二、本电子钟的主要功能 (4)第二章总体方案设计与硬件设计 (5)第一节总体设计方案 (5)第二节电路总体概念图设计 (5)第三节 MCS-51单片机硬件结构设计 (6)一、 MCS–51单片机内部总体结构 (6)二、 MCS-51单片机的引脚 (6)三、 MCS-51 的微处理器 (9)四、 MCS-51存储器的结构 (9)五、 MCS-51 的并行I/O口 (14)六、 MCS-51时钟电路与时序 (16)七、 MCS-51的复位和复位电路 (17)第四节主控芯片AT89C51的设计 (18)第五节时钟电路部分设计 (20)第六节 LCD显示电路部分 (21)一、 LCD介绍 (21)二、 LCD的选材 (25)第七节喇叭部分的电路 (26)第三章软件设计 (27)第一节软件设计概述 (27)第二节主函数的设计 (27)第三节部分设计思想的说明 (28)一、程序初始化 (28)二、闹钟的实现 (29)三、显示程序 (29)第四章软件仿真 (31)第一节仿真器介绍 (31)第二节仿真器编程 (33)第三节仿真器执行 (33)总结 (34)外文资料 (35)中文译文 (42)参考文献 (47)致谢 (48)附录 (49)附录1 源程序代码 (49)附件2 系统原理图 (78)第一章绪论第一节设计本电子定时闹钟的目的和意义一、复习和巩固所学过的知识,利用此毕业设计正好可以对所学过的知识进行系统的回顾和总结。

基于单片机的定时闹钟设计.

基于单片机的定时闹钟设计.

目录目录 (I)一设计题目 (1)二设计要求 (1)三作用与目的 (1)四设备及软件 (2)1.AT89C51单片机 (2)2. Proteus仿真软件 (2)3.Keil软件 (3)五系统设计方案 (4)1 电路的总体原理框图 (4)2 工作原理 (5)六系统硬件设计 (5)1.系统总体设计 (5)2.系统时钟电路设计 (6)3.系统复位电路的设计 (6)4.闹钟指示电路设计 (6)5.电子闹钟的显示电路设计 (6)七系统软件设计 (7)1.主模块的设计 (7)2.基本显示模块设计 (8)3. 时间设定模块设计 (9)4. 闹铃功能的实现 (10)八 Proteus软件仿真 (11)1.本次试验的效果图 (12)2.性能及误差分析: (12)九设计中的问题及解决方法 (13)十设计心得 (14)参考文献 (15)致谢 (16)附录1 系统整体结构电路原理图 (17)附录2 程序清单 (18)基于单片机的定时闹钟设计一设计题目基于单片机的定时闹钟二设计要求1、能显示时时-分分-秒秒。

2、能够设定定时时间、修改定时时间。

3、定时时间到能发出报警声或者启动继电器,从而控制电器的启停。

三作用与目的以单片机为核心的数字时钟是很有社会意义和社会价值的。

钟表原先的报时功能已经原不能满足人们日益增长的要求,现代的电子时钟多带有类似自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、通断动力设备、甚至各种定时电气的自动启用等功能数字闹钟通过数字电路实现时、分、秒。

数字显示的计时装置,广泛用于个人家庭、车站、码头办公室等公共场所成为人们日常生活中不可少的必需品。

由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。

多功能数字钟的应用非常普遍。

由单片机作为数字钟的核心控制器,通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。

通过键盘可以进行校时、定时等功能。

毕业论文基于单片机定时闹钟系统设计

毕业论文基于单片机定时闹钟系统设计

江西理工大学南昌校区毕业设计(论文)题目:基于单片机定时闹钟系统设计系别:信息工程系专业:电气自动化技术班级:09自动化2班学生:贺明波学号:09321229指导教师:刘秋平职称:助教摘要随着科技的快速发展和生活水平的不断提高,人们对时钟的精确度和实用性要求越来越高。

本文采用AT89S52单片机,通过DS1302日历芯片进行定时,并通过LCD1602液晶进行显示。

通过C语言程序编写,将设计出更准确定时、更省电的数字时钟。

单片机数字时钟具有设置时间、日期、星期的基本功能,并且能够显示年、月、日、时、分、秒、星期。

单片机数字钟不管在性能还是在样式上都发生了质的变化,实践证明单片机数字时钟具有更加准确性、精密性等功能。

关键字:数字时钟;DS1302;LCD1602;AT89S52AbstractIn daily life, time is science, technology and everyday life is one of the most basic physics, we often deal with temporal clocks, such as hand watch, wall clock, even on a computer program, the clock on the phone can be generalized a clock display on the clock, along with the rapid development of technology and the continuous improvement of living standards, people on the clock's accuracy and practical demand is higher and higher. Based on the single chip microcomputer principle, USES the monolithic integrated circuit AT89S52 series, through the hardware circuit and software production procedure formulation, will design a more accurate timing, electricity -saving digital clock, SCM in performance or digital clock no matter in style have undergone a qualitative change, digital clock has proved microcontroller more accuracy, precision sex etc. Function.Key Words:Digital clock ; DS1302; LCD1602;目录第一章引言 (1)1.1单片机的发展史 (1)1.2 单片机的应用 (1)1.3 单片机发展趋势 (2)1.4 数字时钟方案论证比较 (3)1.4.1 数字电路与单片机性能比较 (3)1.4.2数码管与LCD液晶显示性能比较 (4)1.4.3单片机编程时钟与时钟芯片性能比较 (4)第二章系统的硬件设计与实现 (6)2.1 系统概述 (6)2.2模块电路的设计 (7)2.2.1时钟电路 (7)2.2.3 复位电路与晶振电路 (11)2.3 总体电路图设计 (11)第三章系统的软件设计与实现 (13)3.1 程序功能 (13)3.2 编程思路 (13)3.3 程序设计流程图 (13)3.3.1 DS1302软件设计流程图 (14)3.3.2 LCD1602程序序流程图 (16)3.4写入显示数据到LCD子程序模块设计 (17)3.5时间闹铃设置流程 (18)第四章仿真软件Proteus ISIS使用方法简单介绍 (19)4.1 简介 (19)4.2 简单项目设计过程 (20)4.3仿真执行 (24)4.3.1一般仿真 (24)第五章系统组装与调试 (26)5.1 硬件系统的组装与调试 (26)5.2 软件调试 (27)总结 (29)参考文献 (30)附录1单片机定时闹钟程序源代码 (41)致谢 (41)第一章引言1.1单片机的发展史单片机是在一块硅片上集成了各种部件的微型计算机。

基于单片机的定时闹钟设计

基于单片机的定时闹钟设计

基于单片机的定时闹钟设计设计定时闹钟是人们日常生活中常见的需求之一,而单片机技术的发展为定时闹钟的实现提供了可行的解决方案。

本文将介绍基于单片机的定时闹钟设计。

一、研究背景及意义在现代社会中,时间是人们日常生活中非常重要的一个因素。

为了更好地规划时间和提高生活效率,人们需要定时提醒自己进行各种活动。

闹钟作为定时提醒的工具,在人们的日常生活中扮演着不可替代的角色。

而基于单片机的定时闹钟实现具有高精度、多功能等优点,因此备受人们青睐。

二、技术方案设计本文设计的基于单片机的定时闹钟主要由三部分组成:时钟电路、单片机控制电路和显示电路。

1. 时钟电路时钟电路采用RTC芯片,可以提供高精度的时间计量。

RTC芯片内部自带晶振,保证了较高的时钟精度。

时钟电路主要功能为提供当前时间,包括小时、分钟和秒。

2. 单片机控制电路单片机控制电路是实现定时闹钟的核心部分。

程序流程如下:①初始化:单片机启动后,需要对RTC芯片和闹钟设定进行初始化,包括设定当前时间和设定闹钟时间。

②计时函数:单片机开启定时器,在每秒钟时钟信号来临时,计时器会进行一次计数。

③闹钟判断:单片机判断当前时间是否等于闹钟设定时间,如果相等,则触发闹钟事件,启动蜂鸣器提示。

④按键设置:单片机可以通过按键进行时间设置和闹钟设置,包括增加或减少小时、分钟和秒数,并将设置信息保存至RTC芯片内存中。

3. 显示电路显示电路采用数码管进行显示,使用单片机控制输出数据。

数码管分为小时显示、分钟显示和秒显示,可以满足不同的显示需求。

三、实验结果分析通过实验结果可以发现,本文设计的基于单片机的定时闹钟可以准确地显示时间和定时提醒。

同时,可以通过按键进行时间和闹钟的设置,并存储至RTC芯片内部,保证了时间和闹钟的持久性。

四、结论及展望基于单片机的定时闹钟设计具有实用性和可行性,可以提高人们生活的效率和品质。

然而,本设计在信号筛选和抗干扰能力方面还有一定的改进空间,需要通过更深入的研究来进一步完善。

基于单片机定时闹钟的设计

基于单片机定时闹钟的设计

基于单片机定时闹钟的设计随着科技的快速发展,嵌入式系统已经深入到我们生活的各个角落。

其中,单片机以其高效性、灵活性和低成本性,广泛应用于各种设备的设计中。

本文将探讨如何基于单片机设计一个定时闹钟。

一、硬件需求1、单片机:选择一个适合你项目的单片机。

比如Arduino UNO,它具有丰富的IO口和易于使用的开发环境。

2、显示模块:为了能直观地展示时间,你需要一个LCD显示屏。

可以选择常见的16x2字符型LCD显示屏。

3、按键模块:用于设定时间和闹钟功能。

一般可以选择4个按键,分别代表功能设置、小时加、小时减和分钟加。

4、蜂鸣器:当到达设定时间时,蜂鸣器会发出声音提醒。

二、软件需求1、开发环境:你需要一个适用于你单片机的开发环境,例如Arduino IDE。

2、编程语言:一般使用C或C++进行编程。

3、程序设计:你需要编写一个程序来控制单片机,让其根据设定时间准时唤醒。

程序应包括初始化和设定时间的功能,以及到达设定时间后的闹钟提醒功能。

三、设计流程1、硬件连接:将单片机、显示模块、按键模块和蜂鸣器按照要求连接起来。

2、初始化:在程序中初始化所有的硬件设备。

3、时间设定:通过按键模块设定时间。

你需要编写一个函数来处理按键输入,并在LCD显示屏上显示当前时间。

4、闹钟提醒:在程序中加入一个计时器,当到达设定时间时,程序会唤醒并触发蜂鸣器发出声音。

5、循环检测:在主循环中不断检测时间是否到达设定时间,如果到达则触发闹钟提醒,然后继续检测。

四、注意事项1、时钟源:你需要一个稳定的时钟源来保证闹钟的准确性。

可以考虑使用网络时钟或者GPS模块。

2、功耗优化:如果你的设备需要长时间运行,那么需要考虑到功耗的问题,比如使用低功耗的单片机或者在不需要闹钟提醒的时候关闭蜂鸣器等。

3、人机交互:考虑增加更多的功能以满足用户的需求,如设置多个闹钟、调整闹钟的音量等。

4、安全性:保证设备的电源稳定,避免在突然断电的情况下数据丢失或设备损坏。

(精编)采用ATC制作的智能时钟

(精编)采用ATC制作的智能时钟

(精编)采用ATC制作的智能时钟采用AT89C2051制作的智能时钟一、智能电子钟的功能1、全日历计时。

2、12/24小时转换。

3、8路定时输出(可关/开控制)4、误差:15S+1uS5、大、小月,润年,周,自动追踪二、调校上电后,电子钟显示“1:00”。

1、8路定时时间查询按下K1键依此显示8路定时时间。

星期位显示:“H”表示:打开当前定时输出;“L”表示:关闭当前定时输出。

此时按K2键可进行“H”、“L”的切换。

所有输出,均由蜂鸣器输出!2、显示状态的控制按下K2键可进入以下工作状态:1)12小时/日月交替显示。

2)12小时固定显示。

3)24小时/日月交替显示。

4)24小时固定显示。

3、校时按下K2键3S后,进入校时菜单。

按下K1键依次进入校时状态:分、时、天、月、年、微调系数。

此时按K2键,完成+1。

当显示“d”时,表示要调整微调系数(0-99),其值越小,时钟走时越慢。

当使用的6MHz的晶振偏差大时,应仔细调整微调系数!当显示“out”时,按K2键,即可退出!退出后,按任意键即可启动时钟。

4、设置定时时间按下K1键3S后,进入设置菜单。

按下K1键依次进入8路定时调整状态:时、分。

此时按K2键,完成+1。

当显示“out”时,按K2键,即可退出!三、原理图和PCB图下一页AT89C2051的智能时钟单片机源程序以下为AT89C2051的智能时钟的内部程序;2001.5.24;***************;all_clk1_program2000-10-12;***************fl_250msbit00hfl_500msbitfl_250ms+1set_clk_fbitfl_500ms+1set_al4_fbitset_clk_f+1am_fbitset_al4_f+1fl_3sbitam_f+1al1_fbitfl_3s+1al2_fbitfl_3s+2al3_fbitfl_3s+3al4_fbitfl_3s+4set_overbital4_f+1ha_fbitset_over+1ha_overbitha_f+1fl_ms_fbitha_over+1fl_s_fbitfl_ms_f+1key_overbitfl_s_f+1;************************************************** key_dataequ08htimersequkey_data+1t_30msequtimers+1t_20msequt_30ms+1t_1sequt_20ms+1k1_dataequt_1s+1k2_dataequk1_data+1stat_workequk2_data+1stat_ledequstat_work+1t_1msequstat_led+1t_20mequt_1ms+1beepequt_20mal1equbeep+1al2equbeep+2al3equbeep+3al4equbeep+4al5equbeep+5al6equbeep+6al7equbeep+7al8equbeep+8ret_timerequal8+1;************************************************** secequ23hminequsec+1hhourequmin+1hdayequhour+1hmonequday+1hyearequmon+1hw_adjequyear+1hweekequw_adj+1h;***************************************al1_hequweek+1hal1_mequal1_h+1hal2_hequal1_m+1hal2_mequal2_h+1hal3_hequal2_m+1hal3_mequal3_h+1hal4_hequal3_m+1hal4_mequal4_h+1hal5_hequal4_m+1hal5_mequal5_h+1hal6_hequal5_m+1hal6_mequal6_h+1hal7_hequal6_m+1hal7_mequal7_h+1hal8_hequal7_m+1hal8_mequal8_h+1hbeep_tequal8_m+1fristequbeep_t+1;************************************** led1equfrist+1led2equled1+1led3equled2+1led4equled3+1led5equled4+1sp_dataequled5+1;************************************** led_1bitp3.5led_2bitp3.4led_3bitp3.3led_4bitp3.2led_5bitp3.1beep_fBITP3.7key_fbitp3.0;******************************************************** t_h_100msequ05dh;100msfor6MHzt_l_100msequ07fh;c6for100mstimer_noequ8d;3c90+30d=3cb0hw_adj_datequ50dkey_daequ00000110b;********************************************************* blk_ledequ20ddot_ledequ21df_ledequ22dn_ledequ23du_ledequ24dt_ledequ25db_ledequ26dd_ledequ27doRG0000H;;sJMPstartORG0003H;;reti;ORG000BH;;ajmpt0reti;ORG0013Hreti;ORG001BH;aJMPT1;ORG0023H;RETI;AJMPRS_485;;************************************** start:callclr_ramMOVSP,#sp_data;callint_t0calltimer_intcalltimer_20msSTAR_BI:callclockcallweek_autocallal_outCALLKEY_bordcallkey_delcallset_clk_alcallkey_jmpcallrebackcallled_jmpsjmpstar_bi;******************************************* reback:mova,stat_workjzreback_endjbal1_f,ka1movret_timer,secsetbal1_fsjmpreback_endka1:mova,ret_timeradda,#05dmovb,#60ddivabmova,seccjnea,b,reback_endclral1_fmovstat_work,#00d reback_end:retkey_jmp:mova,key_datajzkey_jmp_end movret_timer,sec cjnea,#01d,kk1 mova,stat_work inca;k1_keycjnea,#9d,kka1 mova,#00dkka1:movstat_work,a sjmpkey_jmp_endkk1:mova,stat_work;k2_key jnzkk2mova,stat_ledincacjnea,#05d,kka2mova,#00dkka2:movstat_led,asjmpkey_jmp_endkk2:acallall1cplamov@r0,akey_jmp_end:retall1:movr0,#al1mova,stat_workdecaadda,r0movr0,amova,@r0retled_jmp:;********************************** ;movstat_work,#01d;movstat_tw,#01dmova,stat_workjnzled_al1mova,stat_ledacallled_t_dmovled1,weeksjmpled_jmp_endled_al1:acallall1movled1,#f_ledjnzle_t2movled1,#n_ledle_t2:jbfl_250ms,le_t4movled1,#blk_ledle_t4:acallal_ledled_jmp_end:acallledret;************************************* time_24:mova,houracallbcd_8movled2,ajnztim4movled2,#blk_ledtim4:movled3,bjbfl_500ms,tim1mova,badda,#10dmovled3,atim1:acallled_mintime_12_end:ret;*********************************** led_min:mova,minacallbcd_8jbfl_500ms,tim2adda,#10dtim2:movled4,amovled5,bret;************************************* date_led:mova,monacallbcd_8movled2,ajnzda1movled2,#blk_ledda1:mova,badda,#10dmovled3,amova,dayacallbcd_8movled4,ajnzda2movled4,#blk_ledda2:movled5,bdate_led_end:ret;*************;D_8=>BCD;*************BCD_8:MOVB,#10DDIVABRET;**************************************** LED:movp1,#0movdptr,#led_asc;***************************led1 mova,led1movca,@a+dptrmovp1,aclrled_1acalltimer_1msacalltimer_1ms;acalltimer_1ms;acalltimer_1ms;acalltimer_1mssetbled_1;*************************led2 led_led2:mova,led2movca,@a+dptrmovp1,aclrled_2acalltimer_1mssetbled_2;*************************led3 led_led3:mova,led3movca,@a+dptrmovp1,aclrled_3acalltimer_1mssetbled_3;*************************led4 led_led4:mova,led4movca,@a+dptrmovp1,aclrled_4acalltimer_1mssetbled_4;*************************led5led_led5:mova,led5movca,@a+dptrmovp1,aclrled_5acalltimer_1mssetbled_5;*************************led_end:movp1,#0ret;************************************ ;bafhcdegled_asc:db11101110B;0db10001000B;1db11000111B;2db11001101B;3db10101001B;4db01101101B;5db01101111B;6db11001000B;7db11101111B;8db11101101B;9db11111110B;0.=>10ddb10011000B;1.db11010111B;2.db11011101B;3.db10111001B;4.db01111101B;5.db01111111B;6.db11011000B;7.db11111111B;8.db11111101B;9.DB00000000B;BLACK=>20d DB00010000B;dot=>21d DB00100110b;l=>22ddB10101011B;h=>23dDB10101110B;u=>24dDB00100111B;t=>25ddB00101111B;b=>26ddB10001111B;d=>27d;bafhcdeg;**********************************;delay;********************************timer_1ms:movt_1ms,#030hr2_1:djnzt_1ms,r2_1rettimer_20ms:movt_20m,#050dr2_2:callclockcallleddjnzt_20m,r2_2callweek_autocallal_outret;############################################# ;ifmon<=2andyear=4Z(0,1,2,3...);gs1=>week=mod([5/4]*year+mon_asc(mon)+day-1)/7;else;gs2=>week=mod([5/4]*year+mon_asc(mon)+day)/7 week_auto:mova,YEARmovb,#05mulabmovr4,bmovr5,amovr7,#04callmul_2MOVDPTR,#MON_ASCMOVA,MONdecaMOVCA,@A+DPTRADDA,r3;*********************MOVB,DAYADDA,Bmovr3,a;r3=gs2;*******jbmon<=2******MOVA,MONCJNEA,#02D,WEEK_1WEEK_1:JCWEEK_2week_3:mova,r3movb,#07divabmova,bsjmpweek_4WEEK_2:;*****jbyear=4N****** mova,yearmovb,#04divabmova,bjnzweek_3mova,r3decamovb,#07divabmova,bweek_4:jnzweek_endmovweek,#07hweek_end:RETMON_ASC:DB6d,2d,2d,5d,0d,3d,5d,1d,4d,6d,2d,4d;2002.5.5 ;r4r5/r7=r3mul_2:D457:CLRCMOVA,R4SUBBA,R7JCDV50SETBOVRETDV50:MOVR6,#8;;求平均值(R4R5/R7-→R3)DV51:MOVA,R5RLCAMOVR5,AMOVA,R4RLCAMOVR4,AMOVF0,CCLRCSUBBA,R7ANLC,/F0JCDV52MOVR4,ADV52:CPLCMOVA,R3RLCAMOVR3,ADJNZR6,DV51MOVA,R4;;四舍五入ADDA,#0;R4JCDV53SUBBA,R7JCDV54DV53:INCR3DV54:CLROVRET;************************************************************* clr_ram:MOVR7,#78h;MOVR0,#0bH;CLRA;CR:INCR0;MOV@R0,A;djnzr7,cr;CLRRAMret;**************INT_CTRLint_t0:setbet1MOVTMOD,#00010001b;movw_adj,#w_adj_datsetbeajmpadj_w;********************************************** al_led:movr0,#al1_hmova,stat_workdecarlaadda,r0movr0,amova,@r0acallbcd_8movled2,ajnzal_1movled2,#blk_ledal_1:mova,badda,#10dmovled3,aincr0mova,@r0acallbcd_8adda,#10dmovled4,amovled5,bal_led_end:ret;******************************** set_clk_al:jnbset_clk_f,see1callset_clockclrset_clk_fsjmpsee2jnbset_al4_f,see2callset_al4clrset_al4_fsee2:ret;********************************* procled_t_dled_t_d:movdptr,#led_ord_3movb,#02hmulabjmp@a+dptrled_ord_3:ajmpled_k0_2 ajmpled_k1_2ajmpled_k2_2ajmpled_k3_2ajmpled_k4_2led_k0_2:;timer_12anddatetoled acalltime_12jnbfl_3s,lk1acalldate_ledajmpled_jmp_5_endled_k1_2:;timer_12toled acalltime_12ajmpled_jmp_5_endled_k2_2:;timer_24anddatetoled acalltime_24jnbfl_3s,lk2acalldate_ledlk2:ajmpled_jmp_5_endled_k3_2:;timer_24toled acalltime_24ajmpled_jmp_5_endled_k4_2:;sectoledmovled1,#blk_ledmovled2,#blk_ledmovled3,#dot_ledmova,secacallbcd_8adda,#10dmovled4,amovled5,bled_jmp_5_end:retend;**************************************** procset_al4set_al4:movk1_data,#01dmovk2_data,#01dclrset_overacallled_alacallkey_bordcallsf_keymovkey_data,#0movfrist,#0set_al41:callclockcallweek_autoacallled_alacallkey_bordcallkey_delacallkey_aljnbset_over,set_al41clramovk1_data,amovk2_data,amovkey_data,amovfrist,aretend;************************************** prockey_alkey_al:mova,key_datajzkey_al_endcjnea,#01d,k2_alinck1_data;(1-9)mova,k1_datacjnea,#19d,key_al_endmovk1_data,#01dsjmpkey_al_endk2_al:mova,k1_datacjnea,#018d,ke2setbset_over sjmpkey_al_end ke2:movr0,#al1_h decaadda,r0movr0,ainc@r0acalljj_bit movb,#24d jnzke3 movb,#60dke3:mova,@r0 divab mova,bmov@r0,akey_al_end:retendjj_bit: mova,k1_datamovb,#02ddivabmova,b;(a=1,0)ret;********************************* led_out1:movled2,#00hmovled3,#u_ledmovled4,#t_ledmovled5,#blk_ledmovled1,#blk_ledret;******************************** led_al:mova,k1_datacjnea,#017d,lo1acallbeep_timersjmpled_al_endlo1:cjnea,#18d,ld1acallled_out1sjmpled_al_endincamovb,#02ddivab;**********movled1,a;**********decarlamovr0,#al1_hadda,r0movr0,amova,@r0acallbcd_8movled2,ajnzld2movled2,#blk_ledld2:mova,badda,#10dmovled3,a;************************************mova,@r0acallbcd_8adda,#10dmovled4,amovled5,b;***************************flashbit jbfl_250ms,led_al_endacalljj_bitjnzled_al_emovled4,#blk_ledmovled5,#blk_ledsjmpled_al_endled_al_e:movled2,#blk_ledmovled3,#blk_ledled_al_end:acallledret;*************************************** procset_clockset_clock:movk1_data,#01d movk2_data,#01d clrset_overcallled_clcallkey_bordcallsf_key movkey_data,#0 movfrist,#0set_al41: callclock acallweek_auto callal_outacallled_cl acallkey_bord callkey_del acallkey_cljnbset_over,set_al41 ;acallkey_bordclramovk1_data,a movk2_data,a movkey_data,amovfrist,aretend;************************************** prockey_clkey_cl:mova,key_datajzkey_al_endcjnea,#01d,k2_alinck1_data;(1-8)mova,k1_datacjnea,#9d,key_al_endmovk1_data,#01dsjmpkey_al_endk2_al:mova,k1_datacjnea,#08d,ke2setbset_oversjmpkey_al_endke2:decamovdptr,#asc_hmovca,@a+dptrmovb,a;******************************** movr0,#secmova,k1_datadecaadda,r0movr0,ainc@r0mova,@r0divabmova,bmov@r0,akey_al_end:retendasc_h:db60d,60d,24d,32d,13d,100d,100d procled_clled_cl:movdptr,#led_ord_3mova,k1_datadecamovb,#02hmulabjmp@a+dptrled_ord_3:ajmpled_k0_2 ajmpled_k1_2 ajmpled_k2_2 ajmpled_k3_2 ajmpled_k4_2 ajmpled_k5_2 ajmpled_k6_2 ajmpled_k7_2led_k0_2:;ledsec movled2,#blk_led movled3,#dot_led mova,secacallbcd_8adda,#10dmovled4,amovled5,bjbfl_250ms,lk1 movled4,#blk_ledmovled5,#blk_ledlk1:ajmpled_jmp_5_end led_k1_2:;ledmin,hour acallled_hourjbfl_250ms,lk2 movled4,#blk_led movled5,#blk_ledlk2:ajmpled_jmp_5_end led_k2_2:;ledmin,hour acallled_hourjbfl_250ms,lk3 movled2,#blk_led movled3,#blk_ledlk3:ajmpled_jmp_5_end led_k3_2:;ledday,mon acallled_monjbfl_250ms,lk4 movled4,#blk_led movled5,#blk_ledlk4:ajmpled_jmp_5_end led_k4_2:;ledday,mon acallled_monjbfl_250ms,lk5 movled2,#blk_led movled3,#blk_ledlk5:ajmpled_jmp_5_end led_k5_2:;ledyear movled2,#2d movled3,#0d mova,year acallbcd_8movled4,amovled5,bjbfl_250ms,lk6 movled4,#blk_led movled5,#blk_ledlk6:ajmpled_jmp_5_end led_k6_2:;ledw_adjmovled2,#d_led movled3,#blk_led mova,w_adj acallbcd_8 movled4,a movled5,bjbfl_250ms,lk7 movled4,#blk_led movled5,#blk_led lk7:ajmpled_jmp_5_end led_k7_2:;ledout acallled_out1led_jmp_5_end: movled1,week acallledretendled_hour:mova,hour acallbcd_8 movled2,ajnzlj1movled2,#blk_ledlj1:mova,badda,#10d movled3,a;********************* mova,min acallbcd_8adda,#10d movled4,amovled5,bretled_mon:mova,monjnzlj5incmonmova,monlj5:acallbcd_8movled2,ajnzlj2movled2,#blk_ledlj2:movled3,b;*********************mova,dayjnzlj4incdaymova,daylj4:acallbcd_8movled4,ajnzlj3movled4,#blk_ledlj3:movled5,bret;******************************************** al_out:jbha_over,al_out_endmovr7,#8dmovr1,#al8_mal_ch_1:movr0,#minmovr6,#02d;minhoural_l:mova,@r0movb,@r1cjnea,b,al_chincr0decr1djnzr6,al_l;************************************************** mova,r7decamovr0,#al1adda,r0movr0,amova,@r0movc,acc.0cplcanlc,fl_250mscplcmovbeep_f,cacallbeep_outal_ch:clrcmova,r1subba,r6movr1,adjnzr7,al_ch_1al_out_end:retbeep_out:jbha_f,ba1 movbeep,sec setbha_fba1:mova,beepadda,beep_t movb,#60ddivabmova,seccjnea,b,beep_out_end setbbeep_fsetbha_overclrha_fbeep_out_end:rettimer_int:MOVT_1S,#TIMER_no movbeep_t,#15d movyear,#01d movmon,#011d movday,#06d movhour,#13d movmin,#00d movsec,#00dmovr7,#16 movdptr,#al_asc movr0,#al1_hal_read:clramovca,@a+dptr mov@r0,aincr0incdptrdjnzr7,al_readret;************************************ beep_timer:movled1,#blk_ledmovled2,#b_ledmovled3,#blk_ledmova,beep_tacallbcd_8movled4,amovled5,bjbfl_250ms,ft1movled4,#blk_ledmovled5,#blk_ledft1:rettime_12:movdptr,#asc_12mova,hourrlamovca,@a+dptrmovled2,ajnziu2movled2,#blk_lediu2:incdptrmova,hourrlamovca,@a+dptrjbfl_500ms,iu1adda,#10diu1:movled3,a;***************************************mintoledacallled_mintime_24_end:retasc_12:db11d,2d,21d,1d,21d,2d,21d,3d,21d,4d,21d,5d,21d,6d,21d,7d db21d,8d,21d,9d,11d,0d,11d,1ddb1d,2d,0d,1d,0d,2d,0d,3d,0d,4d,0d,5d,0d,6d,0d,7d,0d,8d,0d,9d db1d,0,1d,1dclock:;********************************mova,seccjnea,#60d,clock_end;!!!!!!!!!!!!!!!!!!!!!!movsec,#00h incmin;**********clrha_over;2001.5.6 mova,mincjnea,#60d,clock_end movmin,#00h inchourmova,hourcjnea,#24d,clock_end movhour,#00h mova,monxrla,#02djnzmm_1 movdptr,#year_d mova,year movca,@a+dptr sjmpmm_2mm_1:mova,mondecamovdptr,#mou_12movca,@a+dptrmm_2:movb,aincbincday;***************day+1 mova,daycjnea,b,clck_end sjmpclck1clck_end:jcclock_endclck1:movday,#01hincmonmova,moncjnea,#13d,clock_end movmon,#01dincyearmova,yearcjnea,#100d,clock_end movyear,#00dclock_end:callfl_outretmou_12:db31d,28d,31d,30d,31d,30ddb31d,31d,30d,31d,30d,31dyear_d:db29d,28d,28d,28d,29d,28d,28d,28d,29d,28d db28d,28d,29d,28d,28d,28d,29d,28d,28d,28d db29d,28d,28d,28d,29d,28d,28d,28d,29d,28d db28d,28d,29d,28d,28d,28d,29d,28d,28d,28d db'lijie2000.5.15';***************************************t1:pushapushpswpushbclrfl_ms_fdjnzt_1s,t1_endclrfl_s_fincseccalladj_w;********************************t1_end:。

基于单片机控制的智能定时闹钟设计(含完整程序仿真图)

基于单片机控制的智能定时闹钟设计(含完整程序仿真图)

摘要本设计是定时闹钟的设计,由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。

电子钟设计可采用数字电路实现,也可以采用单片机来完成。

数字电子钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。

若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。

若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计中采用单片机利用AT89C51,它是低功耗、高性能的CMOS型8位单片机。

片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。

另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。

AT89C51单片机结合七段显示器设计的简易定时闹铃时钟,可以设置现在的时间及显示闹铃设置时间,若时间到则发出一阵声响,进—步可以扩充控制电器的启停。

设计内容包括了秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分的设计。

采用四个开关来控制定时闹钟的工作状态,分别为:K1、设置时间和闹钟的小时;K2、设置小时以及设置闹钟的开关;K3、设置分钟和闹钟的分钟;K4、设置完成退出。

课设准备中我根据具体的要求,查找资料,然后按要求根据已学过的时钟程序编写定时闹钟的程序,依据程序利用proteus软件进行了仿真试验,对出现的问题进行分析和反复修改源程序,最终得到正确并符合要求的结果。

设计完成的定时闹钟达到课程设计的要求,在到达定时的时间便立即发出蜂鸣声音,持续一分钟。

显示采用的六位数码管电路,如果亮度感觉不够,可以通过提升电阻来调节,控制程序中延迟时间的长短,可以获得不同的效果。

基于单片机的定时闹钟设计

基于单片机的定时闹钟设计

定时闹钟的激活机 制
优点: 相比没有激活功能的定时闹钟,设 有激活机制的定时闹钟省去了用户在 不 需要闹铃提示的时候手动去暂停发出 警 报声的定时闹钟的麻烦。
开始
设置闹钟时间
闹钟是否激活? N
Y 闹钟时间= 当前时间? N
Y 蜂鸣器发 出警示声
S4键被 N 按下? Y
结束
图2 闹钟程序流程 图
3 .闹铃响起的条件和停止
1 响起的条件 2 定时闹钟发出警报声需要满足以下两个
条件: 3 系统时间与设定的闹铃时间相等 4 闹铃提示功能被激活,即显示屏上有
“N” 5 的提示信息。 6 闹铃停止的两种方法 7 按一次K4键撤销闹铃提示服务。 8 等待系统时间分位与设定的闹铃时间分
系统仿真电路图
实物图
结束
谢谢观看 !
(2).第二次按K1键, 光标从分位跳到时 位, , 表示当前设置的是闹钟的时位。
(3).当将闹钟的分位和时位均设置完毕 时, 第三次按下K1键, 光标消失, 系统正 常显 示时间和日期等信息。
2 .闹铃的开启
即使系统设有闹铃时间,蜂鸣器也不 一定会在设定时间发出警报声。为避免闹 铃在用户不需要的时候响起,该定时闹钟 系统采用了闹钟激活机制。只有在设置了 闹钟时间并且用户有激活闹铃服务的时候, 蜂鸣器才会在设定时间发出警报声。激活 方式: 按一次K4键。再按一次则会取消。当 闹铃激活时,LCD显示屏上会出现“N”的 提示信息,提示有闹钟提示开启。
图1 实时时钟程序流程 图
图二 1602型LCD的驱动程序流程图
二、 时间和日期的修改
在系统正常运行过程中, 当K1键第一次 被按下时, 关闭定时器(TR0=0), 并且在 时间的秒位出现闪烁的光标, 提示用户现在 更改的是时间的秒位部分。可通过继续按 K1来选择需要调整的其他位, 利用K2进行加 运算, K3进行减运算。直到K1键被第十次按 下的时候, 打开定时器(TR0=1)。系统回 到显示时间和日期的模式下。

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

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

校园自动打铃器作息时钟摘要本文介绍了以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)一.引言打铃器是一种广泛应用于企业和学校单位。

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

基于单片机C语言电子时钟完整版(闹钟,整点报时)

基于单片机C语言电子时钟完整版(闹钟,整点报时)

《单片机技术》课程设计说明书数字电子钟系、部:电气与信息工程学院学生姓名:指导教师:职称专业:班级:完成时间:2013-06-07摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。

所以设计一个简易数字电子钟很有必要。

本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。

该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEU5键,进行相应的操作就可实现校时、定时、复位功能。

具有时间显示、整点报时、校正等功能。

走时准确、显示直观、运行稳定等优点。

具有极高的推广应用价值。

关键词电子钟;AT89S52;硬件设计;软件设计ABSTRACTClock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a single chip AT89S52 of ATMEL’s as its core to control The crystal oscillator clock,using of E-12MHZ is connected with the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours, minutes and seconds requirements, and in the time course of a timing function, when the time arrived ahead of scheduled time to buzz a good timekeeping. The clock has four buttons KEY1, KEY2, KEY3,KEY4 and KEY5 key, and make the appropriate action can be achieved when the school, timing, reset. With a time display, alarm clock settings, timer function, corrective action. Accurate travel time, display and intuitive, precision, stability, and so on. With a high application value.Key words Electronic clock;;AT89S52;Hardware Design;Software Design目录1设计课题任务、功能要求说明及方案介绍 (1)1.1设计课题任务 (1)1.2功能要求说明 (1)1.3设计总体方案介绍及原理说明 (1)2设计课题硬件系统的设计 (2)2.1设计课题硬件系统各模块功能简要介绍 (2)2.2设计课题电路原理图、PCB图、元器件布局图 (2)2.3设计课题元器件清单 (5)3设计课题软件系统的设计 (6)3.1设计课题使用单片机资源的情况 (6)3.2设计课题软件系统各模块功能简要介绍 (6)3.3设计课题软件系统程序流程框图 (6)3.4设计课题软件系统程序清单 (10)4设计结论、仿真结果、误差分析、教学建议 (21)4.1设计课题的设计结论及使用说明 (21)4.2设计课题的仿真结果 (21)4.3设计课题的误差分析 (22)4.4设计体会 (22)4.5教学建议 (22)结束语 (23)参考文献 (24)致谢 (25)附录 (26)1 设计课题任务、功能要求说明及方案介绍1.1 设计课题任务设计一个具有特定功能的电子钟。

基于AT89C51单片机的定时闹钟系统设计毕业论文

基于AT89C51单片机的定时闹钟系统设计毕业论文

基于AT89C51单片机的定时闹钟系统设计毕业论文1.概述1.1单片机简介◆单片机基本概念单片机是一种特殊的计算机,它是在一块半导体上集成了CPU、存储器、以及输入输出接口电路,这种芯片被称为单片微型计算机,简称单片机。

由于单片机的集成度高、功能强、通用性好,贴别是他具有体积小、重量轻、能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等特点,使的单片机迅速得到了推广,目前已成为测量控制应用系统中的优选机种和新电子产品的关键部件。

◆单片机产生与发展单片机是应工业测控系统数字化、智能化的迫切要求提出的。

超大规模集成电路的出现,通用CPU及其外围电路技术的发展成熟,伟大偏激的诞生和发展提供了可能。

单片机的发展完全从工业测控对象、环境、接口等特点出发,不断增强其控制功能,保证在工业测控环境中的可靠性,器接口界面也是按照能灵活、方便的构成工业测控用计算机系统而设计的。

它的出现标志着计算机技术在工业领域中的应用开始走向完善与成熟。

8位单片机从1976年开始至今,其技术已有了巨大的发展,目前仍是单片机的主流机型。

其发展阶段大致分为单片机探索阶段、单片机完善阶段、MCU形成阶段和MCU完善阶段。

◆单片机的发展方向(1)主流机型发展趋势(2)全盘CMOS化趋势(3)RISC体系结构的大发展(4)大力发展专用性单片机(5)单片机中的软件嵌入◆单片机的应用领域(一)单机应用(1)智能产品(2)智能仪表(3)测控系统(4)智能接口(二)多机应用(1)多功能弥散系统(2)并行多机控制系统(3)局部网络系统◆单片机分类(1)按应用领域(2)按通用性(3)按总线结构分(4)按位数分类1.2 本设计简介◆课程设计的目的和意义课程设计是在学完《单片机原理及接口技术》课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下基础.◆课程设计的要求1)能显示:时时—分分—秒秒2)能够设定定时时间、修改定时时间3)定时时间到能发出报警声◆课程设计的内容这一次课程设计,所设计的是一个定时闹钟,能显示时-分-秒,能够设计定时时间,修改定时时间,并且定时时间到了能发出报警声。

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

塔里木大学信息工程学院《单片机原理与外围电路》课程论文题目:单片机定时闹钟设计姓名:海热古丽·依马木学号: 15班级:计算机15-1班摘要:本设计是单片机定时闹钟系统,不仅能实现系统要求的功能,而且还有附加功能,即还能设定和修改当前所显示的时间。

?本次设计的定时闹钟在硬件方面就采用了AT89C51芯片,用6位LED数码管来进行显示。

LED用P0口进行驱动,采用的是动态扫描显示,能够比较准确显示时时—分分—秒秒。

通过S1、S2、S3、和S4四个功能按键可以实现对时间的修改和定时,定时时间到喇叭可以发出报警声。

在软件方面采用汇编语言编程。

整个定时闹钟系统能完成时间的显示,调时和定时闹钟、复位等功能,并经过系统仿真后得到了正确的结果。

关键词:单片机、AT89C51、定时闹钟、仿真?Abstract:T his design is a single-chip timing alarm system, can not only realize the function of system requirements, and there are additional functions, which can set up and modify the display time. Timing alarm clock this design adopts the AT89C51 chip on the hardware side, with 6 LED digital tube to display. LED P0 export driven, by using dynamic scanning display, can accurately display always - sub - seconds seconds. Through the S1, S2, S3, and S4 four function keys can be achieved on the time changes and timing, timing to the horn can send out alarm sound. Using assembly language programming in the software. The timing clock system has functions of time display, timing and timing alarm clock, reset and other functions, and the system simulation to obtain correct results. Keywords: single chip microcomputer, AT89C51, alarm clock,simulatio目录1绪论课题背景及研究意义进入信息时代,计算机的影子无处不在,带有像单片机一类嵌入式处理器的小型智能化电子产品,已经成为家用电器的主流,市场需求前景广阔,因此,掌握小型单片机应用系统设计方法,已成为当今电子应用工程师所必备的技能,定时闹钟具备小型单片机应用系统的一切要素,其结构简单、成本低廉、走时精确、设置方便,所以智能化方面有广泛的用途。

国内外现状单片机是指一个集成在一块上的完整计算机。

同时集成诸如通讯接口、,实时时钟等外围设备。

而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片。

在单片机(Microcontroller)出现后,计算机才真正地从科学的神圣殿堂走入寻常百姓家,成为广大工程技术人员现代化技术革新,技术革命的有利武器。

目前,单片机在民用和工业测控领域得到最广泛的应用。

彩电,冰箱,空调,录像机,VCD,闹钟,遥控器,游戏机,电饭煲等无处不见单片机的影子,单片机早已深深地溶入我们每个人的生活之中。

单片机能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产上也极大地提高了生产效率和产品质量。

课题的设计目的本设计是一个定时闹钟,它仅使用单片的20引脚单片机完成闹钟的全部功能。

设计目的是为了学习和巩固单片机知识,使对已学过的基础知识能有更深入的理解,学会独立思考、独立思考、独立工作,以及提高对所学应用基本理论分析和解决实际问题的能力。

课题的主要任务本文设计的定时闹钟采用AT89C51芯片,用汇编语言进行编程,时、分、秒用6位LED数码管显示。

在电路中通过四个按键S1、S2、S3和S4来进行定时时间和定时闹钟,定时时间到通过喇叭发出报警声。

课题的主要功能1)能显示:时时—分分—秒秒。

2)能够设定定时时间、修改定时时间。

3)定时时间到能发出报警声。

设计的部分分为软件及硬件,软件部分写出闹钟的工作方式以及它是如何工作的,而硬件部分是软件的载体,画出正确的电路图然后在软件的控制下才能使设计的定时闹钟正常工作。

2系统概述方案论证显示器的选择方案论证:方案一:液晶显示器。

如果选择此方案,将会降低系统的功耗,这样就可以用电池供电,便于携带。

但液晶显示器的驱动电路复杂,使用起来有一定的难度。

方案二:用数码管作为显示器。

数码管的驱动电路简单,使用方便,如果选择了此方案,那么在夜间看时间的时候就不需要有光源,非常方便。

其缺点是功耗较大。

由于数码管使用起来较为方便,在夜间看时间也很方便,因此我选择了方案二。

系统设计原理本设计使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。

本系统采用单片机AT89C51作为本设计的核心元件,利用6位共阴数码管作为显示器件。

接入共阴LED显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,时间的定时用时钟电路,修改时间和定时用手动按键控制,报警声通过喇叭发出。

提示预先设定时间电器的起停时间到,从而控制电器的起停。

电路由下列部分组成:时钟电路、复位电路、控制电路、LED显示,报警电路,芯片选用AT89C51单片机。

系统框图如图 2-1所示:图2-1 系统框图3系统硬件设计单片机AT89C51简介AT89C51是一个低电压,高性能CMOS型8位单片机,片内含4KB的可反复擦写的Flash只读程序存储器(ROM)和128B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51为用户提供了许多高性价比应用场合,可灵活应用于各种控制领域。

AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

主要特性:·与MCS-51 兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路引脚使用说明:VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下所示:管脚……备选功能:……RXD(串行输入口)…… TXD(串行输出口)……/INT0(外部中断0)……/INT1(外部中断1)……T0(记时器0外部输入)……T1(记时器1外部输入)……/WR(外部数据存储器写选通)……/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

ST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA 将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

相关文档
最新文档