万年历系统

合集下载

电子万年历系统设计方案

电子万年历系统设计方案

据指针12SO 字节SRAM~1L8 16M2>64k宇竹闪存2k・sic字节ISP引导码P08051 徴处理器四个&隹并行瑞口P1/ETROM A/DD白怡flash石加价P2 nP40—P43四个附电子万年历系统设计方案1.1 STC89C52 简介STC89C52完全兼容MCS-51还有新的功能,比如新增两级中断优先级,多一个外中断,置EEPRO,M512B存等。

还支持ISP下载,不用编程器,只要一个MAX23和一些廉价的元件就能写程序,可擦写10万次。

比51起最大的优点能支持在线下载,在线烧写程序,而不必专门买昂贵的编程器,只需要ISP下载线就可以了。

1.2 性能参数STC单片机比51单片机性能有以下优越性:7图(1)高抗静电(ESD), 6000伏静电测试,直接打在芯片管脚上,安然无恙T2/P1. 0T2EX/PL 1P1.2PL 3PL. 4P1. 5Pt 6Pl. 7RsrRXLVP3 0TXD/P3, 1 INTO/F3. 2 而1 /P3, 3T0/P3. 4I1./P5. 5WP3. 6R^/PS. 7XTAL2XT Allvss 140239338437536635—34S339 -3210 p3111 O301122913281142715261625117241S23192212021VCCPO.0 ADO1 PO.1/ADL JPO. 2PO. 3 鱼D3FO. 4. AD I7■■■■I P2.4 A12 _] P2 3,A111 P2.2 1:J二I P2, 1/-A9 二IP2. 0 AS⑵超强抗干扰,轻松过2KV/4KV快速脉冲干扰(EFT)。

⑶超强加密,性能良好。

⑷STC 5V单片机,宽电压,5V - 3.8V给复位信号,正常工作。

(5) STC单片机,Power直接在用户系统上用ISP在线下载方式,将用户程序⑹下载进STC单片机Down掉电时功耗<0.1uA(C版本)。

电子万年历

电子万年历

电子万年历设计摘要随着现代生活节奏的不断加快,时间对于我们每个人来说也越来越重要,我们都需要有工具来度量时间。

电子万年历作为一种应用广泛的日常计时工具,由于它具有读取方便、显示直观、价格低廉等诸多优点,在当代社会中的应用也越来越广泛,大大方便了人们的生活和工作。

本设计是基于单片机技术原理,采用AT89S52单片机芯片作为主控制器,并采用时钟芯片DS1302来实现时钟,通过硬件电路的制作及软件程序的编制,利用单片机的控制作用通过共阳极数码管显示时间,实现显示阳历的年、月、日、星期、时、分、秒以及阴历的月、日的功能,还具有掉电继续计时的功能。

本设计主要由按键模块、显示模块、DS1302时钟模块、AT89S52主控制系统组成,其中按键电路采用3个按键构成独立连接式键盘,显示电路采用19个共阳极数码管构成,并利用74LS164译码器将二进制代码转化为对应的高低电平信号,并利用74LS138芯片来实现数码管的动态选择。

时钟模块采用DS1302芯片,它的使用寿命长、误差小,满足电子万年历需要精确计时的要求。

关键词:AT89S52,DS1302,数码管,译码器THE DESIGN OF ELECTRONIC CALENDARABSTRACTAs the pace of modern life continues to increase,time is becoming more and more important for us. We all need the tools to measure time. As a widely used timing tool, Electronic calendar has many advantages, such as easy to read, direct display and low cost. In modern society, it is becoming more and more extensive and makes our life and work easier.This design is based on principles of single-chip computer, using chip AT89S52 as the core controller and clock chip DS1302 as the clock. By combining the hardware circuits and software programs preparation, using common anode LED to display time under the control of single-chip computer. It can display the date of solar calendar and lunar calendar. It can continue to measure time after power lost.This design consists of four main parts, including key module, display module, DS1302 clock module and AT89S52 master control system. Buttons circuit uses three buttons to make up the independent keyboard. Display circuit consists of 19 common anodes LED. It uses 74LS164 to translate binary code into the corresponding high level signal and uses 74ls138 to choose the corresponding digital tube. The clock module uses clock chip DS1302, DS1302 meets the requirement of accurate timekeeping because of its long service life and small error.KEY WORDS:AT89S52,DS1302,Digital tube,Decoder目录前言 (1)第1章系统设计方案的选择 (3)§1.1电子万年历的设计意义 (3)§1.2 国内外同类设计的发展概况 (3)§1.3 设计要求 (4)§1.4 设计方案的选择与论证 (5)§1.4.1 单片机芯片的选择 (5)§1.4.2 时钟芯片的选择 (5)§1.4.3 显示模块的选择 (6)§1.4.4 键盘模块的选择 (6)§1.5 本设计的最终方案 (6)第2章系统的硬件设计与实现 (7)§2.1 电路设计总框图 (7)§2.2 系统的硬件概述 (7)§2.3 主要单元电路的设计 (8)§2.3.1 AT89S52主控制系统设计 (8)§2.3.2 键盘模块设计 (13)§2.3.3 时钟模块设计 (14)§2.3.4 显示模块的设计 (18)第3章系统的软件设计 (23)§3.1 主程序流程图 (23)§3.2 阳历程序设计 (24)§3.2.1 DS1302初始化 (24)§3.2.2 BCD码转化为十进制子程序 (27)§3.3 时间调整程序的设计 (27)§3.4 阴历程序的设计 (29)§3.4.1 计算阳历天数的程序设计 (29)§3.4.2 阳历转阴历程序 (32)结论 (33)参考文献 (34)致谢 (36)附录 (37)前言在当代繁忙的工作与生活中,时间与我们每个人都有非常密切的关系,每个人都受到时间的影响。

具有温度显示的电子实时时钟万年日历系统的设计与制作

具有温度显示的电子实时时钟万年日历系统的设计与制作

