时钟万年历

合集下载

基于PCF8563时钟芯片的万年历制作

基于PCF8563时钟芯片的万年历制作

万年历是一种能够显示日期、星期和时间的工具,它不仅能够告诉我们当天是几号,还能显示星期几和当前时间。

在这个项目中,我们将使用PCF8563时钟芯片来制作一个基于PCF8563的万年历。

PCF8563是一种CMOS实时时钟和日历芯片,它可以提供年、月、日、星期和小时、分钟、秒的数据。

它具有电源管理功能,可以通过一个电源低于2V脉冲输入来切换系统电源供电方式。

为了制作这个基于PCF8563的万年历,我们需要以下材料和工具:1. Arduino主控板2.PCF8563时钟芯片3.16x2液晶显示屏4.面包板5.杜邦线6.10k电阻接下来,我们将按照以下步骤来制作基于PCF8563的万年历:第一步:连接电路首先,将Arduino主控板插入面包板。

接着,连接PCF8563时钟芯片到Arduino主控板上的I2C总线。

将SDA引脚连接到A4引脚,将SCL引脚连接到A5引脚。

此外,还需要使用10k电阻将VCC引脚连接到VCC引脚上。

接下来,将16x2液晶显示屏连接到面包板。

连接液晶屏的RS引脚到Arduino主控板的D12引脚,RW引脚到GND引脚,和E引脚到D11引脚。

将液晶屏的D4到D7引脚连接到Arduino主控板的D5到D2引脚。

第二步:编写代码打开Arduino IDE并创建一个新的项目。

然后,编写以下代码:#include <Wire.h>#include <LiquidCrystal_I2C.h>//定义PCF8563的地址#define PCF8563_ADDR 0x51//定义显示屏的尺寸#define LCD_COLUMNS 16#define LCD_ROWS 2LiquidCrystal_I2C lcd(0x27, LCD_COLUMNS, LCD_ROWS);void setup//初始化I2C总线Wire.begin(;//设置时钟芯片为24小时模式Wire.beginTransmission(PCF8563_ADDR);Wire.write(0x02);Wire.write(0x00);Wire.endTransmission(;//初始化液晶显示屏lcd.begin(LCD_COLUMNS, LCD_ROWS);lcd.setCursor(0, 0);lcd.print("Date: ");lcd.setCursor(0, 1);lcd.print("Time: ");void loop//读取PCF8563的日期和时间Wire.beginTransmission(PCF8563_ADDR); Wire.write(0x02);Wire.endTransmission(;Wire.requestFrom(PCF8563_ADDR, 7);int second = bcdToDec(Wire.read( & 0x7F); int minute = bcdToDec(Wire.read();int hour = bcdToDec(Wire.read( & 0x3F); int dayOfWeek = bcdToDec(Wire.read();int dayOfMonth = bcdToDec(Wire.read();int month = bcdToDec(Wire.read( & 0x1F); int year = bcdToDec(Wire.read();//显示日期和时间lcd.setCursor(6, 0); printWithLeadingZero(dayOfMonth);lcd.print("/");printWithLeadingZero(month);lcd.print("/");lcd.print(2000 + year);lcd.setCursor(6, 1); printWithLeadingZero(hour);lcd.print(":");printWithLeadingZero(minute);lcd.print(":");printWithLeadingZero(second);delay(1000);//将BCD码转换为十进制int bcdToDec(int bcd)return (bcd / 16 * 10) + (bcd % 16);//打印带有前导零的数字void printWithLeadingZero(int number)if (number < 10)lcd.print('0');}lcd.print(number);第三步:上传代码将Arduino主控板连接到电脑,并根据需要选择正确的端口和板类型。

万年历时钟电路设计报告word精品

万年历时钟电路设计报告word精品

阿坝师范学院万年历设计报告姓名:李朝林学号:20156045 班级:电子信息工程02班阿坝师范学院物理与电子科学系目录1•设计任务与要求 (2)2•主要器件讨论与选择 (2)3.设计原理 (3)4•单元电路设计 (3)4.1显示电路 (3)4.2时分秒设计............................................. .44.3星期天数设计 (5)4.4闰年平年判断电路 (6)4.5二月与大小月判断电路 (9)4.6天数置数信号 (10)4.7校正电路 (11)4.8秒脉冲电路 (11)5.完整的电路设计原理图 (12)6.电路调试过程与方法 (13)7.实验心得体会与总结 (13)1. 设计任务与要求用数字集成电路设计万年历电子钟逻辑电路指标如下:1)设计一个能直接显示“年”“月”“日”、“星期”、“时”、“分”、“秒”的十进制万年历时钟显示器。

2)具有校时的功能,可分别对“年”、“月”、“日”、“星期”、“时” “分” “秒”进行单独校时。

2. 主要器件讨论与选择主要器件中显示模块选用74SEG_BCD数码管显示8421bcd码,计数模块统一选用74LS160作为计数芯片;74LS160具有同步置数异步清零功能,同时在有时钟脉冲的情况下进行加计数,无论采用同步置数还是异步清零都可以实现60s、60m、24h置数清零功能。

因此2/ 13[在此处键入]数字电子技术万年历设计报告3/ 1374LS160是一个不错的选择。

本次仿真通过 74LS160作为时分秒年月 日星期置数,通过秒计数的置数信号作为分计时的脉冲 cp ,取反作 为分计时的使能端,依次向高位进位达到显示目的。

通过闰年、平年、大月、小月、二月的判断电路来控制天计数的 多少。

校时电路,校时选用74LS74触发器作为跳变信号;74LS244存储 信号。

起作用的只有一个,当校时有效时计时电路无效。

3. 设计原理原理图如下:万年加时种星示器框采禺P4. 单元电路设计4.1显示电路振荡器呈期廿数楼时电路・译码显示电路疋*千 百 十个阿坝师范学院物理与电子科学系4 13整个显示电路分为年、月、日、时、分、秒、星期几大模块。

