电子日历单片机课程设计

合集下载

单片机课程设计-电子日历

单片机课程设计-电子日历

湖南科技大学信息与电气工程学院《课程设计报告》题目:电子日历专业:通信工程班级: 3班姓名:黄夏妮学号: 1304040322指导教师:陈君2016年 6 月 16 日单片机原理与应用课程设计评阅书信息与电气工程学院课程设计任务书2015—2016学年第二学期专业:通信工程班级: 3班学号: 1304040322 姓名:黄夏妮课程设计名称:单电片机原理与应用设计题目:电子日历完成期限:自 2016 年 6 月 6 日至 2016 年 6 月 17 日共 2 周设计依据、要求及主要内容(可另加附页):设计依据:本方案以STC15F2K60S2单片机作为主控核心,与时钟芯片、LED显示、按键等模块组成硬件系统,通过《单片机原理与应用》这门课的课程设计,学生应能对STC15系列单片机有一个全面的认识,掌握以STC15系列单片机为核心的电子电路的设计方法和应用技术。

设计要求:(1)利用STC15F2K60S2单片机作为主控器组成一个电子日历和电子钟。

(2)利用LED分别显示当前时间和日历。

(3)利用尽可能少的开关实现:校正日历和时间(4)定制闹钟(时、分、表)设计内容:该课程设计是利用STC15F2K60S2单片机内容的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。

设计的电子时钟通过数码管显示,并通过按键实现时间和暂停、启动控制等。

我们选择的方法是单片机开发设计使用的传统方法,通过本次设计,可以了解整个单片机开发的流程。

文章首先介绍了单片机的基本知识,然后同时给出了框图,流程图等。

论文涵盖了从系统设计,编程,原理图等产品开发的基本过程。

指导教师(签字):批准日期:年月日摘要本设计是根据我们所学的单片机课程,按照大纲要求利用STC15F2K60S2单片机作为主控器组成一个电子日历和电子钟。

随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类对时钟进行不断研究,不断创新纪录。

单片机课程设计 电子日历时钟显示器设计

单片机课程设计 电子日历时钟显示器设计

目录1.题目设计要求 (1)2.开发平台简介 (1)3.系统硬件设计 (2)3.1设计原理 (2)3.2器件的功能与作用 (2)3.2.1 MCS51单片机AT89C51 (2)3.2.2复位电路 (3)3.2.3晶振电路 (4)3.2.4 DS1302时钟模块 (4)3.2.5 引脚功能及结构 (4)3.2.6 DS1302的控制字节 (5)3.2.7 数据输入输出(I/O) (5)3.2.8 DS1302的寄存器 (6)3.2.9 液晶显示LCD1602 (6)3.2.10 串行时钟日历片DS1302 (8)4.系统软件设计 (10)4.1程序流程 (10)4.2程序代码 (10)5.系统仿真调试 (20)5.1仿真原理图设计 (20)5.2仿真运行过程 (21)5.3仿真运行结果 (21)6.总结 (21)7.参考文献 (22)1.题目设计要求通过串行日历时钟芯片DS1302生成当前日期和是时间,通过IO口传输到AT89c52芯片中,然后再将AT89c52接收到的数据输出到LCD上。

要求LCD上显示的日期和时间与当前系统时间保持一致。

2.开发平台简介2.1系统仿真平台ProteusProteus软件是由英国Labcenter Electronics公司开发的EDA工具软件,已有近20年的历史,在全球得到了广泛应用。

Proteus软件的功能强大,它集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计,还能够对微处理器进行设计和仿真,并且功能齐全,界面多彩。

和我们手头其他的电路设计仿真软件,他最大的不同即它的功能不是单一的。

另外,它独特的单片机仿真功能是任何其他仿真软件都不具备的。

2.2软件开发平台Keil CKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

基于单片机的万年历课程设计

基于单片机的万年历课程设计

一、前言随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。

由其是单片机技术的应用产品已经走进了千家万户。

电子万年历的出现给人们的生活带来的诸多方便。

本设计是基于51系列的单片机进行的电子万年历设计,采用八位数码管显示年月日时分秒及温度信息,具有可调整日期和时间功能。

时间、日期调整由三个按键来实现,并可对闹铃开关进行设置。

日历能显示阳历和阴历年、月、日以及星期、时、分、秒。

设计以STC89C52RC 单片机为核心,构成单片机控制电路;以DS1302时钟芯片作为万年历信号发生器;以DS18B20作为检测温度的传感器。

关键词时钟电钟;DS1302;DS18B20;数码管;单片机。

二、系统概述及总体方案2.1系统概述本电子万年历采用单片机控制技术和数码管显示方案,可以很好的完成万年历和实时温度显示。

它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能。

对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。

2.2总体方案2.2.1单片机芯片:采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超低压工作;同时也与MCS-51系列单片机完全相同,该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。

所以选择采用AT89S52作为主控制系统.2.2.2 时钟芯片:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.且同组同学已从Maxim申请到了这种芯片,所以本设计采用了这种芯片。

工学单片机课程设计电子万年历

工学单片机课程设计电子万年历

本科课程设计课程名称:单片机原理与接口技术课设项目:电子万年历课程设计课设地点:专业班级:学号学生姓名:同组人:指导教师:2012年05月30日设计题目:电子万年历设计任务与要求:1、显示年月日时分秒及星期信息2、具有可调整日期和时间功能3、增加闰年计算功能4、增加了显示温度的模块设计方案:由于我是在网上购买的现成的开发板来学习和使用的,故在方案的选择上也只能限于开发板设计好的电路和芯片.系统分为主控模块、时钟电路模块、温度检测模块,按键扫描模块,LCD显示模块,电源电路、复位电路、晶振电路等模块。

主控模块采用AT89C52单片机,按键模块用四个按键,用于调整时间,显示模块采用LCD1602,时钟电路模块采用DS1302时钟芯片实现对时间、日期的操作,温度模块使用18B20实现度温度的操作。

STC89C52,ATMEL的51系列单片机,价格便宜,在国内使用者非常多。

支持串口下载,使用非常方便,且具有很大的价格优势。

缺点是仅支持串口下载,不支持在线下载,使用中会有些不方便。