毕业设计(论文)《具有温度显示的电子实时时钟/万年日历系统的设计与制作》专业(系)电气工程系铁道通讯信号方向班级铁道通讯091学生姓名陈志军指导老师赵巧妮完成日期2011.11.22摘要本设计以数字集成电路技术为基础,单片机技术为核心。

本文详细的介绍基于AT89S51单片机带有温度和闹钟的万年历控制系统。

利用单片机定时计数器提供秒信号,DS18B20数字式温度传感器进行温度数据传输,经软件处理,在动态扫描后,利用8个共阳数码管交替显示年月日、时分秒、环境温度值。

为了更好的调节和设置,设计了四个按键快速进行时间和闹钟的精准调整。

关键字:单片机;万年历;温度;闹钟;DS18B20AbstractThis design with digital integrated circuit technology as the foundation, microcontroller technology as the core. This paper is introduced in detail based on AT89S51 with temperature and the alarm clock calendar control system. Using single chip computer timing counter offer seconds signal, the temperature sensor DS18B20 digital temperature data transmission, the software processing, in dynamic scan, a total of 8 Yang digital tube alternate show dates, meticulous, environment when the temperature. In order to better regulate and settings, design the four keys of rapid time and alarm the accuracy of adjustment.Key words:Microcomputer; Calendar;Temperature; Alarm clock; DS18B20; Dynamic scanning目录摘要 (I)第1章引言 (1)1.1研究背景 (1)1.2论文研究目标和意义 (1)1.3论文章节安排 (1)第2章任务与要求 (2)2.1课题概述 (2)2.1.1 设计内容 (2)2.1.2 要求 (2)第3章方案论证与设计 (3)3.1 总体设计分析 (3)3.2 方案的选择与设计 (3)3.2.1 显示模块选择方案和论证: (3)3.2.2 时钟芯片的选择方案和论证: (3)3.2.3 温度传感器的选择方案与论证: (4)3.3 方案确定 (4)第4章硬件电路设计 (5)4.1 硬件电路设计框图 (5)4.1.1 系统硬件概述 (5)4.1.2 单片机主控制模块的设计 (5)4.1.3 振荡电路 (6)4.1.4 复位电路 (6)4.1.5 温度采集模块设计 (6)4.1.6 显示模块的设计 (7)4.1.7 蜂鸣器电路 (8)4.1.8 按键电路 (8)第5章系统的软件设计 (10)5.1编程环境及语言: (10)5.2程序流程框图 (10)第6章电路调试 (12)6.1调试的设备 (13)6.2调试步骤 (13)6.2.1 硬件调试 (13)6.2.2 软件调试 (13)第7章使用说明 (17)7.1 使用方法 (17)7.1.1 系统面板介绍 (17)7.1.2 调整方法 (17)7.1.3 调整框图 (18)7.1.3 注意事项 (19)7.2故障分析 (19)7.2.1 LED数码管显示不全、模糊、多出相对较暗的一位 (19)7.2.2 调整时按键过于灵敏 (19)心得体会 (20)参考文献 (21)附件 (22)附件一:总原理图 (22)附件二:PCB版图 (23)附件三:元件清单 (24)附录四:程序代码 (26)引言1.1研究背景当今社会逐渐步入信息化时代,快节奏、高效率成为当今时代的主题。

万年历原理图

万年历原理图

万年历原理图万年历,又称永历,是一种可以显示公历、农历和节气的时间工具,它可以帮助人们快速了解日期、节日和农历信息。

万年历原理图是指万年历的结构和工作原理的图表或图解,通过它可以清晰地了解万年历是如何运作的。

万年历原理图通常包括以下几个部分,日历盘、指示器、齿轮系统和驱动装置。

日历盘是用来显示日期和农历信息的部分,它通常由一个圆盘和一些小窗口组成,圆盘上标有数字和节气,小窗口则用来显示对应的信息。

指示器是用来指示日期和农历信息的部分,它通常由一个或多个指针组成,指针会根据日历盘上的信息进行移动。

齿轮系统是用来传递动力和控制指示器运动的部分,它由一系列齿轮和传动装置组成,通过精确的设计和制造,可以实现日期和农历信息的精准显示。

驱动装置是用来提供动力的部分,它通常由发条或电池组成,通过不断地提供动力,保证万年历的正常运转。

万年历原理图的设计和制作需要精密的工艺和精湛的技术,因为它需要保证日期和农历信息的准确性和稳定性。

在制作万年历原理图时,需要考虑到各个部件之间的配合和协调,确保它们能够精准地显示日期和农历信息。

同时,还需要考虑到外部环境的影响,比如温度、湿度和震动等因素,确保万年历可以在各种条件下正常运行。

万年历原理图的制作材料通常包括金属、塑料、玻璃和机械零件等,这些材料需要经过精密加工和精细装配,才能组成一个完整的万年历原理图。

在制作过程中,需要使用各种专业设备和工具,比如数控机床、激光切割机、注塑机和组装线等,确保万年历原理图的质量和性能达到要求。

总的来说,万年历原理图是一种复杂而精密的时间工具,它通过精巧的结构和精密的工艺,为人们提供了方便快捷的日期和农历信息。

制作万年历原理图需要高超的技术和严谨的工艺,只有经过精心设计和精细制作,才能确保它的准确性和稳定性。

希望通过本文的介绍,读者能对万年历原理图有更深入的了解,对其制作和工作原理有更清晰的认识。

万年历程序实验报告

万年历程序实验报告

万年历程序实验报告一、实验目的与要求1.实验目的:(1)能按照软件工程的思想,采用面向过程的方法开发出一个小型软件系统。

(2).在软件系统开发过程中,能综合利用一门编程语言、和软件工程二门课程的知识。

(3).通过实例使同学们掌握结构化数据流分析技术。

2.要求:(1)软件需求分析:要求做到使用结构化数据流分析技术分析课题需求,写出详细的数据流图和数据字典,数据流图的基本处理的个数不得少与5个。

(2)软件设计与编码:要求做到对上一实验的软件需求进行软件结构设计,模块数不少于四个。

然后再进行详细设计并编码。