基于单片机的万年历时钟设计【文献综述】

基于单片机的万年历时钟设计【文献综述】

毕业设计开题报告测控技术与仪器基于单片机的万年历时钟设计1前言部分在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。

为了更好的利用我们自己的时间,需要一款灵活、稳定而又功能强大的自动定时控制系统,以规范本单位的作息时间或定时控制一些设备。

目前,市面上出现的一些时控设备或功能单一,或使用烦琐,或价格昂贵,总有一些不尽如人意的地方[1]。

我们必须对时间有一个度量,因此产生了钟表。

钟表的发展是非常迅速的,17 世纪中叶, 由荷兰人C. Huygens来发明的第一个钟摆与以前任何计时装置相比, 摆钟的精确度提高了上百倍,而他随后发明的螺旋平衡弹簧,又进一步提高精度、减小体积, 导致了怀表的出现。

然而再好的摆钟,其精度也只能达到每年误差不超过一秒[2]。

1939年出现了利用石英晶体振动计时的石英钟, 每天误差只有千分之二秒, 到二次大战后精度提高到30 年才差一秒。

很快, 测年的技术又推进到原子层面, 1948 年出现第一台原子钟, 1955年又发明了铯原子钟, 利用Cs133原子的共振频率计时,现在精度已经高达每天只差十亿分之一秒[2]。

从刚开始的机械式钟表到现在普遍用到的数字式钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能——计时功能,只是工作原理不同而已,在人们的使用过程中,逐渐发现了钟表的功能太单一,无法更大程度上的满足人们的需求。

发展到现在人们广泛使用的万年历。

万年历在家庭居室、学校、车站和广场使用越来越广泛,给人们的生活、学习、工作带来极大的方便[3]。

电子万年历具有信息量大、直观清晰、经济实用等优点,正成为家庭、商场、公共场所等新的消费热点,具有重要的开发价值[4]。

随着科技的不断发展,家用电子产品不但种类日益丰富,而且变得更加经济实用,,功能也越来越齐全,除了公历年月、日、时分秒、星期显示及闹铃外,又增加了农历、温度、24节气及l2生肖等显示。

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

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

毕业设计(论文)《具有温度显示的电子实时时钟/万年日历系统的设计与制作》专业(系)电气工程系铁道通讯信号方向班级铁道通讯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)主控芯片选择:根据万年历电子钟的功能需求,选择一款性能强大的主控芯片,例如ARM Cortex-M系列的芯片,具备强大的计算和控制能力。

(2)显示屏选择:选用高分辨率的液晶显示屏,能够清晰地显示日期和时间。

考虑到用户操作的便捷性,可以选择带有背光灯的显示屏。

(3)电源设计:采用直流电源供电,可以选择使用电池或者接入市电。

对于使用电池供电的设计,需加入节电模式,提高电池使用寿命。

2.软件设计(1)显示功能:通过主控芯片控制液晶显示屏,实现日期和时间的显示。

根据数据的变化,实时更新显示内容。

(2)时钟功能:使用定时器功能,实现时钟的计时功能。

利用时钟中断,每秒更新一次时钟。

(3)日期功能:通过读取实时时钟芯片的数据,获取当前的年份、月份、日期和星期。

根据每月的天数和闰年的规则,实现日期的显示和计算。

(4)闹钟功能:通过设置闹钟选项,设置闹钟的时间和铃声。

当闹钟的设定时间到达时,发出闹铃声。

三、设计结果经过软硬件设计的整合,实现了一款功能丰富的万年历电子钟。

通过液晶显示屏,能够准确地显示当前的年份、月份、日期、星期、小时和分钟。

通过定时器功能,实现了精准的时间计时功能。

通过读取实时时钟芯片的数据,实现了准确的日期显示和计算。

同时,通过设置闹钟功能,提醒用户重要的时间节点。

四、结论本文设计了一款功能强大的万年历电子钟,能够准确地显示日期和时间,并具有闹钟功能。

通过软硬件的整合,实现了高清晰度的显示和准确的日期计算。

该设备不仅满足了人们对时间和日期的需求,还具有提醒功能,对用户的生活起到了积极的作用。

值得注意的是,该设计只是一个初始的版本,仍可以进行优化和改进,使其更加符合用户需求。

万年历时钟实训报告

万年历时钟实训报告

一、实训目的本次万年历时钟实训的主要目的是通过实际操作,学习万年历时钟的设计与制作,掌握万年历时钟的原理和制作方法,提高动手实践能力和创新思维。

实训过程中,我们学习了万年历时钟的硬件组成、软件编程、电路设计等知识,并对万年历时钟进行了实际制作。

二、实训内容1. 万年历时钟硬件组成万年历时钟主要由以下几部分组成:(1)单片机:作为万年历时钟的核心控制器,负责处理时间、日期、温度等数据,并控制整个时钟的运行。

(2)DS1302实时时钟模块:用于存储和提供当前时间、日期等信息。

(3)DS18B20温度传感器:用于检测环境温度。

(4)LCD12864液晶显示屏:用于显示时间、日期、温度等信息。

(5)按键:用于设置和调整时间、日期、温度等信息。

2. 万年历时钟软件编程万年历时钟的软件编程主要包括以下几部分:(1)主程序:负责初始化硬件设备,处理时间、日期、温度等数据,控制LCD显示。

(2)时钟模块:负责读取DS1302模块中的时间、日期信息,并实现时钟功能。

(3)温度模块:负责读取DS18B20传感器中的温度信息,并实现温度显示功能。

(4)按键处理模块:负责处理按键输入,实现时间、日期、温度的设置和调整。

3. 万年历时钟电路设计万年历时钟的电路设计主要包括以下几部分:(1)单片机与DS1302模块的连接:通过I2C接口连接单片机与DS1302模块,实现时间、日期信息的读取和写入。