1.显示模块:方案一:普通的共阴LED数码管,用点阵LED实现文字的显示.方案二:LCD1602液晶显示屏.LED数码管价格适中,对于数字显示效果较好,而且使用单片机的端口也较少; LCD1602液晶显示屏,显示功能强大,可以显示大量文字、图形,显示多样性,清晰可见,价格相对LED数码管来说要昂贵些,但是基于本设计显示的东西较多,若采用LED数码管的话,所需数码管较多,而且不利于控制,因此选择LCD1602作为显示模块.故选择方案二.2.时钟电路模块:方案一:用单片机的定时器产生1S的时基信号,然后用程序来实现时钟的时、分、秒计时,同时用程序来产生年、月、日。

该方案优点是减少使用外设芯片;缺点是用单片机模拟时钟,使编程量增大,且用定时器产生时基信号,精度不高。

方案二:DS1302是一款高性能的实时时钟芯片,以计时准确、接口简单、使用方便、工作电压范围宽和低功耗等优点,得到广泛的应用,实时时钟有秒、分、时、星期、日、月和年,月小于31天时可以自动调整,并具有闰年补偿功能,而且在掉电时能够在外部纽扣电池的供电下继续工作。

单片机课程设计--电子日历的制作

单片机课程设计--电子日历的制作

课程设计课程单片机课程设计题目院系电气信息工程学院测控技术与仪器系专业班级学生姓名学生学号指导教师2013年 7 月 8日东北石油大学课程设计任务书课程单片机课程设计题目电子日历的制作专业测控技术与仪器姓名学号一、任务以AT89C51单片机为控制核心,利用电子日历芯片DS1302及LCD液晶显示屏设计出一种具有时间及日期显示、预约定时等基本功能的电子日历。

二、设计要求[1] 掌握LCD液晶显示屏的工作原理;2、该电子日历可以显示,年、月、日、时、分、秒及星期等内容;3、具有4个按键操作来设置现在的时间。

操作键K1- K6功能如下:(1)操作键K1:进入设置现在的时间;(2)操作键K2:设置月;(3)操作键K3:设置日;(4)操作键K4:设置小时;(5)操作键K5:设置分钟;(6)操作键K6:确认完成设置。

4、基本电路包括:单片机最小系统、LCD显示电路、蜂鸣器电路、独立键盘电路等;5、提交设计报告、电路图及程序源码。

三、参考资料[1] 刘国钧,陈绍业,王凤翥.图书馆目录[M].北京:高等教育出版社,1957.15-18.[2] 刘润华,刘立山.模拟电子技术[J].山东:石油大学出版社,2003.[3] 苏成富.彩灯控制器[J].北京:电机电器技术,2000,(01).[4] 祝富林.音乐彩灯电路CS9482[J].北京:电子世界,1995,(12).[5] 彭介华.电子技术课程设计指导[J].北京:高等教育出版社,1997.完成期限 2013.7.1 - 2013.7.10指导教师专业负责人2013年 6月 29 日目录第1章绪论 (1)1.1 LED点阵显示屏概述 (1)1.2 LED显示屏控制技术状况 (1)1.3 本设计任务 (2)第2 章总体方案论证与设计 (3)2.1 LED驱动模块 (3)2.2 数据存储模块 (3)2.3 总体硬件组成框图 (4)第3章系统硬件设计 (5)3.1 LED驱动模块的硬件设计 (5)3.2数据存储电路设计 (6)3.3 PC机通信模块的设计 (7)第4章系统的软件设计 (9)4.1 主程序设计 (9)4.2 驱动显示子程序设计 (10)第5章系统调试与测试结果分析 (12)5.1 使用的仪器仪表 (12)5.2 系统调试 (12)5.3 测试结果 (12)结论 (13)参考文献 (14)附录1 程序 (15)第1章绪论近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

单片机课程设计报告电子万年历

单片机课程设计报告电子万年历

单片机课程设计报告电子万年历单片机课程设计报告:电子万年历一、设计简介在本次单片机课程设计中,我们选择了电子万年历作为设计主题。

电子万年历是一种结合了数字电路、单片机技术和实时时钟(RTC)技术的电子产品,它具有显示年份、月份、星期、日、时、分、秒的功能,还可以根据用户的需求进行定时、闹钟、报时等功能。

二、硬件设计我们采用了基于8051内核的单片机作为主控芯片。

该单片机具有丰富的I/O 端口,适于实现各种复杂的输入输出操作。

此外,它还内置了定时器和中断控制器,可以很方便地实现实时时钟功能。

1.显示模块:为了方便用户查看时间信息,我们选用了LCD显示屏作为显示设备。

LCD屏具有功耗低、体积小、显示内容丰富等优点。

2.实时时钟(RTC)模块:我们采用了常用的DS1302芯片作为实时时钟模块。

该芯片可以提供秒、分、时、日、星期、月、年的信息,而且还有可编程的报警功能。

3.按键模块:为了实现人机交互,我们设计了一组按键。

用户可以通过按键来调整时间、设置闹钟等。

4.电源模块:为了保证系统的稳定工作,我们采用了稳定的5V直流电源。

三、软件设计我们采用了C语言编写程序。

程序主要由以下几个部分组成:1.主程序:主程序主要负责读取RTC模块的时间信息,并控制LCD显示屏显示时间。

同时,主程序还要检测按键输入,根据用户的需求进行相应的操作。

2.RTC驱动程序:为了正确地读取和设置DS1302芯片的时间信息,我们编写了相应的驱动程序。

驱动程序包括初始化和读写寄存器两部分。

3.按键处理程序:按键处理程序用于检测按键输入,并根据按键值执行相应的操作。

比如,用户可以通过按键来增加或减少时间,设置闹钟等。

4.LCD显示程序:LCD显示程序用于控制LCD显示屏的显示内容。

在本设计中,我们使用了点阵字符库,将时间信息以字符的形式显示在LCD屏上。

四、测试与验证为了确保我们的电子万年历设计正确无误,我们进行了以下的测试和验证:1.硬件测试:首先,我们对硬件电路进行了测试,确保每个模块都能正常工作。

单片机课程设计(论文)电子万年历的设计

单片机课程设计(论文)电子万年历的设计

目录1设计要求 (2)2方案论证与对比 (2)液晶显示器控制方式选择 (2)2.2并行接口动态显示电路选择 (2)2.3LCD液晶显示器的接口方法选择 (3)液晶显示器限流电阻选择 (4)3系统硬件电路的设计 (5)主控模块AT89C52 (5)3.2显示模块电路设计 (6)4系统软件设计 (7)4.1系统软件概述 (7)4.2主要子程序设计 (8)4.2.1 时钟中断服务子程序设计 (8)时间调整子程序设计 (9)4.2.3 判断闰年子程序设计 (9)4.2.4 精度分析分析与计算 (10)4.2.5 第一次初值的设置 (10)4.2.6 重载初值的方法 (10)5系统仿真与测试 (11)5.1系统仿真 (11)功能测试 (11)6总结 (12)参考文献 (13)1设计要求本课题以AT89C52单片机为核心,设计并制作出智能LCD电子钟,具有以下基本功能:能进行时间、年份、日期、星期显示;能区分是否闰年;能检测室温并显示。