程序要符合结构化程序的要求。

(3)软件测试和调试:要求掌握如何设计测试方案、撰写测试说明书,并掌握程序修改的常用技术。

要求对上一实验所编的程序进行测试,要分步进行,要有详细的测试说明书,要测试通过。

二、实验方案(一)软件需求分析1.需求分析:编制一个万年历程序,程序包括的功能查询具体某年某月某日是星期几,查询某一年是否闰年,打印某一年的年历。

2.根据需求画出初步的数据流图:把“万年历系统”细化,得出完整的数据流图如下:3.根据需求分析与数据流图,写出卡片式的数据字典(2)软件设计与编码1.首先进行总体设计,根据需求,系统应该划分功能模块如下:2.进行详细设计 按照需求,本系统有上图所示的三个功能模块,所以在编码设计的时候,应该就分别设计三个功能模块,三个功能模块主要就是三个分别的算法。

先定义本程序主要的几个数据项:char*month_str[]={"January","February","March","April","May","June","July","August","September","Oc tober","November","December"}; //月份的名称,在列印年历的功能时候使用到char* week[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};//星期,在查询具体某天是星期几时候使用到接着就是三个算法,因为三个算法都是借鉴别人的,所以就不在这里显示了,最后在main 函数用switch 语句把三个功能组合起来。

微机原理课程设计---万年历设计

微机原理课程设计---万年历设计

微机原理课程设计---万年历设计目录目录.....................................................1、课程设计内容 (1)1.1任务要求 (1)1. 2方案选择 (1)1. 3项目进度计划 (2)2、硬件选型及电路设计 (3)2. 1硬件的选型 (3)2.2电路的设计 (4)3.系统软件设计 (10)3.1 DS1302读写程序设计 (10)3.2 PCB板设计源文件及原理图展示 (12)4.课程设计总结 (13)4. 1 本人在项目实现中的分工 (13)4.2 个人遇到的困难与获得的主要成果 (14)4.3 课程设计完成结果分析与个人小结 (14)参考文献 (15)1 课程设计内容1.1任务要求目的系统以AT89S52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,从而以达到对时间计时,完成万年历的基本功能。

背景二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。

电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。

所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。

由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。

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

它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。

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

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

室温检测与万年历显示系统-Read

室温检测与万年历显示系统-Read

室温检测与万年历显示系统本设计使用SMG12864ZK 液晶屏、DS18B20温度传感器与单片机最小系统构成的温度检测与成年历显示系统,其具有实时显示检测温度,并利用软件编程实现成年历在液晶屏上显示。

一、SMG12864ZK 液晶显示模块概述1.1 液晶显示模块是128×64 点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置国标GB2312 码简体中文字库(16X16 点阵)、128 个字符(8X16 点阵)及64X256 点阵显示RAM (GDRAM)。

可与CPU 直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。

具有多种功能:光标显示、画面移位、睡眠模式等。

1.2显示资料RAM 提供64×2 个位元组的空间,最多可以控制4 行16 字(64 个字)的中文字型显示,当写入显示资料RAM 时,可以分别显示CGROM、HCGROM 与CGRAM 的字型;ST7920A 可以显示三种字型,分别是半宽的HCGROM 字型、CGRAM 字型及中文CGROM 字型,三种字型的选择,由在DDRAM 中写入的编码选择,在0000H—0006H 的编码中将自动的结合下一个位元组,组成两个位元组的编码达成中文字型的编码(A140—D75F)。

二、DS18B20温度传感器简介2.1 DS18B20是DALLAS公司生产的一线式数字温度传感器,采用3引脚TO-92型小体积封装;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。

2.2 DS18B20的内部结构如图1所示,主要由以下几部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH(温度高)和TL(温度低)、配置寄存器、暂存寄存器(SCRATCHPAD)、存储器控制逻辑。

DQ为数字信号输入/输出端。

ROM中的64(8位产品家族编号、48位ID号、8位CRC)位序列号是出厂前刻好的,这64位序列号具有惟一性,每个DS18B20的64位序列号均不相同。

微电脑万年历系统

微电脑万年历系统

微电脑万年历系统_简介随随随着人们生活水平的提高,人们对传统的钟表提出了更高的要求,渴望有一个全功能的钟表。

时代发展到现在,已经是只要有人需要的东西,就会有人去设计,所以基于人们的需要,我们设计了一个用微电脑控制的万年历。

该万年历的年、月、日、星期、时、分、秒、农历月、农历日、温度、都用数码管显示,用二极管指示24节气。

数码管的亮度可调,还有秒走的声音,秒走的声音可开可关,并附带了三个定时,定时时间到用音乐提示,以便提醒主人。

如果不想听可立即关闭音乐。

此万年历系统与传统的时钟系统相比,有以下一些优点:1.更直观;2.功能更全,带有附加功能;3.经过包装后,挂在大厅里,更显得高贵、典雅。

微电脑万年历系统_原程序Z0 EQU 255L1 EQU 0L2 EQU 1L3 EQU 2L4 EQU 3L5 EQU 4L6 EQU 5L7 EQU 6M1 EQU 7M2 EQU 8M3 EQU 9M4 EQU 10M5 EQU 11M6 EQU 12M7 EQU 13H1 EQU 14H2 EQU 15H3 EQU 16H4 EQU 17H5 EQU 18H6 EQU 19H7 EQU 20start_year EQU 00;从2000年开始sclk bit p1.0;io bit p1.1;rst bit p1.2;;(2EH和2FH用作位寻址区);2EH中的内容是须要保护的.t1_on_off bit 70h;t2_on_off bit 71h;t3_on_off bit 72h;t_stop bit 73h;stop_di_da bit 74h;r_or_w bit 78h;r_or_w=1时表示读数据.r_or_w=0时表示写数据到DS1302. week_bit bit 79h;week_bit=0表示星期还没有被读或被写,week_bit=1表示星期已经被读或被写.t_chang bit 7ah;p2_bit bit 7bh;C的中间变量.sec1_sec2 data 10h;温度1秒钟转换一次sec3_sec4 data 11h;key_1_times data 12h;按第一个键的次数。