(2)单片机与DS18B20传感器的连接:通过1-Wire接口连接单片机与DS18B20传感器,实现温度信息的读取。

(3)单片机与LCD12864显示屏的连接:通过SPI接口连接单片机与LCD12864显示屏,实现显示信息的输出。

(4)按键与单片机的连接:通过GPIO接口连接按键与单片机,实现按键输入的处理。

三、实训过程1. 硬件准备首先,准备好万年历时钟所需的硬件设备,包括单片机、DS1302模块、DS18B20传感器、LCD12864显示屏、按键等。

万年历数字钟及可调时钟系统

万年历数字钟及可调时钟系统

万年历数字钟及可调时钟系统一、引言万年历数字钟是一种用万年历时钟芯片实现年、月、日、时、分、秒计时,并通过单片机处理后送给显示芯片显示的装置,与机械式时钟相比具有更高的准确性和直观性,且具有更长的使用寿命。

本系统还可以扩展为可调的自动开关,对家电对用电设备进行控制,笔者在随后改制成为可调时的自动断电的供电系统.二、原理图设计1.单片机及其外围电路设计复位采用X25045芯片,复位电路如图1所示。

图1 复位电路设计单片机采用贴片封装的AT89S51,晶振为11.0592MHz。

其中P1.5~P1.7为下载程序使用,电路如图2所示。

图2 单片机89S51外围电路设计2.时钟芯片电路设计时钟芯片采用PCF8563,晶振采用32.768K,电容使用15pf。

PCF8563 是PHILIPS 公司推出的一款工业级内含I2C 总线接口功能的具有极低功耗的多功能时钟/日历芯片。

内部时钟电路、内部振荡电路、内部低电压检测电路(1.0V)以及两线制I2C 总线通讯方式,不但使外围电路及其简洁,而且也增加了芯片的可靠性。

同时每次读写数据后,内嵌的字地址寄存器会自动产生增量。

电路如图3所示。

图3 时钟芯片电路设计3.显示芯片电路设计显示芯片采用ZLG7289,晶振为12MHz。

ZLG7289A 是广州周立功单片机发展有限公司自行设计的,具有SPI 串行接口功能的可同时驱动8 位共阴式数码管(或64 只独立LED )的智能显示驱动芯片,该芯片同时还可连接多达64 键的键盘矩阵,单片即可完成LED 显示﹑键盘接口的全部功能。

电路如图4所示。

图4 显示芯片电路设计4.双电源电路设计系统采用双电源,平时使用V1=10V的外接电源,停电时使用电池,由V2输入。

电池有6节,其电压为9V。

当电池电压低于6V时,LED亮,说明电池电量不足。

电路如图5所示。

图5 双电源电路设计三、程序设计程序开始时先对系统初始化,并设置好各种中断。

下步操作主要是对时钟芯片进行操作,首先要给时钟芯片设置初值,时钟芯片便自行计数。

智能时钟万年历(详细电路图)

智能时钟万年历(详细电路图)

《嵌入式课程设计》讲义项目1 智能数字万年历一.项目指标分析项目指标要求如下:1. 显示年、月、日、时、分、秒和星期。

2. 实时显示温度。

3. 可手动调整时间。

4. 采用LCD显示。

基于以上要求,核心控制芯片选用STC89C51;时钟芯片选用DS1302;温度传感器选用DS18B20;液晶屏选用LCD1602;设置按键,以便于调整时间。

二.电路原理系统电路功能图如图1所示:图1 智能数字万年历电路功能图由图1可知,P2口控制LCD的数据端;P3.5、P3.6和P3.7控制着LCD的片选、读/写和寄存器选择信号;可调电阻RP2用于调节屏的显示对比度。

P3.4是温度传感器DS18B20的1-wire接口,即片选、时钟和数据信号均由P3.4口控制。

P0.5、P0.6和P0.7是时钟芯片DS1302的SPI接口,为使信号控制更稳定,这三个接口上都上拉了10KΩ电阻;为获得精准的时钟信号,选用频率为32.768KHz的外部晶振对DS1302提供振荡信号。

P0.0-P0.3控制着四个按键,以便于调整时间。

三.程序设计基于这个项目,程序的设计可分成各芯片驱动程序设计和控制算法程序两部分。

1.各芯片的驱动程序设计在写驱动程序时,首先通读芯片手册,以掌握主要技术指标;然后可按照以下3个步骤进行:(1)分清楚各芯片的通信属于哪种接口方式,例如:时钟芯片DS1302按照SPI 接口进行通信;温度传感器DS18B20按照1-wire接口进行通信;液晶屏LCD1602采用常规的并行数据传输方式。

(2)仔细分析芯片时序图,弄清楚片选信号是高电平有效还是低电平有效;数据是在时钟信号的上升沿还是下降沿时打入;数据前还是时钟前等。

(3)将功能程序函数化、驱动程序模块化。

2.控制算法程序设计这里的算法主要集中在如何设置按键识别程序,即便于调整时间,又不影响液晶屏的显示。

这里,提供两种思想以便参考。