扩展功能部分可以通过控制按键使时间暂停、可以调整校正时间并通过按键切换轮流显示时间、年份、日期、星期。

2方案论证与对比2.1液晶显示器控制方式选择采用LCD液晶显示,具有超精致影像画质、十足平面显示、节省空间、节省能源等优点,但按控制方式不同,LCD可分为被动矩阵式LCD及主动矩阵式LCD两种。

可根据不同需要采用不同的方式。

方案一被动矩阵式LCD被动矩阵式LCD在亮度及可视角方面受到较大的限制,反应速度也较慢。

由于画面质量方面的问题,使得这种显示设备不利于发展为桌面型显示器,但成本低廉。

方案二主动矩阵式LCD目前应用比较广泛的主动矩阵式LCD,也称TFT-LCD(Thin Film Transistor-LCD,薄膜晶体管LCD)。

TFT液晶显示器是在画面中的每个像素内建晶体管,可使亮度更明亮、色彩更丰富及更宽广的可视面积。

与CRT显示器相比,LCD显示器的平面显示技术体现为较少的零件、占据较少的桌面及耗电量较小,但CRT技术较为稳定成熟。

单片机简易日历课程设计

单片机简易日历课程设计

单片机简易日历课程设计一、课程目标知识目标:1. 理解单片机的基础知识,掌握其内部结构和功能;2. 学习简易日历的原理,了解日期、时间与单片机编程的关系;3. 掌握C语言编程基础,运用其进行单片机程序设计。

技能目标:1. 能够独立完成单片机的硬件连接,进行基本的程序下载与调试;2. 运用C语言编写简易日历程序,实现日期、时间的显示与修改;3. 培养学生动手实践能力,提高问题分析及解决能力。

情感态度价值观目标:1. 培养学生对单片机编程的兴趣,激发创新意识;2. 培养学生的团队协作精神,提高沟通与交流能力;3. 培养学生严谨、细心的学习态度,养成良好的编程习惯。

分析课程性质、学生特点和教学要求,本课程旨在通过单片机简易日历的设计与实现,让学生掌握单片机基础知识、编程技能,并培养其团队协作和创新能力。

课程目标具体、可衡量,便于教学设计和评估。

通过本课程的学习,学生将能够独立完成单片机程序的编写与调试,为后续相关课程打下坚实基础。

二、教学内容1. 单片机基础知识:介绍单片机的内部结构、工作原理及功能,涉及教材第1章内容;- 单片机硬件结构及引脚功能;- 单片机工作原理及指令系统。

2. C语言编程基础:学习C语言基础知识,掌握基本语法,为单片机编程打下基础,涉及教材第2章内容;- 数据类型、变量与常量;- 运算符、表达式及语句;- 控制结构(顺序、选择、循环)。

3. 简易日历原理:学习日期、时间的计算方法,了解日历程序设计思路,涉及教材第3章内容;- 日期、时间的基本概念;- 日历程序设计思路及算法。

4. 单片机程序设计:结合C语言,学习单片机程序编写与调试,实现简易日历功能,涉及教材第4章内容;- 单片机程序框架及编程规范;- 简易日历程序的编写与调试;- 硬件连接及程序下载。

5. 实践操作:安排学生进行单片机简易日历的实践操作,巩固所学知识,涉及教材第5章内容;- 硬件连接与程序下载;- 程序调试与优化;- 团队合作、沟通交流。

单片机万年历课程设计

单片机万年历课程设计

单片机万年历课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和万年历的功能需求。

2. 使学生掌握单片机编程的基本语法和逻辑结构。

3. 帮助学生掌握如何在单片机上实现日期、时间的计算与显示。

技能目标:1. 培养学生运用单片机进行项目设计的能力,特别是万年历的实际应用。

2. 培养学生独立编程和调试程序的能力,解决实际项目中遇到的问题。

3. 提高学生团队协作能力和项目管理的意识。

情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学生的创新意识和探索精神。

2. 增强学生面对困难的勇气和毅力,培养他们积极解决问题的态度。

3. 通过团队合作,培养学生的集体荣誉感和责任感。

课程性质:本课程为实践性强的设计与制作课程,以单片机技术为核心,结合编程和电子技术,实现万年历的制作。

学生特点:学生为高年级学生,已具备一定的单片机基础知识,有编程基础,具备独立思考和解决问题的能力。

教学要求:注重理论与实践相结合,强调动手操作和实际应用。

教学过程中要关注学生的个体差异,提供适当的指导与帮助,确保每个学生都能在原有基础上得到提升。

通过课程学习,使学生能够将所学知识应用于实际项目中,达到学以致用的目的。

二、教学内容1. 单片机基础回顾:复习单片机的硬件结构、工作原理及I/O口编程。

- 教材章节:第三章单片机硬件结构与工作原理;第四章I/O口编程。

2. 定时器与中断:学习单片机定时器的工作原理,掌握中断编程方法。

- 教材章节:第五章定时器与中断;第六章中断编程。

3. 日期时间计算:讲解日期时间的计算方法,如何在单片机中进行实现。

- 教材章节:第七章日期时间计算;第八章单片机实现日期时间计算。

4. 显示技术:学习LED显示技术,掌握动态扫描显示方法。

- 教材章节:第九章LED显示技术;第十章动态扫描显示。

5. 万年历设计与实现:结合所学知识,设计并实现单片机万年历。

- 教材章节:第十一章项目设计与实现;第十二章万年历设计与制作。

单片机课程设计(可调式中文电子日历)

单片机课程设计(可调式中文电子日历)

摘要万年历的功能可实现年、月、日、时、分、秒和星期的显示。

随着社会的发展日历的功能越来越强大,精确度越来越高。

本次设计的日历采用DS1302时钟芯片,该芯片精确度高,性能可靠。

用LCD12864液晶屏,既可以显示数字又可以显示汉字,方便了人们的生活。

本设计总体分为硬件部分和软件部分。

硬件部分可分为:时钟芯片DS1302、AT89C51和LCD12864等。

本设计非常适合家庭使用。