电子万年历系统课程设计

电子万年历系统课程设计

计算机学院信息管理与信息系统专业《管理信息系统课程设计》报告(2010/2011学年第一学期)学生姓名:学生班级:学生学号:指导教师:2011年1月15 日目录第一章课程设计目的和要求 (1)1.1课程设计主要目的 (1)1.2本课程设计主要目标 (1)1.3课程设计要求 (1)第二章课程设计任务背景与内容 (2)2.1任务背景介绍 (2)2.2任务内容 (2)第三章详细设计说明 (3)3.1总体模块图 (3)3.11程序设计组成框图 (3)3.12程序流程图 (4)第四章程序运行及调试 (8)4.1 调试与测试 (8)4.2 分析及结论 (9)4.3 程序运行调试图 (10)第五章课程设计心得与体会 (13)附录1 参考文献 (14)附录2 程序 (15)电子万年历系统第一章课程设计目的和要求1.1课程设计的目的C++语言程序设计的主要目的是要求我们遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C++语言程序及编写设计报告。

根据自己学习到的内容,在设计的过程中充分的将老师所教和课本固有充分发挥出来。

使得理论和实践联系起来,同时也培养综合运用C++程序设计的素质。

培养用C++编写程序的能力,和养成良好的编写程序的习惯。

通过本次实践学习,可以使自身对所学知识进一步消化,理解并掌握,锻炼和提高综合运用所学知识解决实际问题的能力,熟悉编译工具的使用方法和环境。

1.2课程设计的目标本课程设计的目标:1.巩固和加深学生对C++语言课程的基本知识的理解和掌握;2.掌握C++语言编程和程序调试的基本技能;3.掌握利用C++语言进行软件设计的方法;4.提高书写程序设计说明文档的能力;5.提高运用C++语言解决实际问题的能力。

1.3课程设计要求基本要求:1.分析课程设计题目的要求;2.对系统功能模块进行分析,写出详细设计说明文档;3.编写程序代码,调试程序使其能正确运行;4.设计完成的软件要便于操作和使用;5.设计完成后提交课程设计报告。

万年历_ARM课程设计

万年历_ARM课程设计

目录4 (7)5.总结 (8)万年历系统摘要:万年历在日常生活中最常见,应用也最广泛。

本次课程设计主要就是设计一款电子万年历系统,本次嵌入式系统课程设计以STM32F103RB芯片为核心,主要能够实现显示时间、日期、节日、以及24节气和12生肖等功能。

其中时间显示包括时、分、秒,日期显示包括年、月、日,显示部分通过电脑上的超级终端进行显示,当程序编译无误后,将其下载至开发板中,然后通过超级终端进行显示,开始时用户需要自行设置时间和日期,然后万年历系统才会按照用户设计的功能开始工作。

关键字:STM32F103RB 超级终端时间日期显示 24节气显示十二生肖显示1引言STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM 内核。

按性能有不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。

此次我们所使用的STM32F103RB芯片就是增强型系列,增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。

两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。

时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于MHz。

ARM公司的高性能”Cortex-M3”内核具有一流的外设(1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻转速度)、低功耗(在72MHz 时消耗36mA(所有外设处于工作状态),待机时下降到2μA)、最大的集成度(复位电路、低电压检测、调压器、精确的RC振荡器等)\简单的结构和易用的工具,STM32F10x重要参数主要有供电、容忍5V的I/O管脚、优异的安全时钟模式、带唤醒功能的低功耗模式、内部RC振荡器、内嵌复位电路、工作温度范围是-40°C至+85°C或105°C。

基于51单片机的电子万年历系统的设计

基于51单片机的电子万年历系统的设计

参考内容
一、引言
单片机是现代电子设备中的重要组成部分,广泛应用于各种嵌入式系统设计。 51单片机作为一种经典的微控制器,因其结构简单、易于编程、可靠性高等优点, 被广泛用于各种领域,如智能家居、工业控制、物联网等。万年历作为一种日常 生活中常见的计时工具,具有显示日期、时间、星期、月份等功能,对于人们的 日常生活和工作有着重要的作用。本次演示将介绍一种基于51单片机的万年历设 计。
二、系统设计
1、硬件设计
基于51单片机的万年历设计需要硬件和软件的配合实现。硬件部分主要包括 51单片机、显示模块、按键输入模块和时钟芯片等。其中,51单片机作为主控制 器,负责处理各种数据和控制信号;显示模块用于显示日期、时间等信息;按键 输入模块用于用户输入操作;时钟芯片则为系统提供实时时间。
基于51单片机的电子万年历系 统的设计
目录
01 一、概述
03 三、软件设计
02 二、硬件设计 04 四、系统调试与优化
目录
05 五、应用场景及前景
07 参考内容
06 六、结论
随着科技的不断发展,单片机已经成为现代于51单片机的电子万年历系统设计具有广泛的实际应用价值。 本次演示将详细介绍这种系统的设计过程和实现方法。
感谢观看
首先需要进行硬件搭建,包括选择合适的单片机、显示模块、按键输入模块 和时钟芯片等,并将其连接起来。需要注意的是,在搭建硬件时需要考虑各个模 块之间的接口和连接方式,以确保系统能够正常工作。
2、软件编程
在硬件搭建完成后,需要进行软件编程。首先需要进行系统初始化,包括对 单片机进行初始化和对显示进行清屏处理。然后需要进行按键处理和时钟数据处 理,以实现用户输入和实时时间的读取。最后需要进行显示处理,将处理后的数 据显示到显示模块上。

多功能电子万年历设计

多功能电子万年历设计

多功能电子万年历设计一、本文概述本文旨在探讨多功能电子万年历设计的原理、方法及其在实际应用中的价值。

我们将对电子万年历的基本概念进行简要介绍,包括其发展历程、主要功能以及与传统日历的对比。

接着,我们将详细分析多功能电子万年历的设计要素,包括硬件选择、软件编程、用户界面设计等方面,以展示其独特的功能和设计理念。

