电子时钟基于AT89c51单片机设计电路图及程序

合集下载

单片机课程设计--智能电子钟的设计

单片机课程设计--智能电子钟的设计

目录1引言 (1)1.1设计内容和要 (1)1.2 工作原理 (2)2总体设计 (2)2.1 方案设计 (2)2.2 系统框图 (2)2.3 核心芯片简介 (3)2.3.1 DS1302简介 (3)2.3.2 AT89C51简介 (3)3 智能电子钟软硬件电路的设计 (4)3.1 硬件设计 (4)3.1.1 复位电路设计 (4)3.1.2 DS1302与单片机的接口设计 (5)3.1.3 LED显示设计 (5)3.1.4 电源设计 (6)3.1.5 按键开关去抖设计 (6)3.1.6 时钟电路的设计 (7)3.1.7 电路总原理图设计 (8)3.2 软件设计 (8)3.2.1 流程图 (8)4protues仿真与调试 (11)4.1 电路的仿真 (11)4.2软件调试 (11)结论……………………………………………………………………………………………错误!未定义书签。

参考文献 (14)附录 (15)源程序 (15)1 引言电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。

另外,在生活和工农业生产中,也常常需要温度,这就需要电子时钟具有多功能性。

本设计主要为实现一款可正常显示时钟/日历、带有定时闹铃的多功能电子时钟。

本文对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现多功能电子时钟。

本设计应用AT89C51芯片作为核心,6位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。

这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。

该电子时钟可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。

1.1设计内容和要求以AT89C51单片机为核心,制作一个LCD显示的智能电子钟:(1) 计时:秒、分、时、天、周、月、年。

51课程设计(完整)

51课程设计(完整)

课程设计报告题 目 基于单片机的电子时钟设计课 程 名 称 单片机原理及应用院 部 名 称 机电工程学院专 业 电气工程及其自动化班 级 12电气工程及其自动化(单) 学 生 姓 名 钱 凯学 号 1205202032课程设计地点 工科楼 C304课程设计学时 20指 导 教 师 李国利金陵科技学院教务处制目录一、概述 (4)1.1设计任务与要求: (4)1.2设计目的: (4)二、总体设计方案及说明 (4)三、系统硬件电路设计 (5)3.1AT89C51单片机最小系统 (5)3.2DS1302实时时钟芯片模块 (7)3.3DS18B20温度传感器模块 (6)3.4LCD1602液晶显示模块 (8)3.54*4矩阵按键 (8)四、系统软件部分设计 (9)4.1软件流程图 (9)4.2系统源程序 (11)五、系统仿真过程与结果 (29)5.1 PROTEUS仿真软件简介 (29)5.2K EIL软件简介 (30)5.3结合PROTEUS仿真软件与K EIL软件编译过程 (30)六、制作过程与功能实现 (34)6.1实物制 (34)6.2功能实现 (35)七、总结 (37)八、参考文献 (37)附录一: (37)附录二: (39)摘要基于AT89C51单片机设计了电子,系统主要包括单片机最小系统、温度采集电路、显示电路、时钟电路等等。

系统采用DS18B20温度传感器对室内进行温度测量,加上DS1302实时时钟芯片内置时间,同时将当前温度信息和时间发送到LCD 进行显示。

画出了系统原理图,进行了软件设计,给出了系统流程图,并编写了系统程序。

最后进行了系统仿真,仿真结果表明,所设计的系统能够满足要求。

本系统具有成本低,可靠性高和安全实用等特点,广泛应用于社会生活的各个领域。

关键词:AT89C51单片机;DS18B20;DS1302手动时间调整;一、概述1.1 设计任务与要求:设计一个基于单片机并采用LCD显示的日历电子钟,要求:1)系统功能:可进行秒分时、天月年计时、温度;可进行手动时间调整。

基于单片机的电子时钟设计论文ppt课件

基于单片机的电子时钟设计论文ppt课件

