基于AT89C51的数字万年历设计
基于51单片机的万年历设计说明
中文摘要本设计万年历以AT89C51为控制中心,与温度传感器DS18B20,时钟芯片DS1302综合应用为一体,不仅能够准确显示时间、日期,闹钟设置,环境温度测量及温度高低温报警等功能。
单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。
单片机与数字万年历相结合,用于时间显示,温度测试等不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被检测数值的技术指标,从而能够大大提高产品的质量和数量。
关键词:单片机,温度传感器,C语言,液晶显示ABSTRACTThis design USES AT89C51 as calendar control center, and the temperature sensor DS18B20, the clock DS1302 chip integrated application as a whole, and not only be able to accurately display the time, date, alarm, the environment temperature measurement and high temperature, low temperature alarm functions.SCM is a collection of CPU, RAM, ROM, I/O interface and interrupt system is one of the devices, only require additional power can be used for vibration and grain is the process of digital information and control. Single-chip microcomputer and digital calendar, combining for time to show, temperature testing has not only control convenient, simple and flexible configuration advantages, and which could increase the technical index of the tested value, which can greatly improve the quality of the products and quantity.Key words:Single-chip microcomputer, Temperature Sensor, C language,Liquid crystal displ目录第一章前言 (5)1.1 系统开发背景及现状 (5)1.2 系统开发的目的 (5)第二章总体设计 (6)2.1 本设计实现的功能和要求 (6)2.2 设计的选择方案和论证 (6)2.2.1 单片机芯片的选择方案和论证 (6)2.2.2 显示模块选择方案和论证 (6)2.2.3 时钟芯片的选择方案和论证 (7)2.3.4 温度传感器的选择方案与论证 (7)2.3总体设计框图 (7)第三章硬件设计 (8)3.1 主要元器件介绍 (8)3.1.1 单片机简介 (8)3.1.2 传感器DS18B20介绍 (9)3.1.3 LCD1602液晶显示介绍 (10)3.2 各模块设计 (11)3.2.1 主控制电路 (11)3.2.2 LCD1602显示模块设计 (12)3.2.3 DS18B20温度传感器模块 (12)3.2.4 键盘输入模块设计 (13)3.2.5 蜂鸣器模块设计 (13)3.2.6 DS1302时钟电路模块 (14)第四章软件设计 (15)第五章安装与调试 (17)5.1 安装制作 (17)5.2 硬件调试 (17)5.2.1 布线的原则与焊接 (17)5.2.2 硬件调试与测试 (18)5.3 软件调试 (18)5.3.1 软件测试仪器 (18)5.3.2 软件调试与测试 (18)5.4 联调 (19)5.5测试结果分析与结论 (20)第六章总结 (21)参考文献 (22)附录A (23)附录B (25)致 (27)第一章前言1.1系统开发背景及现状当今世界,知识更新的速度越来越快。
基于单片机的万年历设计
嵌入式系统概述题目:基于单片机的万年历设计班级:自动化1304班一、系统功能概述此设计以AT89C51为控制芯片,用RTC定时器实现万年历的控制与设计。
所进行控制的语句是通过C语言实现的,并且用串口助手显示能动态地显示当前时间信息,包括年、月、日、时、分、秒。
二、硬件设计原理图:1.万年历电路图设计如下:三、软件设计:1.设计思路:本设计主要由3大部分电路组成:单片机最小系统电路、时钟显示电路和参数修改电路。
其中单片机最小系统主要由复位电路和时钟电路组成。
设计中,当接收到修改参数的指令,将停止时钟的继续,转而进行指令程序,在指令结束后转回断点处继续进行计时。
2.流程图:四、基于单片机万年历的源代码:#include <reg52.h>#include <intrins.h>#include <string.h>#define uint unsigned int#define uchar unsigned charsbit IO = P1^0;sbit SCLK = P1^1;sbit RST = P1^2;sbit RS = P2^0;sbit RW = P2^1;sbit EN = P2^2;sbit KEY1=P3^4;sbit KEY2=P3^5;sbit KEY3=P3^6;uchar*WEEK[]={"SUN","***","MON","TUS","WEN"," THU","FRI","SAT"};uchar LCD_DSY_BUFFER1[]={"DATE 00-00-00 "};uchar LCD_DSY_BUFFER2[]={"TIME 00:00:00 "};uchar DateTime[7]; //秒,分,时,日,月,周,年ucharflag,flag_1,i,miao,fen,shi,ri,yue,zhou,nian; void DelayMS(uint ms){uchar i;while(ms--){for(i=0;i<120;i++);}}/*********************************************** ******/ //函数名称:Write_A_Byte_TO_DS1302(uchar x)//函数功能: 向1302写入一个字节//入口参数: x//出口参数: 无//调用子程序: 无/*********************************************** ******/void Write_A_Byte_TO_DS1302(uchar x){uchar i;for(i=0;i<8;i++){IO=x&0x01;SCLK=1;SCLK=0;x>>=1;}}void Write_DS1302(uchar add,uchar num) {SCLK=0;RST=0;RST=1;Write_A_Byte_TO_DS1302(add);Write_A_Byte_TO_DS1302(num);RST=0;SCLK=1;}/*********************************************** ******///函数名称:Get_A_Byte_FROM_DS1302()//函数功能: 从1302读一个字节//入口参数: 无//出口参数: b/16*10+b%16 //调用子程序: 无/*********************************************** ******/uchar Get_A_Byte_FROM_DS1302(){uchar i,b=0x00;for(i=0;i<8;i++){b |= _crol_((uchar)IO,i);SCLK=1;SCLK=0;}return b/16*10+b%16;}/*********************************************** ******///函数名称: Read_Data(uchar addr)//函数功能: 指定位置读数据//入口参数: addr//出口参数: dat//调用子程序: Write_Abyte_1302(addr) /*********************************************** ******/uchar Read_Data(uchar addr){uchar dat;RST = 0;SCLK=0;RST=1;Write_A_Byte_TO_DS1302(addr);dat = Get_A_Byte_FROM_DS1302();SCLK=1;RST=0;return dat;}/*********************************************** ******///函数名称: GetTime()//函数功能: 读取时间//入口参数: 无//出口参数: 无//调用子程序: 无/*********************************************** ******/void GetTime(){uchar i,addr = 0x81;for(i=0;i<7;i++){DateTime[i]=Read_Data(addr);addr+=2; }}uchar Read_LCD_State(){uchar state;RS=0;RW=1;EN=1;DelayMS(1);state=P0;EN = 0;DelayMS(1);return state;}void LCD_Busy_Wait(){while((Read_LCD_State()&0x80)==0x80); DelayMS(5);}void Write_LCD_Data(uchar dat) //写数据到1602{LCD_Busy_Wait();RS=1;RW=0;EN=0;P0=dat;EN=1;DelayMS(1); EN=0;}void Write_LCD_Command(uchar cmd) //写命令{LCD_Busy_Wait();RS=0;RW=0;EN=0;P0=cmd;EN=1;DelayMS(1); EN=0;}void Init_LCD() //1602 初始化{Write_LCD_Command(0x38);DelayMS(1);Write_LCD_Command(0x01);DelayMS(1);Write_LCD_Command(0x06);DelayMS(1);Write_LCD_Command(0x0c);DelayMS(1);}void Set_LCD_POS(uchar p){Write_LCD_Command(p|0x80);}void Display_LCD_String(uchar p,uchar *s) //1602显示{uchar i;Set_LCD_POS(p);for(i=0;i<16;i++){Write_LCD_Data(s[i]);DelayMS(1);}}void write_com(uchar com){RS=0;P0=com;DelayMS(5);EN=1;DelayMS(5);EN=0;}void write_date(uchar date){RS=1;P0=date;DelayMS(5);EN=1;DelayMS(5);EN=0;}void display(uchar add,uchar date){uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);}void display1(uchar add,uchar date) {uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_date(0x30+shi);write_date(0x30+ge);}void Format_DateTime(uchar d,uchar *a) {a[0]=d/10+'0';a[1]=d%10+'0';}uchar ZH(uchar dat){uchar tmp;tmp=dat/10;dat=dat%10;dat=dat+tmp*16;return dat;}void Keyscan(){flag_1=1;while(flag_1){if(KEY1==0){DelayMS(5);while(!KEY1);flag=(flag+1)%8;switch(flag){case(1): Write_LCD_Command(0x0f);Write_LCD_Command(0x80+0x40+11);break;case(2):Write_LCD_Command(0x80+0x40+8);break;case(3):Write_LCD_Command(0x80+0x40+5);break;case(4):Write_LCD_Command(0x80+13);break;case(5):Write_LCD_Command(0x80+11);break;case(6):Write_LCD_Command(0x80+8);break;case(7):Write_LCD_Command(0x80+5);break;case(0): flag_1=0;Write_LCD_Command(0x0c);//miaoWrite_DS1302(0x8e,0x00);Write_DS1302(0x80,ZH(DateTime[0]));Write_DS1302(0x8e,0x80);//fenWrite_DS1302(0x8e,0x00);Write_DS1302(0x82,ZH(DateTime[1]));Write_DS1302(0x8e,0x80);//shiWrite_DS1302(0x8e,0x00);Write_DS1302(0x84,ZH(DateTime[2]));Write_DS1302(0x8e,0x80);//riWrite_DS1302(0x8e,0x00);Write_DS1302(0x86,ZH(DateTime[3]));Write_DS1302(0x8e,0x80);// yueWrite_DS1302(0x8e,0x00);Write_DS1302(0x88,ZH(DateTime[4]));Write_DS1302(0x8e,0x80);//nianWrite_DS1302(0x8e,0x00);Write_DS1302(0x8c,ZH(DateTime[6]));Write_DS1302(0x8e,0x80);break;}}if(flag!=0){if(KEY2==0){DelayMS(5);if(KEY2==0)while(!KEY2);if(flag==1) //miao{DateTime[0]++;if(DateTime[0]==60)DateTime[0]=0;write_com(0x80+0x40+11);display(11,DateTime[0]);}if(flag==2) //fen{DateTime[1]++;if(DateTime[1]==60)DateTime[1]=0;write_com(0x80+0x40+8);display(8,DateTime[1]);}if(flag==3) //shi{DateTime[2]++;if(DateTime[2]==24)DateTime[2]=0;write_com(0x80+0x40+5);display(5,DateTime[2]);}/* if(flag==4) //zhou {DateTime[0]++;if(DateTime[0]==60)DateTime[0]=0;write_com(0x80+0x40+11);display(11,DateTime[0]);} */if(flag==5) // ri{DateTime[3]++;if(DateTime[3]==30)DateTime[3]=0;write_com(0x80+11);display1(11,DateTime[3]); }if(flag==6) //yue{DateTime[4]++;if(DateTime[4]==13)DateTime[4]=0;write_com(0x80+8);display1(8,DateTime[4]);}if(flag==7) //nian{DateTime[6]++;if(DateTime[6]==100)DateTime[6]=0;write_com(0x80+5);display1(5,DateTime[6]);}}}if(flag!=0){if(KEY3==0){DelayMS(5);if(KEY3==0)while(!KEY3);if(flag==1) //miao{DateTime[0]--;if(DateTime[0]==-1)DateTime[0]=0;write_com(0x80+0x40+11);display(11,DateTime[0]);}if(flag==2) //fen{DateTime[1]--;if(DateTime[1]==-1)DateTime[1]=0;write_com(0x80+0x40+8);display(8,DateTime[1]);}if(flag==3) //shi{DateTime[2]--;if(DateTime[2]==-1)DateTime[2]=0;write_com(0x80+0x40+5);display(5,DateTime[2]);}/* if(flag==4) //zhou {DateTime[0]++;if(DateTime[0]==60)DateTime[0]=0;write_com(0x80+0x40+11);display(11,DateTime[0]);} */if(flag==5) // ri{DateTime[3]--;if(DateTime[3]==-1)DateTime[3]=0;write_com(0x80+11);display1(11,DateTime[3]); }if(flag==6) //yue{DateTime[4]--;if(DateTime[4]==-1)DateTime[4]=0;write_com(0x80+8);display1(8,DateTime[4]);}if(flag==7) //nian{DateTime[6]--;if(DateTime[6]==-1)DateTime[6]=0;write_com(0x80+5);display1(5,DateTime[6]);}}}}}void main() {Init_LCD(); while(1) {EA=1;EX0=1;GetTime();Format_DateTime(DateTime[6],LCD_DSY_BUF FER1+5); //年Format_DateTime(DateTime[4],LCD_DSY_BUF FER1+8); //月Format_DateTime(DateTime[3],LCD_DSY_BUF FER1+11); //日strcpy(LCD_DSY_BUFFER1+13,WEEK[DateTim e[5]]); //周Format_DateTime(DateTime[2],LCD_DSY_BUF FER2+5); //时Format_DateTime(DateTime[1],LCD_DSY_BUF FER2+8); //分Format_DateTime(DateTime[0],LCD_DSY_BUF FER2+11); //秒Display_LCD_String(0x00,LCD_DSY_BUFFER1);Display_LCD_String(0x40,LCD_DSY_BUFFER2); }}void int0() interrupt 0{Keyscan();}五、运行结果:。
基于AT89C51单片机的多功能电子万年历的设计
1. 前言1.1 课题研究背景伴随着科技的快速发展,时间的流逝,从观察太阳、摆钟到现在电子钟,人类不断的研究,不断的创新纪录。
随着人们的生活水平的提高和生活节奏加快,对时间的要求也越来越高,精准数字计时的消费需求也就越来越多。
二十一世纪的今天,最具有代表性的计时产品就是电子数字万年历,它是近代世界钟表业界的第三次革命。
第一次是摆和摆轮游丝的发明,相对较稳定的机械振荡频率源使钟表的走时差从分级缩小至秒级,代表性的产品是带有摆或摆轮游丝的机械钟或者表。
第二次革命则是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,也使钟表的走时月差从分级缩小到秒级。
第三次革命就是单片机数码计时技术的应用(电子数字万年历),使计时产品的走时日差从分级缩小至1/600万秒,从原有的传统指针计时的方式发展成为人们日常更为熟悉的夜光数字显示方式,直观明了,并且增加了全自动日期、星期、温度以及其他日常附属带来了钟表计时业界跨跃性的进步。
国产的电子万年历有很多种,总体上来说以研究多功能电子数字万年历为主,使万年历除了原有的显示时间,日期等基本功能之外,还具有闹铃,报警等功能。
商家生产的电子数字万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。
本设计为软硬件相结合的一组设计。
在软件设计过程中,应对硬件部分有相关了解,有助于对设计题目的更深了解和软件设计。
要了解一些主要器件的基本功能和作用。
除了采用集成化的时钟芯片之外,利用AT89系列单片机制成万年历电路,采用软硬件结合的方法,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。
AT89C51单片机是由ATMEL公司推出的一种小型单片机。
95年出现在中国市场。
主要特点为采用了Flash存贮器技术,降低了制造成本,其软硬件与MCS-51完全兼容,可以很快被中国广大用户接受。
1 / 331.2课题研究目的与意义二十一世纪是数字化技术高速发展的时期,同时单片机在数字化高速发展的时期扮演着非常重要的地位。
基于AT89C51电子万年历的设计
本文提出了一种基于AT89C51单片机的万年历设计方案,该方案以AT89C51单片机作为主控核心,与时钟芯片DS1302、DS18B20温度传感器、按键、LCD显示等模块组成硬件系统。
在硬件系统中设有5个独立按键和一个LCD显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行校准、选择时间等,综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势 具有广阔的市场前景。
AbstractIn this paper, a calendar is designed based on AT89C51 MCU.The proposal uses a single-chip microcomputer AT89C51 as the Master Control chip. The hardware system makes up of the clock chip DS1302,temperature sensor DS18B20, buttons, LCD display modules. Hardware system has five independent buttons and a LCD display, which can display a wealth of information. In accordance with the needs of users, time can be calibrated at any time, chosen the time and so on. To sum up this calendar has some advantages, for example easy to read, showing intuitive, feature-rich, circuit simplicity, low cost. In line with the electronic instrumentation of the development trend, the calendar has the broad market prospects.摘要.............................................................................................................................. I Abstract .......................................................................................................................... I 目录........................................................................................................................... I I 第一章绪论.. (1)1.1 课题的背景 (1)1.2 电子万年历的应用 (1)1.3 技术指标和要求 (1)第二章总体方案 (2)2.1 系统基本方案选择和论证 (2)2.2 系统设计结构图 (4)第三章硬件设计 (5)3.1 系统硬件概述 (5)3.2 系统的模块电路设计 (5)3.3 总硬件设计 (13)第四章软件设计 (14)4.1 软件设计方案 (14)4.2 各模块分析 (14)第五章系统调试 (20)5.1 硬件调试 (20)5.2 软件仿真联调 (26)5.3 功能仿真效果 (28)5.4 调试心得 (31)第六章结论与展望 (32)致谢 (33)参考资料 (34)附录Ⅰ:电子万年历原理图仿真图 (35)附录Ⅱ:电子万年历原理图 (36)附录Ⅲ:元件清单 (37)附录Ⅳ:源程序清单 (38)第一章绪论1.1 课题的背景在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。
基于单片机的万年历设计
电子万年历是一种非常广泛的日常计时工具,它不仅能够对时间技术,还能够对日期、温度、湿度等进行显示,所以在现代社会受到广泛应用。
本设计是一个基于AT89C51单片机的多功能日历显示系统,本设计能显示公历年、月、日,以及时、分、秒、温度、星期等信息,而且还具有日期调整、时间校准以及温度采集等功能。
系统所用的时钟日历芯片DS1302和数字式温度传感器DS18B20具有高性能、低功耗、接口简单的特点,使本系统电路简化,编程方便,同时功能也很强。
采用AT89C51单片机的万年历系统可以很好的改善传统采用模拟电路引起的计时不准确,不可靠,一致性差等问题。
本文设计是用单片机为主控制,通过电路仿真而实现的。
在Proteus7软件绘制硬件电路原理图,用Keil软件进行编程与调试,最终生成hex文件,载入单片机,从而实现仿真效果。
本文设计经过最终调试,能够正确显示年、月、日、周、时、分、秒以及温度等所需信息,并能正常使用对日期与时间的调整与校正功能。
系统使用1602LCD 液晶屏显示信息,界面简洁、直观、易于操作。
关键词:万年历;单片机;AT89C51;DS1302;DS18B201 引言 (1)1.1研究的目的和意义 (1)1.2本系统主要研究的内容 (1)2 系统方案论证 (2)2.1控制部分的选择方案与论证 (2)2.2显示部分的选择方案与论证 (2)2.3时钟芯片的选择方案与论证 (2)2.4温度传感器的选择方案与论证 (3)2.5电路设计最终方案系统原理及总体结构图 (3)3 系统设计 (4)3.1 系统硬件仿真原理图 (4)3.2 单片机89C51控制模块的设计 (4)3.3 LCD液晶显示模块设计 (7)3.4 DS1302时钟模块的设计 (9)3.5 DS18B20温度采集模块的设计 (12)4 系统调试 (15)4.1硬件调试 (15)4.2软件调试 (15)5 结论 (15)参考文献 (16)物理与电子工程学院2011级本科课程设计附录 (17)物理与电子工程学院2011级本科课程设计1 引言人类的日常生活离不开时间,任何具有周期变化的自然现象都可用来测量时间。
基于AT89C51单片机的多功能电子万年历的设计论文
基于AT89C51单片机的多功能电子万年历的设计AT89C51 SCM-BASED ELCTRONIC DESIGN CALENDAR毕业论文学院名称泸州职业技术学院系部名称电子工程系专业名称应用电子技术2012年12月10日摘要本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。
系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,利用proteus仿真,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。
万年历采用直观的数字显示,可以在1602上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。
此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
关键字:AT89C51;电子万年历; DS1302;1602目录摘要 (01)第一章绪论 (03)1.1 课题研究的背景 (03)1.2课题解决的主要容 (03)第二章系统的总体设计 (04)2.1系统硬件电路设计 (04)2.1.1系统硬件结构 (04)2.2单片机及其附属电路 (05)2.2.1 MCS-51系列单片机 (05)2.1.2 MCS-51系列单片机的工作条件电路 (08)2.1.3 DS1302 (09)2.1.4 LCD1602显示电路 (10)2.1.5调节电路 (12)第三章系统的软件设计 (12)3.1主程序 (12)3.2 LCD1602的驱动程序 (13)3.3 DS1302的驱动程序 (14)第四章万年历的设计结论 (14)4.1 万年历工作原理 (14)4.2 万年历结构原理图 (15)致 (16)参考文献 (16)附录 (17)附录【1】仿真图片 (17)附录【2】程序代码................................. 17-25第一章绪论1.1 课题研究的背景随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
基于AT89C51单片机的多功能电子万年历的设计_毕业设计
本科毕业设计(论文)基于AT89C51单片机的多功能电子万年历的设计AT89C51 SCM-BASED ELCTRONICDESIGN CALENDAR学生姓名学院名称信电工程学院专业名称电子信息工程技术指导教师年月日摘要本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。
系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。
万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。
此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
关键字AT89C51;电子万年历; DS1302目录第一章引言................................................................................................. 错误!未定义书签。
1.1课题研究的背景 (1)1.2课题的研究目的与意义 (1)1.3课题解决的主要内容 (1)第二章系统的总体设计 (2)2.1系统方案的构想与确定 (2)2.2 器件的选用 (2)2.2.1单片机的选择 (2)第三章系统硬件的设计 (4)3.1系统硬件电路设计 (4)3.1.1系统硬件框图 (4)3.1.2 AT89C51单片机 (4)3.1.3 8位移位寄存器74LS164(串行输入,并行输出) (8)3.1.4 ds1302 (12)第四章系统的软件设计 (15)4.1 主程序 (15)4.2 从1302读取日期和时间程序 (16)4.3系统源代码 (16)第五章 PROTEUS使用 (29)5.1编程环境PROTEUS (29)5.2用PROTEUS ISIS对电子万年历的硬件电路设计 (29)5.3用PROTEUS ISIS进行电子万年历的仿真测试 (33)结论 (36)致谢 (37)参考文献 (38)附录............................................................................................................... 错误!未定义书签。
基于单片机的万年历设计
物理与电子工程学院2011级本科课程设计摘要电子万年历是一种非常广泛的日常计时工具,它不仅能够对时间技术,还能够对日期、温度、湿度等进行显示,所以在现代社会受到广泛应用。
本设计是一个基于AT89C51单片机的多功能日历显示系统,本设计能显示公历年、月、日,以及时、分、秒、温度、星期等信息,而且还具有日期调整、时间校准以及温度采集等功能。
系统所用的时钟日历芯片DS13O2和数字式温度传感器DS18B2O具有高性能、低功耗、接口简单的特点,使本系统电路简化,编程方便,同时功能也很强。
釆用AT89C51单片机的万年历系统可以很好的改善传统采用模拟电路引起的计时不准确,不可靠,一致性差等问题。
本文设计是用单片机为主控制,通过电路仿真而实现的。
在Proteus7软件绘制硬件电路原理图,用Keil软件进行编程与调试,最终生成hex文件,载入单片机,从而实现仿真效果。
本文设计经过最终调试,能够正确显示年、月、日、周、时、分、秒以及温度等所需信息,并能正常使用对日期与时间的调整与校正功能。
系统使用16O2LCD 液晶屏显示信息,界面简洁、直观、易于操作。
关键词:万年历;单片机:AT89C51; DS1302: DS18B20目录1引言 (1)1.1研究的目的和意义 (1)1.2本系统主要研究的内容 (1)2系统方案论证 (2)2. 1控制部分的选择方案与论证 (2)2. 2显示部分的选择方案与论证 (2)2. 3时钟芯片的选择方案与论证 (2)2.4温度传感器的选择方案与论证 (3)2.5电路设计最终方案系统原理及总体结构图 (3)3系统设计 (4)3.1系统硬件仿真原理图 (4)3.2单片机89C51控制模块的设计 (4)3.3 LCD液晶显示模块设计 (7)3. 4 DS1302时钟模块的设计 (9)3.5 DS18B20温度采集模块的设计 (12)4系统调试 (15)4.1硬件调试 (15)4.2软件调试 (15)5结论 (15)参考文献 (16)物理与电子工程学院2011级本科课程设讣17物理与电子工程学院2011级本科课程设计1引言人类的日常生活离不开时间,任何具有周期变化的自然现象都可用来测量时间。
基于AT89C51单片机的多功能电子万年历的设计
. . .. . . 单片机应用系统设计课题:基于AT89C51单片机的多功能电子万年历的设计姓名:班级:学号:指导老师:日期:.. .专目录一.绪言 (3)二.系统总体方案设计 (3)三.硬件系统设计: (4)四.系统软件设计 (5)五.设计总结 (8)六.参考文献 (8)七.附录 (9)一.绪论随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。
由其是单片机技术的应用产品已经走进了千家万户。
电子万年历的出现给人们的生活带来的诸多方便。
本文首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。
万年历是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。
因此,研究万年历及扩大其应用,有着非常现实的意义。
本系统采用了以广泛使用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用LED显示电路、键盘电路,使人机交互简便易行。
二.系统总体方案设计1.系统设计硬件框图2.实现的基本原理在本实验中,我引用了DS1302的时,分,秒功能,当时计数字24时通过74LS164给2.硬件原理图四.系统软件设计仿真过程1、打开PROTEUS软件,并出画单片机电子万年历具体运行电路图。
3、检查所画电路运行图,确保没有错误以后,加载源程序。
4、加载完成后,单击电路图框下的开始按钮,进行仿真,观察LED数码管现实情况,此时LED数码管开始显示数字。
基于89C51设计的电子万年历
第一章设计要求要求:利用89c51单片机设计万年历,通过LED显示器显示年.月.日.时.分.秒,通过键盘较正时间,能自动计算闰年等。
1.走时准确,可显示年.月.日和时.分.秒;2.可调整公历年.月.日和时.分.秒。
第二章单片机系统简介系统原理图1. 89c51工作原理89c51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。
89c2051是一种带2K。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令计划输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89c51是一种高效微控制器,89c2051是它的一种精简版本。
89c单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
(1)主要特性1.与MCS-51兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:OHz-24MHz三级程序存储器锁定128*8位内部RAM32可编程I/O线2个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路(2)管脚说明A T89C51AT89C51共有40个引脚,引脚的排列顺序为从靠芯片的缺口左边那列逆时针数起,依次为1、2、3、4.。
40,其中芯片的1引脚上有一个凹点。
在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。
1)、主电源引脚(2根)Vcc:电源输入,接+5V电源GND:接地线2)、外接晶振引脚(2根)XTAL1:片内晶振电路的输入端XTAL2:片内晶振电路的输出端3)、控制引脚(4根)RST/VPP:复位引脚,引脚上出现2个机器周期的高电频将使单片机复位ALE/PROG:地址锁存允许信号EA/VPP:程序存储器的内外部选通,接地电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令4)、可编程输入/输出引脚(32根)AT89C51单片机有4组8位可编程I/O口,分别为P0、P1、P2、P3口,每个口有8位(8根引脚),共32根、每一根引脚都可以编程,比如用来控制电机、交通灯等,开发产品就是利用这些可编程引脚来实现我们想要的功能。
基于AT89C51单片机设计的电子万年历
With the improvement of people's living standard and life rhythm accelerate, the time requirements of increasingly high, precision digital timing consumption demand is increasing.The production of electronic calendar has many kinds, general to study of multi-function electronic calendar, the calendar in addition to the original display time, date and other basic functions, also has the alarm, alarm and other functions. Business production of electronic calendar from the quality, price, and practical considerations, constantly improve the design of the electronic perpetual calendar, making it more with the market.The design for the software, hardware with a combination of a set of design. In software design, the hardware part should have relevant knowledge, which helps to design a deeper understanding, contribute to software design. Basic to understand some of the main devices of the basic functions and role. In addition to using integrated clock chip, and adopts the scheme of MCU, using AT89series single-chip microcomputer made perpetual calendar circuit, use a combination of hardware and software methods, control of LED digital tube output, are used to show the year, month, day, hours, minutes and seconds, the main point is: the hardware circuit is simple, the installation convenient and easy to realize, the software design is unique, reliable. AT89C51 is offered by the ATMEL a small microcontroller. 95 years in China market. Its main characteristics is the Flash memory technology, reduces the manufacturing cost of the hardware, software, fully compatible with the MCS-51, can very quickly by the Chinese majority of user acceptance. This paperintroduces the design of the electronic perpetual calendar based on AT89C51.1 design schemesThis article proposed one kind based on the AT89C51MCU calendar design, the program to AT89C51single-chip microcomputer as a controlling core, and the clock chip DS1302, keyboard, LED display modules and hardware system. In the hardware system with a separate keyboard and LED display, can display a wealth of information, according to the needs of users at any time on time calibration, choice of time, to sum up this calendar is convenient, intuitive display, multiple functions, simple circuit, low cost and many other advantages, comply with the development trend of electronic instrumentation, has broad market prospect.2 functional requirementsElectronic calendar can dynamically display the year, month, day, week, hour, minute, second.3 technical feasibilityWith the domestic large scale integrated circuits, the microprocessor and its peripheral chip had rapid development. Integrated technology most recent development is one of the CPU and peripheral chips, such as program memory, data memory, parallel I/O port, serial I/O port, timer / counter, an interrupt controller and other control components are integrated in a chip, made of monolithic computer ( Single-Chip Microcomputer ). But in recent years the introduction of some high-end chip also includes many special function unit, such as A/D, D/A converter, modem, communicationcontroller, phase locked loop, DMA, PWM floating-point unit, output control unit, PWM output when the dead programmable control function. Therefore, so long as the external expansion circuit and the necessary channel interface can make all kinds of computer application systems, such as industrial production line control system of household appliances, as the main controller, distributed control system terminal node or as its main control node up relay used, data acquisition system, automatic testing system. The appearance of single chip microcomputer, and the technology in the field of such rapid development, and the single chip computer application system formed by the following characteristics: (1) single chip computer application system has higher reliability. The reliability of the obtained in addition to rely on the chip itself the high reliability and application have the least connection, also can be conveniently made of soft, hardware technology. (2) extension of the system, system configuration is typical, specification, easy to scale a variety of application system, application system has high utilization coefficient of soft, hardware. (3) in the form of application system is a computer system, a considerable measure, control functions are realized by software, so with flexible features, do not have to change the hardware system can properly change system function. (4) have superior performance, price ratio.The 4 chip selectThe main control chip using51 Series MCU clock chip using AT89C51, American DALLAS company introduced a high performance, low power consumption, with the RAM real-time clock DS1302. Using DS1302 asthe timing chip, can achieve accurate timing. More importantly, DS1302can be in a very small current back-up power supply (2.5~ 5.5V power supply,2.5V power consumption less than 300nA), and DS1302 Can be programmed to select a variety of charging current to power for slow charge, can guarantee the basic power backup power supply.Display driver using MAX7219, MAX7219 is a microprocessor and a common cathode eight eight LED digital tube display, graph bar / column chart displays or64 dot matrix display interface small serial input / output chip. Sheet including BCD decoder, multiple scan controller, word and bit drive and 8x 8static RAM. External resistor only need one set all LED displays current field. MAX7219 and microprocessor only three wires to connect, each show has an address by the digital microprocessor write. Allow users to choose each BCD decoding or not decoding. Users can also choose to shutdown mode, the digital brightness control, from 1 to8to select the scan number and LED displays for all the test mode. Display module using ordinary common cathode four in one of the eight LED digital tube.The 5 display driver MAX7219(1) MAX7219 and single chip computer is connected with three wires ( DIN, CLK, LOAD ), using16 bit data serial shift receiving mode(2) eight LED display, graph bar / column chart displays or64 dot matrix display(3) including a BCD decoder, multiple scan controller, word and bit drive and 8x 8static RAM(4) may choose to shutdown mode, the digital brightness control, from 1 to8to select the scan number and LED displays for all the test mode(5) can drive8LED display(6) the internal RAM address 01~ 08H respectively corresponding to DIG0 ~DIG7.(7) scan register ( address:0BH ) the register in the D0 ~ D3 bits of data of the set value is 0 ~ 7H, set the value of said display dynamic scanning digital from 1 to8.(8) stop register ( address:0CH ) when D0=0, MAX721is in a halt state; when D0=1, in a normal working state.(9) showed the test register ( address:0FH ) when D0=0, MAX7219according to a set pattern in normal work; when D0=1, in beta status. In this state, regardless of the MAX7219in what mode, all of the LED will be the maximum brightness display.(10) the brightness register ( address:0AH ) luminance can use the hardware and software of the two methods to regulate brightness registers in the D0 ~D3can control LED display.LED display register by an internal8x 8static RAM, the operator can direct positioning of individually addressable register, to refresh and keep the data, as long as more than 2 V ( V + for + 5V ).Control register includes: decoding mode, display brightness adjustment, scan limits ( select scan digits), shutdown and display the test register.6 DS1302working mode and data operation principleDS1302can be years, months, days, weeks, when, minutes and seconds for time, and has a leap year compensation function, wide voltage up to 2.5~5.5V. Using a three wire interface synchronization with CPU communication, and may use a burst mode a transmission of multiple byte clock signal or RAM data. DS1302has a33x8for temporary storage of data RAM register. DS1302 is a DS1202 upgrade products, compatible with DS1202, but the increase of main power supply dual power supply pins / back to back, while providing a power supply current trickle charging capability.DS1302 clock chip includes a real time clock / calendar and31 bytes of static RAM. It passes through a simple serial interface and communication. Real time clock / calendar with seconds, hours, days, weeks, months and years of information. For less than 31days at the end of the month and the date is automatically adjusted, also includes a leap year correction function. The operation of the clock can be used with AM/PM24< > or12 hour format. Using a three wire interface synchronization with CPU communication, and may use a burst mode a transmitted byte clock signal or RAM data.DS1302 in any transmission of data must be initialized, the RST foot placement is high, then the8 bits of the address and command words into the shift register, the data at the rising edge of SCLK was access to. At the beginning of the 8clock cycle, the command byte loaded into the shift register, another clock cycle during a read operation when the output data, in a write operation for writing data. The number of clock pulses in single byte mode for8+8, in multiple byte mode for8+ bytes, the maximum is 248bytes. If the transmissionof the mid-mounted RST feet for low level, it will terminate the data transmission, and the I/O pin into a high resistance state. Power on run time, the Vcc ≥2.5V, RST foot must be kept low level. Only when the SCLK is low, can be set to high level RST.DS1302 total of12 registers, which has 7registers and calendar, clock, stored data bits for BCD code.Clock seconds pause: register bit7bit clock pause a definition. When it is 1, DS1302stops oscillating, entering the low power backup, usually in the DS1302write operation (such as entering a clock adjustment procedures ), oscillation stopped. When it is 0, the clock will start.AM-PM/12-24hour: hour register bit7is defined as 12or 24hour mode select bit. It is in high level,12hour. In this way, a5 for the second10 hours of bits (20 ~ 23h).The crystals DS1302choose 32768Hz, capacitor recommended values for6pF. Because of low frequency, can also be connected capacitor, the timing precision effect.The 7endingWhen I finally finished all the typing, typesetting, proofreading, drawing the task after all very tired, but at the same time looking at the computer screen graduation design manuscript my heart is sweet, I feel it all worth it.I will never forget this unforgettable several months. I am here to find information on the day, in the face of countless books list, the most memorable is each time finding information on the thrill and excitement. I'm from data collection, to master a lot ofmicrocomputer and its interface application knowledge, let me for what I have learned to consolidate and improve, and let me on the SCM new technology knowledge. Throughout the process, I learned new knowledge, the growth of knowledge. In the future days, I still have to continue to enrich themselves, for in the academic field dosomethinpreviouslyunreleased.Stand on solid ground, serious learning attitude, seek truth from facts, not afraid of difficulties, unremittingly, hard-working spirit is my in this design the maximum benefits. I think this is a willpower, is to my actual ability of a promotion, also for my future study and work of great help.随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。
AT89C51控制的电子时钟和日期设计
AT89C51控制的电子时钟和日期设计“电子日历+电子时钟系统”,日历与时间轮流显示,间隔1秒,系统要求实现以下功能:1、日历显示格式为“××××.××.××”,分别对应“年.月.日”;2、时钟显示格式为“××-××-××”,分别对应“时-分-秒”;3、实现日期和时间可通过键盘调整在按键模块中,按键实现年月日、时分秒的调节功能。
k==1,修改时加1的功能;k==2,修改分加1的功能;k==3,修改秒加1的功能k==5,修改时减1的功能;k==6,修改分减1的功能;k==7,修改秒减1的功能k==9,修改年加1的功能;k==10,修改月加1的功能;k==11,修改日加1的功能k==13,修改年减1的功能;k==14,修改月减1的功能;k==15,修改日减1的功能当显示时分秒时按下k==0键,此时只显示时分秒,此时可以修改时分秒,当再次按下k==8时返回交替显示当显示年月日时按下k==4键,此时只显示年月日,此时可以修改年月日,当再次按下k==8时返回交替显示在交替显示时,同样可以修改年月日、时分秒#include<reg52.h>unsigned char k,a;unsigned int nian=2012,yue=05,ri=25,shi=10,fen=30,miao=20;//电子日历和电子时钟系统显示的初始化unsigned char flag;void shuma_xianshi();//年月日显示函数声明void shuma_xianshi1(); //时分秒显示函数声明void tiaoshi();//调节年月日、时分秒函数声明void delay();//延时函数声明unsigned char getkey1();//扫描键盘值函数声明void nianyuetiaozheng();//年月的调整函数声明void main()//主函数程序{TMOD=0X01;//定时器T0模式1TH0=0X4C;//设置定时器初值TL0=0X00;EA=1;//开总中断ET0=1;TR0=1;while(1){tiaoshi();//"调节年月日、时分秒函数"的调用nianyuetiaozheng();//"年月的调整函数"的调用if(miao%2) //判断年月日、时分秒的交替轮流显示;当秒为奇数时显示时分秒,当秒为偶数时显示年月日{if(k==0){ EA=0;//在显示时分秒时,若按键0按下时停止计数,此时只显示时分秒while(1){shuma_xianshi1(); //时分秒显示函数tiaoshi();//"调节年月日、时分秒函数"的调用if(k==9)nian=(--nian);;//在显示时分秒时,假如说有按键9按下,年++不起作用if(k==10)yue=(--yue); //在显示时分秒时,假如说有按键10按下,月++不起作用if(k==11)ri=(--ri); //在显示时分秒时,假如说有按键11按下,日++不起作用if(k==13)nian=(++nian); //在显示时分秒时,假如说有按键13按下,年--不起作用if(k==14)yue=(++yue);//在显示时分秒时,假如说有按键14按下,月--不起作用if(k==15)ri=(++ri); //在显示时分秒时,假如说有按键15按下,日--不起作用if(k==8)break; //在显示时分秒时,假如说有按键8按下,此时返回到年月日、时分秒的交替显示nianyuetiaozheng();//"年月的调整函数"的调用} EA=1; //开启总中断}shuma_xianshi1();//显示时分秒}else{if(k==4){ EA=0;//在显示年月日时,若按键4按下时停止计数,此时只显示年月日while(1){shuma_xianshi();//年月日显示函数tiaoshi();if(k==1)shi=(--shi);//在显示年月日时,假如说有按键1按下,时++不起作用if(k==2)fen=(--fen);//在显示年月日时,假如说有按键2按下,分++不起作用if(k==3)miao=(--miao);//在显示年月日时,假如说有按键3按下,秒++不起作用if(k==5)shi=(++shi);//在显示年月日时,假如说有按键5按下,时--不起作用if(k==6)fen=(++fen);//在显示年月日时,假如说有按键6按下,分--不起作用if(k==7)miao=(++miao);//在显示年月日时,假如说有按键7按下,秒--不起作用if(k==8)break;//在显示年月日时,假如说有按键8按下,此时返回到年月日、时分秒的交替显示nianyuetiaozheng();//"年月的调整函数"的调用} EA=1; //开启总中断}shuma_xianshi();//显示年月日}}}void shuma_xianshi()//年月日显示函数{P0=0X80|(nian/1000); //年的千位数字delay();P0=0X90|(nian%1000/100);//年的百位数字delay();P0=0Xa0|(nian%100/10);//年的十位数字delay();P0=0Xb0|(nian%10); //年的个位数字delay();P0=0Xc0|(yue/10);delay();P0=0Xd0|(yue%10);delay();P0=0Xe0|(ri/10);delay();P0=0Xf0|(ri%10);delay();}void shuma_xianshi1()//时分秒显示函数{P0=0X80|(shi/10);delay();P0=0X90|(shi%10);delay();P0=0Xb0|(fen/10);delay();P0=0Xc0|(fen%10);delay();P0=0Xe0|(miao/10);delay();P0=0Xf0|(miao%10);delay();}void tiaoshi()//调节年月日、时分秒函数{k=getkey1();//当有键按下时,取键盘的值if(k==1)//按键1按下时,实现小时的++{TR0=0;shi++ ;if(shi==24)shi=0;TR0=1;}if(k==2)//按键2按下时,实现分钟的++{TR0=0;fen++;if(fen==60)fen=0;TR0=1;}if(k==3)//按键3按下时,实现秒的++ {TR0=0;miao++;if(miao==60)miao=0;TR0=1;}if(k==5)//按键5按下时,实现小时的-- {TR0=0;shi--;if(shi==-1)shi=23;TR0=1;}if(k==6)//按键6按下时,实现分钟的-- {TR0=0;fen--;if(fen==-1)fen=59;TR0=1;}if(k==7)//按键7按下时,实现秒的-- {TR0=0;miao--;if(miao==-1)miao=29;TR0=1;}if(k==9)//按键9按下时,实现年的++ {TR0=0;nian++;if(nian==2051)nian=2012;TR0=1;}if(k==10)//按键10按下时,实现月的++{TR0=0;yue++;if(yue==13)yue=1;TR0=1;}if(k==11)//按键11按下时,实现日的++{TR0=0;ri++;if(ri==a)ri=1;TR0=1;}if(k==13)//按键13按下时,实现年的--{TR0=0;nian--;if(nian==2011)nian=2050;TR0=1;}if(k==14) //按键14按下时,实现月的--{TR0=0;yue--;if(yue==0)yue=12;TR0=1;}if(k==15)//按键15按下时,实现日的--{TR0=0;ri--;if(ri==0)ri=(a-1);TR0=1;}}void delay()//延时函数{unsigned char m,n;for(m=0;m<20;m++)for(n=0;n<100;n++);}void time0() interrupt 1 //定时器中断函数{flag++;TH0=0X4C;//重新置入初值TL0=0X00;if(flag==20)//当flag==20时,此时定时时间1秒到{flag=0;miao++;if(miao==60)//当miao==60时,实现fen++{miao=0;fen++;if(fen==60)//当fen==60时,实现shi++{fen=0;shi++;if(shi==24)//当shi==24时,实现ri++{shi=0;ri++;if(ri==31)//当ri==31时,实现yue++{ri=1;yue++;if(yue==13)//当yue==13时,实现nian++{yue=1;nian++;}}}}}}}unsigned char getkey1(void)//扫描键盘值函数{unsigned char temp,k;P2=0xfe; //判断按键0、1、2、3temp=P2;temp=temp&0xf0;if(temp!=0xf0){delay();temp=P2;temp=temp&0xf0;if(temp!=0xf0){temp=P2;switch(temp){case 0xee:k=0;break;case 0xde:k=1;break;case 0xbe:k=2;break;case 0x7e:k=3;break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;}}return k;}P2=0xfd;//判断按键4、5、6、7 temp=P2;temp=temp&0xf0;if(temp!=0xf0){delay();temp=P2;temp=temp&0xf0;if(temp!=0xf0){temp=P2;switch(temp){case 0xed:k=4;break;case 0xdd:k=5;break;case 0xbd:k=6;break;case 0x7d:k=7;break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;}}return k;}P2=0xfb;//判断按键8、9、10、11 temp=P2;temp=temp&0xf0;if(temp!=0xf0){delay();temp=P2;temp=temp&0xf0;if(temp!=0xf0){temp=P2;switch(temp){case 0xeb:k=8;break;case 0xdb:k=9;break;case 0xbb:k=10;break;case 0x7b:k=11;break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;}}return k;}P2=0xf7;//判断按键12、13、14、15 temp=P2;temp=temp&0xf0;if(temp!=0xf0){delay();temp=P2;temp=temp&0xf0;if(temp!=0xf0){temp=P2;switch(temp){case 0xe7:k=12;break;case 0xd7:k=13;break;case 0xb7:k=14;break;case 0x77:k=15;break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;}}return k;}}void nianyuetiaozheng()//年月的调整函数{if(yue==2)//当月份显示为2月份时{if(nian%4==0 && nian%100!=0)//判断是否为闰年{a=30;//当是闰年时,a=30}else{a=29;//当不是闰年时,a=29}}elseif(yue==1|yue==3|yue==5|yue==7|yue==8|yue==10|yue==12){a=32;//当月份显示为1、3、5、7、8、10、12时,a=32 }elseif(yue==4|yue==6|yue==9|yue==11){a=31;//当月份显示为4、6、9、11时,a=31}}。
基于AT89C51多功能电子万年历的设计_毕业设计
合肥学院《单片机原理与应用》课程论文课程论文题目基于AT89C51多功能电子万年历的设计院系名称计算机科学与技术系专业(班级)计算机科学与技术(09计本2班)姓名(学号)指导教师2012 年 6 月 10 日摘要:随着单片机应用技术的飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些大部分都是以单片机为控制核心的。
单片机是集CPU 、RAM 、ROM 、定时、计数器和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于工业自动化和消费电子,因此具有非常现实的研究意义。
本文通过对一个基于单片机实现的电子万年历设计,让我们加深了对单片机、C语言编程、Keil 调试、Proteus仿真的理解。
此系统由主控制器AT89C51、时钟电路模块DS1302、显示电路模块、温度采集模块DS18B20等部分构成,能实现实时年、月、日、时、分、秒、星期、温度等显示。
关键词:DS1302;DS18B20;单片机;多功能万年历引言:万年历是采用数字电路实现对年、月、日、时、分、秒、星期、温度等数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中的必需品。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的功能。
诸如能显示周围温度,能动态显示需要的文字信息,而且配上优美的画质,动听的音乐,更有美化环境的功能。
因此,研究万年历及扩大其应用,有着非常现实的意义。
1 方案论证1.1 单片机芯片的选择在单片机控制中,常用的ATMEL公司单片机种类有AT89C51、AT89C52、AT89S51、AT89S52,都兼容MCS-51单片机。
毕业设计(论文)-基于at89c51单片机万年历的设计[管理资料]
四川省高等教育自学考试电子工程专业毕业论文论文题目_基于AT89C51单片机万年历的设计专业________电子工程_______________ 学生姓名________________________准考证号__________________指导老师_______________________2011年08 月23 日摘要自古人们就懂得了怎么样算时间,打草结、挂麻絏、划笔画等。
现在社会的日益进步时间变得更加的珍贵。
传统的钟表误差大、使用寿命不长、要经常的更改时间。
显示不直观,给人们带来了许多的不便。
科技的快速发展,很好的解决的问题。
而多功能电子万年历能很好的解决这些问题,万年历采用软、硬件结合,误差小、使用寿命长,采用直观的数字显示,简捷明了。
本文介绍了基于AT89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法。
系统以AT89C52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。
运用单片机实现公历农历之间的转换,电子闹钟,计时器和对指定日期的查询等功能。
万年历采用液晶显示LCD-12864显示,可以同时显示年、月、日、周几、时、分、秒,农历。
综上所述此电子晚年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景关键字:AT89C51;电子万年历;DS1302 ;公农历转换;电子闹钟;计时器;日期查询目录1 绪论 (5) (5) (5) (5)2 系统的总体设计 (6) (6)器件的选用 (7)单片机的选用 (7)LCD 液晶显示器12864 选用及工作原理 (8)LCD液晶显示概述 (8)LCD模块接口说明 (9)LCD 模块主要硬件构成说明 (9)LCD 指令说明 (11)LCD 读写时序图 (11)LCD 软件初始化 (13)应用举例 (15)公农历转换 (17)3 系统硬件的设计 (20) (20) (20)AT89C51单片机 (20)3. AT89C51单片机与MCS-51完全兼容 (23)实时时钟芯片 DS1302 (25)4 系统的软件设 (29)程序流程图 (30)主程序 (31)读取日期和时间程序 (32)显示子程序 (33) (34)5 PROTEUS使用 (34) (34)ISIS对电子万年历的硬件电路设计 (35)ISIS进行电子万年历的仿真测试 (38)结论 (39)致谢 (40)参考文献 (41)程序 (42)一绪论课题研究的背景随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
基于AT89C51单片机控制的万年历探究
33 22H 65H 00H(2011) 22 21H 25H 41H(2012) 40 24H 52H 00H(2013)
30 52H 42H 91H(2014) 49 55H 05H 00H(2015) 38 26H 44H 00H(2016)
27 53H 50H 60H(2017) 46 53H 24H 00H(2018) 35 25H 54H 00H(2019)
小
大
大
小
大
小
小
大
小
大
小
二进
0
1
0
0
1
0
1
1
0
1
0
1
天数 30
29
30
30
29
30
29
29
30
29
30
29
十六
2
2
6
5
2012 年第 2 期(总第 62 期)
27
基于 AT89C51 单片机控制的万年历探究
2011 年春节和元旦相差 33 天:2011 年表示成为 33,22H,65H,00H。
2011- 2050 年的关系对应表
键盘由三个按键完成:控制键、加键、减键;接 10K 上 期在一年中的天数来计算阴历日期。阳历每月为 30 天或 31
拉电阻;查询法完成读键功能。
天(2 月除外,闰年 2 月为 29 天,平年为 28 天),阴历一
4 系统程序设计
年有 12 个月或 13 个月(含闰月),一个月为 30 天或 29 天。 把一个只有 29 天的月称为小月,用 1 为标志,把 30 天的月
同样,紧跟 8 位的下一个 SCL K 时钟的下降沿读出 DS1302
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江西理工大学南昌校区毕业设计(论文)题目:基于AT89C51的数字万年历设计系别:信息工程系专业:电气自动化班级:09电子自动化1班学生:学号:09321131指导教师:职称:助教摘要电子万年历是一种日常广泛应用的计时工具,在现代社会中越来越流行。
数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周、时、分、秒、温度等信息,还具有时间校准等功能。
第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步。
本文中万年历的设计过程在硬件与软件方面进行同步设计,硬件部分主要由AT89C51单片机,液晶显示电路,复位电路,时钟电路,稳压电路电路等组成。
在单片机的选择上使用了AT89C51单片机,该单片机适合于许多较为复杂控制应用场合,显示器使用液晶LCD1602。
软件方面主要包括日历程序、液晶驱动程序、显示程序等,这些程序采用C语言编写。
所有程序编写完成后,在Keil C51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。
并且利用Protel软件进行制图,画出PCB图并且制作出实物。
关键词: 时钟电钟;液晶LCD1602;单片机ABSTRACTE-calendar is a very extensive daily timing tool, more popular in modern society. For digital electronic calendar using intuitive digital display, simultaneously displays year, month, day, day, hour, minute, second, temperatures and other information, also with a time calibration capabilities. The third revolution is a single-chip digital timing technology ( electronic calendar ), so that the timing product walk time difference from graded narrowing to 1/ 6000000 of a second, from the original traditional pointer timing for the development of people's daily more familiar luminous digital display, intuitive and clear, and the increase of the full automatic date, week, temperature and other daily auxiliary information display function, which is more in line with consumer needs. Therefore, the electronic calendar brings a watch industry a big progress.Synchronizing design of calendar is based on hardware and software design. Hardware part by AT89C51 microcontroller, circuit for LCD, reset circuit, clock circuits, voltage-stabilizing circuit and serial download circuits and other components of the circuit. On the choice of using single-chip microcomputer AT89C51 microcontroller, the microcontroller is suitable for a host of complex control applications. Monitor LCD LCD1602. Software includes calendar, LCD drivers, display program. Programs using a language. All the programming is completed, Kiel C51 debugging software, sure no problem, in Proteus software embedded in single-chip microcomputer in the simulation. And the use of Portal software for drawing and draw the PCB.Keywords : clock electric clockII目录第一章绪言 (1)第二章设计方案论证 (2)2.1系统的基本方案选择、论证和设计 (2)2.1.1显示部分的方案选择 (2)2.1.2单片机型号方案选择与论证 (2)2.1.3时钟芯片方案的选择与论证 (2)2.1.4温度传感器方案选择与论证 (3)2.2数字万年历设计原理 (3)第三章系统的硬件设计与实现 (4)3.1系统硬件概述 (4)3.1.1AT89C51功能及其应用 (4)3.1.2时钟模块功能与原理 (7)3.1.3温度模块功能与原理 (7)3.1.4液晶显示器功能与原理 (8)3.2 主要单元电路设计 (8)3.2.1单片机主控模块设计 (8)3.2.2时钟电路模块的设计 (9)3.2.3温度采集模块设计 (9)3.2.4 显示电路模块的设计 (10)3.3 系统仿真电路 (10)第四章系统软件的设计与测试 (12)4.1程序流程图 (12)4.2 硬件与软件的调试与测试 (14)结束语 (15)致谢 (16)参考文献: (17)附录一程序 (18)附录二 PCB制板图: (21)第一章绪言二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。
第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。
第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。
第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求。
因此,电子万年历的出现带来了钟表计时业界跨跃性的进步。
电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。
因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。
而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。
数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎。
LED数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。
随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。
单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。
本设计硬件电路较简单,所用器件较少,电路中使用了AT89S52单片机、DS1302时钟芯片、24C02FLASH存储器和HY-12864液晶显示器等主要芯片,实现了预计功能。
在对芯片的管脚功能和用法有充分的了解后,根据设计要求设计硬件电路,包括单片机控制电路、时钟电路、存储电路、键盘扫描电路、显示电路和闹铃电路。
然后通过软件编程,实现了对年、月、日、时、分、秒、星期、闰年和阴历的自动调整,用按键进行控制,用液晶模块进行显示,并具有闹铃功能。
万年历的设计过程在硬件与软件方面进行同步设计。
硬件部分主要由AT89C51单片机,液晶显示电路,复位电路,时钟电路,稳压电路电路以及串口下载电路等组成。
在单片机的选择上使用了AT89C51单片机,该单片机适合于许多较为复杂控制应用场合。
显示器使用液晶LCD1602。
软件方面主要包括日历程序、液晶驱动程序,显示程序等。
程序采用汇编语言编写。
所有程序编写完成后,在Keil C51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。
电子万年历可以正常显示时间并进行时间调整,基本完成了预期要实现的目标。
1第二章设计方案论证2.1系统的基本方案选择、论证和设计系统方案包括控制部分的选型、时钟芯片的选择、单片机型号的选择和显示模块的确定,具体的要求如下:具有年、月、日、星期、时、分和秒,温度显示,闹钟等功能;具备年、月、日、星期、时、分和秒校准,定闹钟功能2.1.1显示部分的方案选择方案一:采用数码管显示,数码管是由八个发光二极管组成,对于显示数字字符比较适合,虽然价格便宜,但对于电子万年历需要显示的数码管位数多,编程麻烦,且不稳定,存在抖动现象,需要通过某些软件延时进行消抖,操作起来就比较的麻烦。
方案二:采用LCD1602液晶显示屏, 液晶显示效果出众,可以运用菜单项来方便操作,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,易于编程,稳定可靠,比较的人性化。
通过对比,本课程设计采用LCD1602作为显示模块2.1.2单片机型号方案选择与论证方案一:采用AT89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,对单片机程序的烧录、调试都有很好的作用,并且性价比很高,能满足本次毕业设计。