(1)循环扫描方式流程图图2 循环扫描方式流程图(2图3 状态机方式流程图将图2和图3比较起来看,两种方式的最大差别在于“10ms消抖时间如何度过?”。

万年历时钟

万年历时钟

基于单片机的万年历设计摘要随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。

为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

该电子万年历主要采用AT89C55WD单片机作为主控核心,由DS1302时钟芯片提供时钟、LED动态扫描显示屏显示。

AT89C55WD单片机是由Atmel 公司推出的,功耗小,电压可选用4~6V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的LED液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。

此外,该电子万年历还具有时间校准等功能。

关键词时钟电路;时钟芯片DS1302;LCD1602液晶显示器;单片机AT89C55WD.The Design of Calendar Based on SCMABSTRACTWith the society, science and technology, mankind learned that time, from the view of the sun, to the present electronic clock pendulum clock, continuous research and innovation. Observation time in the same time, be able to understand other human beings is closely related to information, such as temperature, week, date and so on, the birth of the electronic calendar, and it set the time, date, week and temperature-in-one, with easy to read, intuitive display functional diversity, and many other advantages of simple circuit with the electronic instrumentation of the development trend of the. market prospects are broad.The main use of the electronic calendar AT89C55WD single-chip microcomputer as the main core, provided by the DS1302 clock chip clock, DS18B20 the temperature chip acquisition transition temperature, LCD1602 display shows the dynamic scan. AT89C55WD single-chip microcomputer is introduced by Atmel Corporation, a small power consumption, voltage can be selected 4 ~ 6V power supply voltage; DS1302 clock chip is introduced DALLAS fine with trickle charge function of current low-power real-time clock chip, which can of the year, month, day, week, hour, minute, second for time, also has multiple functions, such as a leap year compensation, and long life of the DS1302, a small error; DS18B20 temperature chip is a digital temperature sensor with a measurement accuracy high, a simple circuit to connect the characteristics of such sensors only need a data cable for data transmission; digital LED display is used to display LCD screen, can display year, month, day, week, hour, minute, second and temperature, etc. information. In addition, the electronic calendar is also a time-calibrationfunctions.KEY WORDS: clock circuit; clock chip DS1302;LCD1602 screen; single-chipAT89C55WD;目录摘要 (I)ABSTRACT (II)前言 (1)第1章设计要求与方案论证 (2)§1.1功能要求 (2)§1.2 系统基本方案选择和论证 (2)§1.2.1 显示模块选择方案和论证 (2)§1.2.2 单片机的选择 (2)§1.2.3 键盘模块的选择 (3)§1.2.4 时钟芯片的选择方案和论证 (3)§1.3 电路设计最终方案决定 (4)第2章系统硬件电路的设计 (5)§2.1 闪电存储型器件AT89C55WD (5)§2.1.1 AT89C55WD具有下列主要性能 (5)§2.1.2 AT89C55WD的引脚及功能 (5)§2.1.3单片机主控制模块原理图 (7)§2.2 DS1302时钟电 (8)§2.2.1 DS1302芯片介绍 (8)§2.2.2 DS1302的性能特性 (9)§2.2.3 DS1302数据操作原理 (9)§2.2.4 DS1302的应用 (12)§2.3 DS18B20 数字温度传感器 (13)§2.3.1 DS18B20的主要特性 (13)§2.3.2 DS18B20的外形和内部结构 (13)§2.3.3 DS18B20工作原理 (14)§2.3.4 DS18B20的应用电路 (15)§2.4 LCD1602液晶显示器 (16)§2.4.1 1602LCD的基本参数 (16)§2.4.2引脚功能说明 (17)§2.4.3 LCD1602的应用电路 (18)§2.5 键盘电路 (18)§2.6 闹铃电路 (18)第3章系统的软件设计 (20)§3.1系统的主序流程图 (20)§3.2 时间调整程序流程图 (21)§3.3 温度子程序流程图 (22)第4章调试结果 (23)结论 (25)参考文献 (26)致谢 (27)附录一电路原理图 (28)附录二源程序代码 (29)附录三元器件清单 (32)前言随着电子技术的发展,人类不断研究,不断创新纪录。

电子报时器万年历床头电子小闹钟中文语音报时器说明书

电子报时器万年历床头电子小闹钟中文语音报时器说明书

一、产品概述1.1产品介绍1.2主要特点1)中文语音报时功能,清晰准确;2)万年历功能,显示年、月、日;3)小闹钟功能,可设置多个闹钟;4)光感传感器,自动调节亮度;5)记忆功能,保留设置时钟信息。

二、产品外观2.1主机外观该电子报时器万年历床头电子小闹钟外观小巧玲珑,简约大方。

主机采用高质量塑料材料制作,表面涂有耐磨的亮面漆,光滑且易于清洁。

2.2显示屏该产品配有2.8寸高清彩色显示屏,能够清晰显示时间、日期以及相关设置信息。

显示屏的背光采用LED灯源,保证观察时间的清晰度,同时根据环境光线自动调节亮度。

三、产品功能3.1报时功能该电子报时器万年历床头电子小闹钟为用户提供准确的时间信息。

通过设置,每整点、半点、1分钟、5分钟或10分钟,都会发出中文语音报时。

用户也可以根据需要,选择关闭或开启报时功能。

3.2万年历功能万年历功能能够显示当前的年、月、日信息。

通过操作按钮,用户可以切换显示的日期信息,确保了准确的时间参考。

3.3小闹钟功能该产品配有多个小闹钟功能,用户可根据个人需求设置不同时间的闹钟,以提醒重要的事情。

每个闹钟都可以单独设置时间和日期,同时还可以设置闹钟的音量。

3.4光感传感器为了满足用户的不同需求,该产品采用了光感传感器。

根据环境光线的变化,自动调节背光的亮度,保证在不同光照条件下的清晰可见度。

3.5记忆功能产品具备记忆功能,可以保留设置的时钟信息。

即使断电或者关闭产品,再次打开时,之前设置的时间和日期信息仍然可以保留,方便用户的使用。

四、使用说明4.1电源该产品采用AC220V电源供电,用户只需将电源线插入家庭电源插座即可。

4.2设置时间和日期在产品的底部设置区,有相关的设置按钮,用户可以通过长按或短按不同的按钮进行设置时间和日期。

具体操作流程,请参照产品附带的说明书。

4.3设置报时功能用户可以根据个人需求设置报时功能,并选择报时的时间间隔。

同时还可以设置报时的音量大小。