电源采用+5V电压供电。

走时精确,是现代家庭必备的设备之一。

关键词:单片机,万年历, DS1302,时钟芯片1引言可调式电子日历与时钟小巧便于携带,界面清爽,一目了然,方便的知晓当前时间,并可对时间做出修改,实在是居家旅行日常生活之必备用品。

在现今的可调式电子日历与时钟具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。

2.总体设计2.1基本原理硬件主要涉及到:AT89C51、DS1302、LCD12864等。

软件通过框图编写出程序。

AT89C51主要功能是存储程序、根据程序的内容对各个端口进行判断并做出相应的处理。

LCD12864主要的功能是实现年、月、日、时、分、秒的显示效果。

实时时钟DS1302可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。

2.2系统总体框图及设计思路3.详细设计3.1 硬件设计3.1.1 DS1302芯片及原理介绍DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。

实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。

工作电压宽达2.5~5.5V。

采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。

DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。

单片机课程设计电子万年历

单片机课程设计电子万年历

单片机课程设计电子万年历随着科技的不断发展,电子技术已经成为人们生活、工作不可或缺的一部分。

而单片机则是电子技术中的重要组成部分。

随着单片机技术的不断升级,我们可以将其应用到更多的领域中,比如电子万年历。

电子万年历是一种集成了日期、时间和闹钟等功能的电子设备,它可以准确地显示时间,并且可以进行时间的调整、计数和闹钟的设置。

电子万年历通常采用单片机控制芯片和准确的时钟芯片,可以实现精确的时间测量和计算。

在单片机课程设计中,电子万年历是一种常见的课程设计项目,它涉及到单片机的基础知识、控制芯片的编程、外围设备的接口以及显示器的驱动等方面。

下面将详细介绍如何设计一款功能齐全、性能稳定的电子万年历。

一、硬件设计电子万年历的硬件设计包括单片机控制芯片的选型、时钟芯片的选型、LED数码管的选型以及外围电路的设计等方面。

1. 单片机控制芯片的选型单片机控制芯片是电子万年历的核心部分,它决定了万年历的计算性能和功能扩展能力。

在选型时,我们需要考虑芯片的性能、价格、开发工具的可用性以及支持的外围设备等因素。

常见的单片机控制芯片包括AT89S52、PIC16F877A、STM32、ARM等系列。

在实际应用中,我们可以根据项目需求进行选择。

2. 时钟芯片的选型时钟芯片是电子万年历中不可缺少的一部分,它决定了万年历的时间准确度和计算精度。

在选型时,我们需要考虑芯片的稳定性、精度、功耗和价格等因素。

常见的时钟芯片包括DS1302、DS1307、DS3231等。

这些芯片采用了时分秒、日月年等多种时间单位,可以满足不同计算需求。

3. LED数码管的选型LED数码管是电子万年历的显示设备,它决定了万年历的外观和显示效果。

在选型时,我们需要考虑LED数码管的亮度、颜色、尺寸和价格等因素。

常见的LED数码管包括共阳、共阴、四位、八位等多种类型。

在选型时,我们需要根据实际需求进行选择。

4. 外围电路的设计外围电路是电子万年历中的重要组成部分,它包括按键、蜂鸣器、电源管理等多个模块。

单片机课程设计--基于51单片机的万年历

单片机课程设计--基于51单片机的万年历

单片机课程设计--基于51单片机的万年历单片机课程设计基于 51 单片机的万年历一、引言在现代生活中,时间的准确记录和显示对于我们的日常生活和工作具有重要意义。

万年历作为一种能够同时显示年、月、日、星期、时、分、秒等信息的设备,给人们带来了极大的便利。

本次课程设计旨在利用 51 单片机实现一个简单实用的万年历系统。

二、系统设计方案(一)硬件设计1、单片机选型选择经典的 51 单片机,如 STC89C52 单片机,其具有性能稳定、价格低廉、资源丰富等优点,能够满足本设计的需求。

2、显示模块采用液晶显示屏(LCD1602)作为显示设备,能够清晰地显示数字和字符信息。

3、时钟芯片选用DS1302 时钟芯片,它可以提供精确的实时时钟数据,包括年、月、日、星期、时、分、秒等。

4、按键模块设置三个按键,分别用于调整时间、选择调整项(年、月、日、时、分、秒等)以及切换显示模式(正常显示和设置模式)。

(二)软件设计1、主程序流程系统初始化后,首先读取 DS1302 中的时间数据,并将其显示在LCD1602 上。

然后进入循环,不断检测按键状态,根据按键操作进行相应的时间调整和显示模式切换。

2、时间读取与显示程序通过与 DS1302 进行通信,读取实时时间数据,并将其转换为适合LCD1602 显示的格式进行显示。

3、按键处理程序检测按键的按下状态,根据不同的按键执行相应的操作,如调整时间、切换显示模式等。

三、硬件电路设计(一)单片机最小系统单片机最小系统包括单片机芯片、晶振电路和复位电路。

晶振电路为单片机提供时钟信号,复位电路用于系统初始化时将单片机的状态恢复到初始值。

(二)显示电路LCD1602 显示屏通过数据总线和控制总线与单片机相连。

数据总线用于传输要显示的数据,控制总线用于控制显示屏的读写操作和显示模式。

(三)时钟电路DS1302 时钟芯片通过串行通信接口与单片机进行通信。

单片机通过发送特定的指令和数据,对 DS1302 进行读写操作,获取或设置时间信息。

单片机课程设计-电子万年历

单片机课程设计-电子万年历

单片机及接口技术综合实验——————电子万年日历系统一、题目:电子实时时钟/万年日历系统二、功能要求:1.基本要求:⑴显示准确的北京时间(时、分、秒),可用24小时制式;⑵随时可以调校时间。

2.发挥要求:⑴增加公历日期显示功能(年、月、日),年号只显示最后两位;⑵随时可以调校年、月、日;⑶允许通过转换功能键转换显示时间或日期。

三、方案考虑:1、硬件方案:⑴显示器采用6位LED数码管(共阳),可分别显示时间或日期;(通过KB键可切换)⑵显示器的驱动采用动态扫描电路形式,以达到简化电路的目的。

但要注意所需的驱动电流比静态驱动时要大,因此要增加驱动电路。

可采用74LS244或者晶体管;其中74ls244是用来驱动段选码,晶体管是驱动位选码!⑶采用“一键多用方案”,以减少按键数目。

本方案只采用了两个按键⑷整体上要考虑:结构简单、布局美观、操作方便、成本低廉。

