带温度显示的万年历
带温度显示的万年历_数码管显示(附电路图和源代码)
设计报告设计任务:设计一个智能化万年历时钟电路,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. 可通过按键切换年、月、日及时、分、秒的显示状态;3. 可随时可以调校年、月、日或时、分、秒;4. 可每次增减一进行时间调节,也可快速增减进行时间调节;5.可显示环境温度。
二、系统设计方案方案一、用主芯片为AT89C51的单片机控制实现,使用单片机内部的定时计数器实现时间的设定,使用按键进行时间的调整和定时,按键有蜂鸣器提示,温度传感器使用DALLAS 公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等优点。
显示时间和温度使用数码管显示。
方案二、用主芯片为STC89C52的单片机控制实现,为了满足单片机系统的实时控制的需求,采用实时钟芯片DS1302,使用按键进行时间的调整和定时,温度传感器使用 DS18B20。
显示时间和温度使用LCD1602显示。
方案一片内定时器会导致计时节拍的时间误差,当进行年、月、日的日历计时,定时中断误差扥积累就会很大。
使用片内定时器进行计时的时候,单片机始终要处于工作状态。
才能维持计时时间,一旦停机或进入待机状态,开机后,计时时间就需要重新设定。
为了满足单片机系统的实时钟需求,本设计采用的是方案二,系统框图如图2-1所示。
图2-1三、单元电路分析与设计1. 原理分析 1.1主控制器单片机STC89C52 具有低电压供电和体积小等特点,如图3-1所示。
1.2晶振电路AT89S52引脚XTAL1和XTAL2与晶体振荡器及电容C1、C2按图3-2所示方式连接。
晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz 之间,电容C1、C2取值范围在5~30pF 之间。
根据实际情况,本设计晶振选择频率为12MHZ ,电容选择30pF 如图3-2。
多功能万年历
多功能万年历
多功能万年历是一种具备多种功能的日历,通常有以下一些功能:
1.日期显示:显示当天的日期,包括年、月、日。
2.星期显示:显示当天是星期几,以方便用户了解当天是工作日还是休息日。
3.节日显示:显示当天是否是法定假日或其他特殊节日,方便用户安排假期和活动。
4.天气预报:提供当天和未来几天的天气预报信息,包括温度、天气状况等。
5.闹钟功能:设定定时提醒,例如设置起床、约会、会议等提醒功能。
6.备忘录功能:用户可记录重要事项、待办事项或个人计划,方便提醒和管理。
7.世界时间:提供不同地区的时间显示,方便用户进行跨时区的日常生活或商务往来。
8.农历显示:提供农历日期和相关的农历节日信息。
9.计算器功能:提供基本的数学计算功能,方便用户进行简单的计算。
10.记事功能:允许用户在具体日期上添加个人的文字和图
片备注,记录和分享生活中的点滴。
这些功能可以单独存在于一个软件或硬件设备中,也可以
集成在智能手机、平板电脑、智能手表等多种智能设备中。
多功能万年历的目的是方便用户管理时间、记录重要的日
程安排和提醒,提供更便捷的生活服务。
lcd数显温度万年历电波钟
外观尺寸:29cm(宽)*18.5cm(高)可挂可摆,背面有挂孔,可挂在墙上,也可以安装随机配送的支架摆放在台面上。
电子说明书地址:/item.htm?spm=a1z09.5.0.4 0&id=16362908718功能特点:1、时间显示:时:分:秒,12/24小时制可选2、日历显示:日/月3、星期显示:英文简写4、温度显示:摄氏或华摄,范围:0℃-50℃(32℉-122℉),分辨率:0.1℃。
5、闹铃功能:可设置1个闹铃时间。
6、特殊日期提醒功能:可设置三个特殊日期提醒。
使用电源:两节AA电池(不配送电池),超省电,两节电池可使用一年以上。
使用说明:一、信号自动同步:当时钟正确装上电池后,稍等几秒,自动开始接收日本发射的无线电校时信号,接收过程中屏幕右上角显示一个闪动的信号接收塔标识。
当接收到正确的时间信号后,接收塔标识停止闪动并自动同步时间和日历信息,时钟每天会定时进行接收,无须人工干预。
如果接收不成功,时钟仍可以作为一个高精度石英钟使用。
时钟在接收信号的过程(接收塔标识闪动)中无法进行其他功能的操作,如果需要进行其它设置或取消接收,须按下‘+’键退出接收状态。
为了达到最好的接收效果,应将时钟远离其它用电器至少在1-2米以上,并可以适当转动时钟位置以获取最佳接收效果。
二、信号手动同步:在正常的时钟显示模式,长按‘+’键,强制进入信号接收状态,此时收塔标识闪动,接收过程与自动同步一样。
三、手动设定时钟、日历:在正常的时钟显示模式,长按‘CLK/CAL’键,进入时间日历设置界面,当前设置项目闪动,通过短按‘+,-’键调整数值,再短按‘CLK/CAL’确认并进入下一设置项目。
设置项目顺序:12/24时制—小时—分钟—年—月—日—时区。
四、每日闹钟设置:在正常的时钟显示模式,长按‘ALARM’键,进入闹铃设置界面,通过短按按‘+,-’键输入每天的闹铃时间,最后按‘ALARM’键确认。
在正常的时钟显示模式,短按‘-’键可以开启和关闭闹铃功能,当闹铃响时,按任意键都可以关闭闹铃。
具有温度显示的电子实时时钟万年日历系统的设计与制作
毕业设计(论文)《具有温度显示的电子实时时钟/万年日历系统的设计与制作》专业(系)电气工程系铁道通讯信号方向班级铁道通讯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研究背景当今社会逐渐步入信息化时代,快节奏、高效率成为当今时代的主题。
实现日期时间温度的显示万年历
; ――――――――――――――――――――――――――――――― ; 温度值存放单元TEMP_ZH EQU 24H ;实时温度值存放单元TEMPL EQU 25H ;低温度值存放单元TEMPH EQU 26H ;高温度值存放单元TEMP_TH EQU 27H ;高温报警值存放单元TEMP_TL EQU 28H ;低温报警值存放单元TEMPHC EQU 29H ;存十位数 BCD码TEMPLC EQU 2AH ;存个位数 BCD码 ;―――――――――――――;======按键输入引脚定义======K1 EQU P3.2K2 EQU P3.3K3 EQU P3.6K4 EQU P3.7;SPK EQU P3.5RELAY EQU 2FH;------------------------------------;=====DS1302通信引脚定义=====RST BIT p1.6SCLK BIT p1.4IO BIT p1.5;=====定义数据存储地址========DS1302_ADDR DATA 30H ;地址寄存器DS1302_DATA DATA 31H ;数据寄存器TIME_YEAR DATA 32H ;年寄存器TIME_MONT DATA 33H ;月寄存器TIME_DAY DATA 34H ;天寄存器WEEK_DATA DATA 35H ;星期寄存器HOUR DATA 36H ;小时寄存器MINTUE DATA 37H ;分钟寄存器SECOND DATA 38H ;秒钟寄存器;=========显示数据缓冲地址============YEAR_HBUF DATA 40HYEAR_LBUF DATA 41HMONT_HBUF DATA 42HMONT_LBUF DATA 43HDAY_HBUF DATA 44HDAY_LBUF DATA 45HWEEK_HBUF DATA 46HWEEK_LBUF DATA 47HHOUR_HBUF DATA 48HHOUR_LBUF DATA 49HMINTUE_HBUF DATA 4AHMINTUE_LBUF DATA 4BHSECOND_HBUF DATA 4CHSECOND_LBUF DATA 4DH;===============================================X EQU 2FH ;LCD 地址变量 ;―――――――――――――;LCD控制引脚RS EQU P2.4RW EQU P2.5E EQU P2.6 ;―――――――――――――FLAG EQU 20H.0KEY_UD EQU 20H.1DQ EQU p2.7;=============主程序============== MAIN:ACALL SET_LCD ;LCD初始化设置子程序ACALL SET_1302 ;1302初始化TOOP: ACALL RESET_1820 ;调用18B20复位子程序ACALL TEMP_BJ ;显示温度标记"℃"ACALL MEU_OK ;调用显示"OK"信息子程序TOOP2:ACALL RE_TEMP ;调用读取温度数据子程序ACALL SET_DATA ;调用处理显示温度数据子程序ACALL TEMP_BJ ;显示温度标记子程序LCALL RD_DS1302LCALL DATA_BUFLCALL DISPLAYSJMP TOOP2 ;循环;--------――读取温度数据子程序--------――RE_TEMP:ACALL RESET_1820 ;18B20复位子程序MOV A,#0CCH ;跳过ROM匹配ACALL WRITE_1820 ;写入子程序MOV A,#44H ;发出温度转换命令ACALL WRITE_1820 ;调写入子程序ACALL RESET_1820 ;调复位子程序MOV A,#0CCH ;跳过ROM匹配ACALL WRITE_1820 ;写入子程序MOV A,#0BEH ;发出读温度命令ACALL WRITE_1820 ;写入子程序ACALL READ_1820 ;调用读取子程序RET;--------温度数据处理显示子程序----------SET_DATA:ACALL CONV_TEMP ;处理温度 BCD 码子程序ACALL DISP_BCD ;显示区 BCD 码温度值刷新子程序ACALL CONV ;LCD显示子程序RET;―――――――――――――;----------处理温度 BCD 码子程序---------- CONV_TEMP:MOV A,TEMPH ;判温度是否零下ANL A,#80HJZ TC1 ;温度零转TC1处CLR C ;C=0MOV A,TEMPL ;二进制数求补(双字节)CPL A ;取反加1ADD A,#01HMOV TEMPL,AMOV A,TEMPHCPL AADDC A,#00HMOV TEMPH,AJMP TC2;―――――――――――――TC1: MOV TEMPHC,#0AHTC2: MOV A,TEMPHCSWAP A ;高、低位交换MOV TEMPHC,AMOV A,TEMPLANL A,#0FH ;乘0.0625MOV DPTR,#DOTTABMOVC A,@A+DPTRMOV TEMPLC,A ;TEMPLC LOW=小数部分 BCD ;―――――――――――――MOV A,TEMPL ;整数部分ANL A,#0F0H ;取出高四位SWAP A ;高、低位交换MOV TEMPL,AMOV A,TEMPHANL A,#0FH ;取出低四位SWAP A ;高、低位交换ORL A,TEMPL ;重新组合MOV TEMP_ZH,ALCALL HEX2BCD1MOV TEMPL,AANL A,#0F0H ;取出高四位SWAP A ;高、低位交换ORL A,TEMPHC ;TEMPHC LOW = 十位数 BCD MOV TEMPHC,AMOV A,TEMPLANL A,#0FH ;取出低四位SWAP A ;高、低位交换ORL A,TEMPLC ;TEMPLC HI = 个位数 BCD MOV TEMPLC,AMOV A,R4JZ TC3ANL A,#0FH ;取出低四位SWAP A ;高、低位交换MOV R4,AMOV A,TEMPHC ;TEMPHC HI = 百位数 BCDANL A,#0FH ;取出低四位ORL A,R4MOV TEMPHC,ATC3: RET;―――――――――――――HEX2BCD1:MOV B,#064H ;十六进制-> BCDDIV AB ;B= A % 100MOV R4,A ;R4 = 百位数MOV A,#0AHXCH A,BDIV AB ;B = A % BSWAP A ;高、低位交换ORL A,BRET;―――――――――――――; 小数部分码表DOTTAB:DB 00H,00H,01H,01H,02H,03H,03H,04HDB 05H,05H,06H,06H,07H,08H,08H,09H;--------显示区BCD 码温度值刷新子程序-------- DISP_BCD:MOV A,TEMPLC ;个位数BCD码送入AANL A,#0FH ;取低位码MOV 70H,A ;小数位MOV A,TEMPLCSWAP A ;高、低位交换ANL A,#0FH ;取结果数的高位MOV 71H,A ;个位MOV A,TEMPHCANL A,#0FH ;取低位码MOV 72H,A ;十位MOV A,TEMPHCSWAP A ;高、低位交换ANL A,#0FH ;取结果数的高位MOV 73H,A ;百位MOV A,TEMPHCANL A,#0F0H ;取低位码CJNE A,#010H,DI0JMP DI2;―――――――――――――DI0: MOV A,TEMPHCANL A,#0FH ;取低位码JNZ DI2 ;十位数是0MOV A,TEMPHCSWAP A ;高、低位交换ANL A,#0FH ;取结果数的高位MOV 73H,#0AH ;符号位不显示MOV 72H,A ;十位数显示符号DI2: RET;==================================================;==========读1302子程序=================RD_DS1302:MOV DS1302_ADDR,#8DH ;读DS1302中的年LCALL READ ;调用读DS1302子程序MOV TIME_YEAR, DS1302_DATA ;把读出的年数据存入年寄存器中MOV DS1302_ADDR,#8BH ;读DS1302中的星期LCALL READMOV WEEK_DATA, DS1302_DATA ;把读出的星期数据存入星期寄存器中MOV DS1302_ADDR,#89H ;读DS1302中的月LCALL READMOV TIME_MONT, DS1302_DATA ;把读出的月数据存入月寄存器中MOV DS1302_ADDR,#87H ;读DS1302中的天LCALL READMOV TIME_DAY, DS1302_DATA ;把读出的天数据存入天寄存器中MOV DS1302_ADDR,#85H ;读DS1302中的小时LCALL READMOV HOUR, DS1302_DATA ;把读出的天数据存入小时寄存器中MOV DS1302_ADDR,#83H ;读DS1302中的分钟LCALL READMOV MINTUE, DS1302_DATA ;把读出的天数据存入分钟寄存器中MOV DS1302_ADDR,#81H ;读DS1302中的秒钟LCALL READMOV SECOND, DS1302_DATA ;把读出的天数据存入秒钟寄存器中 RET;===========按键子程序=================;=========数据分离后送显示缓存==================DATA_BUF:MOV R0,TIME_YEAR ;年数据分离,送显示缓存LCALL DIVIDE ;调用数据分离子程序MOV YEAR_HBUF,R1MOV YEAR_LBUF,R2MOV R0,TIME_MONT ;月数据分离,送显示缓存LCALL DIVIDEMOV MONT_HBUF,R1MOV MONT_LBUF,R2MOV R0,TIME_DAY ;日数据分离,送显示缓存LCALL DIVIDEMOV DAY_HBUF,R1MOV DAY_LBUF,R2MOV R0,WEEK_DATA ;星期数据分离,送显示缓存LCALL DIVIDEMOV WEEK_HBUF,R1MOV WEEK_LBUF,R2MOV R0,HOUR ;小时数据分离,送显示缓存LCALL DIVIDEMOV HOUR_HBUF,R1MOV HOUR_LBUF,R2MOV R0,MINTUE ;分钟数据分离,送显示缓存LCALL DIVIDEMOV MINTUE_HBUF,R1MOV MINTUE_LBUF,R2MOV R0,SECOND ;秒钟数据分离,送显示缓存LCALL DIVIDEMOV SECOND_HBUF,R1MOV SECOND_LBUF,R2RET;=========日历显示子程序==========;===============年显示===============DISPLAY:MOV A,#10000001B ;设定年第1位的显示地址为第1行,第1列 LCALL WR_COMM ;调用写指令到液晶子程序MOV A, #32H ;数字2的ASCII码LCALL WR_DATA ;调用写数据到液晶子程序MOV A,#10000010B ;设定年第2位的显示地址为第1行,第2列 LCALL WR_COMMMOV A, #30H ;数字0的ASCII码LCALL WR_DATAMOV A,#10000011B ;设定年第3位的显示地址为第1行,第3列 LCALL WR_COMMMOV A, YEAR_LBUF ;年的低位缓存数据ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATAMOV A,#10000100B ;设定年第4位的显示地址为第1行,第4列 LCALL WR_COMMMOV A, YEAR_HBUF ;年的高位缓存数据ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATA; =====================斜线显示========================MOV A,#10000101B ;设定斜线的显示地址为第1行,第5列LCALL WR_COMMMOV A,#2FH ;斜线的ASCII码LCALL WR_DATA;================显示月============MOV A,#10000110B ;设定月第1位的显示地址为第1行,第6列 LCALL WR_COMMMOV A, MONT_LBUF ;月的低位缓存数据ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATAMOV A,#10000111B ;设定月第2位的显示地址为第1行,第7列 LCALL WR_COMMMOV A, MONT_HBUF ;月的高位缓存数据ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATA;=======================斜线显示============================MOV A,#10001000B ;设定斜线的显示地址为第1行,第8列LCALL WR_COMMMOV A,#2FH ;斜线的ASCII码LCALL WR_DATA;==============================天显示=======================MOV A,#10001001B ;设定天第1位的显示地址为第1行,第9列MOV A, DAY_LBUF ;天的低位缓存数据ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATAMOV A,#10001010B ;设定天第2位的显示地址为第1行,第10列 LCALL WR_COMMMOV A, DAY_HBUF ;天的高位缓存数据ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATA;========================星期显示======================MOV A,#10001111B ;设定星期第2位的显示地址为第1行,第13列 LCALL WR_COMMMOV A, WEEK_DATA ;星期的高位缓存数据SUBB A,#1ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATA;=======================小时显示============================MOV A,#11000000B ;设定小时第1位的显示地址为第2行,第0列LCALL WR_COMMMOV A, HOUR_LBUF ;小时的低位缓存数据ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATAMOV A,#11000001B ;设定小时第2位的显示地址为第2行,第1列 LCALL WR_COMMMOV A, HOUR_HBUF ;小时的高位缓存数据ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATA;====================== 冒号的显示==========================MOV A,#11000010B ;设定冒号的显示地址为第2行,第2列LCALL WR_COMMMOV A, #3AH ;冒号的ASCII码LCALL WR_DATA;==================== 分钟显示======================MOV A,#11000011B ;设定分钟第1位的显示地址为第2行,第3列 LCALL WR_COMMMOV A, MINTUE_LBUF ;分钟的低位缓存数据ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATAMOV A,#11000100B ;设定分钟第2位的显示地址为第2行,第4列LCALL WR_COMMMOV A, MINTUE_HBUF ;分钟的高位缓存数据ADD A,#30H ;加30H修正取ASCII码;====================== 冒号的显示===========================MOV A,#11000101B ;设定冒号的显示地址为第2行,第5列LCALL WR_COMMMOV A, #3AH ;冒号的ASCII码LCALL WR_DATA;===================== 秒钟显示=============================MOV A,#11000110B ;设定秒钟第1位的显示地址为第2行,第6列 LCALL WR_COMMMOV A, SECOND_LBUF ;秒钟的低位缓存数据ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATAMOV A,#11000111B ;设定秒钟第2位的显示地址为第2行,第7列 LCALL WR_COMMMOV A, SECOND_HBUF ;秒钟的高位缓存数据ADD A,#30H ;加30H修正取ASCII码LCALL WR_DATARET;―――――――― DS18B20复位初始化子程序――――――――――RESET_1820: ;复位(有具体的时序要求)SETB DQNOPCLR DQ;―――――――――――――;主机发出延时537微秒的复位低脉冲MOV R1,#3DLY: MOV R0,#107DJNZ R0,$DJNZ R1,DLY;―――――――――――――;然后拉高数据线SETB DQNOPNOPNOP;―――――――――――――;等待DS18B20回应MOV R0,#25HT2: JNB DQ ,T5DJNZ R0, T2;―――――――――――――;时序要求延时一段时间T5: MOV R0,#117T6: DJNZ R0,T6;――――――――――――――T7: SETB DQRET;=======================================================;========DS1302初始化===========SET_1302:MOV DS1302_ADDR, #8EH ;写DS1302控制指令MOV DS1302_DATA, #00H ;写数据到DS1302的8E控制寄存器中,允许对其进行写操作LCALL WRITE ;调用写DS1302子程序MOV DS1302_ADDR, #90H ;写DS1302控制指令MOV DS1302_DATA,#0A6H ;写数据到DS1302的90控制寄存器中,对电池涓流充电,充电电流为1.1mALCALL WRITE ;调用写DS1302子程序RET;=========查询忙碌标志============CHECK_BUSY:PUSH ACCBUSY_LOOP:CLR ESETB RWCLR RSSETB EMOV A, p0JB p0.7,BUSY_LOOPPOP ACCLCALL DELRET;----------------------------------------------------------------------------------------------;===========延时程序===================DEL:MOV R6,#5L1:MOV R7,#248DJNZ R7,$DJNZ R6,L1RET;――――――――――写入DS18B20子程序――――――――――― ;写入DS18B20(有具体的时序要求)WRITE_1820:MOV R2,#8 ;一共8位数据CLR C ;C=0WR1:CLR DQ ;总线低位,开始写入MOV R3,#6DJNZ R3,$ ;保持16微秒以上RRC A ;把字节DATA分成8个BIT环移给CMOV DQ, C ;写入一个BITMOV R3,#23DJNZ R3,$ ;等待SETB DQ ;重新释放总线NOPDJNZ R2,WR1 ;写入下一个BITSETB DQ ;释放总线RET ;――――――――――读出DS18B20子程序――――――――――― ;将温度值从DS18B20中读出(有具体的时序要求)READ_1820:MOV R4,#4MOV R1,#TEMPL ;存入25H、26H、27H、28HRE0:MOV R2,#8 ;数据一共有8位RE1:CLR CSETB DQNOPNOPCLR DQ ;读前总线保持为低位NOPNOPNOPSETB DQ ;总线释放 ;―――――――――――――MOV R3,#9DJNZ R3,$ ;延时18微妙MOV C, DQ ;从总线读到一个BIT ;―――――――――――――MOV R3,#23 ;DJNZ R3,$ ;等待50微秒RRC A ;把读得的位值环移给ADJNZ R2,RE1 ;读下一个BITMOV @R1,AINC R1 ; R1内数据递增DJNZ R4,RE0RET;=========== LCD 1602 显示程序=========== ;初始化设置SET_LCD:CLR ECALL INIT_LCD ;初始化 LCDCALL STORE_DATA ;将自定义字符存入LCD的CGRAMRET;----------- LCD 初始化子程序----------- INIT_LCD:MOV A,#38H ;设置8位、2行、5x7点阵ACALL WR_COMM ; 调用写指令子程序ACALL DELAY1 ;调用延时子程序MOV A,#0CH ;开显示,光标不闪烁ACALL WR_COMM ;调用写指令子程序 ;ACALL DELAY1 ;调用延时子程序MOV A,#01H ;清除 LCD 显示屏ACALL WR_COMM ;调用写指令子程序 ;ACALL DELAY1 ;调用延时子程序RET;----------显示温度标记子程序----------- TEMP_BJ:MOV A, #0CEH ;设定第二行起始地址ACALL WR_COMM ;调用写指令子程序MOV DPTR,#BJ ;存代码表MOV R1 ,#0 ;使指针指到表中第一个码MOV R0 ,#2 ;取码次数Tp0:MOV A,R1 ;A为0MOVC A,@A+DPTR ;取码ACALL WR_DATA ;调用写数据子程序INC R1 ;R1值加1DJNZ R0,Tp0 ;判断是否将代码读取完?RET;―――――――――――――BJ: ;代码表DB 00H,"C";-----------自定义字符子程序----------- ;将自定义字符写入LCD1602的CGRAM中STORE_DATA:MOV A,#40H ;指定CG RAM起始地址ACALL WR_COMM ;将指令写入LCDMOV R2,#08H ;图形数据长度8个字节MOV DPTR,#TAB ;存代码表MOV R3,#00H ;使指针指到表中第一个码S_D: MOV A,R3 ;A为0MOVC A,@A+DPTR ;读取表代码ACALL WR_DATA ;调用写入数据指令INC R3 ;R3值加1DJNZ R2, S_D ;判断是否将代码读取完?RET ;;―――――――――――――TAB: ;代码表DB 0CH,12H,12H,0CHDB 00H,00H,00H,00H;-----------显示"OK"信息子程序---------MEU_OK:MOV DPTR,#M_OK1 ;指针指到显示消息MOV A,#1 ;显示在第一行ACALL LCD_PRINT ;LCD显示MOV DPTR,#M_OK2 ;指针指到显示消息MOV A,#2 ;显示在第一行ACALL LCD_PRINT ;LCD显示RET;――――――――――――――M_OK1:DB " - - WK: " ,0M_OK2:DB " - - ",0;------―――――菜单显示子程序―――――――----- ;在LCD的第一行或第二行显示字符LCD_PRINT:CJNE A,#1,LINE2 ;判断是否为第一行LINE1:ACALL CLR_LINE ;清除该行字符数据MOV A,#80H ;设置 LCD 的第一行地址ACALL WR_COMM ;写入命令JMP FILLLINE2:ACALL CLR_LINE ;清除该行字符数据MOV A,#0C0H ;设置 LCD 的第二行地址ACALL WR_COMMFILL:CLR A ;填入字符MOVC A,@A+DPTR ;由消息区取出字符CJNE A,#0,LC1 ;判断是否为结束码RETLC1:ACALL WR_DATA ;写入数据INC DPTR ;指针加1JMP FILL ;继续填入字符RET;---------― LCD显示子程序---------- CONV:MOV A,73H ;加载百位数据MOV X,#9 ;设置位置CJNE A,#1,CO1JMP CO2CO1:MOV A,#" "MOV B,XACALL LCDP2JMP CO3CO2:ACALL SHOW_LINE2 ;显示数据CO3: INC X ;位加1MOV A,72H ;十位ACALL SHOW_LINE2 ;显示数据INC X ;位加1MOV A, 71H ;个位ACALL SHOW_LINE2 ;显示数据INC X ;位加1MOV A,#'.'MOV B,XACALL LCDP2 ;显示字符MOV A,70H ;加载小数点位INC X ;设置位置ACALL SHOW_LINE2 ;显示数据RET;-----――显示第二行-----―――;在 LCD 的第二行显示数字SHOW_LINE2:ADD A,#30HMOV B,XACALL LCDP2RETLCDP2: ;在LCD的第二行显示字符PUSH ACC ;放入堆栈MOV A,B ;设置显示地址ADD A,#0C0H ;设置LCD的第二行地址ACALL WR_COMM ;写入命令POP ACC ;由堆栈取出AACALL WR_DATA ;写入数据RET;-----――――――写指令子程序――――――――――-- WR_COMM:MOV p0,A ;写入指令CLR RS ;RS=0,选择指令寄存器CLR RW ;RW=0,选择写模式SETB E ;E=1,允许读/写LCMACALL DELAY1 ;延时5MSCLR E ;E=0,禁止读/写LCMRET;---------―――写数据子程序------------ WR_DATA:MOV p0,A ;写入数据SETB RS ;RS=1,选择数据寄存器CLR RW ;RW=0,选择写模式SETB E ;E=1,允许读/写LCMACALL DE ;延时0.5MSCLR E ;E=0,禁止读/写LCMACALL DE ;延时0.5MSRET;----------清除LCD 的字符------------- CLR_LINE:MOV R0,#24 ;设置计数值CL1: MOV A,#' ' ;载入空格符至LCDACALL WR_DATA ;输出字符至LCDDJNZ R0,CL1 ;判断RET;--------------CLR_LINE1: ;清除LCD的第一行字符MOV A,#80H ;设置 LCD 的第一行地址ACALL WR_COMM ;调用写指令子程序MOV R0,#24 ;设置计数值C1: MOV A,#' ' ;载入空格符至LCDACALL WR_DATA ;输出字符至LCDDJNZ R0,C1 ;计数结束RET;========================================================= ;***********写1302程序*************WRITE:CLR SCLKNOPSETB RSTNOPMOV A,DS1302_ADDRMOV R4,#8WRITE1:RRC A ;送地址给1302NOPNOPCLR SCLKNOPNOPNOPMOV IO,CSETB SCLK ;送入地址在时钟上升沿有效NOPNOPNOPNOPDJNZ R4,WRITE1CLR SCLKNOPMOV A,DS1302_DATAMOV R4,#8WRITE2:RRC ANOP ;送数据给1302,时钟上升沿,数据输入 CLR SCLKNOPNOPMOV IO,CNOPNOPNOPSETB SCLKNOPNOPDJNZ R4,WRITE2CLR RSTCLR ARET;**********读1302程序************READ:CLR SCLKNOPNOPSETB RSTNOPMOV A,DS1302_ADDRMOV R4,#8READ1:RRC ANOPMOV IO,CNOPNOPNOPSETB SCLK ;送入地址在时钟上升沿有效NOPNOPNOPCLR SCLKNOPNOPDJNZ R4,READ1 ;判断8位数据是否传送完?MOV R4,#8READ2:CLR SCLKNOPNOPNOPMOV C,IONOPNOPNOPNOPNOP ;从ds1302中读取数据,时钟下降沿有效 RRC ANOPNOPNOPNOPSETB SCLKNOPDJNZ R4,READ2 ;判断8位数据是否传送完?MOV DS1302_DATA,ACLR RSTRET;==========分离数据子程序=========DIVIDE:MOV A,R0ANL A,#0FH ;屏蔽掉低4位,留下高4位MOV R1,AMOV A,R0SWAP A ;A中数据高4位与低4位互换ANL A,#0FH ;实际上是屏蔽掉了高4位,留下低4位MOV R2,ARET;========延时2秒子程序=============DELAY2:MOV R5,#20D3:MOV R6,#200D2:MOV R7,#250DJNZ R7,$DJNZ R6,D2DJNZ R5,D3RET;-------------鸣响子程序------------SPK_BZ:MOV R6,#100BZ2: ACALL DEX1CPL SPKDJNZ R6,BZ2MOV R5,#10ACALL DELAYRETDEX1: MOV R7,#180DE2: NOPDJNZ R7,DE2RET;-------------延时子程序------------- DELAY: ;延时时间为:R5×10MSDL1: MOV R7,#100DJNZ R7,$DJNZ R6,DL1DJNZ R5,DELAYRET;―――――――――――――DELAY1: ;延时时间为5MSMOV R6,#25DL2: MOV R7,#100DJNZ R7,$DJNZ R6,DL2RET;―――――――――――――DE:MOV R7,#250 ;延时时间为0.5MSDJNZ R7,$RET;-----------――END。
华伟鑫led数码万年历表说明
华伟鑫led数码万年历表说明【实用版】目录1.华伟鑫 LED 数码万年历表简介2.华伟鑫 LED 数码万年历表功能特点3.华伟鑫 LED 数码万年历表使用说明4.华伟鑫 LED 数码万年历表的优点与不足正文一、华伟鑫 LED 数码万年历表简介华伟鑫 LED 数码万年历表是一款集时尚与实用于一体的日历产品,它采用高清 LED 显示屏,呈现出清晰的日期、星期和温度等信息,方便用户随时查看。
此款万年历表具有简约的外观设计,适合摆放在办公室或居家环境中,为您的生活带来便利。
二、华伟鑫 LED 数码万年历表功能特点1.显示日期、星期和温度:华伟鑫 LED 数码万年历表通过高清 LED 显示屏,清晰地显示出当前的日期、星期和温度等信息,方便用户快速了解。
2.闹钟功能:该款万年历表具备闹钟功能,可设置多个闹钟时间,为您的日常生活提供便利。
3.台历和挂历模式:华伟鑫 LED 数码万年历表可根据用户需求,切换台历和挂历模式,满足不同场景的使用。
4.节能环保:采用低功耗设计,节能环保,使用寿命长。
三、华伟鑫 LED 数码万年历表使用说明1.开机:按下侧面的开关键,屏幕将显示当前日期、星期和温度等信息。
2.设置闹钟:长按闹钟键,待屏幕出现“闹钟设置”字样时,按上下键设置闹钟时间,再按闹钟键确认。
3.切换台历/挂历模式:按下模式键,可在台历和挂历模式之间切换。
4.关闭:长按侧面的开关键,关闭万年历表。
四、华伟鑫 LED 数码万年历表的优点与不足优点:1.高清 LED 显示屏,显示信息清晰。
2.具备闹钟功能,实用性强。
3.节能环保,使用寿命长。
不足:1.功能相对单一,无其他附加功能。
2.屏幕较小,查看信息时可能需走近。
总之,华伟鑫 LED 数码万年历表凭借其时尚的外观、实用的功能以及节能环保的特点,成为现代家庭和办公场所的理想选择。
然而,功能相对单一以及屏幕较小,可能无法满足部分用户的需求。
综合设计实验报告模板
综合设计实验报告设计题目:课程名称:学生姓名:学号:所在院系:专业:班级:指导教师:目录第一章、前言 (1)第二章、设计要求及实现的功能 (1)2.1 设计要求 (1)2.2 设计实现的功能 (1)第三章、整体设计 (2)第四章、系统详细设计 (2)4.1硬件详细设计. (2)4.1.1主控制系统 (2)4.1.2时钟振荡电路和复位电路 (4)4.1.3 DS1302模块设计 (5)4.1.4 DS18B20模块设计 (6)4.1.5 按键电路 (8)4.1.6 LCD显示电路 (8)4.2 软件详细设计 (9)4.2.1系统软件详细设计 (9)4.2.2 DS1302的时间处理 (9)4.2.3 环境温度采集 (12)4.2.4 系统软件按键检测流程图 (12)第五章、系统仿真及程序编写及调试 (13)5.1 仿真软件介绍 (13)5.2系统硬件PROTEUS仿真原理图 (13)5.3 系统硬件仿真运行情况图 (14)第六章、课程设计总结 (14)第七章、仪器仪表清单 (15)第八章、参考文献 (16)第九章、附录 (16)显示温度的万年历第一章、前言随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
如今万年历已经在人们生活中广泛的使用,它不仅是记录日期和时间的工具,而且也成为了一种装饰品。
现在的万年历可以说是多种多样,外观精美。
放在家里既可以计时也可作为风景壁画,因此越来越受到大众消费者的喜爱。
美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。
它可以对年、月、日、周日、时、分、秒进行计时,而且DS1302的使用寿命长,误差小。
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。
在本次设计中,采用单片机STC89C52,辅助以必要的外围电路,用C语言编写程序,并进行模块化设计而成的电子万年历系统。
(汇编)实现数码管显示年,月,日,时,分,秒,星期,温度,按键可调万年历
;///////////////////////////////////////////;本程序源代码由湖南工程职业技术学院提供.;专业单片机培训,让你学习单片机更容易.;程序员:蒋庆桥;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,开始走时。
GC056A万年历操作说明书
GC056A万年历功能简介及操作说明书主要特点:1.IC驱动能力强,外围电路简单,不要74LS1642.整机功耗低,可采用小功率变压器。
2.超强抗干扰能力。
3.驱动效率高,相同的电流比同类IC数码管亮度增加一倍。
4.IC适应电压范围广,便于数码管选用。
一. 功能简介:1.50年同步显示公历年、月、日、上午、下午、时、分、秒、星期、农历月、日、摄氏温度。
2.12/24小时制转换(24小时制时,上/下午的LED指示灯都不亮)3.四种星期显示方式由硬件选择:越南星期(2~8);7个LED星期(外销用途);国内星期(1~6,8),俄罗斯星期(1~7)。
具有年隐含功能(年显示,表示按原理图的位置正常显示年份;年隐含,表示年的四位数平时不显示出来,只在调整年份时显示在时与分上).4.IC功能选择:由原理图中的C1、C2、C3、R1来决定。
特别注意:C1,C2,C3、R1的参数不要随意改动。
C1、C2、C3、R1都不装:年显示,中国星期;C1装,C2、C3、R1都不装:年显示,越南星期;C2装,C1、C3、R1都不装:年显示,星期1~7;C1,C2都装,C3、R1都不装:年显示,7个LED星期;C1、C2都不装,C3、R1都装:年隐含,中国星期;C2不装,C1、C3、R1都装:年隐含,越南星期;C1不装,C2、C3、R1都装: 年隐含,星期1~7;C1、C2、C3、R1都装:年隐含,7个LED星期;5.内置锂电池,市电停电,LED显示关闭,万年历内部能正常走时,功耗是uA级,一块锂电池,可以连续运行6年以上。
重新来电时万年历不需重新设置。
6.温度测量范围:-9到48度,精度为正负1度。
时间误差一天小于1秒。
7.三个按键 S1:快速退出/即时播报键, S2:设置/移动键,S3:修改/ 闹钟开关键。
另提供一个可以选用的硬件复位键。
8.共4组闹钟,共用1个闹钟指示LED,可以在闹钟设置时单独开启或关闭单个闹钟。
第四组闹钟是学生闹钟,设定开启时只有在周一到周五响闹,周六和周日不响。
宏创万年历使用说明
宏创万年历是一款以时钟、日历、温湿度、定时提醒和倒计时等功能为主的多功能电子产品。
它不仅具有简约时尚的外观设计,还集成了多种实用功能,方便人们的日常生活和办公使用。
下面将详细介绍如何正确使用宏创万年历。
一、时钟功能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.提醒方式:在提醒时间到达时,宏创万年历会发出声音和闪烁提示。
时钟万年历遥控外文说明书
时钟万年历遥控外文说明书时钟万年历遥控外文说明书引言:时钟万年历遥控是一款功能强大、设计精美的智能产品,它不仅具备准确显示时间和日期的功能,还可以通过遥控手柄进行操作,方便用户使用。
本说明书将全面介绍时钟万年历遥控的功能和操作指南,帮助用户更好地使用该产品。
一、产品功能:1. 准确显示时间:时钟万年历遥控采用高精度的时钟芯片,能够精确显示当前时间,并实时更新。
2. 完整显示万年历:该时钟还配备了完整的万年历功能,包括年、月、日的显示,满足用户对日期信息的需求。
3. 定时功能:时钟万年历遥控可以设置定时功能,用户可以根据需要设定闹钟或定时器,方便日常生活和工作。
4. 温度显示:时钟万年历遥控还具备温度显示功能,用户可以随时了解当前环境的温度情况,以便做出相应的调整。
二、产品外观和配件:1. 外观:时钟万年历遥控采用纤薄设计,拥有时尚简约的外观,适合放置在家庭、办公室等各种环境中。
2. 显示屏幕:产品配备大尺寸液晶显示屏,清晰度高,显示内容直观。
3. 遥控手柄:时钟万年历遥控还配备了遥控手柄,用户可以通过手柄对时钟进行操作,方便灵活。
4. 电源适配器:产品附带电源适配器,可以插入电源进行使用,也可以使用电池作为备用电源。
三、使用指南:1. 时间设置:首次使用时,请先将时钟插入电源或安装电池。
然后按照说明书的指导,使用遥控手柄上的调节键来设置时间。
2. 日历设置:时钟万年历遥控已经预设了日期自动更新的功能,不需要用户手动设置。
如果需要更改日期,可以使用遥控手柄上的相关按键进行操作。
3. 定时功能:用户可以按照自己的需要设置闹钟或定时器。
通过遥控手柄上的定时键,输入指定的时间,并按确认键即可完成设置。
4. 温度显示:时钟万年历遥控会自动感知环境温度,并在显示屏上显示。
用户无需额外设置。
结语:时钟万年历遥控是一款功能强大、外观精美的产品,具备准确显示时间和日期、定时功能以及温度显示等多种功能。
通过本说明书,用户可以轻松了解产品的外观特点和使用指南,帮助更好地使用该产品。
基于单片机带温度显示的电子万年历设计毕业设计
毕业设计基于单片机带温度显示的电子万年历设计单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC 卡、电子宠物等,这些都离不开单片机。
单片机是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
本设计着重要描述的就是基于AT89S52的单片机的电子万年历。
本文首先描述系统硬件工作原理,随后说明了本系统所应用的各硬件接口技术(既芯片驱动程序)和各个接口模块的功能及工作过程。
本设计的主导思想是软硬件相结合来进行各功能模块的编写。
电子万年历以硬件C语言为主体进行软件设计,增加了程序的可读性和可移植性。
系统通过LCD液晶输出显示数据,可以显示当前时间、公农历日期、星期、温度,并附有以峰鸣器为提示的闹铃功能。
关键词:单片机电子万年历公农历接口模块C语言MCU rapid development of applied technology, we now live Looking at the various fields, from the missile's navigation devices, to the various instruments on the aircraft control, computer network communications and data transmission, industrial automation to the process of real-time control and data Processing, and we live in the extensive use of the smart IC cards, electronic pets, these are inseparable from the SCM. SCM is set CPU, RAM, ROM, timing, counting on one interface and a variety of microcontrollers.Its small size, low cost, feature strong, smart widely used in industry and industrial automation.This design is going to describing the calendar based on AT89S52. System hardware of main body is described first, Follow the function, principle of work and hardware interface (that means the chip’s drives) are introduced. The design‘s main ideas is that composes soft and hardware to achieve the design.The calendar is designed with hardware C language as the Realization tool, which increased procedure readability and transplanting. The system shows the output by LCD1602, which can demonstrate the current time, the lunar calendar date, the week, the temperature and the system, can alter people with a small sounder.Keywords: MCU Electronic calendar Lunar calendar Interface module C Language.摘要............................................................................................................................................ I I ABSTRACT .. (III)目录 (IV)引言 (1)1 系统方案设计 (2)1.1单片机芯片的选择方案 (2)1.2显示模块选择方案 (3)1.3时钟芯片的选择方案 (3)1.4温度传感器的选择方案 (4)1.5电路设计最终方案 (4)2 系统设计说明 (5)2.1硬件模块图 (5)2.2系统原理 (5)2.3系统的软件流程图 (6)3 系统单元模块设计 (7)3.1主控模块(AT89S52模块) (7)3.2DS1302时钟模块 (9)3.2.1DS1302简介 (9)3.2.2DS1302结构与工作原理 (10)3.2.3控制命令字节与寄存器 (11)3.2.4DS1302电路设计图 (16)3.3公历与农历、星期转换模块 (16)3.3.1概述 (16)3.3.2基本原理 (17)3.3.3程序流程图 (18)3.4DS18B20温度模块 (20)3.4.1概述 (20)3.4.2DS18B20的工作原理 (20)3.4.3DS18B20与单片机的接口设计 (25)3.4.4DS18B20程序设计方案 (26)3.5整点报时模块 (29)3.5.1概述 (29)3.5.2设计原理 (29)3.5.3整点报时电路设计图 (29)3.6时间可调模块 (30)3.6.1键盘扫描原理 (30)3.6.2按键说明 (30)3.6.3软件设计思路 (31)3.7LCD1602显示模块 (31)3.7.1概述 (31)3.7.2结构与工作原理 (31)3.7.3LCD1602电路设计图 (34)3.8电源部分 (35)结束语 (36)参考文献 (37)致谢 (38)附录........................................................................................................................................ - 1 -引言近年来,随着我国科技的不断发展,我国经济发展的支柱产业——电子产业获得长足发展,近年来各种电子产品琳琅满目,随处可见,随着电子产品的更新速度的加快,各种功能强大,款式新颖的电子产品不断问世。
基于单片机的万年历设计
题目:基于单片机的电子万年历设计带温度显示可调闹钟红外万年历摘要本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。
系统最大的特点是体现了较强的人机交互和独立的模块化程序设计。
温度采集选用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 概述随着电子技术的发展,人类不断研究,不断创新纪录。
多功能电子万年历
用户可以根据自己的需求,调节闹 钟的音量大小,确保及时唤醒。
温度显示功能
01
02
03
温度传感器
多功能电子万年历内置温 度传感器,可以实时显示 室内温度,方便了解室内 环境温度情况。
温度单位切换
用户可以根据自己的需求 ,在摄氏度与华氏度之间 自由切换温度显示单位。
温度预警
根据用户设定的温度范围 ,多功能电子万年历可以 发出预警声音或提示信息 ,提醒您注意温度变化。
课外活动安排
多功能电子万年历可以记录学生 的课外活动安排,如社团活动、 义工活动等,方便学生合理安排 时间。
学习备忘录
多功能电子万年历可以作为学生 的学习备忘录,记录学习笔记、 心得体会等,方便学生随时回顾 和总结。
06
产品未来展望
技术创新方向
智能化升级
引入人工智能技术,实现万年历的语音交互 、智能推荐等功能,提升用户体验。
功能丰富
除了基本的日期和时 间显示外,还具备闹 钟、计算器、备忘录 等多种实用功能。
易于操作
配备触摸屏或按键操 作,简单易懂,方便 用户使用。
耐用性强
采用高品质材料制造 ,经久耐用,适合家 庭和办公场所使用。
产品的重要性
提高生活品质
多功能电子万年历可以提醒用 户重要日期和时间,避免错过
重要事件,提高生活品质。
计时的时间范围。
倒计时提醒
02
在倒计时结束之前,多功能电子万年历会发出提醒声音或提示
信息,避免错过重要时刻。
倒计时进度显示
03
多功能电子万年历会实时显示倒计时的剩余时间,让您可以随
时掌握时间进度。
03
产品使用说明
操作界面说明
数字万年历
摘要电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。
它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能。
本系统选用DALLAS公司生产的日历时钟芯片DS12C887来作为实时时钟芯片,为本系统提供详细的年、月、日、星期和小时、分钟等时间信息。
数字万年历采用直观数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有定时和时间校准等功能。
该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
本系统硬件部分由AT89S52单片机、DS12C887时钟芯片、1062液晶显示器、DS18B20温度测量、键盘、蜂鸣器系统等部分构成。
软件部分在keil 环境下用C51语言编写,包括时间设置、时间显示、定时设置、定时闹钟、温度显示。
没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。
在编写程序过程中发现以现有的相关知识要独自完成编写任务困难重重,在老师和同学的帮助下才完成了程序部分的编写。
文章后附有电路原理图、程序清单,以供读者参考。
因水平有限,难免有疏落不足之处,敬请老师和同学能给与批评指正。
关键词:时钟芯片DS12C887;温度采集DS18B20;单片机AT89S52;液晶显示1602目录第一章概述 (3)§1.1实时时钟研究的背景及意义 (3)§1.2论文主要研究内容 (3)1.2.1 系统设计实现的目标 (3)1.2.2 系统的总体设计 (3)第二章硬件电路设计 (5)§2.1单片机最小系统 (5)§2.2时钟芯片电路 (5)2.2.1 时钟芯片引脚介绍 (5)2.2.2时钟芯片DS12C887,其内存空间介绍 (7)2.2.3 4个控制寄存器介绍 (7)§2.4温度采集电路设计 (9)2.4.1 DS18B20的主要特性 (9)2.4.2 DS1820的基本操作指令 (9)2.4.3 温度测量的步骤 (10)2.4.4 DS18B20的操作时序 (10)§2.5 1602LCD液晶显示屏 (12)2.5.1 1602字符型LCD简介 (12)2.5.2 1602引脚功能说明 (12)2.5.3 1602LCD的指令说明及时序 (12)2.5.4 1602LCD的RAM地址映射及标准字库表 (14)2.5.5 1602LCD的一般初始化(复位)过程 (16)2.4.6 1602LCD的电路连接 (16)§2.6 蜂鸣器闹铃电路 (17)§2.7 按键调整电路 (17)§2.8 电源模块 (18)第三章软件部分设计 (19)§3.1 主程序流程 (19)§3.2 时间设置子程序流程 (19)§3.3 闹钟设置子程序流程 (20)§3.4 程序设计问题 (21)3.4.1 按键抖动问题 (21)3.4.2 蜂鸣器设置 (21)3.4.3 液晶显示的设置 (21)3.4.4 中断设置 (21)3.4.5 时钟芯片设置 (22)结束语 (25)致谢词 (26)参考文献 (27)附件1 (28)第一章概述§1.1实时时钟研究的背景及意义在现实我们生活中每个人都可能有自己的时钟,光阴在永不停息的流逝,有了时钟人们就能随着时间有计划的过着每一天。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主程序:
#include <reg52.h>
#include <intrins.h>
#include "ds1302.h"
#include "LCD1602.h"
#include "ds18b20.h"
#define uchar unsigned char
#define uint unsigned int
date[4]=time_1302[4]%10+'0'; date[5]='-';
单片机课程设计报告
题目
:
带温度显示的万年历
院系
:
电气信息工程系
专业
:
通信工程
组长
:
学号
:
组员1
:
学号
:
组员2
:
学号
:
组员3
:
学号
:
组员4
:
学号
:
指导教师
:
201*年12月18日
带温度显示的万年历设计报告
一、选题目的和意义:
二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步……
times[5]=':';
times[6]=time_1302[0]/10+'0';
times[7]=time_1302[0]%10+'0';
// 日期的转换
date[0]=time_1302[6]/10+'0';
date[1]=time_1302[6]%10+'0';
date[2]='-';
date[3]=time_1302[4]/10+'0';
sbit gon=P3^4 ;
sbit e=P3^3 ;
sbit xiang=P3^7;
sbit jia=P3^6 ;
sbit jian=P3^5 ;
sbit a1=P1^3;
sbit a2=P1^4 ;
sbit a3=P1^5 ;
sbit a4=P1^6 ;
sbit a5=P1^7 ;
void gong_neng();
三、设计的方法及步骤:
1、整个系统由主控模块和显示模块两大模块组成,主控模块包括主控芯片、温度检测、实时时钟电路及键盘接口电路,系统构成框如下图(1)所示。
图(1) 系统框图
2、设计步骤
(1)将LCD液晶的数据口接到P0口,P0口接上拉电阻,P2.0、P2.1、P2.2分别接到1602的RS、RW和E端口。
我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。
通过本次课程设计,可以培养我们独立思考综合运用所学有关知识的能力。更好的巩固《单片机原理及接口技术》课程学习的内容。掌握工程软件的设计方法,强化上级动手编程能力。做到理论与实践相结合。更加了解单片机知识的好处和其可用性。同时增加了同学之间的团队合作精神,更加体会的以后在工作中团队合作的重要性和必要性。
本设计可分为以下模块进行设计:显示模块,时间计算模块,设置模块,温度采集模块。显示模块采用用液晶显示器LCD1602显示,通过P2.0、P2.1、P2.2和P0给1602送指令和数据来控制想要显示的位置和数据;时间计算模块使用时钟芯片DS1302来进行时间和日期的计算,采用的是SPI总线,单片机通过模拟SPI接口来与它进行通信,他只有三条线与单片机连接,其他接晶振、电源和地线;设置模块为键盘模块,有两个按键分别接到单片机的外部中断,其他三个采用的是键盘扫描,并且在程序中进行了按键消抖,温度采集模块使用的是DS18B20,它直接将模拟的温度量转换为数字量,采用单总线与单片机相连,这样可以省出大量的I/O口,供给其他芯片使用,在电路中还加入了闹钟的功能,闹钟的程序采用定时器控制,这样在显示时间和日期的同时,闹钟同时起作用。
uint deng=0;
void change()
{
// 时间的转换
times[0]=time_1302[2]/10+'0';
times[1]=time_1302[2]%10+'0';
times[2]=':';
times[3]=time_1302[1]/10+'0';
times[4]=time_1302[1]%10+'0';
学生姓名
任务分工
学生姓名
任务分工
学生姓名
任务分工
程序设计
搜集资料
焊接
原件采购
制作课件
二、主要研究内容:
本设计为软件,硬件相结合的一组设计。在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。基本的要了解一些主要器件的基本功能和作用。
本设计以STC89C52单片机为控制核心,将时间数据通过LCD1602显示出来,同时通过相应的按键调整相应的值。通过温度传感器将采集到的温度实时的显示在显示屏上。
void dingshi();
void key();
uchar times[9];
uchar date[9];
uchar huan;
uchartp=0,temp1=0,temp2=0,temp3=0,temp4=0,temp5=0,neng=0,d_shi=0,d_fen=5,d_shi_g=0,
d_fen_g=5,d_shi_s=0,d_fen_s=0,d_flag=0,kai=0,s_flag=0,mingzi=0,temp6=0,temp7=0;
(2)将DS1302的SCLK,I/O,复位键接到P1.0,P1.1,P1.2;
(3)将温度芯片DS18B20接到P2.3。
(4)按键接到P3口上,通过P3.7来控制蜂鸣器的发声,起到闹钟的目的。
四、实验设计(相关原理框图):
1、主程序流程图(2)
图(2) 主程序流程图
时间调整部分的设计流程图(3):