具体操作流程,请参照产品附带的说明书。

显示可调闹钟万年历设计

显示可调闹钟万年历设计

带温度显示可调闹钟万年历摘要本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。

系统最大的特点是体现了较强的人机交互和独立的模块化程序设计。

温度采集选用DS18B20芯片,数据显示采用1602A液晶显示模块,在第一行显示年月日、星期以及当前的状态,第二行显示温度和时间,合理的利用液晶显示区域。

51主芯片利用定时中断产生时间,控制着液晶的显示更新、温度的实时变化以及按键的读取处理,而对于闹钟,实际上就是时间里的一个嵌套程序。

时间和闹钟的值由按键调整设置,采用通用的二十四小时制。

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

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

关键字:万年历;温度计;闹钟;液晶显示一、方案设计与论证根据要求,系统分为四个模块进行方案设计:1.数据显示模块方案一:数据采集处理后采用六位数码管动态扫描,循环依次显示年月日(如09.01.01)、当前时间(如12.00.00)和温度星期(如+23.5_1),数码管用74LS164芯片驱动,硬件电路复杂且显示略显混乱,在软件方面,扫描部分由于要显示的数据太多而显的不清晰。

方案二:考虑到要显示的内容颇多,故运用1602A显示实时数据,第一行显示状态以及年月日星期(如S 2009—01—01 THU),第二行显示温度和实时时间(22.0C12:00:00),在处理按键设置时,第二行暂时屏蔽温度的显示而显示设置的内容。

这样虽然在程序方面多了1602A的一些初始化和读写子函数的定义,但程序的模块化却更加的清楚。

而且采用1602A LCM的液晶显示模块后不仅满足了大量数据的显示,,系统的硬件电路变的十分简单清晰明朗。

本设计采用了这种方案。

2 温度采集模块采用常用的温度采集芯片DS18B20单线数字温度传感器进行温度的采集。

时钟万年历说明书

时钟万年历说明书

时钟万年历说明书中国外形专利申请号:200730133153.4 “ALARM”时,按“UP”键可开启/关闭贪功能:睡功能,LCD 屏幕上方“SNZ”标志会相应◆兰色背光灯显示和不显示。

◆万年历显示; 4.在正常状态,按“DOWN”键可开启/关闭音◆数字温度计乐欣赏功能。

当开启时可巡回播放7 首不◆音乐闹钟,贪睡功能同的音乐。

◆反向计时器 5.在正常状态,按“SET”键可实现摄氏/华◆音乐欣赏氏温度转换。

◆生日提醒在以上各种状态,如果无按键 1 分钟,则基本操作自动返回正常显示状态。

1.装入3 节7 号电池, 进入”正常显示状 6.在任何状态下,按LIGHT 键可开启背光灯态”,并播放1 首音乐。

LCD 显示为:12:功能。

3 秒后自动关闭。

00 1/1 THU 7.本产品使3 节7 号电池。

如显示屏显示不2.在正常显示状态下,按“MODE”键分别进清晰时请更换电池。

入相应的功能:正常状态→12Hr/24Hr→闹钟→生日提醒→计时器2.1 在正常状态下,按一下“MODE”键进入12Hr/24Hr 状态, 然后按“UP、DOWN”键进行12/24 小时制的转换, 按“SET”键和“UP、DOWN”键可设置时间、日期。

2.2 在正常状态下,连续按两下“MODE”键进入闹铃状态,有“ALARM”标志显示,按“SET”键和“UP、DOWN”键可设置闹铃时间和选取闹铃音乐,共有7 首音乐及2个不同的“嘀嘀”声可供选择。

再次按“SET”键可关闭闹铃功能。

当设置的闹铃时间到达时,响闹1 分钟。

如有开启贪睡功能,则每 3 分钟响闹1 次,共响4 次。

2.3 在正常状态下,连续按三下“MODE”键进入生日提醒状态,按“SET”键和“UP、DOWN”键可设置生日提醒的日期、时间;再次按“SET”键可以关闭生日提醒功能。

当生日提醒所设置的时间到达时,播放5分钟生日歌曲。

2.4 在正常状态下,连续按四下“MODE”键进入计时器状态,有“TIMER”标志显示,按“SET”键和“UP、DOWN”键可设置反向计时的时间,计时范围:23:59-00:00 小时。

宏创万年历使用说明

宏创万年历使用说明

宏创万年历是一款以时钟、日历、温湿度、定时提醒和倒计时等功能为主的多功能电子产品。

它不仅具有简约时尚的外观设计,还集成了多种实用功能,方便人们的日常生活和办公使用。

下面将详细介绍如何正确使用宏创万年历。

一、时钟功能1.开机后,宏创万年历会显示当前时间,同时可以在屏幕上显示日期和星期几。

2.调整时间:按下“SET”键,进入时间调整模式,通过“HR”键和“MIN”键分别调整小时和分钟。

保存设置并退出时间调整模式,按下“SET”键再次即可。

3.设置日期:按下“SET”键进入日期调整模式,通过“YEAR”键、“MONTH”键和“DAY”键分别调整年、月和日。

保存设置并退出日期调整模式,按下“SET”键再次即可。

4.显示方式:按下“MODE”键可以切换时间显示方式,包括12小时制和24小时制。

5.时钟闹钟:按下“ALARM”键可以设置时钟闹钟,通过“HR”键和“MIN”键进行调整。

设置完成后,按下“ALARM”键即可启用或关闭闹钟功能。

二、日历功能1.宏创万年历可以显示当天的日期和星期几,并且支持查看其他日期的功能。

2.查看日历:按下“YEAR”键和“MONTH”键可以分别调整年和月,然后按下“DAY”键即可查看指定日期的日历。

3.查看节假日:在日历界面按下“HOLIDAY”键,即可查看当天是否是节假日。

三、温湿度功能1.宏创万年历可以实时显示当前室内的温度和湿度。