在此基础上,我们将深入探讨多功能电子万年历设计的关键技术,如时间同步技术、多语言支持、日历算法优化等,以揭示其背后的技术原理和实现方法。

我们还将对多功能电子万年历的市场需求和应用前景进行分析,以展示其在现代社会中的重要作用。

本文将对多功能电子万年历设计的未来发展进行展望,探讨其在智能化、个性化、集成化等方面的趋势和挑战。

通过本文的阐述,读者可以对多功能电子万年历设计有一个全面、深入的了解,为其在实际应用中的开发和使用提供有益的参考。

二、电子万年历的设计原理电子万年历的设计原理主要基于时间计算、显示控制和数据存储三大核心部分。

在设计过程中,我们需要考虑如何精确计算时间,如何将时间信息以清晰易懂的方式显示出来,以及如何将这些时间数据存储和处理。

时间计算是电子万年历设计的基石。

它涉及到如何准确地计算年、月、日、时、分、秒等时间单位,并且要考虑闰年、闰月等复杂的时间规则。

这通常通过内置的时钟芯片实现,该芯片能够按照预设的算法进行时间计算,确保时间的准确性和连续性。

显示控制是电子万年历设计的关键。

显示控制的主要任务是将计算得到的时间信息转化为可视化的界面,供用户查看。

这包括选择适合的显示器件(如LCD屏幕、LED数码管等),并编写相应的显示驱动程序,以确保时间信息能够清晰、准确地呈现在用户面前。

数据存储是电子万年历设计的重要组成部分。

数据存储主要负责保存用户设置的时间、日期、闹钟等信息,以便在用户关机或断电后能够恢复。

通常,这些数据会存储在内置的存储芯片中,如EEPROM或Flash芯片,这些芯片具有非易失性,能够长期保存数据。

万年历功能说明文档

万年历功能说明文档

一、功能描述1、上板复位后从元年1月1号开始计数,为方便上板调试,将一天的时间压缩为1秒;2、按键用于设置日历,按下按键0进入设置状态,再次按下按键0退出设置状态;3、按键1来选择想要设置的年月日的各个位;4、按键2在设置状态进行计数设置,每按下一次数码管显示数字加1;5、平年365天(52周+1天),闰年366天(52周+2天)。

平年2月28天,闰年2月29天。

6、闰年:每400年整一闰,或每4年且不为百年的一闰。

即能被400整除,或不能被100整除但能被4整除的年份为闰年。

二、平台效果图3.仿真结果:选取3个日期检查(1)1900年2月28日:该年不是闰年,故2月份只有28天(2)2000年2月29日:该年是闰年,故2月份有29天(3)2016年12月27日:经验证,日期显示正确。

三、实现过程首先根据所需要的功能,列出工程顶层的输入输出信号列表。

我们可以把工程划分成三个模块,分别是万年历计数模块、按键模块和数码管显示模块。

1.万年历计数模块万年历计数模块实现的是万年历计数功能,为方便观看,将一天时间设置为一秒,日计数器dat_cnt、月份计数器mon_cnt_h、mon_cnt_1、mon_2_h、mon_2_1分别为大月小月以及平年闰年的2月计数器、年份计数器yea_one、yea_ten、yea_hun、yea_tho分别为年份的个十百千位,由yea_cnt_tol <= yea_cnt1000 + yea_cnt100 + yea_cnt10 + yea_one得到年份。

本模块还自动计算当年是否是平闰年。

本模块信号列表如下:2.按键模块本次案例万年历使用的是4x4矩阵键盘,本模块就是实现了矩阵键盘的扫描并使用以及按键消抖功能。

通过行扫描法得到按下的键的位置信息。

本模块的信号列表如下:3.数码管模块数码管模块实现了将年月日的信息显示在数码管上。

本模块的信号列表如下:。

基于单片机的万年历设计

基于单片机的万年历设计

题目:基于单片机的电子万年历设计基于单片机的万年历设计摘要随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。

目前,单片机技术的应用产品已经走进了千家万户。

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

本设计是一个基于AT89S52单片机的日历显示系统,本设计能显示公历年、月、日,以及时、分、秒、温度、星期等信息,而且还提供了农历信息,具有调整时间,温度采集,闹钟及个性化的闹铃等功能。

系统所用的时钟日历芯片DS1302具有高性能、低功耗、接口简单的特点,使本系统电路简化,编程方便,同时功能也很强。

采用AT89S52单片机的万年历系统可以很好的改善传统采用模拟电路引起的计时不准确,不可靠,一致性差等问题。

此系统计时精确,价格低廉,可以广泛应用在生活,学习和工作等任何领域,并且起到重要作用。