2、设计电路图如下:3、元件清单:⑴89C51 1个⑵IC座(40脚)3个(其中1个用于接插89C51、2个用于接插LED段数码管)。

⑶74LS244 1个(用于驱动6个共阳的LED段数码管)。

⑷IC座(20脚)1个(用于接插74LS244)。

(5)显示器:LED_8段数码管(共阳型)6个三极管:(6)PNP(8550)6个(用于驱动6个共阳型LED段数码管)。

(7)微型开关:3个(其中1个用于复位电路、其它用于键盘)。

(8)晶体振荡器(12MHz):1个(用于振荡电路)。

(9)电阻器:⑴3KΩ1个(用于系统复位电路)。

⑵1KΩ6个(用作PNP三极管基极电阻)。

⑶100Ω7个(驱动器用作74LS244输出限流电阻)。

(10)电容器:⑴10μF 1个(用于系统复位电路)。

⑵30 pF 2个(用于系统振荡电路)。

(11)其它:⑴万能电路板(10×15):1块⑵焊锡条:2米⑶带插头、座的电源端子:1条⑷各种颜色外皮的导线:各1米(12)工具:1.电烙铁:1把2.剪钳:1把3.镊子:1把4.万用表:1个(13)设备:编程器(MEP300或TOP851)6个4、软件方案:只使用第一组工作寄存器,功能分布如下:⑴“时钟”基准时间由单片机内部定时中断来提供,定时时间应该乘以一个整数得到“秒”,且不宜太长或太短,最长不能超过16位定时器的最长定时时间,最短不能少于定时中断服务程序的执行时间。

单片机课设-电子日历(12864显示)

单片机课设-电子日历(12864显示)

温度传感器 DS18B20
t6963c控制的12864LCD
Proteus电路仿真
总电路图
制 作 实 物 图
经过调试结果
心得体会:
单片机这门课是一门实验性很强的课程,它不仅较为我们学习了 许多新知识,同时,也提高了独立分析问题、解决问题的能力和动手能 力。相信课程设计一定会为我们打下了良好的实践基础。 本系统电路较为简单,但软件工作量较大。在系统软件设计过程中, 利用C语言编程,模块化程序设计,由于程序率为复杂,数据处理指令 较多,逻辑性强,对与软件设计工作提出了较高要求。
系统设计原理框图
原来现实他们是这样的~~
设计效果图
设计以AT89C52单片机为核心,构成单片机控制电路, 结合DS1302时钟芯片和DS18B20,日历,温度,时间全部 信息用液晶12864显示。
时钟芯片DS1302
DS1302与CPU的连接需要三条 线,即SCLK(7)、I/O(6)、 RST(5)。
1.独特条口 线即可实现微处理器与DS18B20的 双向通讯。
2.测温范围 -55℃~+125℃,固 有测温误差(注意,不是分辨率, 这里之前是错误的)1℃。 3.支持多点组网功能,多个DS18B20可以 并联在唯一的三线上,最多只能并联8个, 实现多点测温,如果数量过多,会使供电 电源电压过低,从而造成信号传输的不稳 定。
电子日历设计与实现
let's
go
第八小组成员介绍
12864LCD显示
基于单片机的电子日历设计
介绍 日历是人们不可或缺的日常用品。但一般日历都为纸制用品,使用不便,寿命不 长。电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺陷。本文设计的 电子万年历属于小型智能家用电子产品。利用单片机进行控制,实时时钟芯片进行记 时,外加键盘调整电路和显示电路,可实现时间的调整和显示。同时加了温度显示。

单片机课程设计--基于51单片机的万年历

单片机课程设计--基于51单片机的万年历

单片机课程设计报告万年历的设计基于51单片机的万年历摘要:电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。

它可以对年、月、日、周日、时、分、秒进行计时,使用寿命长,误差小。

对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。

该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。

在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。

万年历的设计过程在硬件与软件方面进行同步设计。

硬件部分主要由AT89C52单片机,LCD显示电路,以及调时按键电路等组成。

在单片机的选择上本人使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。

显示器使用了1602液晶显示,并且使用蜂鸣器实现了整点报警的功能,温度测试的功能实现使用了DS18B20,并实现了温度过高或过低时的温度报警。

软件方面主要包括日历程序、时间调整程序,显示程序等。

程序采用C语言编写。

所有程序编写完成后,在KeilC51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真,并最终实现基本要求。

综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

一、设计要求基本要求:1,8 个数码管上显示,显示时间的格式为(假如当前时间是19:32:20)“19-32-20”;2,具有日历功能;③时间可以通过按键调整。

发挥部分:④具有闹钟功能(可以设定多个)。

二:总体设计电路设计框图系统硬件概述本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由单片机定时功能提供;温度的采集由DS18B20构成,它具有独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯,使用时不需要额外的外围电路。

基于单片机的日历设计方案

基于单片机的日历设计方案

基于单片机的日历设计方案基于单片机的日历设计方案一、设计背景随着社会的发展,人们的生活节奏越来越快,很容易忽略一些重要的时间节点。

为了方便人们管理时间,并准确地知道日期和时间,设计一款基于单片机的日历是很有必要的。

二、设计目标本设计方案旨在设计一款简单易用、功能全面的基于单片机的日历,具有日期显示、时间显示、闹钟设置等功能。

三、设计方案1. 硬件设计:(1)单片机选择:选择一款具有丰富外设和易于编程的单片机,如STC89C52系列。

(2)显示模块:选择具有较大尺寸和清晰度的液晶显示屏作为日期和时间显示模块。

(3)输入设备:选择合适的按键开关作为用户输入设备,用于设置日期、时间和闹钟等参数。

(4)控制电路:根据单片机引脚接口和外设引脚的要求设计相应的控制电路,实现单片机与显示模块、输入设备的连接和控制。

2. 软件设计:(1)主控程序设计:编写主控程序,主要包括日期和时间的自动更新、闹钟的设置和响铃、功能菜单和参数设置等功能。

(2)日期和时间显示:通过单片机控制液晶显示屏以特定的格式显示当前日期和时间。

(3)闹钟设置:利用按键开关在特定的时间设定闹钟,并在设定的时间到达时触发闹钟响铃。

(4)功能菜单和参数设置:通过按键开关选择不同的功能菜单,如日期设置、时间设置、闹钟设置等,然后根据要求进行参数设置。

四、预期效果该基于单片机的日历设计方案具有以下预期效果:1. 简单易用:用户可以通过按键进行日期、时间和闹钟等参数的设置。