2.温度单位切换:按下“℃/℉”键可以切换温度显示单位。

3.温湿度报警:在温湿度界面按下“ALERT”键可以设置温度和湿度的报警阈值。

当超过设定阈值时,宏创万年历会发出声音和闪烁提示。

四、定时提醒功能1.宏创万年历可以设置定时提醒功能,用于提醒用户进行定时任务。

2.设置提醒:按下“TIMER”键,进入定时提醒设置模式。

通过“HR”键和“MIN”键设置提醒时间,按下“TIMER”键保存设置并退出设置模式。

3.提醒方式:在提醒时间到达时,宏创万年历会发出声音和闪烁提示。

万年历查询表

万年历查询表

万年历查询表
万年历是用来查询任何日期的日历,它不仅包括公历和农历,还可以查看节假日、时辰等信息。

下面介绍一些常见的万年历查询方法。

一、手机APP查询
目前有许多万年历手机APP可供下载,如“万年历”、“日历”等。

这些APP可以查询任意年份的公历、农历日期,并标注各种节日。

在APP中输入需要查询的日期,即可得到相应的信息。

二、网上查询
在互联网上,有很多万年历查询网站,如百度、搜狗等。

可以通过输入查询日期,得到公历、阴历、二十四节气、星座等信息。

三、书籍查询
对于喜欢看书的人,万年历也可以在书籍中查询。

现在市面上有很多种类的万年历书籍,这些书籍内含有大量的历法知识和详细的日历表,可以满足不同人群的需求。

四、问问长辈
在以前的时代,万年历还没有普及,因此我们可以向长辈求助。

他们经常能够很快地回答我们问题,同时也能够分享一些历史文化知识。

总之,以上是一些常见的万年历查询方式。

如果有需要,大家可以采用任何一种查询方式,获取自己需要的信息。

1602万年历时钟实验报告

1602万年历时钟实验报告

摘要本文介绍了基于STC89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法。

本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。

系统以STC89C52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。

温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602A液晶显示模块,可以在LCD上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。

此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。

关键字:万年历温度计液晶显示ABSTRACTThis paper introduces the based on STC89C52 multi-function electronic calendar of the hardware structure and software and hardware design method. This design by data display module, temperature acquisition module, time processing module and set module four modules. With STC89C52 single-chip microcomputer system for the controller to serial clock calendar chip DS1302 record calendar and time, it can be to date and time, minutes and seconds for the time, also has a leap year compensation and other functions. Temperature gathering choose DS18B20 chip, calendar by using object digital display, data showed that the 1602 A liquid crystal display module, can be in the LCD shows at the same time year, month, day, Sunday, when, minutes and seconds, still have time calibration etc. Function. This calendar has read the convenient, direct display, functional diversity, simple circuit, low cost, and many other advantages, has a broad market prospect.Key words:Perpetual Calendar thermometer LCD display目录摘要 (I)ABSTRACT (II)1 绪论 (1)1.1 课题研究的背景 (1)1.2课题的研究目的与意义 (1)1.3课题解决的主要内容 (1)2 系统的方案设计 (2)2.1单片机芯片设计与论证 (3)2.2按键控制模块设计 (3)2.3时钟模块设计 (3)2.4温度采集模块设计 (3)2.5显示模块模块设计 (3)3 系统硬件的设计 (4)3.1 STC89C52单片机 (4)3.2时钟芯片DS1302接口设计与性能分析 (7)3.3温度芯片DS18B20接口设计与性能分析 (10)3.4 LCD显示模块 (15)3.5按键模块设计 (16)3.6复位电路的设计 (17)4 系统的软件设计 (19)4.1主程序流程图的设计 (19)4.2 程序设计 (20)5 系统的机体设计 (20)5.1系统的模块组成 (20)5.2 功能实现 (20)结论 (23)参考文献 (24)附录 (268)1 绪论1.1 课题研究的背景随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。

时钟万年历遥控外文说明书

时钟万年历遥控外文说明书

时钟万年历遥控外文说明书时钟万年历遥控外文说明书引言:时钟万年历遥控是一款功能强大、设计精美的智能产品,它不仅具备准确显示时间和日期的功能,还可以通过遥控手柄进行操作,方便用户使用。

本说明书将全面介绍时钟万年历遥控的功能和操作指南,帮助用户更好地使用该产品。

一、产品功能:1. 准确显示时间:时钟万年历遥控采用高精度的时钟芯片,能够精确显示当前时间,并实时更新。

2. 完整显示万年历:该时钟还配备了完整的万年历功能,包括年、月、日的显示,满足用户对日期信息的需求。

3. 定时功能:时钟万年历遥控可以设置定时功能,用户可以根据需要设定闹钟或定时器,方便日常生活和工作。

4. 温度显示:时钟万年历遥控还具备温度显示功能,用户可以随时了解当前环境的温度情况,以便做出相应的调整。

二、产品外观和配件:1. 外观:时钟万年历遥控采用纤薄设计,拥有时尚简约的外观,适合放置在家庭、办公室等各种环境中。

2. 显示屏幕:产品配备大尺寸液晶显示屏,清晰度高,显示内容直观。

3. 遥控手柄:时钟万年历遥控还配备了遥控手柄,用户可以通过手柄对时钟进行操作,方便灵活。

4. 电源适配器:产品附带电源适配器,可以插入电源进行使用,也可以使用电池作为备用电源。

三、使用指南:1. 时间设置:首次使用时,请先将时钟插入电源或安装电池。

然后按照说明书的指导,使用遥控手柄上的调节键来设置时间。

2. 日历设置:时钟万年历遥控已经预设了日期自动更新的功能,不需要用户手动设置。

如果需要更改日期,可以使用遥控手柄上的相关按键进行操作。

3. 定时功能:用户可以按照自己的需要设置闹钟或定时器。