2.按键模块
在该模块中,采用四个按键作为对电 子时钟的控制输入,经过按键来实现时 钟的时间设置、定时功能。电路中将四 个按键的一端接地,而单片机的P2口默 以为高电平,一旦按键被按下,那么该 按键对应的管脚被拉低,经过软件扫描 按键即可知道用户所要实现的功能,调 用相应的按键子程序来完成该操作。 本设计中,四个按键K1、K2、K3、K4分 别与AT89C51单片机的引脚P1.0、P1.1、 P1.2、P1.3衔接。当按下K1时,开场进展 “时〞的校正,再次按下K1时,那么切换 到“分〞的校正,第三次按下那么切换到 “秒〞的校正,第四次按下那么前往到正 常时间显示。当按下K2时,切换到闹钟 方式,延续按下K2键时依次进展定时。 K3和K4键那么是实现加一和减一功能。
五.仿真结果
PPT终了 谢谢观看
6.时间显示模块
数码管显示方式有两种:
1. 共阴极接法。把发光二极管的阴极连在一同构成阴极公共引脚, 如以下图a所示。运用时阴极公共引脚接地,这样阴极引脚上 加高电平的发光二极管就导通点亮,而加低电平的那么不点亮。
共阳极接法。把发光二极管的阳极连在一同构成阳极公共引脚,如 以下图b所示。运用时阳极公共引脚接+5V。这样阴极引脚上加 低电平的发光二极管即可导通点亮,而加高电平的那么不点亮。
二.电子时钟总体设计
振荡电路 复位电路 蜂鸣器
AT89C51
时间显示 按键电路
本设计电路的硬件部分共由五部分组 成,分别为按键模块、复位电路模块、振 荡电路模块、发声模块、时间显示模块。 振荡电路模块担任给单片机提供时钟周期。 复位电路模块担任上电后自动复位,或按 键后强迫复位。上电后,由单片机内部定 时器计时,同时经过动态显示函数自动将 时分秒显示到数码管上。与此同时,按键 扫描函数不断扫描按键引脚形状,一旦扫 描按键被按下,即进入相应的功能函数。 假设检测到定时时间到,那么驱动蜂鸣器 发声提示。

时钟电路的设计

时钟电路的设计

一、概述本次设计以AT89C51单片机芯片为核心,辅以必要的外围电路,设计了一个简易的电子时钟并且利用单片机自身的定时计数器,使LED 按照一定的时间间隔闪烁,闪烁时间间隔不小于1秒。

在硬件方面,除了CPU 外,使用七段数码管来进行动态扫描。

通过数码管能够比较准确显示时,分,LED 一闪一灭显示秒,设计方面采用C 语言编程,整个电子时钟能完成时间的显示,手动复位等功能。

本系统是基于AT89C51单片机设计的一个具有显示的数字实时时钟的发光二极管,该系统同事具有硬件设计简单,工作稳定性高,价格低廉等优点。

数字单片机的技术进步反应在内部结构,功率消耗,外部电压等级以及制造工艺上。

二、方案论证利用单片机自身的定时计数器,使LED 发光二极管按照一定的时间间隔闪烁,闪烁时间间隔不小于1秒。

方案一:采用AT89C51单片机来做LED 时间闪烁电路,其方案原理框图如下图1所示。

图1 打片机控制设计时钟电路的原理框图方案二:采用电子电路装置安装,其原理框图如下图2所示。

图2 电子电路控制设计时钟电路原理图时钟电路A T89C51 单片机 复位电路按键控制电路LED 显示电路直流5V 电源电路振荡电路控制电路计数器译码器LED 显示电路本设计采用的是方案一,AT89C51单片机构成的数码管显示时钟,硬件设计简单,工作稳定性高,性价比高比较合适。

三、电路设计1.程序流程图程序总体结构示意流程图如下图3所示。

程序从开始运行,设计要求为1秒的闪烁间隔,内容包括了开关中断子程序,以及总体流程。

YNNY图3 程序总体结构示意图2.复位电路AT89C51的复位方式可以是自动复位,也可以是手动复位,复位电路主要是确定开始开关中断 Countor1++(自加1)Counror1==20 D1=~D1(按位取反操作)TH0=(65536-50000)/256(重新赋初值)P1~0口状态改变单片机的起始状态,完成单片机的启动过程,本实验主要采用手动按键复位方式,该复位方式同样具有自动复位功能.当MCS-51单片机的复位引脚RST出现两个周期以上的高电平时,单片机就执行复位操作。

电子钟课程设计--基于单片机的电子钟设计

电子钟课程设计--基于单片机的电子钟设计