关键词:万年历;单片机;时钟芯片;温度芯片;公历转农历The Design of Electronic Calendar clock Based on Single-chipMicrocomputerAbstractAlong with the technical fast development, time passing, to from the view sun, the pendulum clock to the present electron clock, the humanity studies unceasingly, innovates unceasingly the record. At present, the monolithic integrated circuit technology's application product already entered everyone. The electronic ten thousand calendar's appearances have brought conveniently many for people's life.This design is one based on AT89S52 single-chip microcomputer calendar display system, it can demonstrate years, the month, the date of the Gregorian calendar, and hour, minute, second, temperature, week and so on. Moreover it has also provided the lunar calendar information, adjustable time pattern, temperature sample, alarm system, individual quarter-bell and so on. The system clock calendar DS1302 with high performance, low power consumption and simple interface features Circuit enable the system to streamline programming convenience, but also highly functional. The problems of inaccurate, unreliable, and the uniform inferior can be come up when you use the analogous circuit. However, it can be improved when you use the clock system based on AT89S52 single-chip microcomputer. The system time accurate, low cost and can be widely applied to the life, study and work in any field, and has played an important role.Key words:The Electronic Calendar Clock;Single-chip Microcomputer;The Time Calendar Clock;Temperature Chip;The Lunar Calendar Convert To The Gregorian Calendar目录摘要 (I)Abstract (II)第一章引言 (1)1.1 概述 (1)1.2 单片机的简介 (1)第二章方案设计与论证 (4)2.1 单片机芯片设计与论证 (4)2.2 电源模块设计与论证 (5)2.3 按键控制模块设计与论证 (5)2.4 时钟模块设计与论证 (5)2.5 温度采集模块设计与论证 (5)2.6 显示模块模块设计与论证 (6)第三章系统的硬件设计 (7)3.1 主控芯片AT89S52与最小外围系统 (7)3.1.1 AT89S52的概述 (7)3.1.2 AT89S52最小系统的设计 (10)3.2 时钟芯片DS1302接口设计与性能分析 (11)3.2.1 DS1302性能简介 (11)3.2.2 DS1302接口电路设计 (12)3.3 温度芯片DS18B20接口设计与性能分析 (14)3.3.1 DS18B20性能简介 (14)3.3.2 DS18B20接口电路设计 (15)3.3.3 DS18B20的工作时序 (16)3.4 闹钟模块接口设计与性能分析 (17)3.4.1 AT24C02器件使用 (17)3.4.2 接口电路设计 (19)3.5 LCD显示模块 (19)3.5.1 LCM1602的特性及使用说明 (19)3.5.2 LCM1602与MCU的接口电路 (21)3.6 按键模块设计 (21)第四章软件设计 (23)4.1 软件总体部分的设计 (23)4.2 LCD驱动及液晶显示 (24)4.3 按键识别及处理 (25)4.4 温度数据采集 (26)4.5 时间数据采集 (27)4.6 闹钟程序 (28)4.7 公历转农历的实现 (28)第五章系统的调试 (30)总结 (31)参考文献 (32)附录A 设计原理图 (33)附录B 源程序 (34)附录C 公历对应的农历数据表 (55)致谢 (58)第一章引言1.1 概述随着电子技术的发展,人类不断研究,不断创新纪录。

单片机技术万年历项目设计方案

单片机技术万年历项目设计方案

单片机技术万年历项目设计方案1 绪论1.1 背景及意义在当代繁忙的工作生活中,时间与我们每一个人都有非常密切的关系,每个人都受时间的影响。

随着社会科技的发展,人类得知时间,能够了解其他与人类密切相关的信息,比如温度,星期等。

电子万年历诞生了,它集时间、日期、星期和温度功能于一身,具有读取方便、电路简洁等诸多优点。

随着大规模集成电路的出现,给人类生活带来了许多改变。

尤其是单片机技术,嵌入式产品的普及,各类应用产品已经走进千家万户。

电子万年历的出现给人们的生活带来了诸多的方便,现在嵌于各种电子产品中,具有广阔的市场前景。

目前的万年历功能扩展了诸如定时自动报警、闹钟、定时广播、自动启闭路灯、定时开关烤箱、开断各种家庭电气等。

但是所有的功能,都是以钟表数字化为基础的。

因此,万年历的扩展功能及其应用十分丰富。

中国电子产业发展出现的问题中,许多情况不容乐观,如产业结构不合理,产业集中于劳动密集型产品。

技术密集型产品明显落后于发达国家。

生产要素决定性作用正在削弱,产业能源消耗大、产出率低、坏境污染等。

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

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

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

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

1.2 设计主要工作万年历系统基本方案选择与论证,硬件电路的设计与实物制作,各模块软件编写与调试等是设计的几个主要工作。

分别要对核心控制芯片、显示器、温湿度传感器、时钟芯片、控制键盘等进行选择论证,得出最终总体设计方案。

硬件电路以AT89S52单片机最小系统做基础,外加多个相应扩展电路模块,构成万年历系统。

外围模块分别是ISP 下载模块、LCD12864液晶显示器模块、DS1302时钟模块、DHT11温湿度传感模块、红外遥控模块(接收电路模块,传输电路模块,中央控制器(8031), 信号调理电路模块,数据存储和应用程序)等。

JAVA万年历系统课程设计报告附源码

JAVA万年历系统课程设计报告附源码

