52单片机的万年历的设计开题报告
- 格式:doc
- 大小:62.50 KB
- 文档页数:6
西安邮电学院开放实验设计报告系部名称电子与信息工程系学生姓名专业名称电子与信息工程班级实习时间基于STC89C52液晶显示数字万年历1.引言在51单片机应用系统中,常常需要记录实时的时间信息。
比如,在数据采集时,对默写重要的事件常常需要记录下准确的发生事件;又比如在银行营业大厅中使用的利率或汇率显示屏,上面除了显示利率或者汇率等数据外,还需要显示实时的时间信息,其中包括年,月,日,星期,时间等。
下面我们利用STC89C52和液晶显示器LCD1602和实时时钟芯片DS1302来实现实时时钟并利用液晶显示器进行显示。
1. 单片机STC89C52STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8 位微控制器8K字节在系统可编程Flash。
2. 实时时钟芯片DS1302DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
1 任务和设计要求首先要学会安装软件, 要熟悉会使用。
2 系统设计系统框图3 硬件设计3.1 电路原理图3.2 主要单元电路3.3 元件清单4 软件设计4.1 程序流程图4.2程序清单TIME_WEEK DATA 52H TIME_YEAR DATA 5DH TIME_MONTH DATA 5EH TIME_DATA DATA 5FH YEARH DATA 36HYEAR DATA 35H MONTH DATA 34HDAY DATA 33HHOUR DATA 32H MINUTE DATA 31HSEC DATA 30HAAA BIT P3.0BBB BIT P3.1AA BIT P3.3BB BIT P3.4CC BIT P3.5BL BIT P3.2BZ1 BIT 21H.0 TIMES DATA 20H COM DATA P1 ORG 0000HLJMP START ORG 0003H RETIORG 000BH LJMP INTT0ORG 0013H RETIORG 001BH RETIORG 0023H RETISTART:MOV R0,#30H MOV R7,#9 CLEETE:MOV @R0,#00H INC R0DJNZ R7,CLEETE MOV TIMES,#00H MOV TMOD,#01H MOV TL0,#0C0H MOV TH0,#63H MOV SEC,#0MOV MINUTE,#0H MOV HOUR,#0H MOV DAY,#01H MOV MONTH,#01H MOV YEAR,#01H MOV YEARH,#20H SETB EASETB ET0SETB TR0MOV R4,#19 START1:CALL DISPJNB AA,SETMM1 JMP START1 SETMM1:CALL SETMMJMP START1 SETMM:CALL DISPCALL DISPJB AA,SETMM0 SETMM2:JNB AA,SETMM3CLR ET0CLR TR0MOV SEC,#0MOV TIMES,#01H MOV R0,#MINUTE SETMM4:NOPINC22:CALL OFFLCALL INC11CALL DISPJB AA,INC22CALL DISPJB AA,INC22INC R0MOV A,TIMESRL AMOV TIMES,AJNB TIMES.5, SETMM4 SETMM12:JNB AA , SETMM11 SETMM0:SETB TR0SETB ET0RETSETMM11:CALL DISPJMP SETMM12 SETMM3:CALL DISPJMP SETMM2INC11:MOV R3,#40INC111:MOV A,@R0JB BB,INC17ADD A,#1DA ACALL INC000INC13:JNB BB , INC14INC17:MOV @R0,A CALL DISP DJNZ R3,INC111RETINC14:CALL DISP JMP INC13 OFFL:MOV 22H,@R0 MOV R6,#10 OFF1:MOV R7,#10OFF2:MOV @ R0, # 0AAH CALL DISPDJNZ R7 , OFF2DJNZ R6 , OFF1MOV @ R0 , 22H RETINC000:JB TIMES.0, INC001 JB TIMES.1, INC002 JB TIMES.2, INC003 JB TIMES.3, INC004 JB TIMES.4, INC005 JMP INCOUTINC005:CJNE A, #99H, INCOUT MOV A,#00H JMP INCOUT INC004:CJNE A, # 13H, INCOUT MOV A,#01H JMP INCOUTINC003:CJNE A,# 32H ,INCOUT MOV A,#01H JMP INCOUT INC002:CJNE A,#24H,INCOUT MOV A,#00H JMP INCOUT INC001:CJNE A,# 60H , INCOUT MOV A,#00H INCOUT:RETINTT0:PUSH ACC PUSH PSWORL TL0,#0C0HMOV TH0,#63H DJNZ R4 , CLKE111 JMP LOOP11 CLKE111:JMP CLKELOOP11:MOV R4,#19H MOV A,SECADD A,#1DA AMOV SEC,A CJNE A, #60H , CLKE99 MOV SEC,#0 MOV A,MINUTE ADD A,#1DA AMOV MINUTE,A CLK0:CJNE A, # 60H, CLKE MOV MINUTE,#0 MOV A,HOURADD A,#1DA AMOV HOUR,ACJNE A, # 24H, CLKE MOV HOUR,#0 MOV A,DAYADD A,#1DA AMOV DAY,A MOV A,MONTH INC AMOVC A, @A + PC SJMP CLK1DB 31H,28H,31H DB 30H,31H,30H DB 31H,31H,30H DB 00H,00H,00H DB 00H,00H,00H DB 31H,30H,31H CLK1:CLR CSUBB A,DAYJNC CLKEMOV A,MONTH CJNE A,#2,CLK3MOV A,YEAR ANL A,#13HJNB ACC.4,CLK2ADD A,#2CLK2:ANL A,#3JNZ CLK3MOV A,DAY XRL A,#29HJZ CLKECLK3:MOV DAY,#1 MOV A,MONTH ADD A,#1DA AMOV MONTH,A CJNE A,#13H,CLKE MOV MONTH,#1 MOV A,YEAR ADD A,#1DA AMOV YEAR,A CLKE99:CALL CONVERT CLKE:POP PSW POP ACC RETIDISP:PUSH PSW PUSH ACC MOV 23H,R0 DISP99:MOV R1,#40H MOV R0,#30H MOV R2,#9 DISP1:MOV A,@R0ANL A,#0FHMOV @R1,AMOV A,@R0SWAP AANL A,#0FHINC R1MOV @R1,ADJNZ R2,DISP2 CALL DISPLAYMOV R0,23HPOP ACCPOP PSWRETDISP2:INC R1INC R0JMP DISP1 DISPLAY:MOV R1,#40HMOV R5,#19SETB AAAPLAY:SETB BBBNOPCLR BBBCLR AAAMOV A,@R1MOV DPTR,#TAB MOVC A,@A+DPTR MOV COM,ACALL DL1MSMOV COM,#0FFHDJNZ R5,PLAY1CLR BBBSETB AAARETPLAY1:INC R1JMP PLAYTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0A3H,8EH,0ABH DL1MS:MOV 25H,R7MOV 24H,R6MOV R7,#20DS1:MOV R6,#10DJNZ R6,$DJNZ R7,DS1MOV R7,25HMOV R6,24HRETSTART_YEAR EQU 01 CONVERT_YEAR DATA 5CH CONVERT_MONTH DATA 38H CONVERT_DATE DATA 37H TEMP_BYTE1 DATA 57H TEMP_BYTE2 DATA 58H TEMP_BYTE3 DATA 59H TEMP_BYTE4 DATA 5AH TEMP_BYTE5 DATA 5BH CONVERT:MOV A, YEARMOV TIME_YEAR,AMOV A,MONTHMOV TIME_MONTH,AMOV A,DAYMOV TIME_DATA,AMOV A,TIME_YEARMOV B,#16DIV ABMOV CONVERT_YEAR,B MOV B,#10MUL ABADD A,CONVERT_YEARMOV CONVERT_YEAR,AMOV A,TIME_MONTHJNB ACC.4,CON_02CLR ACC.4ADD A,#10CON_02:MOV CONVERT_MONTH,A MOV A,TIME_DATAMOV B,#16DIV ABMOV CONVERT_DATE,BMOV B,#10MUL ABADD A,CONVERT_DATEMOV CONVERT_DATE,AMOV DPTR,#MONTH_DATAMOV A,CONVERT_YEARCON_06:CLR CSUBB A,#START_YEARMOV B,#3MUL ABADD A,DPLMOV DPL,AMOV A,BADDC A,DPHMOV DPH,AMOV A, #2MOVC A, @A+DPTRCLR ACC.7MOV B, #32DIV ABMOV TEMP_BYTE1,AMOV TEMP_BYTE2,BMOV TEMP_BYTE3,#0MOV A,CONVERT_MONTH CJNE A,#10,CON_08CON_08:JC CON_09MOV TEMP_BYTE3,#1CON_09:MOV A,CONVERT_YEAR ANL A,#03HJNZ CON_10MOV A,CONVERT_MONTH LCALL GET_RUN_DAYS_LOW SJMP CON_12CON_10:MOV A,CONVERT_MONTH LCALL GET_DAYS_LOWCON_12:MOV B,CONVERT_DATE DEC BADD A,BMOV TEMP_BYTE4,AJNC CON_14INC TEMP_BYTE3CON_14:MOV A,TEMP_BYTE1 LCALL GET_DAYS_LOWDEC AADD A,TEMP_BYTE2MOV TEMP_BYTE5,AMOV A,CONVERT_MONTHCJNE A,TEMP_BYTE1,CON_20 MOV A,CONVERT_DATECJNE A,TEMP_BYTE2,CON_20 CON_20:JC CON_22LJMP CON_60CON_22:MOV A,CONVERT_YEAR JNZ CON_24MOV A,#100CON_24:DEC AMOV CONVERT_YEAR,A MOV A,DPLCLR CSUBB A,#3MOV DPL,AJNC CON_26DEC DPHCON_26:MOV A,TEMP_BYTE5 CLR CSUBB A,TEMP_BYTE4MOV TEMP_BYTE3,AMOV CONVERT_MONTH,#12 CLR F0CLR AMOVC A,@A+DPTRANL A,#0F0HSWAP A;MOV TEMP_BYTE4,AJZ CON_30MOV A, #2MOVC A , @A+DPTRMOV C, ACC.7MOV A, #1MOVC A, @A+DPTRRLC ASJMP CON_34CON_30:MOV A, #1MOVC A, @A+DPTRCON_34:MOV TEMP_BYTE5, A CON_40:MOV A, TEMP_BYTE5 RRC AMOV TEMP_BYTE5, AJC CON_42MOV B, #29SJMP CON_44CON_42:MOV B, #30CON_44:MOV A, TEMP_BYTE3 CLR CSUBB A, BJZ CON_46JNC CON_50CPL AINC ACON_46: INC AMOV B, #10DIV ABSWAP AORL A, BMOV CONVERT_DATE, A MOV A, CONVERT_MONTH MOV B, #10DIV ABSWAP AORL A, BMOV CONVERT_MONTH, A MOV A, CONVERT_YEAR MOV B, #10DIV ABSWAP AORL A, BMOV CONVERT_YEAR, A CALL WEEKRETCON_50:MOV TEMP_BYTE3, A JB F0, CON_52DEC CONVERT_MONTHCON_52:MOV A, CONVERT_MONTH CJNE A, TEMP_BYTE4, CON_54CPL F0CON_54:SJMP CON_40CON_60:MOV A, TEMP_BYTE4CLR CSUBB A, TEMP_BYTE5MOV TEMP_BYTE4, AJNC CON_62DEC TEMP_BYTE3CON_62:MOV CONVERT_MONTH, #1 CLR AMOVC A, @A+DPTRMOV TEMP_BYTE5, AANL A, #0F0HSWAP AXCH A, TEMP_BYTE5CLR F0ANL A, #0FHMOV TEMP_BYTE1, AMOV A, #1MOVC A, @A+DPTRMOV TEMP_BYTE2, AANL A, #0F0HORL A, TEMP_BYTE1SWAP AMOV TEMP_BYTE1, AMOV A, #2MOVC A, @A+DPTRMOV C, ACC.7MOV A, TEMP_BYTE2ANL A, # 0FHSWAP AMOV ACC.3, CMOV TEMP_BYTE2, ACON_70:MOV A, TEMP_BYTE2 RLC AMOV TEMP_BYTE2, AMOV A, TEMP_BYTE1RLC AMOV TEMP_BYTE1, AJC CON_72MOV B, #29SJMP CON_74CON_72:MOV B, #30CON_74:MOV A, TEMP_BYTE4CLR CSUBB A,BJNC CON_78MOV B, AMOV A, TEMP_BYTE3JZ CON_76DEC TEMP_BYTE3MOV TEMP_BYTE4, BSJMP CON_80CON_76:MOV A, TEMP_BYTE4 LJMP CON_46CON_78:MOV TEMP_BYTE4, ACON_80:MOV A, CONVERT_MONTH CJNE A, TEMP_BYTE5, CON_82 CPL F0JNB F0, CON_82SJMP CON_70CON_82:INC CONVERT_MONTH SJMP CON_70GET_DAYS_LOW:MOVC A, @A+PCRETDB 0,31,59,90,120,151,181,212,243,17,48,78 GET_RUN_DAYS_LOW:MOVC A, @A+PCRETDB 0,31,60,91,121,152,182,213,244,18,49,79 MONTH_DATA:DB 04DH,04AH,0B8H;2001DB 00DH,04AH,04CH;2002DB 00DH,0A5H,041H;2003DB 025H,0AAH,0B6H;2004DB 005H,06AH,049H;2005DB 07AH,0ADH,0BDH;2006DB 002H,05DH,052H;2007DB 009H,02DH,047H;2008DB 05CH,095H,0BAH;2009DB 00AH,095H,04EH;2010DB 00BH,04AH,043H;2011DB 04BH,055H,037H;2012 DB 00AH,0D5H,04AH;2013 DB 095H,05AH,0BFH;2014 DB 004H,0BAH,053H;2015 DB 00AH,05BH,048H;2016 DB 065H,02BH,0BCH;2017 DB 005H,02BH,050H;2018 DB 00AH,093H,045H;2019 DB 047H,04AH,0B9H;2020 DB 006H,0AAH,04CH;2021 DB 00AH,0D5H,041H;2022 DB 024H,0DAH,0B6H;2023 DB 004H,0B6H,04AH;2024 DB 069H,057H,03DH;2025 DB 00AH,04EH,051H;2026 DB 00DH,026H,046H;2027 DB 05EH,093H,03AH;2028 DB 00DH,053H,04DH;2029 DB 005H,0AAH,043H;2030 DB 036H,0B5H,037H;2031 DB 009H,06DH,04BH;2032 DB 0B4H,0AEH,0BFH;2033DB 004H,0ADH,053H;2034 DB 00AH,04DH,048H;2035 DB 06DH,025H,0BCH;2036 DB 00DH,025H,04FH;2037 DB 00DH,052H,044H;2038 DB 05DH,0AAH,038H;2039 DB 00BH,05AH,04CH;2040 DB 005H,06DH,041H;2041 DB 024H,0ADH,0B6H;2042 DB 004H,09BH,04AH;2043 DB 07AH,04BH,0BEH;2044 DB 00AH,04BH,051H;2045 DB 00AH,0A5H,046H;2046 DB 05BH,052H,0BAH;2047 DB 006H,0D2H,04EH;2048 DB 00AH,0DAH,042H;2049 DB 035H,05BH,037H;2050 DB 009H,037H,04BH;2051 DB 084H,097H,0C1H;2052 DB 004H,097H,053H;2053 DB 006H,04BH,048H;2054 DB 066H,0A5H,03CH;2055DB 00EH,0A5H,04FH;2056 DB 006H,0B2H,044H;2057 DB 04AH,0B6H,038H;2058 DB 00AH,0AEH,04CH;2059 DB 009H,02EH,042H;2060 DB 03CH,097H,035H;2061 DB 00CH,096H,049H;2062 DB 07DH,04AH,0BDH;2063 DB 00DH,04AH,051H;2064 DB 00DH,0A5H,045H;2065 DB 055H,0AAH,0BAH;2066 DB 005H,06AH,04EH;2067 DB 00AH,06DH,043H;2068 DB 045H,02EH,0B7H;2069 DB 005H ,02DH, 04BH; 2070 DB 08AH, 095H, 0BFH; 2071 DB 00AH, 095H, 053H; 2072 DB 00BH, 04AH, 047H; 2073 DB 06BH, 055H, 03BH; 2074 DB 00AH, 0D5H, 04FH; 2075 DB 005H, 05AH, 045H; 2076 DB 04AH, 05DH, 038H; 2077DB 00AH, 05BH, 04CH; 2078 DB 005H, 02BH, 042H; 2079 DB 03AH, 093H, 0B6H; 2080 DB 006H, 093H, 049H; 2081 DB 077H, 029H, 0BDH; 2082 DB 006H, 0AAH, 051H; 2083 DB 00AH, 0D5H, 046H; 2084 DB 054H, 0DAH, 0BAH; 2085 DB 004H, 0B6H, 04EH; 2086 DB 00AH, 057H, 043H; 2087 DB 045H, 027H, 038H; 2088 DB 00DH, 026H, 04AH; 2089 DB 08EH, 093H, 03EH; 2090 DB 00DH, 052H, 052H; 2091 DB 00DH, 0AAH, 047H; 2092 DB 066H, 0B5H, 03BH; 2093 DB 005H, 06DH, 04FH; 2094 DB 004H, 0AEH, 045H; 2095 DB 04AH, 04EH, 0B9H; 2096 DB 00AH, 04DH, 04CH; 2097 DB 00DH, 015H, 041H; 2098 DB 02DH, 092H, 0B5H; 2090DB 00DH, 053H, 049H; 2100 TIME_WEEK1 DATA 52H WEEK:MOV A, TIME_YEARMOV B, #16DIV ABMOV TEMP_BYTE1, BMOV B, #10MUL ABADD A, TEMP_BYTE1MOV TEMP_BYTE1, AMOV A, TIME_MONTHJB ACC.7, GETW02MOV A, #100ADD A, TEMP_BYTE1MOV TEMP_BYTE1, AMOV A, TIME_MONTHCLR ACC.7GETW02: JNB ACC.4, GETW04 ADD A , #10CLR ACC.4GETW04: MOV TEMP_BYTE2,AMOV A, TIME_DATAMOV B, #16DIV ABMOV TEMP_BYTE3, BMOV B, #10MUL ABADD A, TEMP_BYTE3MOV TEMP_BYTE3, AMOV A ,TEMP_BYTE1ANL A, #03HJNZ GETW10MOV A, TEMP_BYTE2CJNE A, #3,GETW06GETW06: JNC GETW10DEC TEMP_BYTE3GETW10: MOV A,TEMP_BYTE2 LCALL GET_CORRECTADD A, TEMP_BYTE1MOV B, #7DIV ABMOV A, TEMP_BYTE1ANL A, #0FCHRR ARR AADD A, BADD A, TEMP_BYTE3 MOV B, #7DIV ABMOV A, BCJNE A, #0,OUTOUT MOV B, #8 OUTOUT:MOV TIME_WEEK, B RETGET_CORRECT: MOVC A, @A+PC RETDB 0,3,3,6,1,4,6,2,5,0,3,5 END5 系统仿真及调试6 仿真结果及分析上图为运行时的显示, 左边两个数码管显示器显示的是年、月、日, 中间的显示的是时、分、秒, 右边显示的是农历日期以及星期。
毕业设计开题报告1.结合毕业设计课题情况,根据所查阅的文献资料,撰写2000字左右的文献综述:文献综述一、本课题研究背景单片机从20世纪70年代末出现后,以其卓越的性能,得到了广泛的应用,已经深入到各个领域。
单片机芯片本身是按工业测控环境要求设计的,分为民用、工业品、军品,其中工业品和军品具有较强的适合恶劣环境的能力[1]。
由于单片机本身就是一个计算机系统,因此,只要在单片机的外围适当加一些必要的扩展电路及通道接口,就可有构成各种应用系统,如控制系统、数据采集系统、自动控制系统、自动测试系统、检测监视系统、智能仪表、功能模块等[2]。
单片机的应用领域十分广泛,自20世纪80年代以来,单片机的应用已经深入到工业、农业、国防、科研、机关、教育、商业以及家电、生活、娱乐、玩具等各个领域中。
单片机应该在检测、控制领域中,具有以下特点:1)小巧灵活、成本化、易于产品化。
2)可靠性好,适用范围广[3]。
近年来,电子钟已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来了极大的方便。
随着技术的发展,人们已不再满足于钟表原先简单的计时功能,希望出现一些新的功能,诸如日历的显示、闹钟的应用等,以带来更大的方便,而所有这些,又都是以数字化的电子时钟为基础的。
因此,研究实用电子时钟及其扩展应用,有着非常现实的意义,具有很大的实用价值[4]。
由于数字集成电路技术的发展和采用了先进的石英技术,现代电子钟具有走时准确、性能稳定、制作维修简单等优点,弥补了传统钟表的许多不足之处[5]。
我们利用单片机技术设计制作的电子万年历, 可以很方便的由软件编程进行功能的调整和改进,使其在能够准确显示年、月、日、时间、星期的同时,还能具有很多其他的功能[6]。
如设定闹钟、语音报时、阴阳历的转换、二十四节气的显示等,有一定的新颖性和实用性,同时体积小、携带方便,使用也更为方便,具有技术更新周期短、成本低、开放灵活等优点,具备一定的市场前景。
知识不仅是指课本的内容,还包括社会经验、文明文化、时代精神等整体要素,才有竞争力,知识是新时代的资本,五六十年代人靠勤劳可以成事;今天的香港要抢知识,要以知识取胜毕业设计(论文)开题报告题目基于单片机控制的电子万年历的设计学生姓名叶庆学号 088202140系别信息工程系专业自动化届别 2012 届指导教师李军华填表日期 2012年5月20日一、综述国内外对本课题的研究动态说明选题的依据和意义单片机又称单片微控制器它不是完成某一个逻辑功能的芯片而是把一个计算机系统集成到一个芯片上概括的讲:一块芯片就成了一台计算机它的体积小、质量轻、价格便宜为学习、应用和开发提供了便利条件单片机是靠程序运行的并且可以修改通过不同的程序实现不同的功能尤其是特殊的独特的一些功能这是别的器件需要费很大力气才能做到的有些则是花大力气也很难做到的通过对一个基于单片机的能实现万年历的设计从而达到学习、了解单片机相关指令在各方面的应用基于单片机来设计电子万年历具有一定的实用性同时体积小、携带方便具有成本低、计时准确、性能稳定、维护方便等有点具备一定的市场前景二、研究的基本内容拟解决的主要问题本课题立足于一个具体的制作实例即以单片机为控制核心的电子万年历的设计与制作具体做法是以单片机及其最小系统为核心AT89C51作为主控制系统集时钟芯片DS130212864液晶显示按键电路复位电路等为一体通过对单片机进行C语言编程设计一个电子万年历主要解决设计中液晶显示时间的准确性程序的编写及调试过程中所出现的错误以及对硬件电路设计原理的不了解等问题三、研究的步骤、方法、措施及进度安排步骤一:查阅相关资料认真学习资料中的内容做好笔记分类提出问题并解决问题步骤二:拟定思路先提出基于单片机万年历的工作原理然后分析各个组成部分的工作原理及要注意的问题再进行编程最后进行总结步骤三:反复阅读全文对不够准确及错误之处查找原因并进行修改然后完成论文进度安排:1、查阅文献翻译英文资料书写开题报告; 第1---4周2、相关资料的获取和必要知识的学习;第5---9周3、设计系统的硬件和软件模块并调试第10--14周4、撰写论文;第15-17周5、总结准备答辩;四、主要参考文献[1] 王质朴吕运鹏.MCS-51单片机原理接口与应用北京理工大学出版社2009.[2] 谭浩强.C程序设计(第三版).北京清华大学出版社2007.[3] 鲁广英.基于单片机电子万年历的设计与实现[J].硅谷2010(12):5777.[4] 应锟.《中国科技博览》2011年第15期.[5] 周民标.《电子世界》2002年第6期.[6] 沈红卫.基于单片机的智能系统设计与实现[M].北京:电子工业出版社2004.[7] 李培金.C语言程序设计案列教程.西安:西安电子科技大学出版社2008.1.[8] 向继文等.基于AT89C51的电子钟系统设计机电产片开发与创新2007年第二期.[9] 康光华.电子技术基础(模拟部分).北京:高等教育出版社2004.[10] 康光华.电子技术基础(数字部分).北京:高等教育出版社2004.????????。
基于单片机的万年历设计报告一、研究意义随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活当中。
日历是人们不可或缺的日常用品。
但一般日历都为纸制用品,使用不便,寿命不长。
电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺陷。
本设计以AT89S52单片机为核心,构成单片机控制电路,AT89C52是一种带8K字节闪速可编程可擦除只读存储器(PEROM)的低电压、高性能CMOS 8位为控制器。
该器件采用ATMEL 非易失存储器制造技术制造,与工业标准的80C51和80C52指令集和输出管脚相兼容。
结合DS1302时钟芯片和24C02 FLASH存储器,完成时间的自动调整和掉电保护,全部信息用液晶显示。
时间、日期调整由三个按键来实现,并可对闹铃开关进行设置。
日历能显示阳历和阴历年、月、日以及星期、时、分、秒。
在显示阴历月份时,能标明是否闰月。
二、总体方案设计本设计以AT89S52单片机为核心,构成单片机控制电路,结合DS1302时钟芯片和24C02 FLASH存储器,显示阳历的年、月、日、星期、时、分、秒和阴历的年、月、日,在显示阴历时间时,能标明是否闰月,同时完成对它们的自动调整和掉电保护,全部信息用液晶显示出来。
输入接口由三个按键来实现,用这三个按键可以对日期和时间进行调整,并可以对闹铃的开关和闹铃的时间进行设置。
闹铃功能通过蜂鸣器来实现。
软件控制程序实现所有的功能。
整机电路使用+5V稳压电源,可稳定工作。
系统框图如图2-1所示,其软硬件设计简单,时间记录准确,可广泛应用于长时间连续显示的系统中。
三、系统硬件设计按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、存储模块、键盘接口模块、显示模块和闹铃模块共6个模块组成,电路系统构成框图如图3-1所示。
主控芯片使用52系列AT89S52单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片DS1302,存储模块采用美国ATMEL公司生产的低功耗CMOS串行EEPROM存储芯片AT24C02。
基于52单片机电子万年历设计目录一、摘要 (2)二、设计任务 (3)1、设计任务 (3)2、设计要求 (3)三、总体方案设计与论证 (3)1、液晶显示模块 (3)2、实时时间计算模块 (3)3、实时环境温度采集模块 (4)4、报警模块 (4)5、设置模块 (4)四、总体方案组成框图 (5)五、系统硬件设计 (6)1、LCD显示模块 (6)2、实时时间计算模块 (10)3、实时环境温度检测模块 (13)4、报警模块 (18)5、设置模块 (19)六、系统软件设计 (19)七、系统硬件电路设计 (21)八、系统硬件PROTEUS仿真原理图 (22)九、系统硬件仿真运行结果图 (22)1、显示欢迎界面 (22)2、显示实时时间 (23)3、显示当前温度 (23)4、时间设置 (24)5、最高报警温度设置 (24)6、闹钟时间设置 (25)7、超温 (25)8、闹钟时间到 (26)十、心得体会及总结 (27)附录一:实物图 (35)附录二:源程序代码 (65)附录三:参考文献 (66)学校:西安科技大学班级:自动化0703姓名:第 1 页共66 页基于52单片机电子万年历设计基于52单片机电子万年历设计1.摘要单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片。
单片机接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统。
将它嵌入到形形色色的应用系统中,就构成了众多产品、设备的智能化核心。
本设计就是应用单片机强大的控制功能制作而成的电子万年历,该电子万年历包括三大功能:实时显示年、月、日、时、分、秒;实时监测环境温度(可根据需要启动高温报警功能);电子闹钟。
本设计采用的是AT89S52单片机,该单片机采用的MCU51内核,因此具有很好的兼容性,内部带有8KB的ROM,能够存储大量的程序,最突出特点是具有ISP在系统烧写功能,使得烧写程序更加方便。
计时芯片采用DALLAS公司的充电时钟芯片DS1302,该芯片通过简单的串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时分、秒信息,采用双电源供电,当外部电源掉电时能够利用后备电池准确计时。
毕业设计开题报告测控技术与仪器基于单片机的万年历时钟设计1选题的背景、意义在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。
为了更好的利用我们自己的时间,需要一款灵活、稳定而又功能强大的自动定时控制系统,以规范本单位的作息时间或定时控制一些设备。
目前,市面上出现的一些时控设备或功能单一,或使用烦琐,或价格昂贵,总有一些不尽如人意的地方[1]。
我们必须对时间有一个度量,因此产生了钟表。
钟表的发展是非常迅速的,17 世纪中叶, 由荷兰人C. Huygens来发明的第一个钟摆与以前任何计时装置相比, 摆钟的精确度提高了上百倍,而他随后发明的螺旋平衡弹簧,又进一步提高精度、减小体积, 导致了怀表的出现。
然而再好的摆钟,其精度也只能达到每年误差不超过一秒[2]。
1939年出现了利用石英晶体振动计时的石英钟, 每天误差只有千分之二秒, 到二次大战后精度提高到30 年才差一秒。
很快, 测年的技术又推进到原子层面, 1948 年出现第一台原子钟, 1955年又发明了铯原子钟, 利用Cs133原子的共振频率计时,现在精度已经高达每天只差十亿分之一秒[2]。
从刚开始的机械式钟表到现在普遍用到的数字式钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能——计时功能,只是工作原理不同而已,在人们的使用过程中,逐渐发现了钟表的功能太单一,无法更大程度上的满足人们的需求。
发展到现在人们广泛使用的万年历。
万年历在家庭居室、学校、车站和广场使用越来越广泛,给人们的生活、学习、工作带来极大的方便[3]。
电子万年历具有信息量大、直观清晰、经济实用等优点,正成为家庭、商场、公共场所等新的消费热点,具有重要的开发价值[4]。
随着科技的不断发展,家用电子产品不但种类日益丰富,而且变得更加经济实用,,功能也越来越齐全,除了公历年月、日、时分秒、星期显示及闹铃外,又增加了农历、温度、24节气及l2生肖等显示。
单片机万年历的开题报告项目背景随着科技的发展,人们对于时间的需求也越来越高。
万年历作为一种记录和计算日期的工具,广泛应用于日常生活中。
然而,传统的万年历存在占用空间大、信息呈现不直观等问题。
因此,我们决定开发一个基于单片机的万年历,通过合理设计和优化,实现功能强大、体积小巧的万年历产品。
项目目标本项目旨在开发一个基于单片机的万年历,具备以下功能: - 显示当前日期和时间 - 支持日历翻页和月份切换 - 自动更新闰年和闰月信息 - 支持农历转换和节气查询 - 可调节亮度和语言设置技术方案本项目将使用以下技术方案实现目标: 1. 硬件部分:选择一款适合的单片机作为主控芯片,其具备足够的存储和处理能力。
通过连接显示器、按键、RTC芯片等外部设备,实现日期显示、用户交互和时间计算等功能。
2. 软件部分:采用C语言编程,使用相应单片机的开发工具进行代码编写和调试。
结合相关库函数和算法,实现闰年、闰月、农历转换等功能。
同时,根据用户需求,可提供语言选择接口,实现多国语言支持。
开发计划项目的开发将按照以下计划进行: 1. 需求分析:明确项目的功能需求和技术要求,细化项目规划。
预计完成时间:1周。
2. 硬件搭建:选择合适的单片机,设计电路连接方案并制作原型。
预计完成时间:2周。
3. 软件编码:根据需求和技术方案,编写相应的C语言代码。
预计完成时间:2周。
4. 测试与优化:对硬件和软件进行全面测试,发现问题并进行优化。
预计完成时间:1周。
5. 文档编写:整理项目开发过程和技术文档,撰写项目报告。
预计完成时间:1周。
预期效果本项目的预期效果是开发出一款功能强大、体积小巧、可靠稳定的单片机万年历产品。
通过科学合理的设计和优化,保证其在日常生活中的实用性和便捷性。
同时,通过完善的文档和售后服务,提供用户满意的体验,树立品牌形象。
风险及解决方案1.技术风险:可能遇到单片机性能不足、算法复杂度过高等问题。
解决方案是选择性能强大的单片机,优化算法并进行适当的分析和优化。
基于单片机的电子万年历开题报告基于单片机的电子万年历开题报告一、项目背景和目的电子万年历作为一种常见的电子设备,具有显示时间、日期、星期、农历等功能。
传统的万年历通常采用机械结构,但随着科技的发展,基于单片机的电子万年历逐渐成为主流。
本项目旨在设计并制作一款基于单片机的电子万年历,以满足人们对时间和日期信息的需求。
二、项目内容和技术路线1. 硬件设计本项目将采用单片机作为控制核心,并配备液晶显示屏、按键、时钟模块等硬件设备。
单片机将负责接收来自时钟模块的时间和日期信息,并将其显示在液晶屏上。
按键将用于用户设置功能,例如调整时间、日期、闹钟等。
2. 软件设计在软件设计方面,我们将使用C语言进行编程。
首先,需要编写程序来读取和处理来自时钟模块的时间和日期数据。
其次,还需要设计用户界面,使用户可以通过按键进行设置和操作。
最后,还需要编写算法来计算农历和星期等信息,并在液晶屏上进行显示。
3. 技术路线在项目的实施过程中,我们将按照以下技术路线进行操作:(1)硬件设计:选择适合的单片机型号,并进行电路设计和元件选择。
(2)软件编程:使用C语言编写程序,实现时间和日期的读取、显示和设置功能。
(3)用户界面设计:设计简洁明了的用户界面,使用户可以方便地进行设置和操作。
(4)农历计算算法:研究并编写农历计算算法,实现农历信息的准确显示。
三、项目预期成果和应用前景1. 预期成果通过本项目的实施,我们预期能够成功设计并制作一款功能完善、操作简便的基于单片机的电子万年历。
该万年历将能够准确显示时间、日期、星期、农历等信息,并具备用户设置功能。
2. 应用前景基于单片机的电子万年历具有广泛的应用前景。
它可以作为一种实用的家用电子设备,方便人们获取时间和日期信息。
同时,它还可以作为一种时尚的礼品,用于商务赠送或个人收藏。
此外,该万年历还可以应用于学校、办公室等场所,作为一种时间管理工具。
四、项目进度和计划1. 项目进度目前,我们已完成项目的立项和需求分析,并开始进行硬件设计和软件编程。
基于89c52多功能万年历设计报告班级:电子信息工程2班学院:电子信息工程学号:**********姓名:***一、设计任务:设计一个具有多功能的电子万年历。
二、基本要求:1、能够显示阳历年、月、日、星期、小时、分、显示模块采用LCD液晶显示,要求能用按键调整时间。
2、能显示阴历月、日3、具有定时报警功能,能够进行整点语音报时。
4、具有闹钟设定的功能。
发挥部分:1、掉电存储功能,可存储掉电前用户定时设置。
2、具有日程管理,可以设定指定日期的日程,可以设置日成的提醒时间,并可用语音进行提示。
三、方案设计与论证方案一:按照系统设计的功能的要求,初步确定系统由主控模块、时钟模块、显示模块、语音模块各键盘接口模块共5个模块组成,电路系统构成框图如图1所示。
主控芯片使用52系列AT89C52单片机,时钟芯片使用美国DALLAS公司推出的一款高性能、低功耗、带RAM的实时时钟DS1302。
采用DS1302作为计时芯片,可以做到计时准确。
更重要的是,DS1302可以在很小电流的后备电源(2.5V--5.5V 电源,在2。
5V时耗电小于300nA)下继续计时,而且DS1302可以编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本功不耗电。
显图1 电子万年历电路系统构成框图方案二:按照系统设计的要求和功能,将系统分为主控模块、时钟电路模块、按键扫描模块,LCD显示模块,语音模块,电源电路、复位电路、晶振电路几个模块,系统框图如图2所示。
主控模块采用AT89C52单片机,按键模块用四个按键,用于调整时间和设定闹钟,显示模块采用LCD12864,时钟电路模块采用DS1302实时时钟实现对时间,日期的操作。
图2 基于AT89C52单片机的电子万年历系统框图方案三:按照系统设计的要求和功能,将系统分为主控制器模块、显示模块、按键开关模块、蜂鸣器电路模块。
系统框图如图3所示,主控制模块采用AT89C52单片机为控制中心,显示模块采用液晶LCD12864显示,计时使用AT89C52单片机自带的定时器功能,实现对时间、日期的操作,通过按键盘开关实现对时间、日期的调整。
基于单片机的电子万年历开题报告研究背景电子万年历作为一种常见的电子产品,广泛应用于日常生活和办公场所。
它集成了日历、钟表、温度显示等功能,可以提供精确的时间和日期信息,方便人们日常生活和工作的安排。
然而,传统的电子万年历存在体积庞大、显示效果较差、操作复杂等问题,无法满足现代人们对个性化、高效率的需求。
为了改进传统电子万年历的不足,本项目将利用单片机技术设计和制作一款基于单片机的电子万年历。
通过硬件电路和软件程序的结合,实现更小巧、美观、功能强大的电子万年历。
本开题报告旨在介绍研究的背景、目标和意义,并简要概述设计思路和研究计划。
研究目标本项目的目标是设计一款基于单片机的电子万年历,具备以下特点和功能:1.小巧精致:设计紧凑的物理尺寸,外观美观,携带方便。
2.高清显示:采用液晶显示屏,提供清晰的时间和日期信息显示效果。
3.多种功能:除了传统日历和钟表功能外,还包括温度显示、闹钟、倒计时等实用功能。
4.简单操作:提供简便易用的操作界面,方便用户设置和调整各项功能。
5.节能设计:利用低功耗单片机和合理的电源管理设计,达到节能的目的。
研究意义设计并制作一款基于单片机的电子万年历具有以下重要意义:1.满足个性需求:现代人对电子产品的需求日益增强,通过设计一款高度个性化的电子万年历,满足用户对个性化、多样化功能的需求。
2.提高工作效率:电子万年历作为生活和办公的工具之一,通过提供精确的时间和日期信息,有助于人们提高工作和生活的效率。
3.推动单片机应用:本项目利用单片机技术设计和制作电子万年历,有助于推动单片机在电子产品领域的应用,提高单片机技术水平和应用能力。
设计思路本项目的设计思路主要包括硬件设计和软件设计两个方面。
硬件设计硬件设计部分包括电路设计和外壳设计。
1.电路设计:选择适当的单片机作为主控芯片,设计电源管理电路、时钟电路、显示电路等。
2.外壳设计:根据电子万年历的尺寸要求,设计合适的外壳结构,考虑外观美观、携带方便等因素。
单片机万年历的开题报告单片机万年历的开题报告一、项目背景随着科技的不断发展,电子产品在我们生活中扮演着越来越重要的角色。
而单片机作为一种微型计算机,具有体积小、功耗低、成本低等优势,被广泛应用于各个领域。
在这个信息化的时代,人们对于时间的敏感度越来越高,因此开发一款方便实用的单片机万年历成为了一个有意义的项目。
二、项目目标本项目旨在设计并制作一款基于单片机的万年历,实现日期、时间的显示和计算功能。
具体目标包括:1. 显示当前年份、月份、日期、星期和时间;2. 支持闰年的计算;3. 支持节假日的提醒功能;4. 提供简洁明了的用户界面,方便用户操作。
三、项目方案1. 硬件设计本项目的硬件设计主要包括单片机、显示屏、按键和电源等部分。
其中,单片机作为核心控制器,负责接收用户输入、计算日期和时间,并控制显示屏的显示。
显示屏采用液晶显示屏,可以清晰地显示日期、时间和星期等信息。
按键用于用户输入,通过按键可以切换不同的功能和设置日期、时间等参数。
电源部分则提供稳定的电源供给。
2. 软件设计本项目的软件设计主要包括单片机程序的编写。
通过编写程序,实现日期和时间的计算、显示和设置功能。
具体包括以下几个方面:- 实时时钟:通过单片机内部的计时器和外部晶振实现对时间的计算和显示。
- 日期计算:根据用户输入和系统时间,计算当前日期的合法性、星期和节假日等信息。
- 显示控制:根据计算得到的日期和时间信息,通过控制显示屏的驱动,实现信息的显示。
- 用户交互:通过按键控制,实现用户对日期、时间的设置和功能的切换。
四、项目进度安排本项目的开发计划如下:1. 项目立项和需求分析:完成时间为X月X日;2. 硬件设计和采购:完成时间为X月X日;3. 软件编写和调试:完成时间为X月X日;4. 整体调试和性能优化:完成时间为X月X日;5. 项目验收和总结报告:完成时间为X月X日。
五、项目预期成果1. 设计并制作一款功能完善、稳定可靠的单片机万年历;2. 实现日期、时间的显示和计算功能;3. 提供用户友好的操作界面,方便用户设置日期、时间和功能;4. 通过项目的实施,提高团队成员的硬件设计和软件开发能力。
单片机万年历开题报告单片机万年历开题报告一、引言单片机万年历是一种集计时、计算、存储和显示等功能于一体的电子设备,广泛应用于各个领域,如办公、家居、学校等。
本文将介绍单片机万年历的开题报告,包括项目背景、研究目的、研究内容和研究方法等。
二、项目背景随着科技的不断发展,人们对于时间的精确度和便捷性的要求越来越高。
传统的日历只能显示当前年月日,而无法提供更多的功能。
因此,设计一款功能强大的单片机万年历成为了迫切的需求。
三、研究目的本项目的研究目的是设计一款具有多种功能的单片机万年历,包括日期显示、闹钟、倒计时、温度显示等。
通过该设备,用户可以方便地获取当前时间和日期,并能够进行一些基本的时间管理。
四、研究内容本项目的研究内容主要包括以下几个方面:1. 单片机选择:选择适合该项目的单片机芯片,考虑其性能、成本、功耗等因素。
2. 时钟模块设计:设计一个精确的时钟模块,能够提供准确的时间和日期信息。
3. 显示模块设计:选择合适的显示屏,设计相应的驱动电路,实现日期、时间和其他功能的显示。
4. 功能模块设计:设计闹钟、倒计时等功能模块,并与时钟模块进行集成,实现多种功能的切换和操作。
5. 外部接口设计:考虑用户的使用习惯和便捷性,设计合理的外部接口,如按键、USB接口等。
五、研究方法本项目的研究方法主要包括以下几个步骤:1. 需求分析:对用户需求进行详细分析,确定项目的功能和性能要求。
2. 技术调研:调研相关的单片机技术和电子元器件,了解市场上的产品和技术发展趋势。
3. 硬件设计:根据需求和技术调研结果,进行硬件设计,包括电路原理图设计、PCB布局设计等。
4. 软件开发:根据硬件设计的要求,进行相应的软件开发,包括单片机程序编写、驱动程序开发等。
5. 测试和优化:对设计的单片机万年历进行测试,发现问题并进行相应的优化和改进。
六、预期成果通过本项目的研究和开发,预期将会设计出一款功能强大、操作简便的单片机万年历。