电子钟课程设计--基于单片机的电子钟设计烟台南山学院单片机课程设计题目基于单片机的电子钟设计姓名:吴志涛所在学院:计算机与电气自动化学院所学专业:自动化班级:自动化2班学号: 201002160229指导教师:杨国庆完成时间: 2013.9.20目录一、设计任务与要求 (2)1.设计的目的 (2)2.设计的指标 (2)3.设计的要求 (2)二、总体方案设计 (2)1.设计的思路 (2)2.电路的结构特征 (3)3.数据输入输出(I/O) (4)三、单元电路分析与设计 (4)1.显示部分数码管(LED) (4)2.键盘部分 (5)四、总原理图及元器件清单 (5)1.总程序图 (5)2.时间产生流程图 (6)3.按键控制流程图 (7)4.电子钟软件系统程序 (7)5.元器件清单 (10)五、软件仿真 (11)六、结论与心得 (11)七、参考文献 (12)一、设计任务与要求1.设计的目的设计一个带有年月日、时分秒及星期显示的电子钟。

电子钟的主要功能是给人们提供时间和日期信息,无论其形式如何,从外部都可分为显示和校准两部分。

为使电子日历协调工作,整个系统从功能上可分为实时时钟、显示和键盘三个模块,分别完成时间和日期的计算以及人机交互的管理等。

2.设计的指标电子钟是一套完整的时间显示系统,采用单片机等控制设计作为核心控制器,并能实时显示当前的日期,能够设置时间等操作。

3.设计的要求本电子钟能动态显示年、月、日、星期、小时、分钟、秒。

二、总体方案设计按照系统设计功能的要求,初步确定系统由主控模块、时控模块、及显示模块和键盘接口模块共4个模块组成。

主控芯片使用51系列STC89C52RC单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟DS1302。

采用DS1302作为计时芯片,可以做到计时准确。

更重要的是,DS1302可以在很小电流的后备电源(2.5~5.5V电源,再2.5V时耗电小于300nA),而且DS1302可以编程选择多种充电电流来为后备电源进行慢速充电,可以保证后备电源基本不耗电。

AT89C51单片机电子时钟的设计

AT89C51单片机电子时钟的设计

AT89C51单片机电子时钟的设计1.硬件设计首先,我们需要选择合适的外设硬件进行设计。

以下是一些常见的硬件组件:-AT89C51单片机-蜂鸣器-DS1302时钟模块-按键开关和对应的电阻液晶模块的连接方式如下:-VSS->GND-VDD->VCC-V0->电位器-RS->P0.7-R/W->P0.6-E->P0.5-DB0-DB7->P2.0-P2.7蜂鸣器的连接方式如下:-正极->P3.0-负极->GNDDS1302时钟模块的连接方式如下:-VCC->VCC-GND->GND-CE->P1.7-IO->P1.6-SCLK->P1.5按键开关的连接方式如下:-第一个按键->P3.1-第二个按键->P3.2-第三个按键->P3.32.软件设计在软件设计方面,我们将使用C语言编程来编写程序。

首先,我们需要定义和初始化必要的变量,例如小时、分钟和秒钟等计时变量。

然后,我们需要编写一个初始化函数来配置单片机的各种外设和寄存器。

在这个函数中,我们需要设置计时器/计数器、I/O口和中断等。

接下来,我们需要编写一个定时器中断函数,来更新计时变量并实现计时功能。

我们可以使用定时器中断来定期更新秒钟,并在需要时更新小时和分钟。

在主循环中,我们需要编写代码来控制液晶模块、蜂鸣器和按键开关等外设。

通过液晶模块,我们可以实现显示时间的功能。

通过蜂鸣器,我们可以实现头每秒发出一次滴答声的功能。

通过按键开关,我们可以实现设置时间的功能。

3.程序实现以下是AT89C51单片机电子时钟的程序框架:```c#include <reg51.h>#include <intrins.h>//定义和初始化计时变量unsigned char second = 0;unsigned char minute = 0;unsigned char hour = 0;//初始化函数void ini//配置计时器/计数器,设置定时器中断//配置I/O口和中断等//...//定时器中断函数//更新计时变量//...//主函数void mai//初始化init(;//主循环while (1)//控制液晶模块//控制蜂鸣器//控制按键开关//...}```在具体的代码实现中,我们需要根据液晶模块、蜂鸣器和按键开关等外设的具体规格和功能来编写相应的代码。

基于AT89C51单片机的倒计时

基于AT89C51单片机的倒计时

