带温度显示的可调时钟
带温度显示的万年历_数码管显示(附电路图和源代码)
设计报告设计任务:设计一个智能化万年历时钟电路,LED数码管作为电路的显示部分,按钮开关作为调时部分,通过与单片机连接数码管动态显示年、月、日、时、分、秒、星期、温度。
并能准确计算闰年闰月的显示。
设计要求:通过与单片机连接数码管动态显示年、月、日、时、分、秒、星期等功能,并能准确计算闰年闰月的显示,三个个按钮连接P3.0、P3.1、P3.2可以精确调整每一个时间数值,通过对所设计的万年历时钟电路进行实验测试,达到了动态显示时间,随时调整时间等技术所连线路和单片机接口仿真图如图3所示:图3 仿真按键4)温度采集部分:DS18B20温度传感器,测温范围-55℃~+125℃,固有测温分辨率0.5℃。
独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
DS18B20的采集数据通过DQ传入单片机,单片机读取数据后将数据输出!如图所示:程序如下:ReadOneChar(void){unsigned char i=0;// 定义i用于循环unsigned char dat = 0;// 读取的8位数据for (i=8;i>0;i--)//8次循环{DQ = 0;// 拉低DQ总线开始读时序dat>>=1;// dat左移一位DQ = 1; //释放DQ总线if(DQ)// 如果DQ=1,执dat|=0x80;(0x80即第7位为1,如果DQ为1,即读取的数据为1,将dat的第7为置1,然后dat>>=1,循环8次结束,dat 即为读取的数据)//DQ=0,就跳过dat|=0x80;Tdelay(4);// 延时以完成此次读时序,之后再读下一数据}return(dat); 返回读取的dat}//写一个字节WriteOneChar(unsigned char dat){unsigned char i=0;//for (i=8; i>0; i--)//{DQ = 0;//DQ = dat&0x01;//Tdelay(5);//延时以完成此次读时序,之后再读下一数据DQ = 1;//dat>>=1;//}}//读取温度ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;//Init_DS18B20();WriteOneChar(0xCC);// 写指令,跳过ROM,WriteOneChar(0x44);// 启动温度转换Init_DS18B20();WriteOneChar(0xCC);// 写指令,跳过ROM,WriteOneChar(0xBE);// 写指令,读暂存存储器a=ReadOneChar();//读低8位b=ReadOneChar();//读高8位t=b;//t<<=8;//t=t|a;//tt=t*0.0625;//t= tt*10+0.5;//return(t); //获得0.01°C 的精度并返回}LED数码管的选择LED数码管分为共阴和共阳两种,以利用STC89C51的P0口作为LED显示的数据部分,以P2口的七个口作为显示部分的位选,通过三八译码器和4-16译码器扩展为17位的位选分别接在一个四位数码管和13个数码管的位选部分。
电子时钟使用说明
电子时钟使用说明电子时钟是一种现代化的时钟,它采用了电子技术来进行时间计算和显示。
相比传统的机械时钟,电子时钟更加准确、精确,并且功能更加丰富。
下面将对电子时钟的使用进行详细的说明。
一、基本操作:1.插上电源:将电子时钟插入交流电源插座,并确保电压符合时钟的要求。
电子时钟会自动启动并进入待机状态。
2.设置时间:大多数电子时钟都有时间设置功能。
通常通过按下设置按钮(可能会标有"SET"或"MODE"等字样)来进入设置模式,然后使用加减按钮或者旋转按钮设置小时和分钟。
一旦设置完成,再次按下设置按钮退出设置模式,并开始正常工作。
3.调节亮度:电子时钟通常提供了亮度调节功能,以适应不同的环境需求。
通过按下亮度调节按钮(可能会标有"BRIGHT"或"B/L"等字样)来切换亮度档位,并选择最适合的亮度。
4.设置闹钟:大多数电子时钟还具备闹钟功能。
按下闹钟设置按钮(可能会标有"ALARM"或"A/L"等字样)进入闹钟设置模式,然后使用加减按钮或者旋转按钮设置闹钟的小时和分钟。
设置完成后,再次按下闹钟设置按钮退出设置模式,闹钟将会在设定的时间响起。
5.切换显示模式:一些电子时钟还提供了多种显示模式。
通过按下模式切换按钮(可能会标有"MODE"或"DISPLAY"等字样)来切换显示模式,可以切换显示时间、日期、温度等信息。
二、高级功能:1.温度显示:一些电子时钟具备温度检测功能,在屏幕上显示当前的室内温度。
通常使用室内温度感应器来检测温度,并在屏幕特定位置显示。
2.日历功能:一些电子时钟还具有日历功能,可以显示当前的日期,以及周几信息。
有些电子时钟还能显示农历日期和重要节日信息。
3.定时开关机:少数电子时钟还具备定时开关机功能。
用户可以事先设置好开关机的时间,电子时钟将在到达设定时间时自动开关机,非常方便。
#DS—DSBLCD显示时间温度可调时
实时时钟芯片DS1302应用,DS18B20应用实例——可调时钟,LCD1602显示:<时间+温度)说明:需要按程序中定义的接口。
按自己接口,只要在程序中修改接口定义即可。
1、DS1302引脚排列:如下图引脚说明:1)Vcc1:后备电源,VCC2:主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
2)X1、X2:振荡源,外接32.768kHz晶振。
3)RST:复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc>2.0V之前,RST必须保持低电平。
只有在SCLK 为低电平时,才能将RST置为高电平。
4)I/O为串行数据输入输出端(双向)。
5)SCLK为时钟输入端。
2、DS1302的控制字节DS1302 的控制字如下图所示。
控制字节的最高有效位(位7>必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据。
位5至位1指示操作单元的地址。
最低有效位(位0>如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
3、数据输入输出(I/O>在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
七彩数字时钟总结
七彩数字时钟总结七彩灯钟中文说明书、使用方法商品简介1、七彩色灯光循环变换,制造浪漫气氛。
2、体积小:适合于家庭及办公室。
3、超大LED数字显示屏,轻轻松松一目了然。
4、功能多:有时间、闹钟、年、月、日、星期和温度显示功能。
5、两种时间制式:12小时制和24小时制6、8种闹钟铃声可供选择。
7、两种温度制式:温度有摄氏(0℃-55℃)和华式(32℉-122℉)显示可供选择。
8、两种发光模式:有DEMO/ON和OFF两种模式*DEMO/ON模式:自动变换出七种彩色的灯光。
*OFF模式:处于待机状态,轻触顶部,就会发出柔和的橙色彩光照明。
9、使用LDE彩灯发光,非常省电。
10、产品尺寸:8×8×8CM使用事项1、使用2颗钮扣电池(产品中已包含,第一次使用时,请把钮扣电池中的绝缘小纸条抽出来,以便LCD显示屏通电运行),和4个7号干电池2、也可以使用4.5V变压器,如需购买另加8元。
操作参考七彩钟中文说明书★正常时间功能:显示时间、日期(从2000年至2099年)、星期、温度,并可实现12/24小时制的转换。
★闹钟和贪睡功能:每日闹铃,闹铃音乐有8首可选,同时可开启贪睡功能。
★环境温度显示功能:温度测量0°C-50°C或32°F-122°F 并可进行摄氏/华氏温度转换。
★七彩灯功能:可发出七种颜色的光,循环变色。
使用说明书1、时间日期设置★上电后显示正常状态。
按SET键进入时间、日期的设置,并以下列顺序分别设置小时、分钟、年、月、日、星期等,通过UP/DOWN键配合来完成设置。
★设置范围:时为1-12或0-23、分为0-59,年为2000-2099、月为1-12、日为1-31在日期设置的同时,星期由MON至SUN相应的自动改变.★在设置状态,也可按AL键或无按键1分钟退出设置,并显示当前所设置的时间。
★在正常状态,按UP键进行12和24小时转换。
具有温度显示的电子实时时钟万年日历系统的设计与制作
毕业设计(论文)《具有温度显示的电子实时时钟/万年日历系统的设计与制作》专业(系)电气工程系铁道通讯信号方向班级铁道通讯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研究背景当今社会逐渐步入信息化时代,快节奏、高效率成为当今时代的主题。
带温度显示的电子闹钟设计说明
题目:带温度显示的电子闹钟设计摘要本文设计了一款利用单片机技术实现带温度显示的电子闹钟。
以应用AT89C51芯片作为核心,利用8位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能,同时利用DS18B20温度传感器测量环境温度。
这种实现方法的优点是电路简单,性能可靠,实时性好,时间和温度精度高,操作简单,编程容易。
关键词:电子闹钟,温度,AT89C51,DS18B20,DS1302AbstractThe design determines to use the MCU technology to realize the multi-functional electron clock. This design use AT89C51 as a core chips, 8 LED digital displaying. using DS1302 real-time clock chip to complete the basic function of the clock/calendar.At the same time the design use of DS18B20 temperature sensors is for collecting the environmental temperature. The method has the advantage of being simple circuit, reliable performance, good real-time, high precision of the time and temperature, simply operation, easy programming.Key words: Electronic clock,Temperature,AT89C51,DS18B20,DS1302目录1 绪论................................................................... .. (1)1.1 引言............................................................... (1)1.2 电子时钟研究背景和意义............................................................... (1)1.3论文主要工作概述................................................................. . (1)2 系统设计方案................................................................... . (2)2.1带温度显示的电子闹钟系统的总体构成 (2)2.2带温度显示电子闹钟系统的功能................................................................. .33 系统硬件计................................................................... .. (4)3.1主要IC芯片选择................................................................. (4)3.1.1 微处理器选择................................................................... . (4)3.1.2 芯片DS1302简介................................................................... (5)3.1.3 环境温度传感器................................................................... (6)3.2 电子时钟的硬件电路设计................................................................... . (8)3.2.1时钟电路设计............................................................... (8)3.2.2环境温度采集电路设计............................................................... (8)3.2.3显示电路计................................................................. (9)3.2.4按键电路设计............................................................... (10)3.2.5闹铃电路设计............................................................... (11)4 系统软件设计................................................................... .. (12)4.1主程序计................................................................. (12)4.2子程序设计............................................................... (12)4.2.1实时时钟日历子程序设计................................................................124.2.2环境温度采集子程序设计................................................................134.2.3显示子程序设计................................................................... . (16)4.2.4闹铃子程序设计................................................................... . (19)5 系统调试...................................................... (19)5.1 硬件调试................................................................... .. (19)5.1.1 单片机基础电路调试................................................................... (19)5.1.2 显示电路调试................................................................... (20)5.1.3 DS1302电路调试................................................................... (20)5.1.4 按键电路调试................................................................... (21)5.2 软件调试................................................................... .. (21)5.2.1 环境温度采集子程序调试 (21)5.2.2 键盘子程序调试................................................................... .. (21)6 结论................................................................... (22)致................................................................... . (23)参考文献 (24)附录一系统设计总电路图 (25)附录二带温度显示的电子闹钟程序 (26)1 绪论1.1 引言从古代的滴漏更鼓到近代的机械钟,从电子表到目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进计时工具.钟表的数字化,大力推动了计时的精确性和可靠性.20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
基于单片机的带温度显示的数字钟设计(c51语言编程)【开题报告】
开题报告电气工程及其自动化基于单片机的带温度显示的数字钟设计(c51语言编程)一、课题研究意义及现状1980年因特尔公司推出了MCS-51单片机,近30年来,其衍生系列不断出现,从Atmel加入FLASH ROM,到philips加入各种外设,再到后来的Cygnal推出C8051F,使得以8051为核心的单片机在各个发展阶段的低端产品应用中始终扮演着一个重要的角色,其地位不断升高,资源越来越丰富,历经30年仍在生机勃勃地发展,甚至在SoC时代仍占有重要的一席之地。
单片机具有体积小、功能强、低功耗、可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域智能仪表、机电一体化、实时控制、国防工业普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。
C语言已经成为当前举世公认的高效简洁而又贴近硬件的编程语言之一。
将C语言向单片机8051上移植十余20世纪80年代的中后期,经过几十年的努力,C语言已成为专业化单片机上的实用高级语言。
C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。
此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。
与汇编语言相比,C51在功能、结构、可读性、可维护性上有明显的优势,因而易学易用。
另外C51可以缩短开发周期,降低成本,可靠性,可移植性好。
因此,使用C语言进行程序设计已成为软件开发的一个主流,用C语言进行8051单片机程序设计是单片机开发与应用的必然趋势。
随着人们生活水平的提高,对物质需求也越来越高,人们已不再满足于钟表原先简单的报时功能,希望出现一些新的功能,诸如环境温度显示、日历的显示、重要日期倒计时、显示跑表功能等,用以带来更大的方便。
而所有这些,又都是以数字化的电子时钟为基础的,不仅应用了数字电路技术,而且还加入了需要模拟电路技术和单片机技术。
(汇编)实现数码管显示年,月,日,时,分,秒,星期,温度,按键可调万年历
;///////////////////////////////////////////;本程序源代码由湖南工程职业技术学院提供.;专业单片机培训,让你学习单片机更容易.;程序员:蒋庆桥;QQ:xxxxxxxxx;本程序用汇编实现数码管显示年,月,日,时,分,秒,星期,温度,按键可调万年历,H_ADJ BIT P3.0 ;时/年调整M_ADJ BIT P3.1 ;分/月调整S_ADJ BIT P1.4 ;秒/日调整DT_SET BIT P1.6 ;时间/日期选择STR BIT P1.5;启动走时T_RST BIT P1.0 ;实时时钟复位线引脚T_CLK BIT P1.1 ;实时时钟时钟线引脚T_IO BIT P1.2 ;实时时钟数据线引脚HH_BIT EQU 40H ;时高位HL_BIT EQU 41H ;时低位MH_BIT EQU 42H ;分高位ML_BIT EQU 43H ;分低位SH_BIT EQU 44H ;秒高位SL_BIT EQU 45H ;秒低位TEMPER_L EQU 46HTEMPER_H EQU 47HYH_BIT EQU 48H ;年高位YL_BIT EQU 49H ;年低位MOH_BIT EQU 4aH ;月高位MOL_BIT EQU 4bH ;月低位DH_BIT EQU 4cH ;日高位DL_BIT EQU 4dH ;日低位SEC EQU 30HMIN EQU 31HHOUR EQU 32HDAY EQU 33HMONTH EQU 34HWEEK EQU 35HYEAR EQU 36HTEMPER equ 37hFLAG1 BIT 20h.0 ;DS18B20存在标志位DQ BIT P1.3A_BIT EQU 55HB_BIT EQU 56HDS1302_ADDR EQU 5EHDS1302_DATA EQU 5FHORG 00HLJMP STARTSTART:MOV SP,#60HMOV TMOD,#11HMOV TH0,#3CHMOV TL0,#0B0HMOV R0,#10SETB EASETB ET0SETB TR0MOV R1,37HMOV YEAR,#13H ;上电预置日期、时间MOV WEEK,#03H ;周1 MONMOV MONTH,#07H ;2011 04 25 12:00:00MOV DAY,#05HMOV HOUR,#23HMOV MIN,#00HMOV SEC,#00HMOV 50H,#0/////////////////////////////////////////////////////////////////////// ////MAIN:LCALL KEY//MAIN2:CALL FENLILCALL INIT_18B20LCALL GET_TEMPERcall CHANGEcall dispcall displayAJMP MAINFENLI:MOV A,YEARMOV B,#10HDIV ABMOV YL_BIT,BMOV YH_BIT,AMOV A,MONTHMOV B,#10HDIV ABMOV MOL_BIT,BMOV MOH_BIT,AMOV A,DAYMOV B,#10HDIV ABMOV DL_BIT,BMOV DH_BIT,AMOV A,HOURMOV B,#10HDIV ABMOV HL_BIT,BMOV HH_BIT,AMOV A,MINMOV B,#10HDIV ABMOV ML_BIT,BMOV MH_BIT,AMOV A,SECMOV B,#10HDIV ABMOV SL_BIT,BMOV SH_BIT,ARETKEY: ;按键子程序JB F0,MAIN10 ;F0=1,开始走时。
电子时钟带温度显示
摘要本文介绍了一款基于AT89S51单片机控制的带有温度显示的电子钟的设计,通过多功能数字钟带有温度的设计思路,详细叙述了系统硬件、软件的具体实现过程。
论文重点阐述了数字钟硬件中MCU模块、温度模块、时钟模块、显示模块和相关控制模块等的模块化设计与制作;软件同样采用模块化的设计,包括中断模块、温度模块、时间调整模块设计,并采用简单流通性强的C语言编写实现。
本设计实现了时间的修改功能和年、月、日和星期的显示和温度显示功能。
关键词:单片机; C语言编程; DS1302时钟芯片;DS18B20;温度传感器前言单片微型计算机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。
本文主要介绍由单片机控制的带有温度显示的电子钟的设计。
随着人们生活水平的日益提高,人们对生活的要求越来越高,原有的事物已经不能满足人们的生活需求了,一些带有新功能的事物已经在慢慢的取代旧事物。
就像电子钟一样,人们用电子钟不仅仅只是看时间了,人们还需要看温度了。
越来越多的新功能更贴近人们的生活了,所以也越来越受人们所喜欢。
带有温度的的电子钟可以使人们随时都可以了解温度的变化。
1.系统实现功能、设计方案论证及芯片介绍1.1. 设计要求本设计准备实现的功能:(1) 万年历(2) 三键调时(设置键,+键,-键)(3) 可每次增减一进行时间调节(4) 按键蜂鸣器提示(5) 温度显示2. 方案论证与设计2.1. 设计方案论证方案一:用主芯片为AT89C51的单片机控制实现,使用单片机内部的定时计数器实现时间的设定,使用按键进行时间的调整和定时,按键有蜂鸣器提示,温度传感器使用DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。
具有温湿度检测功能的电子时钟设计
垫 堕
具有温湿度检测功能的电子
摘 要 :本 文设 计 了一种 具有 温 湿度 检 测的 电子 时钟 。该 电子 时钟通 过 时钟 芯片DS 1 3 0 2 和液 晶显 示屏 显 示 当前 的年 月 日,星期 ,时分 秒 ;同时利 用数 字温 湿度传 感器s HT1 O 检 测 室 内的温度 和 湿度 , 并且 可 以通 过按钮 查询 , 在 液 晶屏 上显 示 ;此 外 ,还 能够通过 按钮设 定 当前的 日 期 、 时间和 闹钟 。本 系统测量原 理 简单 ,精度 高 , 使 用方便 ,具有 实用意义 。 关键 词 :电子 时钟 ;DS 1 3 0 2 ;S HT1 0
感器 的数 据 。S HT 1 0的湿 度测 量 范 围为 0— 1 0 0 %R H,温 度
一
、
系统概述
系 统的结 构框 图如 图 1 所示 。本系 统 的主要核 心是单 片
机A T 8 9 C 5 2 ,为 了满足 日常计 时需 要 ,电子钟 的计 时上 采用
了时钟芯 片 D S 1 3 0 2 ,同时温度 和湿度 的检测采用 数字温 湿度
电平时进 行写操作 。E N为使 能端 ,下降沿使 能 。 本 设 计 中 的 电子 时钟 的各 项 功 能 通过 单 独 的按 键 来 实
现 。闹钟使 用简 单 的蜂 鸣器 来实 现 :单 片机 的 I / O 口通 过放
图 1 系统 结 构 框 图
大电路来 驱动 ,本 系统使用 N P N三极管 来完成 闹钟 的功能 。
传感 器 S H T 1 0 来 进行 检测 。通 过按键 进行选 择 ,单 片机在 液
晶显示 屏上 显示 时 间 ,年月 日以及 星期 信息 ;或者 显示 当前
12864显示可调1302时钟
sbit key1=P3^3; //自加“+”键
sbit key2=P3^4; //自减“-”键
uchar sum,keyflag=0; //调用时,分,秒,标志,调用键盘处理标志.
/*--------------以下为LCD12864相关函数--------------------------*/
uchar code TAB4[]={"室温: ℃"}; //第四行
/*----------------------DS1302相关声明-------------------------*/
char TAB_1302[]={ 0x00,0x40,0x09,0x10,0x07,0x00,0x12}; //秒:分:时:日:月:星期:年.
sck=1;
}
}
/**************************************************************
函数名称:uchar r_12864byte(void)
函数功能:读字节
***************************************************************/
#include <intrins.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
/*------------LCD12864相关声明-----------------------------*/
#define com 0
函数名称:void c_12864busy( void )
科汇鸽钟使用方法
科汇鸽钟使用方法科汇鸽钟是一种新型的智能时钟,其功能强大,在日常生活中有很好的实用性。
在使用之前需要了解其使用方法,方便我们更好的使用。
下面将详细介绍科汇鸽钟的使用方法。
1. 开箱准备科汇鸽钟一般会附带电源线和说明书等配件,开箱之前需要检查配件是否齐全,确认产品完整。
在使用之前需要将电源线接入,插入电源插座并连接到时钟。
连接完成后,请检查线路是否接固,避免出现短路等危险。
2. 时钟设置时钟设置是科汇鸽钟的第一步。
按下“MODE”键进入时钟设置页面,页面会出现时钟基本设置的选项,包括时、分和把12小时制或者24小时制调整为自己想要的显示方式。
调整完成之后,请按下“SET”键,保存更改。
3. 闹铃设置科汇鸽钟具有多种闹铃设置,可以根据个人需求进行选择。
设置方法如下:首先按下“MODE”键,进入设置页面;然后按下“+”键或者“-”键选择闹钟模式,闹钟选择后会显示您所选择的闹铃时间,长按“SET”键进行设置。
闹铃设置成功后,设置完成之后,闹铃会按照您所设置的时间进行自动响铃。
4. 倒计时设置科汇鸽钟还可以进行倒计时设置,可以在做某些事情时设置倒计时,时钟可以自动倒计时,提醒您。
倒计时设置的方法如下:按下“MODE”键进入倒计时设置页面,按下“+”或者“-”键选择倒计时时间,按下“SET”键进行确认设置,倒计时时间到后,时钟会自动响铃提醒您,您可以按“SNOOZE”或者“STOP”来停止或者暂停响铃。
5. 温度、湿度显示科汇鸽钟还可以显示温度和湿度。
按下“MODE”键进入显示模式设置页面,选择您所需要的显示模式,如温度或湿度,然后按下“SET”键保存更改。
此时屏幕显示的就是相应的温度值或者湿度值。
6. 蓝牙连接设置科汇鸽钟可以随时进行蓝牙与手机的连接,将您的手机与科汇鸽钟通过蓝牙连接,可以进行闹钟、通知的同步,非常方便。
蓝牙连接设置的方法如下:首先打开手机的蓝牙连接功能,将其与科汇鸽钟进行连接。
连接成功之后,开启同步功能,即可将闹钟、通知等数据同步到科汇鸽钟上。
时间带温度和湿度的室内或外部时钟说明书
Illuminated Indoor orOutdoor Clockwith Temperature & HumidityRemove the Weather-Resistant CoversAccess the battery compartments by pulling or twisting off the weather-resistant covers. Be careful not to damage the covers during removal.1Set the TimeTurn the set knob on the back of the clock in either direction.2Pull Off CoverPull Off CoverTwist Off CoverClock SetupTurn Set Knob to Set Timeused batteries properly. Only batteries of the same or equivalent type as recommended are to be used. DO NOT incinerate used batteries. DO NOT dispose of batteries in fire, as batteries may explode or leak. DO NOT mix old and new batteries or types of batteries (alkaline/standard). DO NOT use rechargeable batteries. DO NOT recharge non-rechargeable batteries. DO NOT short-circuit the supply terminals.3Install or Replace BatteriesAcuRite recommends high quality alkaline or lithium* batteries for the best product performance. Heavy duty or rechargeable batteries are not recommended.*The clock movement requires a lithium battery in low temperature conditions. Cold temperatures can cause alkaline batteries to function improperly. Use a lithium battery in the clock movement for temperatures below -4°F / -20°C.Insert 1 x AA alkaline or lithium battery into the clock movement’s battery compartment. Insert 2 x D alkaline batteries into each backlight batterycompartment. Follow the polarity (+/-) diagrams in each battery compartment. Replace the weather-resistant covers.Backlight SettingsSet the switch above the left backlight battery compartment to the desired backlight mode:T: 4 Hour Timer - Clock illuminates when dark, for period of 4 hours.*A: Always On - Clock remains illuminated when dark.O: LED Off - Illumination disabled.*Timer resets once clock is exposed to light.43Install Backlight Batteries 3Install Movement Battery 1 AA BatteryPlacement for Maximum AccuracyAcuRite products are sensitive to surrounding environmental conditions. Proper placement of both the display unit and the sensor are critical to the accuracy and performance of this product.DO NOT HANG IN DIRECT SUNLIGHT!For the most accurate temperature readings choose a location that will not be exposed to direct sunlight or other direct heat sources.LOCATE AWAY FROM HEAT SOURCESPosition clock away from heaters, air conditioners, chimneys, exhaust vents, asphalt and concrete (surfaces that radiate heat).LOCATE AWAY FROM HUMIDITY SOURCESAvoid installing the clock near pools, spas, or other bodies of water. Water sources may impact humidity accuracy.Thermometer & Hygrometer CalibrationThe thermometer and hygrometer instruments have been calibrated at the factory and should not need adjustment. However, as with all instruments that are placed in a new location, you should always allow a period of at least 3 hours for stabilization before determining whether it is reading accurately.Should you determine that an adjustment of the thermometer or hygrometer is needed, this can be achieved by gently rotating the back of the thermometer or hygrometer movement on the back of the unit, as illustrated, slowly in either direction until the correct reading isshown on the dial.ROTATE TO CALIBRATE +/-Care & MaintenanceClock Care• A soft cloth may be used to clean the clock, as needed.• Do not use corrosive cleaners or chemicals on the clock.• Always store the clock without a batteries when not in use.SpecificationsTEMPERATURE RANGE -40ºF to 140ºF HUMIDITY RANGE 1% to 99% RHPOWERBacklight: 4 x D alkaline batteriesClock Movement: 1 x AA alkaline or lithium batteryProblemPossible SolutionInaccurate temperature or humidity• Make sure clock is placed out of direct sunlight and away from any heat sources or vents (see Placementfor Maximum Accuracy).• M ake sure clock is positioned away from any sources of moisture.TroubleshootingCustomer SupportAcuRite customer support is committed to providing you with best-in-class service. For assistance, please have the model number of this product available and contact us in any of the following ways:(877) 221-1252Visit us at ► Installation Videos ► Register your Product► Instruction Manuals ► Support User Forum► Replacement Parts ► Submit Feedback & Ideas©Chaney Instrument Co. All rights reserved. AcuRite is a registered trademark of the Chaney Instrument Co., Lake Geneva, WI 53147. All other trademarks and copy -rights are the property of their respective owners. AcuRite uses patented technology.It’s More than Accurate, it’sAcuRite offers an extensive assortment of precision instruments, designed to provide you with information you can depend on toPlan your day with confidence ™.www.AcuRite .comWeather Stations Temperature & Humidity Weather Alert RadioKitchen Thermometers & TimersClocks。
电子闹钟(2)
带温度显示的电子闹钟的设计摘要电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。
另外,在生活和工农业生产中,也常常需要温度,这就需要电子时钟具有多功能性。
本设计主要为实现一款可正常显示时钟/日历、测量环境温度、带有定时闹铃的电子时钟。
本文采用单片机技术实现带温度显示的电子闹(时)钟。
本设计应用AT89C51芯片作为核心,7位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能,同时利用DS18B20温度传感器测量环境温度。
这种实现方法的优点是电路简单,性能可靠,实时性好,时间和温度精度高,操作简单,编程容易。
该电子时钟可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。
目录摘要 (I)第一章绪论 (III)1.1电子时钟研究的背景和意义 (1)1.2 电子时钟的功能 (2)第二章电子时钟设计方案分析 (3)2.1 NE555时基电路设计方案 (3)2.2 单片机设计方案 (3)第三章基于单片机的电子时钟硬件设计 (5)3.1 主要IC芯片选择 (5)3.1.1 微处理器选择 (5)3.1.2. 常用时钟芯片的选择 (6)3.1.2.1芯片DS1302简介 (6)3.1.2.2 DS1302引脚说明 (7)3.1.2.3 DS1302的控制字和读写时序说明 (8)3.2.1.4 DS1302的片内寄存器 (10)3.1.3 环境温度传感器 (12)3.1.3.1常用温度传感器DS18B20简介123.1.3.2 DS18B20内部结构 (13)3.2 电子时钟硬件电路设计 (15)3.2.1 时钟电路设计 (16)3.2.2 环境温度采集电路设计 (16)3.2.3 显示电路 (17)3.2.4 按键电路设计 (18)3.2.5 闹铃电路设计 (20)第四章电子时钟软件设计 (21)4.1 主程序设计 (21)4.2 子程序设计 (21)4.2.1 实时时钟日历子程序设计 (22)4.2.2 环境温度采集子程序设计 (22)4.2.3 显示子程序设计 (26)4.2.4 键盘扫描子程序 (28)4.2.5 闹铃子程序设计 (29)第五章系统调试 (30)5.1 硬件调试 (31)5.1.1 单片机基础电路调试 (31)5.1.2 显示电路调试 (32)5.1.3 DS1302电路调试 (32)5.1.4 按键电路调试 (33)5.2 软件调试 (33)5.2.1 环境温度采集子程序调试 (34)5.2.2 键盘子程序调试 (34)结论 (35)致谢 (36)参考文献 (37)第一章绪论时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。
带有温度显示和液晶显示器的实时时钟设计
sbit T_CLK = P1^6; /*实时时钟时钟线引脚*/
sbit T_IO = P3^5; /*实时时钟数据线引脚*/
sbit T_RST = P1^7; /*实时时钟复位线引脚*/
sbit E=P2^7;//1602使能引脚
sbit RW=P2^6;//1602读写引脚
3、proteus是一个非常好用的仿真软件,其具有强大的电路原理图绘制功能,且可以实现模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、键盘、LCD系统仿真等多种功能;和keil联合使用时可以检测所编写的程序的正确与否。将keil和proteus联合起来使用是实现电子设计制作的初步阶段,可避免在实际的硬件操作中因为电路原理图或向单片机烧录的程序有误而造成的难以修改的为题。
3、掌握了Proteus的使用方法,从实际操作中认识到Proteus在仿真方面的优越性,激发了自己学习Proteus的兴趣;
4、因为自己要修改程序,所以单单花费在程序分析的时间就很多,为了更好的理解程序,我把每句主要程序的后面都注释了该语句的意思,详情可以见程序清单,发现注释语义的工作量也是非常大的。写实验报告时,每个模块的流程图都是自己画的,用WORD文档画图真的很麻烦,而且不是很美观。因为时间比较仓促,流程图写的条理性不够,不过相信以后多多练习,就可以做得更好。
2、按键处理模块
2.1按键连线图
从左到右依次是:进位键,数字加,数字减,退出
Mode模式键
2.2按键扫描子程序流程图:
否否否否
是是是是是
否
否
是是
2.3加减键处理子程序流程图
否
是
否
是
智能电子钟用户手册2023
智能电子钟用户手册2023欢迎使用智能电子钟!本用户手册将详细介绍如何正确使用和操作您的智能电子钟,以确保您能够充分利用其功能和特性。
请仔细阅读以下内容,并按照说明进行操作。
1. 产品介绍智能电子钟是一款集时钟、闹钟、温度显示、语音助手等多功能于一体的智能设备。
它不仅具备准确的时间显示功能,还能提供定时闹铃、温度监测等实用功能,以及语音助手让您更方便地操作。
2. 功能操作2.1 时间设置智能电子钟具有自动对时功能,接通电源后会自动对准确时间进行同步。
如果需要手动设置时间,可按照以下步骤操作:- 进入设置界面,选择时间设置选项。
- 通过方向键或触摸屏进行时间的调整。
- 确认设置并退出。
2.2 闹铃设置智能电子钟提供多个闹铃设置,您可以根据需要设置多个不同的闹铃时间。
设置步骤如下:- 进入设置界面,选择闹铃设置选项。
- 通过方向键或触摸屏选择添加闹铃或编辑已有闹铃。
- 设置闹铃时间和重复模式。
- 退出设置。
2.3 温度显示智能电子钟可以实时显示室内温度,您可以随时了解当前的温度情况。
温度显示默认为摄氏度,您也可以根据需要切换到华氏度。
3. 语音助手智能电子钟内置了语音助手功能,您可以通过语音与时钟进行交互和操作。
声控唤醒命令为“Hi Clock”,之后可以进行相应的指令,例如调整时间、设置闹铃等。
4. 其他功能除了以上介绍的主要功能外,智能电子钟还具备一些其他实用的功能,例如闹钟震动、自动亮度调节等,您可以在设置界面进行相应设置。
5. 注意事项为了确保您正常使用智能电子钟,以下事项需要特别注意:- 请按照说明书中的操作步骤进行操作,以免造成不必要的困扰。
- 请注意防止智能电子钟受到水或其他液体的浸泡,以免损坏内部电子元件。
- 请避免将智能电子钟暴露在高温、潮湿或尘埃较多的环境中,以免影响正常使用或导致损坏。
感谢您阅读本智能电子钟用户手册,希望以上内容能够帮助您更好地使用和操作智能电子钟。
如有任何疑问或问题,请随时联系我们的客服人员,我们将竭诚为您提供帮助。
玛仕闹钟说明书范文
玛仕闹钟说明书范文感谢您选择使用玛仕闹钟。
本说明书将为您详细介绍玛仕闹钟的功能、设置和使用方法。
1.产品概述玛仕闹钟是一款多功能的电子闹钟,具有可调节的闹铃音量、多种闹铃模式、温度显示和日历功能等特点,适用于家庭、办公室和旅行等多种场景。
2.外观和结构玛仕闹钟采用圆形设计,外壳材质为优质ABS塑料,具有良好的抗震性能。
闹钟正面配备有LED数字显示屏,并具有调节亮度功能。
闹钟的背面有一个带有按钮的控制面板,用于设置闹铃、时间和日期等。
3.功能设置3.1闹铃设置按下控制面板上的“闹铃”按钮,进入闹铃设置模式。
您可以通过按钮面板上的“+”和“-”按钮来调整闹铃的小时和分钟。
按下“确认”按钮保存设置。
3.2闹铃音量调节按下控制面板上的“音量”按钮,进入音量调节模式。
您可以通过按钮面板上的“+”和“-”按钮来调整闹铃的音量大小。
按下“确认”按钮保存设置。
3.3闹铃模式选择按下控制面板上的“模式”按钮,进入闹铃模式选择模式。
您可以通过按钮面板上的“+”和“-”按钮来选择不同的闹铃模式,例如:单次闹铃、每日重复闹铃、工作日闹铃等。
按下“确认”按钮保存设置。
3.4温度显示设置按下控制面板上的“温度”按钮,进入温度显示设置模式。
您可以通过按钮面板上的“+”和“-”按钮来调整温度显示的单位,例如:摄氏度或华氏度。
按下“确认”按钮保存设置。
3.5日期和时钟设置按下控制面板上的“日期/时钟”按钮,进入日期和时钟设置模式。
您可以通过按钮面板上的“+”和“-”按钮来调整日期和时钟。
按下“确认”按钮保存设置。
4.使用方法4.1闹铃的开启和关闭按下控制面板上的“闹铃”按钮,可以开启或关闭闹铃功能。
当闹铃开启时,闹钟会在设定的时间发出响铃提醒。
4.2关闭闹铃当闹铃响起时,您可以按下任意按钮来关闭闹铃,或者等待设定的时间后,闹铃会自动关闭。
4.3温度显示玛仕闹钟具有温度显示功能,可以显示当前环境的温度。
按下控制面板上的“温度”按钮即可查看当前温度。
基于单片机的万年历设计
题目:基于单片机的电子万年历设计带温度显示可调闹钟红外万年历摘要本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。
系统最大的特点是体现了较强的人机交互和独立的模块化程序设计。
温度采集选用DS18B20芯片,数据显示采用1602A液晶显示模块,在第一行显示年月日、星期以及当前的状态,第二行显示温度和时间,合理的利用液晶显示区域。
51主芯片利用定时中断产生时间,控制着液晶的显示更新、温度的实时变化以及按键的读取处理,而对于闹钟,实际上就是时间里的一个嵌套程序。
时间和闹钟的值由按键调整设置,采用通用的二十四小时制。
该电路采用51单片机作为核心,功耗小,能在3V 的低压工作,电压可选用3~5V电压供电。
综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
关键字:万年历;温度计;闹钟;液晶显示一、方案设计与论证根据要求,系统分为四个基于单片机的万年历设计摘要随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
目前,单片机技术的应用产品已经走进了千家万户。
电子万年历的出现给人们的生活带来了诸多方便。
本设计是一个基于AT89S52单片机的日历显示系统,本设计能显示公历年、月、日,以及时、分、秒、温度、星期等信息,而且还提供了农历信息,具有调整时间,温度采集,闹钟及个性化的闹铃等功能。
系统所用的时钟日历芯片DS1302具有高性能、低功耗、接口简单的特点,使本系统电路简化,编程方便,同时功能也很强。
采用AT89S52单片机的万年历系统可以很好的改善传统采用模拟电路引起的计时不准确,不可靠,一致性差等问题。
此系统计时精确,价格低廉,可以广泛应用在生活,学习和工作等任何领域,并且起到重要作用。
关键词:万年历;单片机;时钟芯片;温度芯片;公历转农历目录摘要 (I)第一章引言 (1)1.1 概述 (1)1.2 单片机的简介 (1)第二章方案设计与论证 (4)2.1 单片机芯片设计与论证 (4)2.2 电源模块设计与论证 (5)2.3 按键控制模块设计与论证 (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.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 概述随着电子技术的发展,人类不断研究,不断创新纪录。
12864液晶电子钟_具有按键可调、闹钟、温度显示剖析
//程序已全部通过硬件测试, 请放心使用。
(没有使用到 DS1302)/************12864 时钟显示函数 *************//****** 实现时间走动、按键控制、蜂鸣器闹铃、温度显示 ******/#include<reg52.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned int/******************** 功能:定义液晶 12864 控制端接口*********************/sbit rs=P2八6;// 注意: rw 控制端始终为低电平,直接在硬件上接低电平sbit en=P2A 7;sbit wd=P2A0; ll 温度传感器信号线/******************** 功能:定义蜂鸣器、按键 接口*********************/sbit beet=P2A2;sbit key1=P1A0;sbit key2=P1A1;sbit key3=P1A2;sbit key4=P"3;ll 北京时间与闹钟时间画面切换 l******************** 功能:定义数据初始值******************************lchar hour=23,minute=59,second=58,count=0;char shi=0,fen=0,miao=0,hm;int years=2012;char month=12,day=30,mm=0,cc=7;uint temp;float f_temp;功能:定义数组字符串/********************/*******************//蜂鸣器定义 //功能选择 //至加 //至减 /******************** *********************/uchar code table1[]={" 幸福牌电子钟"}; uchar code table2[]={"温馨提示:00.0°C "};***************************/ 功能:延时函数void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);} 功能:蜂鸣器响应***********************l void fengmingqi(){ beet=0;delay(1);beet=1;delay(1);}void init_12864(){xieling_shu(1,0x30);//基本指令操作 xieling_shu(1,0x30); //基本指令操作xieling_shu(1,0x0C); //0x0c: 无光标, OXOF: 光标反白显示xieling_shu(1,0x01); // 清屏****************** 功能:液晶 12864 读写数据 ******************/ void xieling_shu(uchar aa,uchar bb) { if(aa==1){rs=0;} if(aa==0){rs=1;} P0=bb;delay(1); en=1; delay(1); en=0; delay(1); ****************** } 功能:液晶 12864 写入地址 ******************/ void xieludizhi(uchar x, uchar y) { switch(x) { case 1: xieling_shu(1,0x80 + y ); return;//return 返回的意思 ****************** case 2: xieling_shu(1,0x90 + y ); return; case 3: xieling_shu(1,0x88 + y ); return; case 4: xieling_shu(1,0x98 + y ); return; } } 功能:液晶 12864 写入字符串 *****************/ void xiezifuchuan(uchar *dd) { while(*dd != '\0') { ****************** xieling_shu(0,*dd++ ); } } 功能:液晶 12864 清屏函数 *********************/ void qingping() { xieling_shu(1,0x01); xieling_shu(1,0x01); xieling_shu(1,0x01); delay(20); //清屏 //清屏 //清屏 ****************** } 功能:液晶 12864 初始化指令操作 ***************** */****************** xieling_shu(1,0x06); } 功能:液晶 12864 初始化字串显示 ******************/ void init_zifu() { xieludizhi(1,0);xiezifuchuan(" xieludizhi(2,0);xiezifuchuan(" xieludizhi(3,0);xiezifuchuan(" 欢迎使用 幸福牌电子钟 订购热线 "); "); "); xieludizhi(4,0);xiezifuchuan("Phone:0777-66914"); qingping();xieludizhi(1,0);xiezifuchuan(table1); delay(1); xieludizhi(4,0);xiezifuchuan(table2); delay(1); xieludizhi(3,5);xiezifuchuan("星期"); 日"); delay(1); delay(1); delay(1); delay(9534); /******************* xieludizhi(2,2);xiezifuchuan('年 月 } 功能:时间、年月日 显示函数 void display() { xieludizhi(3,0); // 显示 时 ********************/ 分秒 /******************* xieling_shu(0,0x30+hour/10); xieling_shu(0,0x30+hour%10); xieling_shu(0,':'); xieling_shu(0,0x30+minute/10); xieling_shu(0,0x30+minute%10); xieling_shu(0,':'); xieling_shu(0,0x30+second/10); xieling_shu(0,0x30+second%10); xieludizhi(2,0); // 显示 年 xieling_shu(0,0x30+years/1000); xieling_shu(0,0x30+years%1000/100); xieling_shu(0,0x30+years%100/10); xieling_shu(0,0x30+years%10); xieludizhi(2,3); // 显示 月 xieling_shu(0,0x30+month/10); xieling_shu(0,0x30+month%10); xieludizhi(2,5); // 显示 日 xieling_shu(0,0x30+day/10); xieling_shu(0,0x30+day%10); } 功能:闹钟(时间、年月日) 显示函数 ********************/ void display1() {xieludizhi(3,0); // 显示 时 分 秒xieling_shu(0,0x30+shi/10);xieling_shu(0,0x30+shi%10);xieling_shu(0,':');xieling_shu(0,0x30+fen/10);xieling_shu(0,0x30+fen%10);xieling_shu(0,':');xieling_shu(0,0x30+miao/10);xieling_shu(0,0x30+miao%10);xieludizhi(2,0); // 显示 年xieling_shu(0,0x30+years/1000);xieling_shu(0,0x30+years%1000/100);xieling_shu(0,0x30+years%100/10);xieling_shu(0,0x30+years%10);xieludizhi(2,3); // 显示 月xieling_shu(0,0x30+month/10);xieling_shu(0,0x30+month%10);xieludizhi(2,5); // 显示 日xieling_shu(0,0x30+day/10);xieling_shu(0,0x30+day%10);void xingqi()switch(cc)case 1: xieludizhi(3,7); xiezifuchuan(一 ");return; case 2: xieludizhi(3,7); xiezifuchuan(二");return; case 3: xieludizhi(3,7); xiezifuchuan(叁");return; case 4: xieludizhi(3,7);xiezifuchuan(四");return; case 5: xieludizhi(3,7);xiezifuchuan(五");return; case 6: xieludizhi(3,7);xiezifuchuan(六"); return; case 7: xieludizhi(3,7);xiezifuchuan('B "); return;void anjian()if(key4==0){delay(1);hm=~hm;while(key4==0);}if(key1==0){delay(1);***************** *********************************** 星期函数 ************************************************ }功能:按键程序 *****************mm++;if(hm!=0){if(mm>=4)mm=0;}if(mm==1){xieludizhi(3,3);xieling_shu(0,0x5f);}if(mm==2){TR0=1;xieludizhi(3,2);xieling_shu(0,0x5f);}if(mm==3){xieludizhi(3,0);xieling_shu(0,0x5f);}if(mm==4){xieludizhi(2,5);xieling_shu(0,0x5f);}if(mm==5){xieludizhi(2,3);xieling_shu(0,0x5f);}if(mm==6){xieludizhi(2,1);xieling_shu(0,0x5f);}if(mm==7){xieludizhi(3,7);xieling_shu(0,0x5f);}if(mm==8){xieludizhi(2,7);xieling_shu(0,0x02);} if(mm>=9){xieludizhi(2,7);xieling_shu(0,0x20);mm=0;} // mm=0; 跳出调整时间while(key1==0);}功能:key2按键力卩减功能*******************/ *****************if(mm==1&&key2==0) //秒加1if(hm==0){TR0=0;delay(1);if(key2==0){second++;if(second>=60){second=0;}}} if(hm!=0){delay(1);if(key2==0){miao++;if(miao>=60){miao=0;}}}while(key2==0);}if(mm==1&&key3==0) //秒减1if(hm==0){TR0=0;delay(1);if(key3==0){second--;if(second<=-1){second=59;}}} if(hm!=0){delay(1);if(key3==0){miao--;if(miao<=-1){miao=59;}}}while(key3==0);}if(mm==2&&key2==0) //分加1{if(hm==0){delay(1);if(key2==0){minute++;if(minute>=60){minute=0;}}} if(hm!=0){delay(1);if(key2==0){fen++;if(fen>=60){fen=0;}}}while(key2==0);}if(mm==2&&key3==0) //分减1{if(hm==0){delay(1);if(key3==0){minute--;if(minute<=-1){minute=59;}}}if(hm!=0){delay(1);if(key3==0){fen--;if(fen<=-1){fen=59;}}}while(key3==0);}if(mm==3&&key2==0) //时加1{ if(hm==0){delay(1);if(key2==0){hour++;i f(hour>=24){hour=0;}}}if(hm!=0){delay(1);if(key2==0){shi++;if(shi>=24){shi=0;}}}while(key2==0);}if(mm==3&&key3==0) //时减1{ if(hm==0){delay(1);if(key3==0){hour--;if (hour<=-1){hour=23;}}}if(hm!=0){delay(1);if(key3==0){shi--;if(shi<=-1){shi=23;}}}while(key3==0);}if(mm==4&&key2==0) // 日加1{delay(1);if(key2==0){ day++; if(day>=31){day=1;} }while(key2==0);}if(mm==4&&key3==0) // 日减1{delay(1);if(key3==0){ day--; if(day<=0){day=31;} }while(key3==0);}if(mm==5&&key2==0) // 月加1{delay(1);if(key2==0){month++;if(month>=13){month=1;}}while(key2==0);}if(mm==5&&key3==0) // 月减1{delay(1);if(key3==0){month--;if(month<=0){month=12;}}while(key3==0);}if(mm==6&&key2==0) //年加1{delay(1);if(key2==0){years++;}// 不设置年限while(key2==0);}if(mm==6&&key3==0) // 年减1{delay(1);if(key3==0){years--;}while(key3==0);}if(mm==7&&key2==0) // 星期加1{ delay(1);if(key2==0){cc++;if(cc>=8){cc=1;}} while(key2==0);}if(mm==7&&key3==0) // 星期减1{delay(1);if(key3==0){cc--;if(cc==0){cc=7;}}while(key3==0);}}****************************************************************** *****************************************************void dsreset(void){uint i;wd=0;i=103;while(i>0)i--;wd=1;i=4;bit tempreadbit(void){uint i;bit dat;wd=0;i++; //i++ 起延时作用wd=1;i++;i++;dat=wd;i=8;while(i>0)i--;return (dat); uchar tempread(void){uchar i,j,dat;dat=0;for(i=1;i<=8;i++){j=tempreadbit();dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面, 这样刚好一个字节在DAT 里}return(dat);******************************* 功能: 18B20 所有函数 ***************** 18B20 复位,初始化函数 ***************************************** while(i>0)i--; } 18B20读 1 位 函数 ***************************************** }18B20 读 1 个字节 函数************************void tempwritebyte(uchar dat){uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb) // 写 1{wd=0;i++;i++;wd=1;i=8;while(i>0)i--;}else{wd=0; //写 0i=8;while(i>0)i--;wd=1;i++;i++;}}}/******************* 18B20 开始获取温度并转换 函数**************************/void tempchange(void){dsreset();delay(1);tempwritebyte(0xcc); // 写跳过读 ROM 指令tempwritebyte(0x44); // 写温度转换指令}/******************* 18B20 读取寄存器中存储的温度数据**************************/uint get_temp(){uchar a,b;dsreset(); delay(1);***************** }18B20 写一个字节数据 函数 ************************函数tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread(); //读低 8 位b=tempread();//读高 8 位 temp=b; temp<<=8; //两个字节组合为 1 个字temp=temp|a;f_temp=temp*0.0625; //温度在寄存器中为 12 位 分辨率位 0.0625°temp=f_temp*10+0.5; //乘以 10 表示小数点后面只取 1 位,加 0.5 是四舍五入f_temp=f_temp+0.05;return temp; //temp 是整型void comm(char *parr){do while(1){ if(count>5&&count<18){tempchange(); //开始获取温度get_temp(); //读取寄存温度 ***************** }18B20 发送数据 函数 ************************{SBUF = *parr++; //发送数据while(!TI);TI=0; }while(*parr);**********************// 等待发送完成标志为 1 //标志清零 //保持循环直到字符为 '\0' } 」r\?r zfefr *************************** void main(){TMOD=0x01;uchar buff[4]; // 设置 T0 为工作方式 1 EA=1; ET0=1; TR0=1; //开启 T0 中断功能:sprintf(buff,"%f",f_temp);comm(buff);xieludizhi(4,5);xieling_shu(0,0x30+ temp/100);xieling_shu(0,0x30+temp%100/10);xieling_shu(0,0x2e);xieling_shu(0,0x30+temp%100%10);if(hm==0)display() ;}// 如果hm=0 显示北京时间,否则显示闹钟时间else display1();anjian(); // 按键判断xingqi(); // 显示星期if(minute==59&&second==59){fengmingqi();} // 整点报时if(shi==hour&&fen==minute&&miao>=second&&miao<=second+3){fengmingq/************************i();}// 闹钟}}功能:中断函数**************************/void time() interrupt 1{ TH0=-50000/256; TL0=-50000%256;count++; if(count==20) { count=0; second++;if(second==60) { second=0; minute++;if(minute==60) { minute=0; hour++; if(hour==24) { hour=0; day++; cc++; if(cc==8) cc=1;if(day==31) { day=1; month++; if(month==13){ month=1; years++;}}}}}}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业论文
毕业论文题目:带温度显示的可调时钟
学生姓名:
学号:
院(系):海事与港航学院
专业:机电一体化(自动化)
班级:093班
指导教师:
起止时间:2011 年11 月——2011 年12 月
带温度显示的可调时钟
摘要:单片微型计算机(Single Chip Microcomputer)简称单片机,是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU(Central Processing Unit)、存储器(Memory)、基本输入/输出(Input/Output,简称I/O)接口电路、定时/计数器和中断系统等,都制作在一块集成芯片上,构成一个完整的微型计算机。
本课题通过MCS-51单片机来设计,通过C语言编程。
可以实现以下的一些功能:时、分、秒和星期以及当前温度的显示。
本系统由温度电路、LCD显示电路、按键调整电路、蜂鸣器提示电路组成。
51单片机通过编程在LCD1602上显示时间和温度。
利用DS1820来实现温度的检测,通过三个按键来实现时间的调整:一个用于启动时间调整;一个用于时间的加;还有一个用于时间的减,每按下一次按键蜂鸣器发声提示一下。
本次设计的时钟温度计通过仿真成功实现能比较准确的实现期望实现的功能。
关键词:单片机;LCD1602;DS18B20;可调时钟
Adjustable Clock With Thermometer
Abstract: The single chip microcomputer (Single Chip Microcomputer)referred to as SCM, is integrated on a single chip microcomputer, its various features, including the CPU(Central Processing Unit),memory(Memory),basic input/output(Input/Output, referred to as the I/O)interface circuit timer/counters and interrupt system etc. are produced in an integrated chip, a complete micro-computer.
The issue by the MCS-51 to design through the C programming language. Can achieve some of the following functions hours minutes, seconds and day of week and the current temperature display. The system consists of temperature circuit. LCD display circuit push button circuit, buzzer circuit by programming the microcontroller 51 on the LCD1602 display time and temperature. Temperature using DS18B20 to achieve the detection time by the three keys to achieve the adjustment: one for start-up time to adjust; a plus for the time; there is a reduction for the time; every time you press the send button buzzer sounder minder. The design of the clock thermometer can be successfully achieved through the simulation to achieve more accurate expectations of the functions.
Keywords: Microcontroller; LCD1602;DS18B20;Adjustable clock。