2. 功能全面:可以显示日期、时间,并且具备闹钟设置和响铃的功能。

3. 可靠稳定:硬件电路稳定可靠,软件程序运行准确无误。

五、实施计划1. 准备所需材料和器件,并组装硬件电路。

2. 编写单片机控制程序,实现主控功能。

3. 测试硬件电路和软件程序,确保功能正常。

4. 对设计进行优化和完善,改善用户体验。

5. 编写设计文档,总结设计经验。

六、总结本设计方案基于单片机的日历设计,具备日期显示、时间显示、闹钟设置等功能,能够方便人们管理时间,并提醒重要的时间节点。

单片机电子日历和温度表的设计课程设计

单片机电子日历和温度表的设计课程设计

电子日历和温度表的设计专业:学号:姓名:指导老师:时间:一、任务书题目2 电子日历和温度表的设计(一)设计要求(不能采用专用芯片):(1)时间显示:年、月、日(各2位)(2)日历参数的手动设置,设置参数,每次按下按键时,应伴随有蜂鸣器提示声。

(3)实现实时温度显示功能(每秒刷新一次),温度测量范围-40~+60C(4)每当月份和年份变化时,声光报警提,如长短声,音乐等。

时,声光报警提示。

(5)当温度超过38度,或低于零下-10C(6)设计一种用外部中断方式触发的显示或声音提示模式,当触发时,停止显示时间,显示或输出特定的模式(过程不小于1分钟),推出中断处理后,能够显示正确时间。

(二)扩充功能:(1)防止极性接反,电压不足时,报警提示。

(2)显示星期的功能。

(3)重要节日提示功能,声光提示(声音,LED闪烁等)。

二、摘要本设计主要分为电子日历、温度显示功能和星期显示功能三个部分,实现年月日的显示和温度的采集显示及温度报警、星期显示功能。

时间显示年月日各两位,能够手动设置日历参数,并能在月份和年份跳转以及重要日期时蜂鸣显示;温度表采集温度并每秒刷新显示。

设计时用STC89C52单片机T0以中断方式产生周期为50ms的脉冲信号,通过秒,分,时进位,实现一天,逐次累加,满该月天数进位,满12月进位一年。

用软件实现闰年的判断,并判断重要节日实现蜂鸣警报。

年月日的显示用74LS245驱动并用集成的8位数码显示管显示,温度的采集选用DS18B20温度传感器,驱动和显示和电子日历部分相同,星期的显示同电子日历。

由单片机把各个部分联系到一起,综合完成设计要求的实现。

关键字:单片机STC89C52 电子日历星期显示温度显示三、目录1. 任务书 (2)2. 正文 (5)(1) 前言 (5)(2) 方案分析 (6)原理说明 (6)设计时所用主要元器件 (6)主要硬件元件分析 (7)方案说明 (7)电子日历方案 (6)温度表方案 (12)星期显示方案 (14)(3)调试 (15)(1)功能实现过程 (15)(2)调试出现的问题及解决方法 (17)整体显示 (17)实物显示 (17)结论 (18)附录 (19)硬件原理图 (19)程序清单 (20)四、正文(一)前言电子日历和温度表的设计,主要采用51单片机74LS245,74LS138,等来实现的。

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

单片机课程设计学院:电气与信息工程学院专业:电子信息工程班级:姓名:学号:指导教师:电子日历的设计一实验目的:现今,高精度的计时工具大多数都使用了石英体振荡器,如电子钟,石英表,石英钟都采用了石英技术。

这种时钟走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时,译码代替机械式转动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

本设计利用AT89C51为核心,辅以必要的芯片和外围电路,构成一个电子日历,旨在:1、加深对单片机课程的全面认识和掌握,对单片机课程的应用进一步的了解。

2、掌握单片机的接口技术及相关外围芯片的外特性、控制方法。

3、通过这次课程设计将单片机软硬件结合起来,对程序进行编辑,校验,锻炼理论联系实际的能力。

4、通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

5、掌握单片机和外部电路的连接特性,更好地把握单片机的特性二系统设计要求1.设计一个可以显示年月日、时间,并有闹钟功能的电子日历。

2.具有时间设置功能。

3.具有定时闹钟功能。

三系统设计环境开发软件:Keil c51,Proteus6.9, STC-ISP四实验接线图五.实验说明与连线用一片8255进行扩展,8255的PA,PB口外接6位LED数码管构成时钟显示器。

单片机CPU的P1口外界4个按键K1、K2、K3、K4。

利用这6个LED显示当前时间。

P3.5口外界一个二极管作为闹钟提示标志,当到达设定的闹钟时间,改灯自动亮30秒,随即熄灭。

四个按键的功能分别是:K1:日期切换按键;K2:设置键,用于选择需要设置的位;K3:加1键,设置时,按下即加1;K4:显示闹钟时间键;六.主要实验设备电烙铁、数字万用表、导线若干89c51芯片一块、8255A芯片一块、2083两块、6个独立的8段数码管、100欧姆排阻2个、4个轻触开关七.注意事项线路板的布局原则是按照各元器件的特点,兼顾元器件便利装卸和考虑抗干扰性(一个互相干扰和外来干扰)。

要求达到版面整洁,布局合理,线路清晰,连接有序。

一个好的布局,能便于焊接和电路检修。

八.主要程序见附1九、电路板实样89c51芯片8255A芯片十.操作演示1.设置首先进入年月日设置界面,按下K2键进入设置界面。

通过按K3键进行加1达到设置,按下K2一次则进入下一位设置,则设置位依次从年、月、日跳转。

设置完“日”位,再按K2键,自动进入时间设置界面——相同的,设置完时间,按下K2键进入闹钟设置闹钟只需设置时和分即可。

2.显示时间设置好后,自动显示设置好的时间可以清楚地看到当前时间为10:01:46;按下K1键即可看到当前日期当前日期为09年5月14日;按下K4键即可看到设置的闹钟时间可以看到闹钟为10:00;十一.设计总结以及感想这次课程设计,应该说中间的过程是比较曲折的,虽然最后的实验结果按照自己的预期实现了,但是中间走了些弯路,也经历了些小小的坎坷。

不过总体来说还是很有成就感的,也学到了不少知识。

这次试验的主程序主要是参考别人的,我最主要的任务是把它看懂看透,并且在此基础之上稍作修改,同时焊接板子并且下载。

经过自己的不懈努力,终于可以仿真成功。