通过遥控手柄上的定时键,输入指定的时间,并按确认键即可完成设置。

4. 温度显示:时钟万年历遥控会自动感知环境温度,并在显示屏上显示。

用户无需额外设置。

结语:时钟万年历遥控是一款功能强大、外观精美的产品,具备准确显示时间和日期、定时功能以及温度显示等多种功能。

通过本说明书,用户可以轻松了解产品的外观特点和使用指南,帮助更好地使用该产品。

电子时钟万年历

电子时钟万年历

机电一体化生产系统设计大作业题目:电子实时时钟/万年日历系统系别专业班级学号姓名2010 年11月1日任务书1、设计题目:电子实时时钟/万年日历系统2、应完成的项目:(1)显示准确的北京时间(时、分、秒),可用24小时制式(2)随时可以调校时间(3)增加公历日期显示功能(年、月、日),年号只显示最后两位(4)随时可以调校年、月、日3、参考资料:(1) 《中外电子元器件》(2) 《现代电子技术》(3) 《单片机原理及应用》(4) 《可编程控制器原理及应用》一、题目:电子实时时钟/万年日历系统二、功能要求:1.基本要求:⑴显示准确的北京时间(时、分、秒),可用24小时制式;⑵随时可以调校时间。

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

三、方案考虑:1、硬件方案:⑴显示器采用6位LED数码管(共阳),可分别显示时间或日期。

⑵显示器的驱动采用动态扫描电路形式,以达到简化电路的目的。

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

可采用74LS244或者晶体管;其中74ls244是用来驱动段选码,晶体管是驱动位选码。

⑶采用“一键多用方案”,以减少按键数目。

本方案采用了4按键。

⑷整体上要考虑:结构简单、布局美观、操作方便、成本低廉。

2、元件清单:⑴ 89C52 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个(用于系统复位电路)。

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

