基于DS1302的实时时钟设计报告
- 格式:doc
- 大小:275.99 KB
- 文档页数:15
(1)可以准确地显示背景时间(时、分、秒)及公历日期(年、月、日、星期)。
(2)该系统存储的时间信息在掉电的情况下至少保存10年。
(3)日历时钟信息通过数码管进行实时显示。
(4)为系统的显示装置设计驱动电路,以提高数码管的显示亮度。
(6)时间显示可以选择24小时模式或带有“PM”和“AM”指示的12小时模式。
任务要求:(1)查阅不少于12篇的相关资料,其中英文文献不少于2篇;(2)查阅相关资料,提出出设计方案,完成开题报告;(3)完成实时日历时钟显示系统的硬件和软件设计(4)在proteus中对系统或相关环节进行调试、仿真或试验,验证设计的正确性、可行性。
目录摘要................................................................................................................................... 错误!未定义书签。
ABSTRACT .......................................................................................................................... 错误!未定义书签。
1 绪论................................................................................................................................. 错误!未定义书签。
1.1 数字电子钟的背景................................................................................................ 错误!未定义书签。
常熟理工学院电气与自动化工程学院《微机原理与接口技术》课程设计题目:基于DS1302的电子钟设计*名:***学号:*********班级:测控122班指导教师:***起止日期:2015年7月摘要 .......................................................................................................................... - 1 -一、《微机原理与接口技术》课程设计任务书 .................................................. - 2 -二、总体设计方案 (2)2.1 设计框图..................................................................................................... - 2 -2.2 模块说明..................................................................................................... - 3 -2.2.1 DS1302模块 (3)三、硬件电路设计 (4)3.1 单片机最小系统......................................................................................... - 4 -3.1.1 系统结构 (4)3.1.2 系统特点............................................................................................................ - 5 -3.2 时钟电路设计............................................................................................. - 5 -3.3 数码管显示设计 (5)3.4 键盘电路 (5)四、软件设计 .......................................................................................................... - 6 -4.1 主程序流程................................................................................................. - 6 -4.2 时钟电路设计 (8)五、程序调试与运行结果 ............................................................ 错误!未定义书签。
基于单片机及时钟芯片DS1302的电子时钟设计一、概述二、电子时钟的基本原理电子时钟是一种以单片机为核心的智能电子产品,采用数字电路来显示时间。
电子时钟的核心部件是一个定时器,通过周期性的计数来确定时间,然后再将计数器的结果通过数码管等显示装置进行显示。
除此之外,电子时钟还需要一个能够准确计时的时钟芯片,如本文所使用的时钟芯片DS1302。
三、电子时钟的设计方法本文设计的电子时钟采用AT89C52单片机和时钟芯片DS1302,并通过外围的驱动电路和数码管来实现时间的显示。
该电子时钟具有以下特点:1.可进行24小时制和12小时制的切换:电子时钟可以通过按键实现24小时制和12小时制的切换,可按需选择。
2.自动夏令时判断:电子时钟可自动识别夏令时,并根据设定值进行切换,方便易用。
3.温度显示:电子时钟的DS1302时钟芯片自带温度探测器,可实现温度的实时显示。
本文所设计的电子时钟的硬件设计方案如下:1.主控芯片:采用AT89C52单片机2.显示装置:采用数码管进行时分秒的显示,共4位数码管。
3.时钟芯片:采用DS1302时钟芯片,保证时间的准确性。
5.电源:采用开关电源或锂电池供电。
锂电池供电时,电子时钟可实现断电后不重置的功能。
1.初始化:在电子时钟启动时,需要对各个模块进行初始化,如DS1302时钟芯片的读写口、数码管和按键都需要进行初始化。
2.频率切换:按下切换按键后,电子时钟的频率从24小时制切换到12小时制。
3.设定夏令时:按下设定按键后,可以进行夏令时设定。
设定值以秒为单位存储,在夏季过渡期改变时,只需修改设定值即可。
5.时间的显示:通过程序将DS1302时钟芯片中的时间读出并在数码管上显示,实现实时显示的功能。
五、总结本文设计的基于单片机及时钟芯片DS1302的电子时钟,可通过按键实现24小时制和12小时制的切换、自动夏令时判断、温度显示等多种功能,实现了电子时钟的多种要求和需求。
该设计方案具有简单实用、成本低廉、易于维护等优点,可广泛应用于各个领域。
课程设计报告题目:基于DS1302的数字钟报告学院:专业:电子信息工程班级:学号:指导教师:2010 年 7 月 7日摘要 (4)ABSTRACT (4)前言 (5)第一章数字钟设计的意义及任务 (6)1.1数字钟设计的意义 (6)1.2设计任务 (6)第二章系统的硬件设计和方案对比选择 (7)2.1系统设计结构图 (7)2.2系统设计方案对比选择 (7)2.2.1 MCU微处理控制器的方案对比选择 (7)2.2.2 LCD液晶显示模块的方案对比选择 (8)2.2.3 实时时钟电路的方案对比选择 (9)第三章系统的硬件设计电路及元件说明 (10)3.1MCU微控制器电路 (10)3.2LCD液晶显示电路 (12)3.3实时时钟电路 (16)3.4复位电路 (17)3.5晶振电路 (17)第四章系统的软件设计。
(18)4.1主程序 (18)第五章程序的调试 (19)5.1PROTEUS仿真 (19)5.2利用学习板进行调试 (20)5.3调试过程中出现的问题 (21)设计总结 (21)参考文献 (22)附录一系统程序: (23)附录二基于DS1302数字钟设计的原理图 (33)附录三基于DS1302数字钟设计的PCB图 (34)附录四基于DS1302数字钟设计的元件清单 . 错误!未定义书签。
基于DS1302的数字钟设计报告摘要根据AT89C52的特点和数字钟的特点,本文提出一种用单片控制DS1302利用LCD1602显示的数字钟的设计方法,同时给出软硬件电路的设计方法。
设计报告硬件电路设计和软件编程两个方面。
本系统通过AT89C52做为CPU进行总控制,利用AT89C52对DS1302进行控制,DS1302可以对年、月、日、周、日、时、分、秒进行计时,最后利用LCD1602液晶显示进行显示。
该设计实用简便能够对年、月、日、周、日、时、分、秒进行有效准确的计时及显示。
关键词:单片机 DS1302 LCD1602 数字钟Based on the design of the digital clock DS1302 reportAbstractAccording to the characteristics and the digital clock AT89C52 characteristics, this paper presents a DS1302 control by using single chip LCD1602 digital clock shows the design method and design method of software and hardware circuit is given. Design report hardware and software programming. The system through the AT89C52 as CPU for total control and utilization of DS1302 AT89C52 control, DS1302 to year, month, day, week, day, when, minutes and seconds on the clock LCD1602 LCD display show.Keywords: SCM DS1302 LCD1602 digital clock前言自古就有:“一寸光阴,一寸金”的说法。
课程设计设计题目:基于DS1302的实时时钟设计学生姓名:黄景军指导教师:高峰二级学院:龙蟠学院专业:电气工程及其自动化班级:M11电气工程及其自动化学号: **********摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用。
本设计采用实时时钟芯片DS1302,基于AT89C51单片机的设计制作了具有红外遥控、LED显示、可设定时的电子时钟,达到制作的目的,并用protuse和medwin进行模拟实验。
本报告中主要介绍了系统的硬件设计和软件设计,并用八位共阳极LED数码管,采用查询法查键实现。
关键词:单片机DS1302 AT89C51 共阳极LED数码显示器目录设计任务及主要技术指标和要求 (3)1.1 设计任务 (3)1.2 主要技术指标和要求 (3)二、引言 (3)三、核心芯片简介 (4)3.1 DS1302简介 (5)3.1.1 DS1302引脚功能与内部结构 (5)3.1.2 DS1302的寄存器 (5)3.2 AT89C52简介 (6)四、方案设计和论证 (6)五、软硬件设计 (7)5.1硬件电路设计 (7)5.2软件实现 (8)5.2.1主程序 (8)5.2.2时钟读出程序设计 (12)5.2.3时钟调整程序设计 (13)六、系统调试 (13)七、总结 (14)八、参考文献 (14)一、设计任务及主要技术指标和要求1.1 设计任务:用DS1302时钟芯片设计实时时钟。
1.2 主要技术指标和要求:(1)通过程序直接对实时时钟时间进行设置,启动时钟运行。
用8位数码管显示。
(2)通过按钮对实时时钟时间进行设置,使时钟能正常运行。
(3)其他发挥功能。
二、引言从古代的滴漏更鼓到近代的机械钟,从电子表到目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进着计时工具。
单片机应用课程设计基于DS1302电子时钟的设计-报告参考模板单片机应用课程设计报告(2012~2013学年第2学期)设计题目:基于DS1302电子时钟的设计班别:2010级自动化1班姓名:李永兴贺孝言王永伟指导教师:颜丽娜时间:2013年5月目录1 设计任务 (4)2 系统总体方案设计 (4)2.1各个模块方案论证 (4)2.1.1 时钟芯片的选择 (4)2.1.2 显示器的选择 (4)2.2总体方案设计 (5)3 硬件电路设计 (5)3.1单片机最小系统 (5)3.21302时钟电路 (6)3.3按键调时电路 (7)4 系统软件设计 (8)4.1主程序流程图 (8)4.2子程序流程图 (9)4.2.1 DS1302子程序流程图 (9)4.2.2 1602子程序流程图 (10)4.3按键校正调时程序 (10)5 实物调试 (11)5.1实物性能分析 (11)5.2总结 (14)附录1 (16)(1)系统总电路图 (16)(2)系统仿真图 (17)附录2 (18)部分程序清单 (18)1 设计任务基本要求:采用DS1302时钟芯片与单片机STC89C52相结合设计电子时钟,能够显示出实时年、月、日、时、分、秒等时间,并且可以通过按键进行时间调整。
2 系统总体方案设计2.1 各个模块方案论证2.1.1 时钟芯片的选择由于设计的是电子时钟,而单片机STC89C52自带计时功能,利用单片机实现数据的显示和调整是可行的,采用单片机计时,利用它的一个16位定时器/计数器每50ms产生一个中断信号,中断20次后产生一个秒信号,然后根据时间进制关系依次向分、时、日、星期、月、年进位。
这样可以直接用单片机的内部定时/计数器来完成电子万年历的设计。
用单片机内部的定时/计数器来制作电子万年历,虽然无须外接其他芯片,充分利用了单片机的资源,但是计时精度不够高,误差较大,掉电后所有数据将被丢失,且软件编程较为复杂。
在以单片机为核心构成的装置中,经常需要一个实时的时钟和日历,以便对一些实时发生事件记录时给予时标。
单片机应用课程设计报告(2012~2013学年第2学期)设计题目:基于DS1302电子时钟的设计班别:2010级自动化1班姓名:李永兴贺孝言王永伟指导教师:***时间:2013年5月目录1 设计任务 (3)2 系统总体方案设计 (3)2.1各个模块方案论证 (3)2.1.1 时钟芯片的选择 (3)2.1.2 显示器的选择 (3)2.2总体方案设计 (4)3 硬件电路设计 (4)3.1单片机最小系统 (4)3.21302时钟电路 (5)3.3按键调时电路 (6)4 系统软件设计 (7)4.1主程序流程图 (7)4.2子程序流程图 (8)4.2.1 DS1302子程序流程图 (8)4.2.2 1602子程序流程图 (9)4.3按键校正调时程序 (9)5 实物调试 (10)5.1实物性能分析 (10)5.2总结 (13)附录1 (15)(1)系统总电路图 (15)(2)系统仿真图 (15)附录2 (17)部分程序清单 (17)1 设计任务基本要求:采用DS1302时钟芯片与单片机STC89C52相结合设计电子时钟,能够显示出实时年、月、日、时、分、秒等时间,并且可以通过按键进行时间调整。
2 系统总体方案设计2.1 各个模块方案论证2.1.1 时钟芯片的选择由于设计的是电子时钟,而单片机STC89C52自带计时功能,利用单片机实现数据的显示和调整是可行的,采用单片机计时,利用它的一个16位定时器/计数器每50ms产生一个中断信号,中断20次后产生一个秒信号,然后根据时间进制关系依次向分、时、日、星期、月、年进位。
这样可以直接用单片机的内部定时/计数器来完成电子万年历的设计。
用单片机内部的定时/计数器来制作电子万年历,虽然无须外接其他芯片,充分利用了单片机的资源,但是计时精度不够高,误差较大,掉电后所有数据将被丢失,且软件编程较为复杂。
在以单片机为核心构成的装置中,经常需要一个实时的时钟和日历,以便对一些实时发生事件记录时给予时标。
电子系统设计实验报告实验目的:1、能够以DS1302实时时钟芯片和液晶显示屏CD1602为基础设计一款电子钟2、熟悉DS1302芯片的工作过程3、熟悉CD1602芯片的工作过程4、可以进行必要的扩展,如用第三DS18B20新品进行温度采集和显示5、熟悉掌握51的c程序的编写6、掌握用Proteus进行系统设计仿真验证实验仪器、仪表目录1、DS1302实时时钟芯片1片2、LCD1602液晶显示屏1个,3、80C52芯片1片5、DS18B20芯片一片6、晶振、电容、电阻、开关各若干等7、proteus仿真软件8、Keil C51、PC机实验设计任务以DS1302实时时钟芯片和液晶显示屏LCD1602为基础设计一个电子钟,要求:时间和日期可调整,按键采用3个按键;至少在Proteus上调试通过。
扩展:闹钟和重要日期提醒功能(增加蜂鸣器),闹铃音乐功能实验步骤1、打开Keil软件,新建一个工程文件,选择好芯片,并记得在“Options for Target 1”的Output选项中,将Create HEX Fil选项勾起来。
2、将编写的程序保存成“.C”的形式3、编译保存好的C文件,并根据提示修改程序中的错误,直到编译成功为止4、打开proteus软件,画出实验电路图5、在89C52中,载入原来已生成的HEX文档6、按下运行键,对Proteus 进行软件仿真,观察运行结果原理、结果及分析一、设计方案原理与设计特点分析电子钟总的设计模块:各个模块电路原理分析: 1、DS1302时钟采集模块:1.1电路原理图:1.2 DS1302分析:首先DS1302是DALLAS 公司推出的涓流充电时钟芯片。
内含有一个实时时钟/日历和31字节静态RAM 通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作。
DS1302芯片广脚介绍:X1、X2为32.768KHz 晶振管脚。
2012 —2013 学年实训报告名称:单片机应用综合实训地点:实A407时间: 6.3~~~6.7系部:电子系班级:1101电信姓名学号:指导老师:王平DS1302串口更新时间实时时钟设计一、实训任务与计划任务主要内容:采用AT89S51单片机的I/O口,选用串行实时时钟DS1302和LED数码显示管,采用C语言编程,设计串口自动更新实时时钟,显示年月日时分钞及学号。
工作学习过程要求:显示两个屏时分秒,学号。
PC的时间通过串口传送到时钟二、方案与电路设计利用单片机开发板!ds1302以及两个锁存器和五个个按键,来设计时钟电路。
并自动更新时间显示。
电路如图电路原理图仿真电路图三、程序设计#include<reg52.h>#include "ds1302.h"#define KeyPort P3#define DataPort P0sbit LATCH1=P2^2;//定义锁存使能端口段锁存sbit LATCH2=P2^3;// 位锁存bit ReadTimeFlag;//定义读时间标志bit SetFlag; //更新时间标志位unsigned char time_buf2[16];unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };// 显示段码值0~9unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码unsigned char TempData[8]; //存储显示值的全局变量void DelayUs2x(unsigned char t);//us级延时函数声明void DelayMs(unsigned char t); //ms级延时void Display(unsigned char FirstBit,unsigned char Num);//数码管显示函数unsigned char KeyScan(void);//键盘扫描void Init_Timer0(void);//定时器初始化void UART_Init(void);void main (void){unsigned char i,num,displaynum;Init_Timer0();Ds1302_Init();UART_Init();while (1) //主循环{if(SetFlag) //如果接收到串口信息则更新时钟{for(i=0;i<8;i++){time_buf1[i]=time_buf2[2*i]*10+time_buf2[2*i+1];}//数据整合,如2个数 1和5整合成15Ds1302_Write_Time();SetFlag=0; //时钟信息更新后标志位清零}num=KeyScan();if(num==1){displaynum++;if(displaynum==2)displaynum=0;}if(ReadTimeFlag==1){ReadTimeFlag=0;Ds1302_Read_Time();if(displaynum==0) //显示时间{TempData[0]=dofly_DuanMa[time_buf1[4]/10];//时TempData[1]=dofly_DuanMa[time_buf1[4]%10];TempData[2]=0x40;TempData[3]=dofly_DuanMa[time_buf1[5]/10];//分TempData[4]=dofly_DuanMa[time_buf1[5]%10];TempData[5]=0x40;TempData[6]=dofly_DuanMa[time_buf1[6]/10];//秒TempData[7]=dofly_DuanMa[time_buf1[6]%10];}else if(displaynum==1)//显示日期{TempData[0]=dofly_DuanMa[time_buf1[2]/10];TempData[1]=dofly_DuanMa[time_buf1[2]%10];TempData[2]=0x40; //加入"-"TempData[3]=dofly_DuanMa[time_buf1[3]/10];TempData[4]=dofly_DuanMa[time_buf1[3]%10];TempData[5]=0x40;TempData[6]=dofly_DuanMa[1];TempData[7]=dofly_DuanMa[9];}}}}void UART_Init(void){SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收 TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装 TH1 = 0xFD; // TH1: 重装值 9600 波特率晶振11.0592MHzTR1 = 1; // TR1: timer 1 打开EA = 1; //打开总中断ES = 1; //打开串口中断}void DelayUs2x(unsigned char t){while(--t);}void DelayMs(unsigned char t){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}void Display(unsigned char FirstBit,unsigned char Num)static unsigned char i=0;DataPort=0; //清空数据,防止有交替重影LATCH1=1; //段锁存LATCH1=0;DataPort=dofly_WeiMa[i+FirstBit]; //取位码 LATCH2=1; //位锁存LATCH2=0;DataPort=TempData[i]; //取显示数据,段码 LATCH1=1; //段锁存LATCH1=0;i++;if(i==Num)i=0;}void Init_Timer0(void){TMOD |= 0x01;EA=1; //总中断打开ET0=1; //定时器中断打开TR0=1; //定时器开关打开}void Timer0_isr(void) interrupt 1{static unsigned int num;TH0=(65536-2000)/256; //重新赋值 2msTL0=(65536-2000)%256;Display(0,8); // 调用数码管扫描num++;if(num==50) //大致100ms{num=0;ReadTimeFlag=1; //读标志位置1}}unsigned char KeyScan(void){unsigned char keyvalue;if(KeyPort!=0xff){DelayMs(10);if(KeyPort!=0xff){keyvalue=KeyPort;while(KeyPort!=0xff);switch(keyvalue){case 0xfe:return 1;break;case 0xfd:return 2;break;case 0xfb:return 3;break;case 0xf7:return 4;break;case 0xef:return 5;break;case 0xdf:return 6;break;case 0xbf:return 7;break;case 0x7f:return 8;break;default:return 0;break;}}}return 0;}void UART_SER (void) interrupt 4 //串行中断服务程序{unsigned char Temp; //定义临时变量unsigned char i;if(RI) //判断是接收中断产生 {RI=0; //标志位清零Temp=SBUF; //读入缓冲区的值time_buf2[i]=Temp&0x0F;i++;if(i==16) //连续接收16个字符信息 {i=0;SetFlag=1; //接收完成标志位置1}SBUF=Temp; //把接收到的值再发回电脑端}if(TI) //如果是发送标志位,清零TI=0;}四、安装与调试更新之前的时间更新之后的时间显示的月、日、学号五、小结通过这一周的实训我的收获很多,知道了单片机开发板的很多用途,时钟芯片的各种功能,锁存器的的基本使用,以及发现问题解决问题!提高了解决问题的能力。
基于DS1302的多功能实时数字钟控制摘要:本系统采用STC89C52 单片机和DS1302 配合,实现实时时间日期和星期的保存和显示。
系统中还有一块1602显示屏,用以显示系统中所需的符号和时间日期。
另外系统中还装有4个独立式键盘,用于系统操作与控制。
并接一个直流蜂呜器和一个交流蜂呜器,用以进行音响提示。
DS1302可以实现对系统是的时、分、秒,日期和星期等信息的保存,使系统在掉电的情况下仍然能够准确的保存并运行时间信息。
利用单片机的定时器,实现了倒计时和秒表功能的设计。
关键字:单片机;DS1302;数字钟Based on DS1302 control of multi-purpose real-time digitalclockAbstract:The system uses the microcontroller and the DS1302 with STC89C52, real-time time date and week of preservation and display. There is also a 1602 display system to display the system date and time required for the symbol. Another system is also equipped with 4 separate keyboard for the system operation and control. And then a DC and an AC buzzer buzzer, used for audio prompts. DS1302 can be achieved on the system is the hours, minutes, seconds, date, and save information such as a week, the system in case of power-down will still be able to save and run-time and accurate information. Use of microcomputer timer, countdown and stopwatch functions to achieve the design.Key words:Single Chip Microcomputer; DS1302; digital clock目录1 绪论 (1)2 系统方案选择和论证 (1)2.1 设计要求 (1)2.2 各模块方案选择和论证 (2)2.2.1 主控模块的选择说明 (2)2.2.2 时钟芯片的选择和说明 (3)2.2.3 显示模块的选择和说明 (5)2.3 最终选择方案 (7)3 系统硬件设计及实现 (7)3.1 单片机外围电路设计 (7)3.2 DS1302与单片机的接口设计 (8)3.3 LCD1602与单片机的接口设计 (8)3.4 按键电路设计 (9)3.5 闹铃电路设计 (9)3.6 电源设计 (10)4 软件设计 (11)4.1 主程序设计 (11)4.2 DS1302子程序的设计 (11)4.4 键盘扫描子程序的设计 (14)4.5 闹钟子程序的设计 (14)5 系统调试 (14)5.1 软件调试 (15)5.2 硬件调试 (15)5.2.1 显示电路调试 (16)5.2.2 DS1302电路调试 (16)5.2.3 按键电路的调试 (16)6 总结 (16)致谢 (18)参考文献 (19)附录 (20)附录一:电路板实物图 (20)附录二:设计总电路图 (22)附录三:仿真图 (23)基于DS1302的多功能实时数字钟控制***班 ***指导教师 ***1 绪论在实时监控系统的设计中,要对各个控制信号进行实时监控,更重要的是在发生事故的情况下准确记录下故障数据,以便准确分析排除错误。
《单片机技术》课程设计任务书(二)题目:基于DS1302的电子钟设计一、课程设计任务DS1302是DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿功能,工作电压为2.5~5.5V。
DS1302采用三线接口,与CPU进行同步通信,并可采用突发方式一次传送多个字节的时间数据或RAM数据。
DS1302内部有一个31X8的用于临时性存放数据的RAM存储器。
本课题要求设计一基于DS1302的电子钟,该系统要求包含时钟显示模块(可用数码管或液晶显示)和键盘输入模块等。
按1键可以查看当前的时间,按2键可以修改当前的时间,按3键可以设置控制的时间,按4键可以查看及删除所设置的时间,当设定的控制时间到时,铃声响起。
二、课程设计目的通过本次课程设计使学生掌握:1)专用时钟芯片DS1302与单片机的接口及DS1302的编程;2)矩阵式键盘的设计与编程;3)经单片机为核心的系统的实际调试技巧。
从而提高学生对微机实时控制系统的设计和调试能力。
三、课程设计要求1、要求可以从键盘上接收相关信息,按1键可以查看当前的时间,按2键可以修改当前的时间,按3键可以设置控制的时间,按4键可以查看及删除所设置的时间,当设定的控制时间到时,铃声响起。
2、能实时显示时钟。
四、课程设计内容1、人机“界面”设计;2、单片机端口及外设的设计;3、硬件电路原理图、软件清单。
五、课程设计报告要求报告中提供如下内容:1、目录2、正文(1)课程设计任务书;(2)总体设计方案(3)针对人机对话“界面”要有操作使用说明,以便用户能够正确使用本产品;(4)硬件原理图,以便厂家生成产(可手画也可用protel软件);(5)程序流程图及清单(子程序不提供清单,但应列表反映每一个子程序的名称及其功能);(6)调试、运行及其结果;3、收获、体会4、参考文献六、课程设计进度安排七、课程设计考核办法本课程设计满分为100分,从课程设计平时表现、课程设计报告及课程设计答辩三个方面进行评分,其所占比例分别为20%、40%、40%。
一、设计目的 (1)二、设计思路 (1)三、设计过程 (1)五、主要元器件与设备 (10)六、课程设计体会 (10)七、参考文献 (10)一、设计目的1、掌握电子时钟的基本工作方式。
2、进一步熟悉DS1302芯片的特性。
3、通过使用各基本指令,进一步熟练掌握单片机的编程和程序调试。
二、设计思路利用AT89C52的特点及DS1302的特点,设计一种基于DS1302单片机控制,再利用数码管静态显示的可调可定时数字钟。
本系统硬件利用AT89S52作为CPU 进行总体控制,通过DS1302时钟芯片获取准确详细的时间(年、月、日、周、日、时、分、秒准确时间),对时钟信号进行控制,同时利用数码管对时间进行准确显示年、月、日、周、日、时、分、秒。
三、设计过程3.1系统设计结构图图1系统设计结构图根据系统设计的要求和设计思路,确定该系统的系统设计结构图。
如图1所示。
硬件电路主要由MCU微处理控制器单元、DS1302时钟电路、储存器、复位电路、晶振电路、数码管显示模块构成。
3.2 MCU微控制器电路AT89S52作为系统的核心控制元件,只有它能正常工作后才能使其它的元件进入正常工作状态。
因此,下面对AT89S52进行必要的说明,AT89S52的管脚如图3所示。
图3 AT89S52的管脚1)VCC:40脚,供电电压,一般接+5V电压。
2)GND:20脚,接工作地。
3)P0口:1~8脚,P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上电阻。
但是P0口在程序校验作为输出指令字节时,需要外部加上拉电阻,一般上拉电阻选4.7K~10K为宜。
本设计中用5.1K的排阻对P0口进行上拉电平。
4)P1口:32~39脚,P1口是一个内部具有上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。
单片机课程设计报告题目:基于DS1302电子实时时钟姓名:XXX同组人:XXX班级学号:XX指导老师:XXXXX日期:2011-12-22目录摘要第一部分:题目要求 (4)第二部分:方案论证与选择 (4)第三部分:电路设计与参数选择 (7)第四部分:系统软件设计 (10)第五部分:系统调试与仪器使用 (12)第六部分:测试数据与结果分析 (18)第七部分:使用说明书 (19)总结 (19)摘要本作品是以89C52单片机为核心,DS1302时钟芯片、数码管做显示器及74LS08与门构成的24小时制单功能电子实时时钟。
这种单功能电子实时时钟不仅具有了一般数字钟的基本功能,并且通过两个按钮实现时钟运行与停止功能。
如果我们要设置时间,只需在软件程序上改变时钟芯片的初始化程序。
在电子产品盛行的今天,像这样的设计我们可以给它更大的发展空间。
第一部分题目要求我们设计的这种24小时制功能钟,可以在数码管上显示时、分、秒,并且我们可以通过按钮来控制时钟的运行及停止(按钮KEY1控制时钟停止运行,按钮KEY2控制时钟运行)并采用220V交流电源供电。
第二部分方案论证与选择一、系统功能框图在现今的这个社会,每天的时间都很紧迫,有些人怕误了时间做自己重要的事,尤其是对现在的学生而言,他们早上要早起,上课要准时,这样都少不了有一个时钟;早上干早班的人,在外出行的人,工厂里某些要严格按时间标准来控制的产品等等一些我们身边无时无刻都有的,而在这个关键的部分就要用到我们本次设计的时钟来计时了。
下面我们就介绍一下本次设计的基本设计框图。
二、系统主要部分有:1:中央处理器电路:采用单片机芯片机外围电路构成最小系统。
2:时钟信号产生电路:时钟芯片3:人机接口电路:按键电路、数码管显示电路。
三、方案论证及选择1.时钟电路部分方案一:利用单片机内部的定时功能来实现时钟的走时,通过计算可知,使定时器每25ms产生一次中断,当产生40次中断后秒单元将加一,以此类推,从而实现时、分、秒的走时,并加以显示。
基于ds1302闹钟课程设计一、教学目标本课程旨在让学生了解和掌握DS1302闹钟的工作原理和基本使用方法。
通过本课程的学习,学生将能够:1.知识目标:了解DS1302闹钟的内部结构、工作原理和接口定义;掌握DS1302闹钟的基本编程和使用方法。
2.技能目标:能够使用DS1302闹钟进行时间设定和闹钟设置;能够编写简单的程序实现DS1302闹钟的功能。
3.情感态度价值观目标:培养学生对电子技术的兴趣和好奇心,提高学生动手实践的能力,培养学生团队合作的精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.DS1302闹钟的内部结构和工作原理;2.DS1302闹钟的接口定义和编程方法;3.DS1302闹钟的使用方法和操作步骤;4.DS1302闹钟的实验操作和程序编写。
三、教学方法为了更好地实现教学目标,本课程将采用以下几种教学方法:1.讲授法:用于讲解DS1302闹钟的内部结构、工作原理和接口定义;2.讨论法:用于探讨DS1302闹钟的编程方法和使用步骤;3.实验法:用于实践DS1302闹钟的操作和程序编写;4.案例分析法:通过分析具体的DS1302闹钟应用案例,加深学生对DS1302闹钟的理解和应用能力。
四、教学资源为了支持本课程的教学内容和教学方法,我们将准备以下教学资源:1.教材:DS1302闹钟的使用手册和编程指南;2.参考书:关于DS1302闹钟的内部结构和工作原理的书籍;3.多媒体资料:关于DS1302闹钟的内部结构和工作原理的PPT、视频等资料;4.实验设备:DS1302闹钟实验套件,用于学生的实验操作和程序编写。
五、教学评估为了全面、客观地评估学生在DS1302闹钟课程中的学习成果,我们将采用以下评估方式:1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现来评估其学习态度和理解程度;2.作业:布置与课程内容相关的编程和实践作业,评估学生对DS1302闹钟知识的掌握和应用能力;3.考试:安排一次课程结束考试,测试学生对DS1302闹钟内部结构、工作原理、编程方法等知识的掌握程度;4.实验报告:评估学生在实验操作中的表现和实验报告的撰写能力,检验其对DS1302闹钟的实际操作和问题解决能力。
基于DS1302实时日历时钟显示系统的设计摘要本设计是基于DS1302实时日历时钟显示系统的设计进行的实时日历和时钟显示设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。
在设计的同时对单片机的理论基础和外围扩展知识进行了全面的准备。
实时日历和时钟显示的设计过程是在硬件与软件方面进行同步设计。
硬件部分主要由AT89S52单片机、显示数据的LCD12864组成,所以具有人性化的操作和直观的显示效果。
软件方面主要包括时钟程序、键盘程序,显示程序等。
本系统以单片机的C语言进行软件设计,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,以便更简单地实现调整时间及日期显示功能。
所有程序编写完成后,在keil软件中进行调试,成功运行后,将程序烧进实物进行不断的调试直至完全实现所需的功能。
关键词:AT89S52,DS1302,LCD12864,keil,C语言The Design of Display System Based on DS1302 Real-time Calendar ClockABSTRACTThis design is based on the ds1302 calendar in real time clock display system design for real - time clock and calendar display design, you can display the Year Month Day hour minute second and the information, with you can adjust the date and time functions. While the design on the theoretical basis of the microcomputer and peripheral extension knowledge in full.Design of Real - time clock and calendar display synchronization process in terms of hardware and software design. The hardware consists mainly of at89s52 SCM, by lcd12864 display the data, so has the effect of human action and intuitive display. Software includes clock, the keyboard programs, such as display program. The systems in C language for software design of the microcomputer, for ease of expansion and changes, the design of the software has a modular structure, making the programming logic more concise in order to more easily achieve power adjust the time and date display. All programming is completed in KEIL software debugging, after a successful run, continue debugging the program is burned into the real until they have achieved the desired function.KEY WORDS: AT89S52,DS1302,LCD12864,KEIL,C language目录前言 (1)第1章设计目标与方案论证 (3)1.1设计目标 (3)1.2单片机芯片的选择方案和论证 (3)1.3显示模块选择方案和论证 (3)1.4时钟芯片的选择方案和论证 (4)第2章硬件设计 (5)2.1电路设计框图 (5)2.1.1系统硬件概述 (5)2.2 AT89S52单片机 (6)2.3时钟电路模块 (10)2.3.1DS1302的简介 (10)2.3.2 DS1302的应用 (17)2.3.3显示模块的设计 (18)2.4点阵LCD的显示原理 (19)2.4.1 12864点阵型LCD简介 (20)2.4.2 12864LCD的指令系统及时序 (23)第3章系统的软件设计 (27)3.1程序框图的设计 (27)3.2 闹钟程序设计 (27)第4章硬件调试 (31)结论 (33)谢辞 (34)参考文献 (35)附录 (37)前言单片机20世纪70年代就开始发展,凭借极高的的性价比,得到人们的重视,应用范围很广、发展速度很快。
1 引言从古代的滴漏更鼓到近代的机械钟,从电子表到目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进着计时工具。
钟表的数字化,大力推动了计时的精确性和可靠性。
在单片机构成的装置中,实时时钟是必不可少的部件。
目前常用的实时时钟,很多采用单片机的中断服务来实现,这种方式一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许;有的则使用并行接口的时钟芯片,如MC146818、DS12887等,它们虽然能满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂,占用地址、数据总线多,芯片体积大,占用空间多,给其它设计带来诸多不便。
本设计选取串行接口时钟芯片DS1302与单片机同步通信构成数字时钟电路。
其简单的三线接口能为单片机节省大量资源,DS1302的后背电源及对后背电源进行涓细电流充电的能力保证电路断电后仍能保存时间和数据信息等。
这些优点解决了目前常用的实时时钟所无法解决的问题。
该时钟电路强大的功能和优越的性能,在很多领域的应用中,尤其是某些自动化控制、长时间无人看守的测控系统等对时钟精确性和可靠性有较高要求的场合,具有很高的使用价值。
1.1 多功能数字钟的起源1350年6月6日意大利人乔万尼•德•党笛制造了世界上第一台结构简单的机械打点多功能数字钟。
1657年,荷兰人惠更斯首先把重力摆引入机械钟,从而创立了摆钟。
到了20世纪,随着电子工业的迅速发展,电池驱动钟、交流电钟、电机械表、指针式石英电子钟表、数字显示式石英钟表相继问世,多功能数字钟的日差已小于0.5秒。
特别是原子钟的出现,它是原子的振动来控制,是目前世界上最精确的钟,即使经过100万年,其偏差也不会超过1秒钟。
多功能数字钟最早起源于欧洲中世纪的教堂,是完全机械式结构,动力使用重锤,打点钟声完全使用人工撞击铸钟,因此当时一个多功能数字钟工程在建筑和机械结构方面是相当复杂的。
一、引言随着单片机技术的不断发展,其在各个领域的应用越来越广泛。
实时时钟(Real-Time Clock,RTC)作为一种重要的功能模块,被广泛应用于嵌入式系统中,用于实现时间的记录、显示和控制等功能。
本实训报告以单片机为平台,设计并实现了一个实时时钟系统,旨在巩固和深化单片机相关知识,提高动手实践能力。
二、实训目的1. 理解实时时钟的工作原理和基本概念;2. 掌握单片机与实时时钟芯片的接口连接方法;3. 学会使用实时时钟芯片实现时间记录、显示和控制功能;4. 提高单片机编程能力和嵌入式系统设计能力。
三、实训内容1. 实时时钟芯片介绍本实训采用DS1302实时时钟芯片,该芯片具有以下特点:(1)低功耗设计,适用于电池供电的应用场景;(2)支持闰年、星期和夏令时等功能;(3)具有32.768kHz晶振振荡器,提供精确的时间基准;(4)具有64字节RAM,可用于存储数据。
2. 单片机与DS1302的接口连接本实训选用AT89C51单片机作为控制核心,与DS1302的接口连接如下:(1)VCC:连接单片机的5V电源;(2)GND:连接单片机的地;(3)RST:DS1302复位引脚,连接单片机的P1.0引脚;(4)CE:DS1302片选引脚,连接单片机的P1.1引脚;(5)IO:DS1302数据引脚,连接单片机的P1.2引脚;(6)SQW/OUT:DS1302闹钟输出引脚,连接单片机的P1.3引脚。
3. 实时时钟系统设计(1)时间记录通过DS1302芯片的RAM存储功能,实现时间的记录。
具体操作如下:① 初始化DS1302芯片,设置时间基准;② 设置闰年、星期和夏令时等信息;③ 读取当前时间,并存入单片机的内部RAM。
(2)时间显示使用单片机的并行I/O口,将时间数据输出到LED数码管或LCD液晶显示屏,实现时间显示。
具体操作如下:① 设计显示模块的硬件电路;② 编写显示模块的驱动程序,实现时间数据的读取和显示;③ 通过按键操作,实现时间的切换和调整。
课程设计设计题目:基于DS1302的实时时钟设计学生姓名:黄景军指导教师:高峰二级学院:龙蟠学院专业:电气工程及其自动化班级:M11电气工程及其自动化学号: **********摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用。
本设计采用实时时钟芯片DS1302,基于AT89C51单片机的设计制作了具有红外遥控、LED显示、可设定时的电子时钟,达到制作的目的,并用protuse和medwin进行模拟实验。
本报告中主要介绍了系统的硬件设计和软件设计,并用八位共阳极LED数码管,采用查询法查键实现。
关键词:单片机DS1302 AT89C51 共阳极LED数码显示器目录设计任务及主要技术指标和要求 (3)1.1 设计任务 (3)1.2 主要技术指标和要求 (3)二、引言 (3)三、核心芯片简介 (4)3.1 DS1302简介 (5)3.1.1 DS1302引脚功能与内部结构 (5)3.1.2 DS1302的寄存器 (5)3.2 AT89C52简介 (6)四、方案设计和论证 (6)五、软硬件设计 (7)5.1硬件电路设计 (7)5.2软件实现 (8)5.2.1主程序 (8)5.2.2时钟读出程序设计 (12)5.2.3时钟调整程序设计 (13)六、系统调试 (13)七、总结 (14)八、参考文献 (14)一、设计任务及主要技术指标和要求1.1 设计任务:用DS1302时钟芯片设计实时时钟。
1.2 主要技术指标和要求:(1)通过程序直接对实时时钟时间进行设置,启动时钟运行。
用8位数码管显示。
(2)通过按钮对实时时钟时间进行设置,使时钟能正常运行。
(3)其他发挥功能。
二、引言从古代的滴漏更鼓到近代的机械钟,从电子表到目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进着计时工具。
钟表的数字化,大力推动了计时的精确性和可靠性。
在单片机构成的装置中,实时时钟是必不可少的部件。
目前常用的实时时钟,很多采用单片机的中断服务来实现,这种方式一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许;有的则使用并行接口的时钟芯片,如MC146818、DS12887等,它们虽然能满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂,占用地址、数据总线多,芯片体积大,占用空间多,给其它设计带来诸多不便。
本设计选取串行接口时钟芯片DS1302与单片机同步通信构成数字时钟电路。
其简单的三线接口能为单片机节省大量资源,DS1302的后背电源及对后背电源进行涓细电流充电的能力保证电路断电后仍能保存时间和数据信息等。
这些优点解决了目前常用的实时时钟所无法解决的问题。
该时钟电路强大的功能和优越的性能,在很多领域的应用中,尤其是某些自动化控制、长时间无人看守的测控系统等对时钟精确性和可靠性有较高要求的场合,具有很高的使用价值。
三、核心芯片简介3.1 DS1302简介DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。
时钟可工作在24小时格式或12小时(AM/PM)格式。
DS1302与单片机的接口使用同步串行通信,仅用3条线与之相连接。
可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
3.1.1 DS1302引脚功能与内部结构DS1302的引脚功能如表1所示,外形及内部结构如图1所示:表1 DS1302引脚功能表3.1.2 DS1302的寄存器图1 DS1302管脚图及内部结构图DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD 码形式。
其时间寄存器及其控制字见表2。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM 相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器的内容。
DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H--FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
寄存器名命令字取值范围各位内容写操作读操作7 6 5 4 3 2 1 0秒寄存器80H 81H 00--59 CH 10SEC SEC 分寄存器82H 83H 00--59 0 10MIN MIN时寄存器84H 85H01-12或00-2312/24 0 10 HR HR 表2 DS1302的时钟寄存器及其控制字3.2 AT89C52简介图2 AT89S51引脚图功能特性概括:AT89S51提供以下标准功能:40个引脚、4K Bytes Flash片内程序存储器、128 Bytes 的随机存取数据存储器(RAM)、32个外部双向输入/输出(I/O)口、5个中断优先级2层中断嵌套中断、2个数据指针、2个16位可编程定时/计数器、2个全双工串行通信口、看门狗(WDT)电路、片内振荡器及时钟电路。
四、方案设计和论证使用串行接口时钟芯片DS1302设计时钟电路。
该设计方案以单片机AT89C52为主控芯片,以串行时钟芯片DS1302为核心计时芯片,组成数字时钟电路。
该电路不但能准确地计时、附加其它功能,而且,其三线接口可以节省接口资源,在断电后不丢失时间和数据信息。
设计方案接口简单,计时可靠,综合性能良好。
图3 时钟芯片DS1302设计时钟五、软硬件设计5.1硬件电路设计LED数码管采用动态扫描方式显示,P0口为段码输出口,P2口为扫描驱动口,扫描驱动信号经74HC224功率放大来低点亮电源。
计时按键设计了2个,分别接在P3.5,P3.6口,用于设定与加一调整。
DS1302时钟芯片的晶挣频率为32.78KHz。
秒表/时钟计时器的硬件电路如图,采用32.768KHz晶振可有利于提高秒计时的精确性。
图4 DS1302实时时钟硬件仿真电路5.2软件实现5.2.1汇编的主程序#include <reg51.h>//#define uchar unsigned char#define unit unsigned int#define ulong unsigned longsbit BUZZ=p3^7;sbit KEY1=p1^0;sbit KEY2=p1^1;uchar hour_reg,minute_reg,second_reg;void delay(uint);void display(uchar*);void time2str(uchar*);void time_set(void);void main(void){uchar dispram[9];TMOD=0x11;IE=0x82;TR0=1;while(1){time2str(dispram);display(dispram);if (KEY1==0) time_set(); }}void time2str(uchar*ch){ch[0]=hour_reg/10;ch[1]=hour_reg%10;ch[2]=16;ch[3]=minute_reg/10;ch[4]=minute_reg%10;ch[5]=16;ch[6]=second_reg/10;ch[7]=second_reg%10;}void time_set(void){uchar ch[8];uchar i,c;TR0=0;second_reg=0;time2str(ch);do{display(ch);}while(KEY1==0);C=2;while(c){time2str(ch);if(c==2) {ch[0]|=0x80;ch[1]|=0x80;}else {ch[3]|=0x80;ch[4]|=0x80;}display(ch);if(KEY1==0);{c--;do{display(ch);}while (KEY1==0);}if(KEY2==0){if(c==2) hour_reg=(hour_reg+1)%24;else minute_reg=(minute_re+1)%60;for(i=0;i<50;i++) display(ch);}}TR0=1;}void delay(unsigned int dt){register unsigned char bt,ct;for(;dt;dt--)for(ct=2;ct;ct--)for(bt=250;--bt;);}void display(uchar*disp_ram){static uchar disp_count;unsigned char i,j;unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0xff};disp_count=(disp_count+1)&0x7f;for(i=0;i<8;i++){j=disp_ram[i];if_j&0x80) p0=9disp_count>32)? table[j&0x7f]:0xff; else p0=table[j];p2=0x01<<i;delay(1);p0=0xff;p2=0;}}void T0_time(void)interrupt 1{static uchar T0_count=0;TL0=0xb0;TH0=0x3c;T0_count>=20)(T0_count=0;second_reg++;if(second_reg>=60){second_reg=0;minute_reg++;if (minute_reg>=60){minute_reg=0;hour_reg=(hour_reg+1)%24;}}}}5.2.2时钟读出程序设计图5 时钟读出程序流程5.2.3时钟调整程序设计图6 时钟调整程序流程六、系统调试当一切准备就绪,开始调试。