我的坎坷主要体现在接下来焊接器件的过程中,以及之后的调试过程中。

因为硬件排错是很困难的。

我吸取之前同学的经验教训,焊地很仔细,因为一旦焊错了,将会非常麻烦。

但是问题仍然出现。

首先焊完之后,我的电源按钮没有作用,只要上电就一直工作。

经过我的思考分析,断定问题应该出在电路上面,而且肯定是电源电路那一部分。

最后终于发现,焊接的时候由于没有把PCB的电路认真看明白,导致我多焊了两个电源,所以我断定这个应该是导致我电源按钮失效的根源。

于是我去掉这两根线,重新下载,此时该问题已经消除,LED也可以显示。

然而,一个新的问题出现了,LED的某一位一直不亮。

我反复检查了自己的电路,并没有焊错的问题,反复看程序也找不到不对劲的地方。

我确定是自己的硬件除了问题,一定有某个地方接触不良。

我将几个重要的接口之间的线重新焊了一遍。

果然,显示器全都亮了,而且开始计时。

但这个时候,新的问题又出来了——我的显示的高低位全部反了!这个问题无疑可以通过修改程序来实现。

于是我仔细研读了程序的显示部分,将里边循环移位的顺序修改了一下。

虽然仿真的时候是反的,但当程序下到板子上后一切正常。

后来又经过改正,将显示的频闪和秒钟速度得以完善。

这次的坎坷经历让我受益很大。

硬件焊接和调试的那一天,苦于对线路的研究和对各种问题的排除,我从早上8点一直忙到晚上9点,中间的午饭也只是下楼买了盒饼干充饥。

但是真正搞完之后,真的大松了一口气。

虽然知道将来研究生期间这样的经历会很多,但是这次的课程设计还是对我有很大的启发的。

我打算在课余自己独立写个程序,这样才使得课程设计真正属于自己的。