2013-2014学年第二学期《面向对象程序设计》课程设计报告题目:万年历系统专业:计算机科学与技术班级:姓名:学号:指导教师:成绩:计算机与信息工程系2014年6月6日目录1设计内容及要求设计内容万年历,实际上就是记录一定时间范围内(比如100年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用。

在我设计的万年历中主要有:(1)使用图形用户界面来查询用用户所需的日期信息,符合日常软件使用规范。

(2)按月份查询,实现了显示查询1901~2100年某月所有日期的阴阳历对照。

(3)并且添加了重大节日与星座等信息,界面采用日常的星期与月份结合的格式,方便查看与使用。

(4)编写万年历的课程设计,是为了使同学们更加了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。

为后续各门计算机课程的学习和毕业设计打下坚实基础。

设计任务及具体要求利用JAVA语言编写的万年历系统采用了多种JAVA语句来实现多种功能。

用户可以通过本程序的applet运行界面来查找一整年某月的农历和阳历,可以查找用户所想了解的某一天具体为星期几,并且可以看到一些重大节日的具体时间。

要求:满足设计万年历系统的目的,即当用户查询年份与月份时,系统就要将这一年的某一月份的阴历与阳历全部显示出来,并且附带这一月份的重大节日。

当用户随意改动年份或月份时系统自动显示与星期对应的日期。

用户点击日期时系统会显示具体星座信息。

2概要设计程序设计思路(1)总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。

然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。

万年历原理

万年历原理

万年历原理万年历是一种用来显示日期的装置,它可以显示公历和农历的日期,同时还可以显示星期、节气等信息。

其原理主要是通过一系列的齿轮和装置,将时间的变化转化为指针的运动,从而实现日期的显示。

下面我们来详细了解一下万年历的原理。

首先,万年历的核心部件是齿轮系统。

这个系统由多个齿轮组成,每个齿轮都有不同数量的齿,它们之间通过齿轮的啮合来传递动力。

通过合理设计齿轮的数量和齿数,可以实现指针的精确运动,从而准确显示日期。

其次,万年历还包括了一些装置来实现不同日期信息的显示。

比如,公历日期和星期的显示通常由一个齿轮系统来实现,而农历日期和节气的显示则需要另外的装置来完成。

这些装置通过与齿轮系统的配合,实现了不同日期信息的同步显示。

另外,万年历还需要一个稳定的动力来源来驱动齿轮系统的运转。

通常情况下,万年历会采用弹簧或电池作为动力来源,通过适当设计的传动装置,将动力传递给齿轮系统,从而驱动指针的运动。

总的来说,万年历的原理就是通过齿轮系统和配套装置,将时间的变化转化为指针的运动,从而实现日期的显示。

这种设计不仅需要精密的机械结构,还需要合理的动力传递装置和精准的制造工艺。

只有这样,才能保证万年历的准确性和稳定性。

在现代科技的发展下,万年历也逐渐实现了电子化和智能化。

通过电子芯片和显示屏,可以实现更加精准和便捷的日期显示。

但其基本原理依然是通过时间转换为指针运动来实现日期的显示。

总之,万年历作为一种古老的时间显示装置,其原理简单而精巧。

通过齿轮系统和配套装置的合理设计,实现了日期、星期、农历等信息的精确显示。

随着科技的不断进步,万年历的显示方式也在不断演变,但其基本原理却是不变的。

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

程序实践报告万年历系统的设计专业学生姓名班级学号指导教师起止日期系统万年历的设计目录1课程设计目的及要求 (1)1.1课程设计目的 (1)1.2课程设计要求 (1)2课题总体设计 (1)2.1 系统需求分析 (1)2.2系统功能描述 (1)2.3系统功能模块图 (2)2.4系统流程图 (2)3课题总体设计 (3)3.1 概念设计 (3)3.2 逻辑设计 (3)3.3 物理设计 (3)4详细设计 (3)4.1 leap()模块设计 (3)4.2 show()模块设计 (5)4.3 主函数main()模块设计 (6)5调试与测试 (6)6小结 (10)参考文献 (11)附录 (12)附录1 源程序清单 (12)程序实践报告(2010)万年历系统的设计1 课程设计目的及要求1.1 课程设计目的1、巩固并加深对C语言程序设计知识的理解;2、掌握和提高C语言编程和程序的基本调试的基本技能;3、进一步理解和运用结构化程序的思想和方法;4、提高运用C语言解决实际问题的能力;5、初步掌握开发小型实用软件的基本方法;6、掌握书写程序设计开发文档的能力。

1.2课程设计要求1、根据分组情况对规定的课程设计题目要求进行分析、设计;2、利用Turbo C 独立编写程序代码,并调试程序使其能正确运行;3、源程序要有适当的注释,使程序容易阅读;4、设计完成的软件要便于操作和实用,至少采用文本菜单界面鼓励学生自动增加新功能模块;5、完成并提交课程设计报告,具体要求见相关说明文档。

2课题总体设计1.、当前页以系统当前日期的月份为准,显示当前月的每一天(显示出日及对应的星期几);2、当系统日期变到下一个月时,系统自动翻页到下一月。

2.1 系统需求分析a. 使用图形用户界面;b.本程序能过模仿现实生活中的挂历。

2.2系统功能描述1)当前页以系统当前日期的月份为准,显示当前月的每一天(显示出日及对应的星期几);2)当系统日期变到下一个月时,系统自动翻页到下一月。

1系统万年历的设计2.3系统功能模块图图1-1 系统功能模块图2.4系统流程图图1-2 系统流程图2程序实践报告(2010)3课题总体设计3.1概念设计对用户要求描述的现实世界,通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。

这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。

所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。