单片机课程设计题目:基于AT89C51单片机的倒计时学院:机械与电气工程学院专业:电气工程及其自动化学号:101401010205目录1、设计要求 (3)2. 工作原理 (3)2.1硬件设计 (4)2.1.1 单片机AT89S51 (4)2.1.2 显示器件选择 (5)2.1.3复位电路 (7)2.1.4 时钟电路 (7)2.1.6 蜂鸣器 (9)3、软件设计 (10)3.1 按键流程图: (10)3.2 定时器流程图: (11)3.3蜂鸣器发出音乐流程图: (12)3.4主程序流程图: (13)4、电路仿真 (14)参考文献 (15)附录1 电路图 (16)附录2 程序 (16)附录3 元件清单 (21)1、设计要求利用AT89C51单片机结合LED显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。

做一小段时间倒计数,当倒计数为0时,红色LED灯闪烁,通知倒计数终了,该做应当做的事。

定时闹钟的基本功能如下。

●显示格式为“分分:秒秒”。

用4个按键操作来设置当前想要倒计数的时间。

一旦按下键则开始倒计数,当计数为0时,发出一阵利用AT89C51单片机结合LED显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。

做一小段时间倒计数,当倒计数为0时,红色LED灯闪烁,通知倒计数终了,该做应当做的事。

音乐声。

程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下。

●K1—可调整倒计数的时间1~60分钟。

●K2—设置倒计数的时间为5分钟,显示“0500”。

●K3—设置倒计数的时间为10分钟,显示“1000”。

●K4—设置倒计数的时间为20分钟,显示“2000”。

按K1键则在LED上显示出设置画面。

此时,若:a. 按操作键K2—增加倒计数的时间1分钟。

b. 按操作键K3—减少倒计数的时间1分钟。

c. 按操作键K4—设置完成。

附加功能:K5—计数开始按钮。

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

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

塔里木大学信息工程学院《单片机原理与外围电路》课程论文题目:单片机定时闹钟设计姓名:海热古丽·依马木学号:**********班级:计算机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绪论 (2)1.1课题背景及研究意义 (2)1.2国内外现状 (2)1.3课题的设计目的 (2)1.4课题的主要任务 (2)1.5课题的主要功能 (2)2系统概述 (3)2.1方案论证 (3)2.2系统设计原理 (3)3系统硬件设计 (4)3.1单片机AT89C51简介 (4)3.2数码管显示电路 (6)3.3时钟电路 (7)3.4喇叭:SPEAKER (8)4系统软件设计 (8)4.1系统软件设计说明 (8)4.2 程序调试 (8)4.3 程序流程图 (9)4.3仿真步骤 (10)4.4仿真结果 (10)结论 (12)参考文献 (13)附录A 系统整体电路 (14)附录B 全部程序清单 (14)附录C:PCB图和3D图 (23)1绪论1.1课题背景及研究意义进入信息时代,计算机的影子无处不在,带有像单片机一类嵌入式处理器的小型智能化电子产品,已经成为家用电器的主流,市场需求前景广阔,因此,掌握小型单片机应用系统设计方法,已成为当今电子应用工程师所必备的技能,定时闹钟具备小型单片机应用系统的一切要素,其结构简单、成本低廉、走时精确、设置方便,所以智能化方面有广泛的用途。

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

电子时钟基于AT89c51单片机的设计电子时钟原理图开机显示仿真图: 当按下仿真键时电子时钟开机页面显示第一行显示JD12102Class--16,第二行显示动态TINE:12:00:04。

电子时钟调时间仿真图:当按下K1为1次时,光标直接跳到电子时钟的秒,可以按下K2进行调节。

当按下K1为2次时,光标直接跳到电子时钟的分,可以按下K2进行调节。

当按下K1为3次时,光标直接跳到电子时钟的时,可以按下K2进行调节。

当按下K1为4次时,光标直接跳完,电子时钟可以进行正常计时。

电子时钟闹钟调节仿真:当按下K3为1次时,直接跳到闹钟显示界面00:00:00,按下K2可以对闹钟的秒进行调节。

当按下K3为2次时,可以调到分,按下K2可以对闹钟的分进行调节。

当按下K3为3次时,可以调到时,按下K2可以对闹钟的时进行调节。

当按下K3为4次时,直接跳到计时界面,对闹钟进行到计时,时间到可以发出滴滴声。

