基于单片机的万年历设计设计
基于单片机的万年历设计
基于单片机的万年历设计一、系统总体设计基于单片机的万年历系统主要由单片机控制模块、时钟模块、显示模块、按键模块和电源模块等组成。
单片机控制模块是整个系统的核心,负责处理和协调各个模块之间的数据传输和控制信号。
通常选用具有较高性能和稳定性的单片机,如 STC89C52 等。
时钟模块用于提供准确的时间信息,常见的有 DS1302 等芯片,能够实现年、月、日、时、分、秒的精确计时。
显示模块用于将时间等信息直观地展示给用户,可采用液晶显示屏(LCD)或数码管。
LCD 显示效果清晰、美观,但成本相对较高;数码管则价格低廉,显示简单明了。
按键模块用于用户对万年历进行设置和操作,如调整时间、设置闹钟等。
电源模块为整个系统提供稳定的电源供应,保证系统的正常运行。
二、硬件设计1、单片机最小系统单片机最小系统包括单片机芯片、晶振电路和复位电路。
晶振电路为单片机提供时钟信号,保证其正常工作;复位电路则用于在系统出现异常时将单片机恢复到初始状态。
2、时钟模块电路DS1302 时钟芯片通过串行方式与单片机进行通信,其引脚连接到单片机的相应 I/O 口。
通过对 DS1302 进行读写操作,可以获取和设置时间信息。
3、显示模块电路若采用 LCD1602 液晶显示屏,其数据线和控制线与单片机的 I/O 口相连。
通过编程控制单片机向 LCD 发送指令和数据,实现时间等信息的显示。
4、按键模块电路通常使用独立按键,将按键的一端接地,另一端连接到单片机的I/O 口,并通过上拉电阻保证在按键未按下时引脚处于高电平。
当按键按下时,引脚电平被拉低,单片机通过检测引脚电平的变化来判断按键的操作。
三、软件设计软件设计主要包括主程序、时钟模块驱动程序、显示模块驱动程序和按键处理程序等。
主程序负责初始化各个模块,并进行循环检测和处理。
在循环中,不断读取时钟模块的时间数据,然后通过显示模块进行显示,并检测按键是否有操作。
时钟模块驱动程序根据 DS1302 的通信协议,实现对时钟芯片的读写操作,从而获取和设置时间。
基于单片机的万年历设计
一、引言万年历是一种显示当前日期和时间的器件或软件。
随着科技的发展,电子产品普及率愈来愈高,基于单片机的万年历设计成为了一种非常受欢迎的设计方案。
本文将介绍一种基于单片机的万年历设计。
二、设计原理1.显示模块:采用液晶显示屏作为显示模块,可以显示日期、时间等信息。
2.时钟模块:基于RTC(实时时钟)模块,用于获取当前日期和时间。
3.按键模块:采用按键模块作为输入模块,用于设置日期和时间、切换显示模式等。
4.控制模块:基于单片机,用于控制各个模块的工作,并进行相关的计算和显示。
三、硬件设计1.单片机选择在本设计中,选择了一款常用的单片机,STM32F103C8T6、它具有低功耗、高性能的特点,并且具备丰富的外设接口,非常适合用来设计万年历。
2.RTC模块选择在本设计中,选择了一款常用的RTC模块,DS1302、它具有低功耗、稳定性好的特点,并且具备SPI接口,非常适合用来获取当前日期和时间。
3.液晶显示屏选择在本设计中,选择了一款常用的液晶显示屏,1602液晶显示屏。
它具有较大的屏幕尺寸、低功耗的特点,并且可以显示多行字符,非常适合用来显示日期、时间等信息。
4.按键模块选择在本设计中,选择了一款常用的按键模块,4x4按键模块。
它具备4行4列的按键布局,可以满足设置日期和时间、切换显示模式等功能的需求。
五、软件设计1.初始化设置在软件设计中,首先需要对各个硬件模块进行初始化设置。
2.获取当前日期和时间使用RTC模块获取当前日期和时间,并将其存储在相应的变量中。
3.显示日期和时间使用液晶显示屏将当前日期和时间显示出来。
4.设置日期和时间通过按键模块获取用户的输入,并将对应的日期和时间设置到RTC模块中。
5.切换显示模式通过按键模块获取用户的输入,并根据用户的选择切换不同的显示模式,例如切换到年模式、月模式、日模式等等。
六、总结通过以上的设计,基于单片机的万年历完成了日期和时间的获取、显示和设置等功能。
基于单片机万年历设计
引言:单片机是集成电路上的一种微处理器。
它具有微处理器的核心功能,如运算逻辑单元,控制单元和寄存器,同时还包含其他外设和接口,如存储器,计数器/定时器等。
在现代科技的不断发展下,单片机已经在许多不同的领域得到广泛应用。
其中之一就是在万年历方面的设计。
万年历在生活中扮演着重要的角色,因此基于单片机设计一个功能强大的万年历具有很大的实用价值。
概述:本文将介绍基于单片机的万年历设计,该设计旨在实现更精确的日期和时间显示,同时提供基本的日历功能和其他实用功能。
文中将详细介绍设计的硬件和软件部分,并讨论其中的各种功能和特点。
正文:1.硬件设计1.1主控芯片选择1.2外设接口设计1.3屏幕选择和显示控制1.4时钟电路设计2.软件设计2.1系统架构设计2.2日期和时间计算算法2.3用户界面设计2.4日历功能实现2.5其他实用功能的实现3.功能和特点3.1准确的日期和时间显示3.2自动切换夏令时3.3多种日期和时间格式支持3.4节假日提醒功能3.5闹钟功能4.应用领域4.1家用4.2办公场所4.3学校4.4研究机构4.5工业领域5.前景和挑战5.1市场需求5.2技术挑战5.3发展趋势5.4可持续发展总结:基于单片机的万年历设计是一项非常有实用价值的技术,它能够提供准确的日期和时间显示,并具备多种实用功能。
本文详细介绍了硬件和软件的设计过程,以及功能和特点,并探讨了该设计在不同领域的应用前景和挑战。
未来,随着科技的进一步发展,基于单片机的万年历设计将继续得到改进和拓展,为人们的生活和工作带来更多的便利和效益。
基于单片机的万年历设计
嵌入式系统概述题目:基于单片机的万年历设计班级:自动化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();}五、运行结果:。
基于单片机的万年历设计
目录二、实验要求 (1)三、实验设备和仪器 (1)四、实验各模块原理介绍 (1)五、流程图 (9)六、实验目的 (11)七、实验内容 (12)八、实验步骤 (12)九、心得体会 (29)二、实验要求设计一个万年历,将时钟显示在LCD1602的显示屏上并且可以进行年、月、日以及时、分、秒的设置。
此外还可以通过按键进行闹钟设置以及事件提醒功能,用蜂鸣器进行闹铃提醒。
最后附加一个温湿度检测的功能,用温湿度传感器检测室内的温湿度并将温湿度数据在显示屏上显示出来。
三、实验设备和仪器1.用 STC89C52芯片作为系统板的主控芯片2.DHT11温湿度传感器3.DS1302时钟芯片4.LCD1602显示屏四、实验各模块原理介绍4.1 STC89C52单片机STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
(1)主要特性8K字节程序存储空间;512字节数据存储空间;内带4K字节EEPROM存储空间;可直接使用串口下载;(2)器件参数1. 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。
2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机)3.工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512字节RAM6. 通用I/O 口(32个),复位后为:P1/P2/P3 是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
基于单片机的万年历设计
目录摘要 (2)第一章引言 (4)1.1 设计目的与意义 (4)1.2.1时钟芯片选择 (4)1.2.2键盘选择 (5)1.2.3显示模块选择 (6)第二章主要硬件描述 (7)2.1 89C52模块 (7)2.2 显示模块LCM12864 (8)2.2.1液晶模块概述 (8)2.2.2液晶模块特点 (8)2.3 芯片DS1302简介 (9)2.4 芯片DS18B20简介 (9)第三章硬件设计与实现 (10)3.1 单片机最小系统的设计 (10)3.2 时钟电路的设计 (11)3.3 温度采集模块的设计 (12)3.4 人机交互模块设计 (12)第四章系统软件设计与实现 (13)4.1 主要算法流程图描述 (13)4.2 LCM16824子程序的实现 (17)4.4 DS18B20子程序的实现 (19)4.5 键盘子程序的实现 (21)4.6 主程序的实现 (22)第五章测试结果分析与结果 (23)5.1 测试结果分析 (23)结束语 (24)致谢 (24)参考文献 (25)基于12864液晶显示的万年历专业班级:08电信(1)班学生姓名:杨九江指导教师:张常友职称:摘要随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。
它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。
该电路采用AT80C52单片机作为核心,功耗小,能在5V的低压工作,电压可选用3~5V电压供电。
综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
本电路为实现电子万年历的功能,采用单片机AT80C52,辅助以必要的外围电路,用C语言编写程序,并进行模块化设计而成的电子万年历系统.它通过LCD能正确显示阴阳历星期和时分秒,具有功能稳定,精确度高和可调的特点。
(完整版)基于51单片机的万年历的设计
单片机课程实训SCM PRACTICAL TRAINING目录第一部分课程设计任务书 (1)一、课程设计题目 (1)二、课程设计时间 (1)三、实训提交方式 (1)四、设计要求 (1)第二部分课程设计报告 (2)一、单片机发展概况 (2)二、MCS-51单片机系统简介 (2)三、设计思想 (3)四、硬件电路设计 (3)1. 总体设计 (3)2. 晶振电路 (4)3. 复位电路 (4)4. DS1302时钟电路 (5)5. 温度采集系统电路 (5)6. 按键调整电路 (6)7. 闹钟提示电路 (6)五、软件设计框图 (7)六、程序源代码 (8)1. 主程序 (8)2. 温度控制程序 (11)3. 日历设置程序 (13)4. 时钟控制程序 (18)5. 显示设置程序 (20)七、结束语 (23)八、课程设计小组分工 (23)九、参考文献 (23)第一部分课程设计任务书一、课程设计题目用中小规模集成芯片设计制作万年历。
二、课程设计时间五天三、实训提交方式提交实训设计报告电子版与纸质版四、设计要求(1)显示年、月、日、时、分、秒和星期,并有相应的农历显示。
(2)可通过键盘自动调整时间。
(3)具有闹钟功能。
(4)能够显示环境温度,误差小于±1℃(5)计时精度:月误差小于20秒。
第二部分课程设计报告一、单片机发展概况单片机诞生于20世纪70年代末,它的发展史大致可分为三个阶段:第一阶段(1976-1978):初级单片机微处理阶段。
该时期的单片机具有 8 位CPU,并行 I/O 端口、8 位时序同步计数器,寻址范围 4KB,但是没有串行口。
第二阶段(1978-1982):高性能单片机微机处理阶段,该时期的单片机具有I/O 串行端口,有多级中断处理系统,15 位时序同步技术器,RAM、ROM 容量加大,寻址范围可达 64KB。
第三阶段(1982-至今)位单片机微处理改良型及 16 位单片机微处理阶段民用电子产品、计算机系统中的部件控制器、智能仪器仪表、工业测控、网络与通信的职能接口、军工领域、办公自动化、集散控制系统、并行多机处理系统和局域网络系统。
基于单片机的万年历设计
目录1.引言 (1)1.1背景 (1)1.2应用价值 (1)1.3设计目的 (2)2.设计方案 (3)2.1设计任务 (3)2.2设计内容 (3)3.总体设计及核心部件简介 (3)3.1总体设计框图 (3)3.2硬件设计 (5)3.3软件设计 (6)3.3.1主程序: (6)3.3.2LCD12864显示 (27)3.3.3DS18B20程序段 (32)3.3.4DS1302程序段 (35)3.4时钟芯片DS1302 (40)3.4.1 DS1302芯片相关知识 (40)3.5温度传感器DS18B20 (43)3.5.1DS18B20芯片相关知识 (43)3.6显示LCD12864 (45)3.6.1LCD12864的基本知识 (45)4.仿真与调试 (48)6.参考文献 (50)附录1.电路硬件仿真图 (50)附录2.元器件清单 (50)1.引言1.1背景1946年2月15日,第一台电子数字计算机ENIAC问世,这标志着计算机时代的到来。
计算机的发展,经历了电子计算机、晶体管计算机、集成电路计算机、大规模集成电路计算机和超大规模集成电路计算机五个时代。
微处理器、存储器和I/O接口电路构成微型计算机,从应用形态上,微型计算机可以分为三种:多板机(系统机)、单板机和单片机。
在一片集成电路芯片上集成微处理器、存储器和I/O接口电路,从而构成了单芯片微型计算机,即单片机。
单片机体积小、控制功能强,其非凡的嵌入式应用形态对于满足嵌入式应用需求具有独特的优势!单片机技术发展十分迅速,产品种类以琳琅满目,其发展经过三个阶段:其一:单片机形成阶段。
1976年,Intel公司提出了MCS-48系列单片机。
主要特点:在单个芯片内完成了CPU、存储器和I/O接口等部件的集成;但存储器容量较小,寻址范围小(不大于4K),无串行接口,指令系统功能不强。
其二:单片机结构成熟阶段。
1980年,1976年,Intel公司提出MCS-51系列单片机。
基于单片机的万年历设计
摘要电子万年历是一种使用非常广泛日常计时工具,对现代社会越来越流行。
它可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等多种功能,是现代生活中必不可少的一种工具。
本次设计利用AT89S52单片机结合C语言来实现万年历的制作,主要模块有时钟模块-DS1302、温度模块-DS18B20、显示模块- LCD1602、红外接收模块。
该万年历主要实现在LCD显示屏上显示日期与时间、当前温度、该系统还具备设定闹钟的功能,利用遥控器来实现对时间日期以及闹铃的设定。
万年历的设计的软件方面通过C语言来编写程序并利用Keil C软件进行程序调试来实现以上功能。
关键词:DS1302;DS18B20;单片机;AT89S52AbstractElectronic calendar is a very wide daily timing tool which is more and more popular in modern society. It can be for year, month, day, week, when, minutes and seconds for timing.Also has a variety of functions such as compensation for leap. Electronic calendar is a essential item in our life.This design using C language AT89S52 single-chip combination to realize the calendar.The main modules are DS1302、temperature module -DS18B20、display module - LCD1602、infrared receiving module。
This calendar on the LCD display in the main show the date and time, the temperature.This system has set the alarm clock function, using remote control to achieve the date and time of the alarm set.The design of the software in motion by C language write programs and use the Keil software programs to debug to C than realizing function.Keywords:DS1302;DS18B20;;AT89S52目录第1章概述 (1)1.1研究的背景和意义 (1)1.2万年历的发展状况 (1)1.3研究内容 (2)1.4论文安排 (2)第2章系统的硬件设计与实现 (3)2.1电路设计框图 (3)2.2系统硬件概述 (4)2.3主要单元电路的设计 (4)2.4电路原理及说明 (13)2.5完成结果 (15)2.6本章小结 (15)第3章系统的软件设计 (16)3.1程序流程框图 (16)3.2时钟程序设计 (18)第4章指标测试 (20)4.1测试仪器 (20)4.2硬件测试 (20)4.3软件测试 (20)4.4测试结果分析与结论 (21)结论 (22)参考文献 (23)致谢 (24)附录程序 (25)第1章概述1.1 研究的背景和意义在日新月异的二十一世纪,家用电子产品的得到了迅速的发展。
基于单片机的万年历设计
摘要电子万年历是一种十分广泛的普遍计时用具,它不但可以对时间技术,还可以对日期、湿度等进行显示,所以在现代社会受到普遍应用。
本设计是一个基于51AT单片机的多功能日历显示系统,本设计能显示89C公历年、月、日,以及时、分、秒、温度、星期等信息,而且还具有日期调整、时间校准以及温度采集等功能。
系统所用的时钟日历芯片DS1302和数字式温度传感器DS18B20具有高性能、低功耗、接口简单的特点,使本系统电路简化,编程方便,同时功能也很强。
采用51AT单片机的万年历系统可以很好的改89C善传统采用模拟电路引起的计时不准确,不可靠,一致性差等问题。
本文设计是用单片机为主控制,通过电路仿真而实现的。
在Proteus7软件绘制硬件电路原理图,用Keil软件进行编程与调试,最终生成hex文件,载入单片机,从而实现仿真效果。
本文设计经过最终调试,能够正确显示年、月、日、周、时、分、秒以及温度等所需信息,并能正常使用对日期与时间的调整与校正功能。
系统使用12864LCD液晶屏显示信息,界面简洁、直观、易于操作。
关键词:万年历、单片机、51AT、DS1302、DS18B2089C1 引言人类的日常生活离不开时间,任何具有周期变化的自然现象都可用来测量时间。
而现在人们日常生活中广泛使用的是机械表、电子表、电子钟等。
随着科技的发展,电子技术和计算机应用领域不断扩大,特别是单片机的出现,是近代计算机技术发展史上的一个重要里程碑。
基于单片机的万年历结合了时钟和日历的功能,将其二者融为一体,在现实时间的同时还能显示日期和年月,它主要通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。
本系统的万年历除了显示年月日外还能准确显示温度它所处环境的温度。
本设计采用的测温元件是美国DALLAS半导体公司生产的一种智能温度传感器DS18B21,测温范围为-55~125C,最高分辨率达到0.0625C。
1.1研究的目的和意义随着电子技术的迅速发展,特别是大规模集成电路出现,给人类生活带来了根本性的变化,尤其是单片机技术的应用产品已经走进了千家万户。
基于51单片机的万年历设计流程
基于51单片机的万年历设计流程
基于51单片机的万年历设计流程可以分为以下几个步骤:
1. 确定需求:首先,你需要明确你的万年历需要有哪些功能。
例如,是否需要显示日期、时间、星期,是否需要闹钟功能,是否需要手动或自动校准等。
2. 选择硬件:选择合适的单片机作为主控制器。
常用的单片机有8051系列,如AT89C51、AT89S52等。
此外,还需要选择适当的显示模块、按键模块、实时时钟模块等。
3. 设计硬件电路:根据选择的硬件设备,设计电路原理图和PCB图。
需要
考虑单片机的引脚连接、电源供给、时钟源、外部扩展等问题。
4. 编写软件程序:根据硬件电路和需求,编写相应的软件程序。
这包括初始化程序、主程序、中断服务程序等。
5. 调试和测试:将编写好的程序下载到单片机中,进行实际测试。
根据测试结果,对程序进行调试和修改,直到满足设计要求。
6. 生产:完成调试后,就可以进行批量生产了。
在生产过程中,还需要对产品进行质量检测,确保每个产品都能正常工作。
7. 后期维护:在产品上市后,可能需要对产品进行维护或升级。
例如,如果用户在使用过程中发现了问题,或者有新的需求,就需要对产品进行改进或升级。
以上是基于51单片机的万年历设计的基本流程,但具体的步骤可能会根据具体的需求和硬件设备有所不同。
基于单片机的万年历设计_毕业设计
基于单片机的万年历设计[摘要]...................................................................................................错误!未定义书签。
[ABSTRACT] ......................................................................................错误!未定义书签。
引言. (1)1绪论 (2)1.1集成电路 (2)1.2 主要技术的背景 (2)1.2.1 发展历史 (2)1.2.2 现状 (3)1.2.3 发展趋势 (3)2器件简介 (4)2.1LED显示器 (4)2.1.1 LED显示器的结构 (4)2.1.2 LED的接线形式 (5)2.2AT89C52简介 (5)2.2.1AT89C52主要性能参数: (5)2.2.2 AT89C52单片机的功能特性概述: (6)2.3DS1302芯片 (9)2.3.1 DS1302的性能特性: (9)2.3.2DS1302数据操作原理 (10)2.474LS164-八位移位寄存器 (14)2.4.1 74LS64简介 (14)2.4.2 74LS164逻辑介绍: (15)3硬件电路 (17)3.1线路的设计 (17)3.1.1 电源转换模块 (18)3.1.2 主控制模块 (18)3.1.3 显示模块 (19)3.1.4 键盘接口设计 (20)3.2电路图的绘制 (20)3.3电路板的焊接 (20)3.4打开电源前应注意的问题 (20)4软件设计部分 (21)4.1阳历程序的设计 (21)4.2时间调整程序设计 (21)4.3阴历程序设计 (23)5调试 (28)6小结 (29)7致谢 (30)8参考文献 (31)9附录 (1)引言随着生活水平的提高,人们越来越追求人性化的事物,传统的时钟已不能满足人们的需求。
基于51单片机的电子万年历系统的设计
参考内容
一、引言
单片机是现代电子设备中的重要组成部分,广泛应用于各种嵌入式系统设计。 51单片机作为一种经典的微控制器,因其结构简单、易于编程、可靠性高等优点, 被广泛用于各种领域,如智能家居、工业控制、物联网等。万年历作为一种日常 生活中常见的计时工具,具有显示日期、时间、星期、月份等功能,对于人们的 日常生活和工作有着重要的作用。本次演示将介绍一种基于51单片机的万年历设 计。
二、系统设计
1、硬件设计
基于51单片机的万年历设计需要硬件和软件的配合实现。硬件部分主要包括 51单片机、显示模块、按键输入模块和时钟芯片等。其中,51单片机作为主控制 器,负责处理各种数据和控制信号;显示模块用于显示日期、时间等信息;按键 输入模块用于用户输入操作;时钟芯片则为系统提供实时时间。
基于51单片机的电子万年历系 统的设计
目录
01 一、概述
03 三、软件设计
02 二、硬件设计 04 四、系统调试与优化
目录
05 五、应用场景及前景
07 参考内容
06 六、结论
随着科技的不断发展,单片机已经成为现代于51单片机的电子万年历系统设计具有广泛的实际应用价值。 本次演示将详细介绍这种系统的设计过程和实现方法。
感谢观看
首先需要进行硬件搭建,包括选择合适的单片机、显示模块、按键输入模块 和时钟芯片等,并将其连接起来。需要注意的是,在搭建硬件时需要考虑各个模 块之间的接口和连接方式,以确保系统能够正常工作。
2、软件编程
在硬件搭建完成后,需要进行软件编程。首先需要进行系统初始化,包括对 单片机进行初始化和对显示进行清屏处理。然后需要进行按键处理和时钟数据处 理,以实现用户输入和实时时间的读取。最后需要进行显示处理,将处理后的数 据显示到显示模块上。
基于单片机的万年历设计
基于单片机的万年历设计随着现代科技的发展,电子设备已经成为人们生活中必不可少的一部分。
在这个信息爆炸的时代,人们对于时间的重视变得前所未有的强烈。
为了满足人们对时间的需求,开发出一款基于单片机的万年历是非常实用和有意义的。
本文将介绍基于单片机的万年历的设计原理、功能和优势。
一、设计原理基于单片机的万年历的设计原理是将传统的机械万年历通过电子元件嵌入到单片机中,通过编程控制显示当天的日期、星期、月份和年份,同时还能显示闰年、节假日等特殊信息。
这样一来,人们只需要通过触摸按钮,就可以轻松查看到当前日期的相关信息,而无需再翻看纸质万年历。
二、功能介绍基于单片机的万年历的功能非常强大,以下是其主要功能的介绍:1.日期显示:万年历能够以数字的形式直观地显示当天的日期,包括年、月、日。
2.星期显示:万年历可以精确地显示当天是星期几,帮助人们更好地安排日程。
3.月份显示:万年历还可以显示当月的名字,让人们轻松记忆每个月的名称和顺序。
4.年份显示:万年历还能够显示当前的年份,方便人们记录时间和纪念重要的年份。
5.闰年判断:万年历能够判断每个年份是否为闰年,避免人们在自己计算时出现错误。
6.节假日显示:万年历还能够预设节假日,并在节假日到来时进行提醒,帮助人们更好地安排休息和旅行计划。
除了以上功能之外,基于单片机的万年历还可以根据不同地区的需要进行个性化设置,比如显示不同的节日和纪念日,增强用户体验。
三、设计优势基于单片机的万年历相比传统的纸质万年历具有以下几个优势:1.便携性:基于单片机的万年历体积小巧,可以随身携带,随时查看日期。
而传统的纸质万年历往往比较笨重,不易携带。
2.准确性:基于单片机的万年历通过编程控制,可以实现日期的精确显示,避免了人为计算的误差。
而纸质万年历可能会受到印刷质量和人工记录错误的影响,准确性不如电子万年历。
3.交互性:基于单片机的万年历可以通过按钮进行交互,方便用户使用和操作。
用户可以自由切换显示模式,查询不同日期相关信息。
基于51单片机电子万年历设计
一、引言电子万年历是一种以数字形式实时显示日期、星期和时间等信息的电子设备。
在现代人日常生活中,万年历是一种常见的小型电子产品。
本文将基于51单片机设计一款简单实用的电子万年历。
二、设计原理1.时钟模块:采用DS1302实时时钟模块。
DS1302通过三线式串行接口与51单片机进行通信,可以实时获取日期、星期和时间等信息。
2.显示模块:使用数码管显示日期、星期和时间等信息。
共使用四块共阳数码管,采用数码管模块进行驱动,通过IO口进行数据传输。
3.按键模块:设计四个按键,分别为设置、上、下和确定。
通过按键来调整日期、星期和时间等信息。
4.闹钟功能:加入闹钟功能,可以设定闹钟时间,到达设定时间时,会有提示音。
5.温湿度传感器:加入温湿度传感器,可以实时监测环境温湿度,并在数码管上进行显示。
6.外部电源:由于51单片机工作电压较高,需要使用外部电源进行供电。
三、硬件设计1.电源电路:使用稳压电源芯片LM7805进行5V稳压,将稳压后的电压供给单片机和各个模块。
2.时钟模块:DS1302模块与单片机通过串行通信进行连接。
时钟模块上的时钟信号、数据信号和复位信号分别与单片机的IO口相连。
3.数码管显示模块:共有四块共阳数码管,通过595芯片进行驱动。
单片机的IO口与595芯片的串行、时钟和锁存引脚相连,595芯片的输出引脚与数码管的各段相连。
4.按键模块:通过电阻分压来实现按键功能,按下按键时,相应的IO口会被拉低。
5.闹钟功能:使用蜂鸣器来产生提示音,通过IO口与单片机相连。
6.温湿度传感器:使用DHT11温湿度传感器。
传感器的数据引脚通过IO口与单片机相连。
四、软件设计1.时钟显示:通过DS1302获取日期、星期和时间等信息,将其转化为数码管需要的编码格式,并通过595芯片进行显示。
2.按键操作:对按键进行扫描,根据按键的不同操作进行相应的处理。
例如按下设置键进行日期和时间的设置,按下上下键进行数值的变化,按下确定键进行数值的确认。
基于单片机的万年历设计
目录1 前言 (1)1.1开发背景 (1)1.2设计目标 (1)1.3设计思路 (2)2 系统硬件简介 (4)2.1AT89C51单片机的介绍 (4)2.1.1 AT89C51单片机的概述 (4)2.1.2 AT89C51单片机引脚及其功能 (5)2.2DS1302时钟芯片的结构及工作原理 (8)2.3半导体数码管和七段字形译码器 (12)3 总体电路设计 (15)3.1功能要求 (15)3.2系统总体设计 (15)3.3硬件设计电路图 (16)3.3.1 电子万年历的电路图 (16)3.3.2 输入/输出端口模块 (17)3.3.3 时钟模块和按键模块 (19)4 系统的软件设计 (20)4.1流程图的设计 (20)4.2程序设计 (20)5 程序的调试与软件仿真 (24)5.1程序的调试 (24)5.1.1 Keil μVision软件简介 (24)5.1.2 万年历的Keil程序调试 (25)5.2软件仿真 (28)5.2.1 Proteus软件简介 (28)5.2.2 万年历的Proteus电路图 (29)5.2.3 万年历的Proteus软件仿真 (33)结束语 (36)致谢 (37)参考文献 (38)附录I: (40)1 前言1.1 开发背景随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑。
本文通过对一个基于单片机的设计研究,以实现世界时间及公历电子万年历,可以说,电子万年历的出现是人类社会发展史上的又一个伟大转折点。
万年历是采用数字电路实现对时,分,秒数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。
基于单片机的万年历设计
摘要本文介绍了基于AT89S52单片机的多功能电子万年历的硬件结构和软硬件设计方法。
本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。
系统以AT89S52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。
温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602A液晶显示模块,可以在LCD上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。
此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
关键字:万年历温度计液晶显示ABSTRACTThis paper introduces the based on AT89S52 multi-function electronic calendar of the hardware structure and software and hardware design method. This design by data display module, temperature acquisition module, time processing module and set module four modules. With AT89S52 single-chip microcomputer system for the controller to serial clock calendar chip DS1302 record calendar and time, it can be to date and time, minutes and seconds for the time, also has a leap year compensation and other functions. Temperature gathering choose DS18B20 chip, calendar by using object digital display, data showed that the 1602 A liquid crystal display module, can be in the LCD shows at the same time year, month, day, Sunday, when, minutes and seconds, still have time calibration etc. Function. This calendar has read the convenient, direct display, functional diversity, simple circuit, low cost, and many other advantages, has a broad market prospect.Key words:Perpetual Calendar thermometer LCD display目录摘要 (I)ABSTRACT (II)前言 (IV)1 绪论 (1)1.1 课题研究的背景 (1)1.2课题的研究目的与意义 (1)1.3课题解决的主要内容 (1)2 系统的方案设计与论证 (2)2.1单片机芯片设计与论证 (3)2.2按键控制模块设计与论证 (3)2.3时钟模块设计与论证 (3)2.4温度采集模块设计与论证 (4)2.5显示模块模块设计与论证 (4)3 系统硬件的设计 (5)3.1 AT89S51单片机 (5)3.2时钟芯片DS1302接口设计与性能分析 (8)3.3温度芯片DS18B20接口设计与性能分析 (11)3.4 LCD显示模块 (15)3.5按键模块设计 (17)3.6复位电路的设计 (17)4 系统的软件设计 (19)4.1主程序流程图的设计 (19)4.2 程序设计 (20)5 系统的机体设计 (24)5.1系统的模块组成 (24)5.2 功能实现 (24)结论 (26)参考文献 (27)致谢 (28)附录 (29)前言随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
基于单片机的万年历设计
基于单片机的万年历设计基于单片机的万年历设计一. 题目要求1. 能星期、时、分,年、月、日正常显示,且秒闪。
2. 按下KEY1,进入设置状态,根据按键次数可判断调整哪个(星期、时、分、年、月、日)。
调整星期、时、分时,对应位闪烁且四灯灭。
调整年、月、日时,对应位闪烁且四灯灭。
3.在设置状态下按下KEY2,加时间。
4. 在设置状态下按下KEY3,减时间。
5. 在设置状态下按下KEY4,返回(正常显示)。
二.题目分析1. 硬件部分设计。
首先要设计一个最小系统,包括晶振电路,按键复位电路。
然后是按键电路和ISP 电路,显示电路。
其中显示电路就要考虑各端口的分配。
包括片选,输出端口。
2. 软件部分设计。
根据硬件电路分析,要考虑怎么显示,考虑中断,定时等。
还要考虑年月日的算法问题。
三.功能描述1. 能正常显示时间(星期、时、分,年、月、日),两种状态以10S 时间切换。
2. 能调整时间。
四.方案论证1. 单片机芯片的选择方案和论证方案一:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间, 能于3V 的超低压工作, 而且与MCS-51系列单片机完全兼容, 但是运用于电路设计中时由于不具备ISP 在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
方案二:采用AT89S52, 片内ROM 全都采用Flash ROM ;能以3V 的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。
所以选择采用AT89S52作为主控制系统. 2. 显示模块选择方案和论证方案一:采用LED 发光二极管, 读书较困难。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的万年历设计设计摘要现代电子万年历在家庭居室、学校、车站和广场使用的越来越广泛,给人们的生活、学习、工作带来了极大的方便。
针对以往的电子万年历断电后的需要重新调整时间与日期,并且计时误有差现象。
本系统设计采用了实时芯片(DS1302)作为计时器件,该芯片内部自带晶振荡器,这样就有效的保证了计时的精确性,并且内部自带电池使得在断电的情况下能够继续的更新时间信息。
本设计采用了AT89C51作为主要控制器,为了提高电路的使用性加入了报时和闹钟功能。
电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。
它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。
该电路采用AT89C51单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。
在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。
在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。
在编写程序过程中发现以现有的相关知识要独自完成编写任务困难重重,在老师和同学的帮助下才完成了程序部分的编写。
万年历的设计过程在硬件与软件方面进行同步设计。
硬件部分主要由AT89C51单片机,LCD显示电路,以及调时按键电路等组成。
在单片机的选择上本人使用了AT89C51单片机,该单片机适合于许多较为复杂控制应用场合。
最后总在老师同学的帮助以及自己的努力下完成了此次电子万年历的设计。
AbstractE-calendar-bedroom at home,schools,stations and more extensive use of plaza for people’s lives,study,work great convenience.Electronics calendar for the past need to re-adjust after power-off time and date,and time is a big error,Designed the system using real-time clockchip(DS1302) as a time parts,the chip comes with an internal crystal oscillator,so that effectively guarantee the accuracy of the time and hang own internal battery power makes the situation will continue to update the time information.This design uses AT89C51 as the main controller,in order to improve the practicality of the cricuit add temperature measurement circuit ,timekeeping and alarm funtinons.E-calendar day time is a very wide range of tools, increasingly popular in modern society. It can be year, month, day, Sunday, hours, minutes, seconds for time, but also has a leap year compensation to a variety of functions, and the DS1302's long life, small error. For the digital electronic calendar using an intuitive digital display can simultaneously display year, month, day, Sunday, hours, minutes, seconds, and temperature and other information, but also a time-calibration and other functions. The circuit uses AT89C51 microcontroller as the core, power consumption, low-voltage work in 3V, the voltage can choose 3 ~ 5V voltage supply.The design is based on 51 series of microcontrollers to the design of electronic calendar, you can display date information on when the minutes and seconds, and weeks, with adjustable date and time functions. At the same time in the design of the theoretical basis of the MCU and peripheral expansion of knowledge of the more comprehensive preparation. The hardware and software design, there is no good basic knowledge and practical experience will be greatly limited, each feature is required to achieve the kind of hardware, procedures, how to write, how to implement such algorithms, there is no certain foundation can not be good implementation. Found during the preparation process to the existing knowledge to complete the preparation of the task alone difficult, In the help of teachers and students to complete the program part of the preparation.Calendar of the design process in hardware and software to synchronize the design. Hardware mainly by the AT89C51 microcontroller,LED display circuit, and the tune composed of the circuit when the button. In the SCM choice I used the AT89C51 microcontroller, which is suitable for many of the more complex control applications. The final overall the teacher to help students, as well as their own efforts to complete the design of the electronic calendar.目录【摘要】 (1)第一章、设计要求与方案论证1.1设计要求 (5)1.2 系统基本方案选择和论证 (5)1.2.1单片机芯片的选择方案和论证 (5)1.2.2 显示模块选择方案和论证 (6)1.2.3时钟芯片的选择方案和论证………………………………………………… (6)1.3 电路设计最终方案决定 (7)第二章、系统的硬件设计与实现2.1 电路设计框图 (7)2.2主要单元电路的器件 (7)2.2.1单片机主控制模块 (7)2.2.2时钟电路模块 (10)2.2.3显示电路 (13)2.2.4按键电路………………………………………………… (14)2.2.5 晶振电路 (15)第三章、日历算法3.1电子日历优化算法 (16)第四章、系统的软件设计4.1程序流程框图 (18)第五章、软件仿真5.1仿真过程 (21)5.2显示模块的设计 (22)第六章、总结 (23)参考文献 (24)致谢 (25)附录一:系统程序清单 (26)第一章、设计要求与方案论证1.1 设计要求:设计一个能够显示年、月、日、时、分、秒、星期功能的数字万年历。
采用LCD显示年、月、日、时、分、秒、星期,并具备以下功能:①具备年、月、日、星期、时、分、秒校准功能;②设置按键为选择,按键为加,按键为减,按键为确定;③自动将日期时间调整控制在合理范围内,星期调整会在调整年月日时自动完成;④星期及时间信息,调整时钟时,所选择的调整对象反白显示。
1.2 系统基本方案选择和论证1.2.1单片机芯片的选择方案和论证:随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。
集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-Chip Microcomputer)。
而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元等。
因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业控制系统、数据采集系统、自动测试系统、万年历电子表等。
单片机的出现,并在各个技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关:1、单片机构成的应用系统有较大的可靠性。