以扩充的实体—(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。

第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。

概念设计的最终目的是要确定这一程序的功能达到预想的效果,所以自己的设计想法要清晰,准确的表达出来。

在进行概念设计时不拘泥小节,着重于它所能体现出的功能效果,大概的写出设计代码,然后在一一补充,使其完美。

3.2逻辑设计主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。

与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。

这一步设计的结果就是所谓“逻辑数据库”。

根据设计实践任务书以及所开发的环境,利用这些信息获取,分析需求,优化解决方案。

使得所设计的代码达到所应具有的功能,即使万年历系统具有现实中挂历的作用。

3.3物理设计根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。

这一步设计的结果就是所谓“物理数据库”。

根据开发环境和逻辑对象,数具实体的关系中进一步整理和细化得到的设计方案,即进一步的细化万年历系统的设计代码,明确其所应具有的功能。

还要考虑到实现的可能性和最终系统的性能。

具体每个模块的实现算法4详细设计4.1 leap()模块设计3系统万年历的设计图1-3 leap()函数模块设计图模块说明:若该年不是闰年,则输出0,相反则输出1;设年数为X,先判断X能否被4整除,若不能则输出0;若能整除,则判断X能否被100整除,若不能则输出1;若能整除,则判断X能否被400整除,若不能则输出0,若能则输出1。

4程序实践报告(2010)4.2 show()模块设计图1-4 show()模块设计图模块说明:判断系统月份,以月份为主,三十一天的有一月,三月,五月,七月,八月,十月,十二月;三十天的有四月,六月,九月,十一月。

若是闰年,则二月为二十九天,不是,则为二十八天。

5系统万年历的设计4.3主函数main()模块设计图1-5 主函数体main()模块设计图模块说明:主函数体主要调用show()函数对由time()函数读取的主板时间进行相应的编辑和输出,并根据用户指令“↑↓←→”Esc实现年份及月份的调整,并退出程序5调试与测试此课程设计要求如生活中的挂历,要以当前页以系统当前日期的月份为准,显示当前月的每一天,并且当系统日期变到下一个月是,系统自动翻页到下一月。

然而在调试过程中首先自己没有注意到区分闰年,没有考虑到二月有二十八天,与二十九天的区别,其次没有做到每一天对应的每个星期,再次在调用函数时出错,本代码无法做到在改变系统年份或月份时,不能立即运行,需要重新调试,所以此代码还是有不足之处的。

经过不断的修改与尝试,最终将代码完成。

当对上面的程序进行了调试后运行会出现下面图2-1所示:6程序实践报告(2010)图2-1满足当前页以系统当前日期的月份为准,显示当前月的每一天。

按“Up ”键其下面接着会显示上一年该月的万年历,如图2-2图2-27系统万年历的设计按“Down ”键其下面会接着显示下一年该月的万年历,如图2-3图2-3按“ ← ”键下面将会接着显示当年上一个月的万年历,如题2-4图2-48按“ → ”键将会在下面接着显示当年下一个月的万年历,如图2-5图2-5以上所显示按Esc后将会退去该程序。

以上运行的结果可知该c语言所设计的万年历满足设计要求6小结通过上一个学期对C语言的学习,我们学习了理论知识,了解了C语言程序设计的思想,这都为我们的下一步学习打下了坚实的基础。

通过本次课程设计,一方面是检查了我们一个学期的学习成果,另一方面也让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。

由于C语言是近年在国内外得到迅速推广应用的一种语言。

C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。

所以学好c语言对我们来说是非常必要的。

通过这次的c语言程序设计更加了解了c语言的好处和其可用性!在这次课程设计中我也知道了自己的动手能力不强还有待进一部的提高!在设计过程中不能够把书本上的知识与实践相结合,在设计过程中的一次次设计错误鞭策着我更加努力前进!最后经过大家的努力终于完成了课程设计!以下是在课程设计中发现的自己在编译过程中的诸多问题。

如书写标识符时,忽略了大小写字母的区别。

(编译程序把a和A认为是两个不同的变量名,而显示出错信息。

C语言认为大写字母和小写字母是两个不同的字符。

习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。

);忽略了“=”与“==”的区别。

(在C语言中,“=”是赋值运算符,“==”是关系运算符。

if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。

由于习惯问题,我往往会犯这样的错误。

)忽略了变量的类型,进行了不合法的运算;将字符常量与字符串常量混淆;C语言的变量一定要先定义才能使用;对应该有花括弧的复合语句,忘记加花括弧……通过对c语言万年历的设计进一步的巩固了用c语言编写程序,并且有利于更好的掌握c语言。

在C语言程序设计的过程中也知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的!都是要更好的掌握该门知识,提高自己的自身的修养,提高自己的能力!为以后的工作打下良好的知识基础和技能基础!在万年历的编写过程中我也体会到了做事情一顶有耐心呢、细心,认真。

也培养了我独立思考、综合运用所学有关相应知识的能力,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加知道了要掌握好基础知识的重要性。

在万年历的设计过程中更加体会到了团队合作的重要性,三个臭皮匠抵上一个诸葛亮。

大家在合作中共同努力,共同进步!团队合作才会更好的完成设计!我也体会到以后在工作中团队合作的必要性和重要性!通过这次课程设计让我在以后的学习中更加有信心!参考文献[1] 刘振安,刘燕君.《C程序设计课程设计》[M].北京:机械工业出版社,2004年9月[2] 谭浩强.《C程序设计》(第三版).清华大学出版社,2005年7月[3] 严蔚敏,吴伟民.《数据结构》(C语言版).清华大学出版社,1997年4月[4] 张岳新,《Visual C++ 程序设计》.苏州大学出版社,2007年12月[5] 徐宝文,《The C Programming Language 》.机械工业出版社,2004年1月[6] 黄明,梁旭,周绍斌,《Visual C++ 信息系统设计与开发实例》.机械工业出版社, 2005年3月[7] AL KELLEY等著,麻志毅译.《C语言解析教程》.北京:机械工业出版社,2002年[8] 李志球,《实用C语言程序设计教程》.北京:电子工业出版社,1999年[9] 王立柱,《C/C++与数据结构》.北京:清华大学出版社,2002年[10] 李大友,《C语言程序设计》.清华大学出版社,1999年附录附录1 源程序清单#include <stdio.h>#include <conio.h>#include <stdlib.h>#include <time.h>int leap(int year ){if ((year %4 == 0) && (year % 100 != 0)|| (year % 400 == 0)){return 1;}return 0;}void show(int year,int month,int date,int sec,int mini,int hour) {const char month_str[][4]={"","Jan","Feb","Mar","Apl", "May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};const int month_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int i,j,wdays,mdays,days;for(i=1,days=0;i<year;i++){if(leap(i)){days += 366;}else{days += 365;}}for(i=1;i<month;i++){if(i==2 && leap(year)){days+=29;}else{days+=month_day[i];}}printf(" %s.%d.%d %d:%d:%d \n",month_str[month],date,year,hour,mini,sec);printf(" 一二三四五六日\n");wdays = days % 7;for( j = 0; j < wdays; j++){printf(" ");}if(month == 2 && leap(year)){mdays=29;}else{mdays= month_day[month];}for(i=1;i<=mdays;i++){if( i > 1 && days % 7 == 0 ){printf("\n");}printf("%4d",i);days=days+1;}printf("\n---------------------------\n\n\n");}void main(){time_t rawtime;struct tm *info;int year,month,date,sec,mini,hour; char ch;time ( &rawtime );info = localtime ( &rawtime );year =info->tm_year + 1900; month =info->tm_mon + 1;date =info->tm_mday;hour =info->tm_hour;mini =info->tm_min;sec =info->tm_sec;while(1){show(year,month,date,sec,mini,hour); printf("↑......上一年\n\n");printf("↓......下一年\n\n");printf("←....前一个月\n\n");printf("→....后一个月\n\n");printf("Esc.......退出\n\n");ch=getch();switch(ch){case 27://Ecsexit(0);case -32://Navigatorch=getch();if(ch==77){//Rightyear+=(month==12)?1:0;month=month%12+1;}else if(ch==75){//Leftyear-=(month==1)?1:0;month=(month-2+12)%12+1; }else if(ch==72){//Upyear--;}else if(ch==80){//Downyear++;}system("cls");}}}。

相关文档
最新文档