附1:(主要程序)ST_ADDR EQU 0000HPA EQU 7CFFH;A口地址PB EQU 7DFFH;B口地址CTR EQU 7FFFH;控制字地址BUF EQU 23HSBF EQU 22HMBF EQU 21HHBF EQU 20HDAY EQU 19HMONTH EQU 18HYEAR EQU 17HHOUR EQU 16HMIN EQU 15HORG 0000HLJMP MAINORG 000BHLJMP CLOCKORG 0200HMAIN:MOV DPTR,#CTRMOV A,#80HMOVX @DPTR,AANL TMOD,#0F0HORL TMOD,#01HMOV TL0,#00HMOV TH0,#38HSETB P3.5SETB EASETB ET0SETB TR0MOV MBF,#00H;***********闹钟************** MAIN1: LCALL ADS1MOV A,SBFCJNE A,#00H,KEY0 ;秒位是否相同MOV A,MBFCJNE A,MIN,KEY0 ;分位是否相同MOV A,HBFCJNE A,HOUR,KEY0 ;时位是否相同CLR P3.5 ; 定时时间到,灯亮KEY0: MOV A,#30H;30秒后自动关闹钟CJNE A,SBF,K0SETB P3.5;****************K0: JNB P1.0,AAAJNB P1.3,BBBJNB P1.1,GWAITAJMP MAIN1 AAA: LCALL BDS1 AJMP MAIN1 BBB: LCALL CDS1 AJMP MAIN1 GWAIT: LCALL YDS1JNB P1.1,GWAIT ;判断P1.1是否按完SETG1: LCALL YDS1 JNB P1.1,GWAIT2 JNB P1.2,GADDYEAR AJMP SETG1 GADDYEAR: MOV R7,YEAR LCALL ADD1 MOV YEAR,A CJNE A,#51H,WAITT1 MOV YEAR,#01H WAITT1: LCALL YDS1JNB P1.2,WAITT1 ;判断P1.2是否按完AJMP SETG1;************* GWAIT2: LCALL MODS1 JNB P1.1,GWAIT2 SETG2: LCALL MODS1 JNB P1.1,GWAIT3 JNB P1.2,GADDMONTH AJMP SETG2GADDMONTH: MOV R7,MONTH LCALL ADD1 MOV MONTH,A CJNE A,#13H,WAITT2 MOV MONTH,#01H WAITT2: LCALL MODS1 JNB P1.2,WAITT2 AJMP SETG2 GWAIT3: LCALL DDS1 JNB P1.1,GWAIT3 SETG3: LCALL DDS1 JNB P1.1,GWAIT4 JNB P1.2,GADDDAY AJMP SETG3 GADDDAY: MOV R7,DAY LCALL ADD1MOV DAY ,ACJNE A,#32H,WAITT3 MOV DAY ,#01H WAITT3: LCALL DDS1 JNB P1.2,WAITT3 AJMP SETG3 GWAIT4: LCALL HDS1 JNB P1.1,GWAIT4 SETG4: LCALL HDS1 JNB P1.1,GWAIT5 JNB P1.2,GADDHBF AJMP SETG4 GADDHBF: MOV R7,HBF LCALL ADD1 MOV HBF,ACJNE A,#24H,WAITT4 MOV HBF,#00H WAITT4: LCALL HDS1 JNB P1.2,WAITT4 AJMP SETG4 GWAIT5: LCALL MDS1 JNB P1.1,GWAIT5 SETG5: LCALL MDS1 JNB P1.1,GWAIT6 JNB P1.2,GADDMBF AJMP SETG5 GADDMBF: MOV R7,MBF LCALL ADD1 MOV MBF,ACJNE A,#60H,WAITT5 MOV MBF,#00H WAITT5: LCALL MDS1 JNB P1.2,WAITT5 AJMP SETG5 GWAIT6: LCALL CDS1 JNB P1.1,GWAIT6 SETG6: LCALL CDS1 JNB P1.1,GWAIT7 JNB P1.2,GADDHOUR AJMP SETG6 GADDHOUR: MOV R7,HOUR LCALL ADD1 MOV HOUR,A CJNE A,#24H,WAITT6MOV HOUR,#00H WAITT6: LCALL CDS1 JNB P1.2,WAITT6 AJMP SETG6 GWAIT7: LCALL CDS1 JNB P1.1,GWAIT7 SETG7: LCALL CDS1 JNB P1.1,SETGOUT JNB P1.2,GADDMIN AJMP SETG7 GADDMIN: MOV R7,MIN LCALL ADD1 MOV MIN,ACJNE A,#60H,WAITT7 MOV MIN,#00H WAITT7: LCALL CDS1 JNB P1.2,WAITT7 AJMP SETG7 SETGOUT: LCALL ADS1 JNB P1.1,SETGOUT LJMP MAIN1;***********显示模块*********** ADS1: MOV R0,#45HMOV R2,#01H ;CHANGGE ADS2: MOV DPTR,#PB;位选 MOV A,R2 MOVX @DPTR,A MOV DPTR,#PA MOV A,@R0 LCALL TABLEMOVX @DPTR,A;送段码 LCALL DELAY1;延时 DEC R0 CLR C MOV A,R2RLC A ;CHANGGE MOV R2,A JNZ ADS2 MOV R0,#45H MOV A,SBF LCALL GET MOV A,MBF LCALL GET MOV A,HBFLCALL GET RETBDS1: MOV R0,#45H MOV A,DAY LCALL GET MOV A,MONTH LCALL GET MOV A,YEAR LCALL GET MOV R0,#45HMOV R2,#01H ;CHANGGE BDS2: MOV DPTR,#PB;位选 MOV A,R2 MOVX @DPTR,A MOV DPTR,#PA MOV A,@R0 LCALL TABLEMOVX @DPTR,A;送段码 LCALL DELAY1;延时 DEC R0 CLR C MOV A,R2RLC A ;CHANGGE MOV R2,A JNZ BDS2 RETSDS1: MOV R0,#45H MOV A,SBF LCALL GET MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A MOV R0,#45HMOV R2,#01H ;CHANGGE SDS2: MOV DPTR,#PB;位选 MOV A,R2MOVX @DPTR,A MOV DPTR,#PA MOV A,@R0 LCALL TABLEMOVX @DPTR,A;送段码 LCALL DELAY1;延时 DEC R0 CLR C MOV A,R2RLC A ;CHANGGE MOV R2,A JNZ SDS2 RETDDS1: MOV R0,#45H MOV A,DAY LCALL GET MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A MOV R0,#45HMOV R2,#01H ;CHANGGE DDS2: MOV DPTR,#PB;位选 MOV A,R2 MOVX @DPTR,A MOV DPTR,#PA MOV A,@R0 LCALL TABLEMOVX @DPTR,A;送段码 LCALL DELAY1;延时 DEC R0 CLR C MOV A,R2RLC A ;CHANGGE MOV R2,A JNZ DDS2 RETMDS1: MOV R0,#45H MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,MBF LCALL GET MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A MOV R0,#45HMOV R2,#01H ;CHANGGE MDS2: MOV DPTR,#PB;位选 MOV A,R2 MOVX @DPTR,A MOV DPTR,#PA MOV A,@R0 LCALL TABLEMOVX @DPTR,A;送段码 LCALL DELAY1;延时 DEC R0 CLR C MOV A,R2RLC A ;CHANGGE MOV R2,A JNZ MDS2 RETMODS1: MOV R0,#45H MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,MONTH LCALL GET MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AHMOV @R0,A MOV R0,#45HMOV R2,#01H ;CHANGGE MODS2: MOV DPTR,#PB;位选 MOV A,R2 MOVX @DPTR,A MOV DPTR,#PA MOV A,@R0 LCALL TABLEMOVX @DPTR,A;送段码 LCALL DELAY1;延时 DEC R0 CLR C MOV A,R2RLC A ;CHANGGE MOV R2,A JNZ MODS2 RETHDS1: MOV R0,#45H MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,HBF LCALL GET MOV R0,#45HMOV R2,#01H ;CHANGGE HDS2: MOV DPTR,#PB;位选 MOV A,R2 MOVX @DPTR,A MOV DPTR,#PA MOV A,@R0 LCALL TABLEMOVX @DPTR,A;送段码 LCALL DELAY1;延时 DEC R0CLR C MOV A,R2RLC A ;CHANGGE MOV R2,A JNZ HDS2 RETYDS1: MOV R0,#45H MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,#0AH MOV @R0,A DEC R0 MOV A,YEAR LCALL GET MOV R0,#45HMOV R2,#01H ;CHANGGE YDS2: MOV DPTR,#PB;位选 MOV A,R2 MOVX @DPTR,A MOV DPTR,#PA MOV A,@R0 LCALL TABLEMOVX @DPTR,A;送段码 LCALL DELAY1;延时 DEC R0 CLR C MOV A,R2RLC A ;CHANGGE MOV R2,A JNZ YDS2 RETCDS1: MOV R0,#45H MOV A,MIN LCALL GET MOV A,#0AH MOV @R0,A DEC R0MOV A,#0AH MOV @R0,A DEC R0 MOV A,HOUR LCALL GET MOV R0,#45HMOV R2,#01H ;CHANGGE CDS2: MOV DPTR,#PB;位选 MOV A,R2 MOVX @DPTR,A MOV DPTR,#PA MOV A,@R0 LCALL TABLEMOVX @DPTR,A;送段码 LCALL DELAY1;延时 DEC R0 CLR C MOV A,R2RLC A ;CHANGGE MOV R2,A JNZ CDS2 RET TABLE: INC AMOVC A,@A+PC RET DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,0BFHGET: MOV R1,A ANL A,#0FH MOV @R0,A DEC R0 MOV A,R1 SWAP A ANL A,#0FH MOV @R0,A DEC R0 RETCLOCK:MOV TL0,#00H;定时器中断子程序 MOV TH0,#38H PUSH PSW PUSH ACC INC BUF MOV A,BUFCJNE A,#14H,QUIT MOV BUF,#00H MOV A,SBF INC A DA A MOV SBF,A CJNE A,#60H,QUIT MOV SBF,#00H MOV A,MBF ADD A,#1H DA A MOV MBF,A CJNE A,#60H,QUIT MOV MBF,#00H MOV A,HBF ADD A,#1H DA A MOV HBF,A CJNE A,#24H,QUIT MOV MBF,#00H MOV A,day ADD A,#1H DA A MOV day,A CJNE A,#32H,QUIT MOV day,#01H MOV A,month ADD A,#1H DA A MOV month,A CJNE A,#13H,QUIT MOV month,#01H MOV A,year ADD A,#1H DA A MOV year,A QUIT: POP ACC POP PSW RETI ADD1: MOV A,R7 ADD A,#01H DA A RETDELAY1: MOV R4,#05;4ms 延时DEL11: MOV R5,#0AH DEL12: MOV R3,#18H DEL13: DJNZ R3,DEL13DJNZ R5,DEL12DJNZ R4,DEL11RETEND。

相关文档
最新文档