Main.javaimport java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JFrame;public class Main extends JFrame{//创建面板Calendar Calendar=new Calendar();Clock clock=new Clock();public Main(){//设置布局为nullsetLayout(null);//设置关闭方式setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口位置和大小setBounds(300, 200, 600, 360);//将面板加入窗口add(Calendar);add(clock);//设置面板位置和大小Calendar.setBounds(0, 0, 400, 360);clock.setBounds(420, 100, 200, 200);//设置窗口关闭事件addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//使窗口显示setVisible(true);}public static void main(String args[]){new Main();}}Clock.javaimport java.awt.*;import javax.swing.*;import java.awt.event.*;import java.util.Calendar;import java.awt.geom.*;public class Clock extends JPanel implements ActionListener { protected static Ellipse2D face = new Ellipse2D.Float(3,3,94,94); protected static GeneralPath tick = new GeneralPath(); //包含在java.awt.geom.*;static{tick.moveTo(100, 100);tick.moveTo(49, 0);tick.lineTo(51, 0);tick.lineTo(51, 6);tick.lineTo(49, 6);tick.lineTo(49, 0);}protected static GeneralPath hourHand = new GeneralPath();static{hourHand.moveTo(50, 15);hourHand.lineTo(53, 50);hourHand.lineTo(50, 53);hourHand.lineTo(47, 50);hourHand.lineTo(50, 15);}protected static GeneralPath minuteHand = new GeneralPath(); static{minuteHand.moveTo(50, 2); minuteHand.lineTo(53, 50); minuteHand.lineTo(50, 58);minuteHand.lineTo(47, 50);minuteHand.lineTo(50, 2);}protected static GeneralPath secondHand = new GeneralPath();static{secondHand.moveTo(49, 5);secondHand.lineTo(51, 5);secondHand.lineTo(51, 62);secondHand.lineTo(49, 62);secondHand.lineTo(49, 5);}protected static Color faceColor = new Color(220,220,220); protected static Color hourColor = Color.red.darker();protected static Color minuteColor = new Color(220,0,220); protected static Color secondColor = Color.blue.darker(); protected static Color pinColor = new Color(220,20,111);protected static Ellipse2D pivot = new Ellipse2D.Float(47,47,6,6); protected static Ellipse2D centerPin = newEllipse2D.Float(49,49,2,2);protected AffineTransform hourTransform =AffineTransform.getRotateInstance(0,50,50);protected AffineTransform minuteTransform =AffineTransform.getRotateInstance(0,50,50);protected AffineTransform secondTransform =AffineTransform.getRotateInstance(0,50,50);protected Timer timer = new Timer(1000,this);protected Calendar calender = Calendar.getInstance();public Clock(){setPreferredSize(new Dimension(100,100));}public void addNotify(){super.addNotify();timer.start();} public void removeNotify(){timer.stop();super.removeNotify();}public void actionPerformed (ActionEvent event){this.calender.setTime(new java.util.Date());int hour = this.calender.get(Calendar.HOUR);int minute = this.calender.get(Calendar.MINUTE);int second = this.calender.get(Calendar.SECOND);hourTransform.setToRotation((((double)(hour-1.0+minute/60.0))*(Ma th.PI/6.0)),50,50);minuteTransform.setToRotation(((double)(minute+second/60.0))*(Mat h.PI/30.0),50,50);secondTransform.setToRotation(((double)second)*(Math.PI/30.0),50, 50);repaint();}public void paint(Graphics g){super.paint(g);Graphics2D g2 = (Graphics2D) g;g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);GradientPaint pat1=newGradientPaint(0f,80f,Color.WHITE,100f,0f,new Color(200,25,250)); g2.setPaint(pat1);g2.fill(face);g2.setPaint(Color.black);g2.draw(face);g2.setPaint(hourColor);g2.fill(hourHand.createTransformedShape(hourTransform));g2.setPaint(minuteColor);g2.fill(minuteHand.createTransformedShape(minuteTransform));g2.setPaint(secondColor);g2.fill(secondHand.createTransformedShape(secondTransform));for (double p = 0.0; p < 12.0; p += 1.0) {g2.fill(tick.createTransformedShape(AffineTransform.getRotateInstance((Math.PI / 6.0) * p,50, 50)));}g2.fill(pivot);g2.setPaint(pinColor);g2.fill(centerPin);}}Calendar.javaimport java.awt.*;import java.awt.event.*;import ng.StringBuffer;import javax.swing.*;import java.util.*;import javax.swing.Timer;import javax.swing.border.*;public class Calendar extends JPanel implementsActionListener,ItemListener{Date date = new Date();private GregorianCalendar gregorianCalendar = newGregorianCalendar();//定义中英文字符数组存储星期信息,用于转换显示private String[] stringWeekEn= new String[] { "SUN", "MON", "TUE", "WED","THU", "FRI", "SAT" };private String[] stringWeekCn = new String[] { "星期日", "星期一", "星期二", "星期三","星期四", "星期五", "星期六" };//定义存储月份的信息数组,用于转换显示方示private String[] stringMonthEn= new String[] { "Jan", "Feb", "Mar", "Apr","May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" };private String[] stringMonthCn= {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};private String[] sysNowTime = new String[6];//sysNowTime 用于存储系统时间的变量private String[] sysRunTime = new String[6];private JLabel []labelWeek = new JLabel[7];private JLabel []labelDay = new JLabel[42];private JLabel labelTime = new JLabel();private JPanel panel1 = new JPanel();private JPanel panel2 = new JPanel();private JPanel panel3 = new JPanel();private JComboBox combo1 = new JComboBox();private JComboBox combo2 = new JComboBox();private JButton buttonToday = new JButton();private Border border = BorderFactory.createRaisedBevelBorder(); private Border border1 =BorderFactory.createLineBorder(Color.cyan,3);public Calendar() {for (int y = 1900; y < 2101; y++) {combo1.addItem(" " + new Integer(y).toString()+"年");}for (int m = 0;m<12;m++){combo2.addItem(" "+stringMonthCn[m]);}buttonToday.setText("今天");setLayout(new FlowLayout());add(panel1);add(panel2);add(panel3);panel1.setLayout(new GridLayout(1,3,10,0));panel1.add(combo1);combo1.addItemListener(this);panel1.add(combo2);combo2.addItemListener(this);panel1.add(buttonToday);buttonToday.addActionListener(this);labelTime.setFont(new Font("宋体",Font.PLAIN,16));labelTime.setForeground(Color.MAGENTA);panel1.add(labelTime);Timer time = new Timer(1000,new TimerListener());time.addActionListener(new TimerListener());//time.setRepeats(true);time.start();//labelTime.addAncestorListener(new TimerListener()); panel2.setLayout(new GridLayout(7,7,0,10));panel2.setBackground(Color.white);for(int i=0;i<7;i++){labelWeek[i] = new JLabel();labelWeek[i].setHorizontalAlignment(0);if(i==0||i==6){labelWeek[i].setBackground(Color.blue);labelWeek[i].setForeground(Color.RED);labelWeek[i].setFont(new Font("黑体",Font.BOLD,14)); }else{labelWeek[i].setForeground(Color.BLACK);labelWeek[i].setFont(new Font("新宋体",Font.PLAIN,14)); }labelWeek[i].setText(stringWeekCn[i]);panel2.add(labelWeek[i]);}for(int i= 0;i<42;i++){labelDay[i] = new JLabel();labelDay[i].setHorizontalAlignment(0);labelDay[i].setText("");panel2.add(labelDay[i]);}setSize(300,300);setBounds(250, 200, 400, 360);setVisible(true);getSysDate();setNowDate();}public void actionPerformed(ActionEvent ae){if(ae.getSource()==buttonToday){setNowDate();}}public void itemStateChanged(ItemEvent aa){setChangeDate();}public int turnWeek(String week){int i;for(i=0;i<7;i++)if(week.equalsIgnoreCase(stringWeekEn[i]))break;return i;}public int turnMonth(String month){/***int turnMonth(String month)*@month系统日期中的月,诸如Jan\Feb*@return int*返回一个整数值,用于寻找stringMonthCn[]数组中对应的中文月份*/int i;for(i=0;i<12;i++)if(month.equalsIgnoreCase(stringMonthEn[i]))break;return i;}/***setNowDate()*设置当前系统日期*/public void setNowDate(){setSysDate(getNowYear(),getNowMonth());getSysRunDate();setDateNull();combo1.setSelectedIndex(getShowYear() - 1900);combo2.setSelectedIndex(getShowMonth());setDays(getMonthDays(getNowYear(),getNowMonth()),getInitWeek(sysR unTime[0]),getNowDay());//labelTime.setText(sysNowTime[3]);//labelTime.setHorizontalAlignment(0);}/**Integer getShowYear()*获取组合框中应该显示的年份*/public void setSysDate(int year,int month){gregorianCalendar.set(year,month,1);}public void setDateNull(){for(int i=0;i<42;i++){labelDay[i].setText("");}}public void setChangeDate(){setSysDate(getComboYear(),getComboMonth());getSysRunDate();setDateNull();setDays(getMonthDays(getComboYear(),getComboMonth()),getInitWeek( sysRunTime[0]),-1);}public int getMonthDays(int year, int month) {/***返回所选年月的天数,因为数组中的数值从0开始,所以3\5\8\10分别代表4\6\9\11几个小月.*而1代表2月,经过是否为闰年判断,选择返回28或29天.*其余月份为大月,返回31天.**/switch (month) {case 3:case 5:case 8:case 10:return 30;//小月返回30天case 1:if (gregorianCalendar.isLeapYear(year)) {//isLeapYear(year)确定当前纪元中的指定年份是否为闰年。

相关文档
最新文档