#include<>#define uchar unsigned char //预定义一下#define uint unsigned intuchar table[]="JD12102Class--21"; //显示内容sbit lcden=P3^4; //寄存器EN片选引脚sbit lcdrs=P3^5; //寄存器RS选择引脚sbit beep=P3^6; //接蜂鸣器extern void key1();extern void key2();extern void key3();uchar num,hour=12,minite,second,ahour,aminite,asecond,a,F_k1,F_k2,F_k3; //定义变量void delay(uint z) //延时{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com){lcdrs=0;P0=com; //送出指令,写指令时序delay(5);lcden=1;delay(5);lcden=0;}void write_data(uchar date){lcdrs=1;P0=date; //送出数据,写指令程序delay(5);lcden=1;delay(5);lcden=0;}void write_add(uchar add,uchar date){uchar aa,bb;aa=date/10;bb=date%10;write_com(0x80+add);write_data(0x30+aa);write_data(0x30+bb);}void init() //初始化{lcden=0;write_com(0x38); //设置16*2显示,5*7点阵write_com(0x0c); //开显示,不显示光标write_com(0x06); //地址加1,写入数据是光标右移1位write_com(0x01); //清屏write_com(0x80); //起点为第一行第一个字符开始}void display(uchar h,uchar m,uchar s) //显示设计程序{{write_com(0x80+0x16);}{write_com(0xC0+0x00);write_data('T');write_data('I');write_data('M');write_data('E');write_data(':');write_data(0x30+(h/10));write_data(0x30+(h%10));write_data(':');write_data(0x30+(m/10));write_data(0x30+(m%10));write_data(':');write_data(0x30+(s/10));write_data(0x30+(s%10));write_data(' ');write_data(' ');write_data(' ');} }void main(){init();TMOD=0X01; //设置T0定时方式1TH0=(65535-50000)/256; //设置初值TL0=(65535-50000)%256;EA=1; //开总中断TR0=1; //启动T0ET0=1;for(num=0;num<16;num++) //依次读出数据{write_data(table[num]);}while(1){key1();key2();key3();if(ahour==hour&&aminite==minite&&second<10) //时间到闹钟响{beep=~beep;}if(F_k1==0&F_k3==0) //K1和K3按下次数为零就直接显示时分秒display(hour,minite,second);}}void timer0() interrupt 1 //T0中断函数{TH0=(65535-50000)/256; //装载计数器初值TL0=(65535-50000)%256;a++;if(a==20){ //进位设置60秒进1分,60分进1时,24时进0时a=0;second++;if(second==60){second=0;minite++;if(minite==60){minite=0;hour++;if(hour==24){hour=0;}}}}}#include <> //调时间程序#define uchar unsigned char#define uint unsigned intsbit k1=P1^0; //定义3个变量sbit k2=P1^1;sbit k3=P1^2;extern uchar F_k1,F_k3,second,minite,hour,ahour,aminite,asecond; //预定义变量extern void write_com(uchar com);extern void write_add(uchar add,uchar date);extern void display(uchar h,uchar m,uchar s);void delay_key(int i){while(i--);}void key1(){if(k1==0) //按下K1零次时,直接计时与开机显示{delay_key(100);if(k1==0){TR0=0;while(!k1);F_k1++;if(F_k1==4){F_k1=0;write_com(0x0c);TR0=1;}}}if(F_k1==1|F_k3==1){write_com(0xC0+0x0c);write_com(0x0f);}if(F_k1==2|F_k3==2)write_com(0xC0+0x09);if(F_k1==3|F_k3==3)write_com(0xC0+0x06);}void key2(){if(k2==0){delay_key(100);{while(!k2);if(F_k1==1) //按下K1一次时设置闹钟的秒{second++;if(second==60)second=0;write_add(0x4b,second);}if(F_k1==2) //按下K3两次时设置闹钟的分{minite++;if(minite==60)minite=0;write_add(0x48,minite);}if(F_k1==3) // 按下K1三次时设置闹钟的时{hour++;if(hour==24)hour=0;write_add(0x45,hour);}if(F_k3==1) //按下K3一次时设置闹钟的秒{asecond++;if(asecond==60)asecond=0;write_add(0x4b,asecond);}if(F_k3==2) //按下K3两次时设置闹钟的分{aminite++;if(aminite==60)aminite=0;write_add(0x48,aminite);}if(F_k3==3) //按下K3三次时设置闹钟的时{ahour++;if(ahour==24)ahour=0;write_add(0x45,ahour);}}}}void key3(){if(k3==0){delay_key(100);if(k3==0){while(!k3);F_k3++;if(F_k3==4) //K3等于四次时直接跳入闹钟显示{F_k3=0;write_com(0x0c);}if(F_k3==1)display(ahour,aminite,asecond);}}}。

相关文档
最新文档