基于单片机控制的LCD显示万年历制作
- 格式:pdf
- 大小:172.99 KB
- 文档页数:3
单片机课程设计报告题目: 基于单片机的LCM1602液晶控制——万年历显示设计所在系部:信息与电气工程所在专业:通信本所在班级: 1001 姓名:怀宝学号:指导教师:勇完成时间: 2013年 7月 3日基于单片机的LCM1602液晶控制——万年历显示设计1.设计目的该设计是基于AT89C52单片机的电子万年历系统,采用LCD1602液晶屏实现显示。
显示年月日星期温度等,双行显示,。
显示年、月、日、星期、时间,可设置,设置功能。
综上所述此时钟具有读取方便、显示直观、功能多样、电路简洁、等优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
2.设计原理及相关说明设计原理:利用DS1302读取系统中的日期以及时间信息,并分别利用P1.1端口和P3.3端口将相关信息传送至STC12C5A60S2主芯片之中,利用P0端口使之显示于LCD1602液晶显示屏上,四个按键分别置于P1口的5、6、7端口可以对时间进行控制修改。
详细请参阅第三节的芯片介绍。
2.2总体设计框图日历时钟系统设计框图如图1所示:图1 电子万年历系统设计框图3 各芯片的设计及其调用3.1 STC12C5A60S2单片机主控模块STC12C5A60S2简介STC12C5A60S2是STC生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换1、增强型8051CPU,1T(1024G),单时钟机器周期2、工作电压5.5-3.5V3、1280字节RAM4、通用I/O口,复位后为:准双向口/弱上拉可设置成四种模式:准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA5、有EEPROM功能6、看门狗7、部集成MAX810专用复位电路8、外部掉电检测电路9、时钟源:外部高精度晶体/时钟,部R/C振荡器常温下部R/C振荡器频率为:5.0V单片机为:11~17MHz 3.3V单片机为:8~12MHz 针对电机控制,强干扰场合。
1 课设所需软件简介1.1 Keil uVision4的简要介绍2009年2月发布Keil μVision4,Keil μVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。
新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。
新版本支持更多最新的ARM芯片,还添加了一些其他新功能。
2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。
Keil C51开发系统基本知识Keil C51开发系统基本知识1. 系统概述Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍Keil C51开发系统各部分功能和使用。
2. Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及C51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
使用独立的Keil仿真器时,注意事项:* 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
一、引言万年历是一种显示当前日期和时间的器件或软件。
随着科技的发展,电子产品普及率愈来愈高,基于单片机的万年历设计成为了一种非常受欢迎的设计方案。
本文将介绍一种基于单片机的万年历设计。
二、设计原理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可持续发展总结:基于单片机的万年历设计是一项非常有实用价值的技术,它能够提供准确的日期和时间显示,并具备多种实用功能。
本文详细介绍了硬件和软件的设计过程,以及功能和特点,并探讨了该设计在不同领域的应用前景和挑战。
未来,随着科技的进一步发展,基于单片机的万年历设计将继续得到改进和拓展,为人们的生活和工作带来更多的便利和效益。
基于AT89S52电子万年历的设计姓名:XXX学号:XXXXXX系别:物理与电子工程系专业:08级电子信息工程指导教师姓名:XX指导老师职称:讲师指导教师单位:物理与电子工程系选题意义:电子万年历是实现对年,月,日,时,分,秒数字显示的计时装置,广泛用于个人家庭,车站,码头,办公室,银行大厅等场所,成为人们日常生活中的必需品。
数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。
钟表的数字化给人们生产生活带来了极大的方便,在此基础上完成的万年历精度高,功能易于扩展。
可扩展成为诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等电路。
所有这些,都是以钟表数字化为基础的。
因此,研究数字时钟及扩大其应用有着非常现实的意义。
本设计就是数字时钟简单的扩展应用。
研究现状:现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好,具有造价低廉、携带方便、易于校对、适合众多年龄段人群使用。
设计目标:1、能显示年、月、日、时、分、秒、星期2、能对时间进行手动修正3、采用24小时制4、使用LCD显示时间参数附加目标:加入蜂鸣器,实现播放音乐功能,据实际情况而定。
方案和论证:方案一:可采用ALTERA公司的FLEX10K系列PLD器件。
设计起来结构清晰,各个模块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。
但是考虑到本设计的特点,EDA在功能扩展上比较受局限,而且EDA 占用的资源也相对多一些。
从成本上来讲,用可编程逻辑器件来设计也没有什么优势。
摘要在寒假期间我用一周时间完成了这个液晶万年历,它可以显示年月日、时分秒、以及温度(可上下限报警),可以对时间进行加一或减一调整,并加入了闰、平年时间调整,方便可行,已经调试成功。
考虑到成本和方便,本作品采用了STC89c52和DS18B20,计时用的是51单片机自带的十六位定时器/计数器T0,尽管对时间进行了误差调整但是还是有一定的误差,考虑到学校后改用DS1302时钟芯片,进一步减小误差。
温度显示精度达到0.1摄氏度。
关键词:单片机 DS18B20 万年历温度1.硬件工作介绍(1)上电自动复位及手动复位电路STC89c52单片机的RST端外部复位有两种操作方式:上电自动复位和按键手动复位。
本设计用上电自动复位以及手动复位下结合的方式外接电路(见附图)。
(2)时钟振荡电路作品中采用12M晶振,其连接方法如图所示,其中电容的值都为22pF。
(3)1602液晶显示接口1602采用标准的16脚接口(见附图),其中:第1脚:GND为地电源第2脚:VCC接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS 和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:VCC第16:GND(4)键盘键盘是通过S3(P3.2),S4(p3.3),S5(p3.4)对时钟进行调整,其S3选择要调整的对象如时,分,日,月等等,并在液晶屏上显示所选的对象。
S4对所选中的对象进行加一调整,而S5对所选对象进行减一调整。
基于51单片机的液晶显示万年历设计摘要随着社会的进步和发展,电子万年历作为日常计时工具被广泛地应用。
此电子万年历在硬件方面主要采用STC89C51单片机作为主控核心,由DS1302时钟芯片提供时钟及1602LCD液晶显示屏显示。
STC89C51单片机是由宏晶公司公司生产的,功耗小,电压可选用3.4v~5.5v电压供电;DS1302时钟芯片是美国DALLAS公司推出的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,而且DS1302的使用寿命长,误差小;对于数字电子万年历采用直观的数字显示,数字显示是采用的1602LCD液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒、温度等信息。
此外,该电子万年历在软件方面主要包括日历程序、时间调整程序,显示程序等。
所有程序编写完成后,在Kei l软件中进行调试,确定没有问题后,烧写到单片机上进行测试。
本次课程设计主要由时钟芯片DS1302和温度传感器DS18B20采集数据到单片机进行处理再通过LCD1602显示出来,本设计主要研究了液晶显示器LCD及时钟芯片DS1302,温度传感器DS18B20与单片机之间的硬件互联及通信,对数种硬件连接方案进行了详尽的比较。
关键词:单片机;DS1302;DS18B20;LCD1602--ABSTRACTWith the social progress and development, Electronic calendar is widely used as a dailytiming tool. The electr oniccalendarinhardware using STC89C51microcon troller as themain controlcenter, provided by the DS1302 clock chipand 1602LCD LCD display.STC89C51mic rocontroller is produced by themacrocrystal company, small power consumption,the voltagecan bechoosen among 3.4V ~5.5V for power supply;DS1302clock chip is alowpower real-time clockchip produced by DALLAS, it canbe atimeofyears,months,days,weeks,hours,minute s,seconds, andDS1302 hasa longservicelife.The error issmall;forthe digital electronic calendarusi ngvisual digitaldisplay,1602LCDdigital display is used todisplay LCD screenthat candisplay years,mo nths, days, weeks, hours,minutes and seconds, temperat ureandother information. In addition,the electronic calendar mainly includescalendarprogram,time to adjus tprocedures,displayprogram etc insofeware. After the completionof all the procedures,in theKeil softwa redebugging, determine no problem after,and burning to themicrocontrollertest.--The curriculum design mainly bytheclock chip DS1302andtemperaturesensor DS18B20 collectingdata to the microcontrollerfor processing andthen through the LCD1602 display, thisdesign mainly studies the liquid crystal display LCD and theclockchip DS1302, thehardware connection and communication betweenthete mperature sensorDS18B20 and the MCU, a number of hardwareconnection scheme foradetailed comparison.Key words:SCM,DS1302,DS18B20,LCD1602--目录1-第一章绪论ﻩ-1.1 单片机的概述ﻩ-1-1.1.1 单片机的概念ﻩ-1-1.1.2单片机的特点 --------------------------------------------------------------------------------- -1-1.2 课题背景 ---------------------------------------------------------------------------------------------------- -1-1.3 课题内容 ----------------------------------------------------------------------------------------------- -2- 第二章设计要求和方案 ----------------------------------------------------------------------- 错误!未定义书签。
基于单片机控制的电子万年历设计1设计要求功能:电子万年历能显示阳历、时间、室温,并能表明是否是闰年,通过按键实现切换。
本课题以单片机为核心,设计并制作出智能LCD电子钟,具有以下基本功能:计时、秒、分、时、天、周、月、年;能进行时间、年份、日期、星期显示;能区分是否闰年;能检测室温并显示。
扩展功能部分可以通过控制按键使时间暂停、可以调整校正时间并通过按键切换轮流显示时间、年份、日期、星期。
2方案论证与对比2.1液晶显示器控制方式选择采用LCD液晶显示,具有超精致影像画质、十足平面显示、节省空间、节省能源等优点,但按控制方式不同,LCD可分为被动矩阵式LCD及主动矩阵式LCD两种。
可根据不同需要采用不同的方式。
方案一被动矩阵式LCD被动矩阵式LCD在亮度及可视角方面受到较大的限制,反应速度也较慢。
由于画面质量方面的问题,使得这种显示设备不利于发展为桌面型显示器,但成本低廉。
方案二主动矩阵式LCD目前应用比较广泛的主动矩阵式LCD,也称TFT-LCD(Thin Film Transistor-LCD,薄膜晶体管LCD)。
TFT液晶显示器是在画面中的每个像素内建晶体管,可使亮度更明亮、色彩更丰富及更宽广的可视面积。
与CRT显示器相比,LCD显示器的平面显示技术体现为较少的零件、占据较少的桌面及耗电量较小,但CRT技术较为稳定成熟。
相比之下,本设计当中选用方案二主动矩阵式LCD方式。
2.2 并行接口动态显示电路选择可以采取串行接口动态显示电路或者并行接口动态显示电路,比较如下:方案一串行接口动态显示电路利用8051系列单片机内部的串行接口,也可以实现动态显示及键盘处理。
这样不但可以节省8051的并行I/O接口,而且在大多数不用单行口的情况下,可免于扩展接口。
在这种方法中,串行口工作在方式0状态,相当于一个移位寄存器,其输入/输出通过RXD引脚,移位脉冲则由TXD输出。
每次输入或输出8位数据(一个字节)。
基于单片机万年历设计基于单片机的万年历设计二、实验要求设计一个万年历,将时钟显示在LCD1602的显示屏上并且可以进行年、月、日以及时、分、秒的设置。
此外还可以通过按键进行闹钟设置以及事件提醒功能,用蜂鸣器进行闹铃提醒。
最后附加一个温湿度检测的功能,用温湿度传感器检测室内的温湿度并将温湿度数据在显示屏上显示出来。
三、实验设备和仪器1.用STC89C52芯片作为系统板的主控芯片2.DHT11温湿度传感器3.DS1302时钟芯片4.LCD1602显示屏四、实验各模块原理介绍4.1STC89C52单片机STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flah存储器。
STC89C52使用经典的MCS-51内核,具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flah,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
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口用时,需加上拉电阻。
8.具有EEPROM功能9.共3个16位定时器/计数器。
即定时器T0、T1、T2。
10.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒。
11.通用异步串行口(UART),还可用定时器软件实现多个UART。
12.工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)13.PDIP封装1、STC89C52单片机引脚图图4.1STC89C52单片机引脚图①主电源引脚(2根) VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线②外接晶振引脚(2根) 某TAL1(Pin19):片内振荡电路的输入端某TAL2(Pin20):片内振荡电路的输出端③控制引脚(4根) RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
……………………. ………………. …………………山东农业大学 毕 业 论 文 题目:基于单片机控制的液晶显示万年历设计院 部 信息科学与工程学院专业班级 电子信息科学与技术3班届 次 2012 届学生姓名学 号指导教师二O 一二 年 六 月 十五 日装订线 ……………….……. …………. …………. ………目录1绪论 (1)1.1课题研究的背景 (1)1.2文章结构介绍 (1)2 单片机及液晶的简单介绍 (2)2.1 单片机的简介 (2)2.1.1 单片机的含义 (2)2.1.2 单片机的发展过程 (2)2.2 液晶的简介 (3)2.2.1 液晶的含义及用途 (3)2.2.2 液晶显示技术的发展 (4)3 单片机系统的硬件设计 (5)3.1单片机系统的原理框图 (5)3.2单片机系统的模块说明及电路图 (5)3.3 单片机系统的整体电路设计 (7)3.4 单片机系统的各器件使用说明 (7)3.4.1 AT89C51单片机的简要说明 (7)3.4.2 DS18B20的简要说明 (13)3.4.3 DS1302的介绍 (17)3.4.4 12864液晶的介绍 (21)4 单片机系统的软件设计 (26)4.1单片机系统的程序框图及代码 (26)4.1.1 单片机控制模块的软件设计 (26)4.1.2 按键模块的软件设计 (27)4.1.3 温度检测模块的软件设计 (29)4.1.4时钟模块的软件设计 (29)4.1.5 液晶显示模块的软件设计 (30)4.2单片机系统的实现情况 (32)5 总结 (34)参考文献 (35)致谢 (36)Contents1Foreword (1)1.1 Research Background (1)1.2 Introduction of essay’s structure (1)2 The simple introduction of the MCU and LCD (2)2.1 MCU Introduction (2)2.1.1 The meaning of the MCU (2)2.1.2 MCU development process (2)2.2 LCD introduction (3)2.2.1 The meaning and usage of the LCD (3)2.2.2 The development of LCD technology (4)3 The hardware design of MCU system (5)3.1 The block diagram of MCU system (5)3.2 MCU module description and schematic circuit diagram (5)3.3 The whole circuit design of the MCU system (7)3.4 The instructions of MCU system’s devices (7)3.4.1 A brief description of the AT89C51 MCU (7)3.4.2 A brief description of the DS18B20 (13)3.4.3 DS1302 introduction (17)3.4.4 The introduction of 12864 LCD (21)4 Software designMCU system (26)4.1 MCU system’s block diagrams and codes (26)4.1.1 MCU control module software design (26)4.1.2 Key module software design (27)4.1.3 Software design of the temperature detection module (29)4.1.4 Software design of the clock module (29)4.1.5 Software design of the LCD module (30)4.2 The realization of the MCU system (32)5 Summary (34)References (35)Acknowledgements (36)基于单片机控制的液晶显示万年历设计2008级电子信息科学与技术03班指导老师【摘要】相比于通用式计算机,单片机凭借其低成本、低功耗、可靠性高、控制性强等多种优点,已经广泛渗透到我们生活的各个领域。
单片机课程设计报告题目: 基于单片机的LCM1602液晶控制——万年历显示设计所在系部:信息与电气工程所在专业:通信本所在班级: 1001 姓名:曹怀宝学号: 20093615276 指导教师:陈勇完成时间: 2013年 7月 3日基于单片机的LCM1602液晶控制——万年历显示设计1.设计目的该设计是基于AT89C52单片机的电子万年历系统,采用LCD1602液晶屏实现显示。
显示年月 日星期温度等,双行显示,。
显示年、月、日、星期、时间,可设置,设置功能。
综上所述此时钟具有读取方便、显示直观、功能多样、电路简洁、等优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
2.设计原理及相关说明设计原理:利用DS1302读取系统中的日期以及时间信息,并分别利用P1.1端口和P3.3端口将相关信息传送至STC12C5A60S2 主芯片之中,利用P0端口使之显示于LCD1602液晶显示屏上,四个按键分别置于P1口的5、6、7端口可以对时间进行控制修改。
详细请参阅第三节的芯片介绍。
2.2总体设计框图日历时钟系统设计框图如图1所示:图1 电子万年历系统设计框图3 各芯片的设计及其调用3.1 STC12C5A60S2 单片机主控模块STC12C5A60S2简介STC12C5A60S2是STC 生产的单时钟/机器周期(1T )的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成DS1302At89C52键扫描电路LCD 1602DS18B20蜂鸣器MAX810专用复位电路,2路PWM,8路高速10位A/D转换1、增强型8051CPU,1T(1024G),单时钟机器周期2、工作电压5.5-3.5V3、1280字节RAM4、通用I/O口,复位后为:准双向口/弱上拉可设置成四种模式:准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA5、有EEPROM功能6、看门狗7、内部集成MAX810专用复位电路8、外部掉电检测电路9、时钟源:外部高精度晶体/时钟,内部R/C振荡器常温下内部R/C振荡器频率为:5.0V单片机为:11~17MHz 3.3V单片机为:8~12MHz 针对电机控制,强干扰场合。
基于51单片机的万年历设计流程
基于51单片机的万年历设计流程可以分为以下几个步骤:
1. 确定需求:首先,你需要明确你的万年历需要有哪些功能。
例如,是否需要显示日期、时间、星期,是否需要闹钟功能,是否需要手动或自动校准等。
2. 选择硬件:选择合适的单片机作为主控制器。
常用的单片机有8051系列,如AT89C51、AT89S52等。
此外,还需要选择适当的显示模块、按键模块、实时时钟模块等。
3. 设计硬件电路:根据选择的硬件设备,设计电路原理图和PCB图。
需要
考虑单片机的引脚连接、电源供给、时钟源、外部扩展等问题。
4. 编写软件程序:根据硬件电路和需求,编写相应的软件程序。
这包括初始化程序、主程序、中断服务程序等。
5. 调试和测试:将编写好的程序下载到单片机中,进行实际测试。
根据测试结果,对程序进行调试和修改,直到满足设计要求。
6. 生产:完成调试后,就可以进行批量生产了。
在生产过程中,还需要对产品进行质量检测,确保每个产品都能正常工作。
7. 后期维护:在产品上市后,可能需要对产品进行维护或升级。
例如,如果用户在使用过程中发现了问题,或者有新的需求,就需要对产品进行改进或升级。
以上是基于51单片机的万年历设计的基本流程,但具体的步骤可能会根据具体的需求和硬件设备有所不同。
一、引言万年历是一种日历工具,能够显示任何一个公历日期的星期、年、月和日,并且能够自动判断闰年。
在本设计中,我们将使用51单片机设计一个基于LCD显示屏的万年历。
它将能够显示当前的日期和星期,并且具备一些附加功能,如闹钟、计时器等。
二、设计目标本设计的主要目标是通过51单片机实现以下功能:1.显示当前日期和星期:使用LCD显示屏显示当前的年、月、日和星期。
2.闰年判断:根据公历算法判断是否为闰年,并在显示屏上进行标识。
3.闹钟功能:设置一个闹钟时间,并在指定时间到达时发出提醒。
4.计时器功能:实现一个简单的计时器,能够显示经过的时间。
三、系统框图```+------------------+51单片+---+----------+---++--v--++--v--+LCD ,, Keypa+-----++-------+```四、系统设计1.时钟模块:使用定时器模块实现系统的主时钟,根据预设的频率进行中断,更新时间和日期。
2.LCD模块:使用51单片机的IO口控制LCD显示屏,实现对日期、星期和其他功能的显示。
3.按键模块:通过按键模块实现对系统功能的操作,包括设置闹钟、切换功能等。
4.闹钟模块:根据预设的时间进行判断,判断是否到达闹钟时间并触发相应的操作。
5.计时器模块:通过计时器模块实现计时功能,显示经过的时间。
五、代码实现以下是基于51单片机的万年历的主要代码实现的伪代码:1.时钟模块:```初始化定时器;定时器中断中获取当前的日期和时间;```2.LCD模块:```定义LCD引脚;初始化LCD显示;定时刷新LCD内容;```3.按键模块:```定义按键引脚;初始化按键;判断按键事件并执行相应的操作;```4.闹钟模块:```设置闹钟时间;判断当前时间是否与闹钟时间相等;触发相应操作;```5.计时器模块:```设置起始时间;计算当前时间与起始时间的差值;显示计时时间;```六、实验结果通过上述的代码实现和电路连接,我们可以成功地实现了基于51单片机的万年历。
基于单片机的万年历设计随着现代科技的发展,电子设备已经成为人们生活中必不可少的一部分。
在这个信息爆炸的时代,人们对于时间的重视变得前所未有的强烈。
为了满足人们对时间的需求,开发出一款基于单片机的万年历是非常实用和有意义的。
本文将介绍基于单片机的万年历的设计原理、功能和优势。
一、设计原理基于单片机的万年历的设计原理是将传统的机械万年历通过电子元件嵌入到单片机中,通过编程控制显示当天的日期、星期、月份和年份,同时还能显示闰年、节假日等特殊信息。
这样一来,人们只需要通过触摸按钮,就可以轻松查看到当前日期的相关信息,而无需再翻看纸质万年历。
二、功能介绍基于单片机的万年历的功能非常强大,以下是其主要功能的介绍:1.日期显示:万年历能够以数字的形式直观地显示当天的日期,包括年、月、日。
2.星期显示:万年历可以精确地显示当天是星期几,帮助人们更好地安排日程。
3.月份显示:万年历还可以显示当月的名字,让人们轻松记忆每个月的名称和顺序。
4.年份显示:万年历还能够显示当前的年份,方便人们记录时间和纪念重要的年份。
5.闰年判断:万年历能够判断每个年份是否为闰年,避免人们在自己计算时出现错误。
6.节假日显示:万年历还能够预设节假日,并在节假日到来时进行提醒,帮助人们更好地安排休息和旅行计划。
除了以上功能之外,基于单片机的万年历还可以根据不同地区的需要进行个性化设置,比如显示不同的节日和纪念日,增强用户体验。
三、设计优势基于单片机的万年历相比传统的纸质万年历具有以下几个优势:1.便携性:基于单片机的万年历体积小巧,可以随身携带,随时查看日期。
而传统的纸质万年历往往比较笨重,不易携带。
2.准确性:基于单片机的万年历通过编程控制,可以实现日期的精确显示,避免了人为计算的误差。
而纸质万年历可能会受到印刷质量和人工记录错误的影响,准确性不如电子万年历。
3.交互性:基于单片机的万年历可以通过按钮进行交互,方便用户使用和操作。
用户可以自由切换显示模式,查询不同日期相关信息。
单片机液晶显示“万年历”一、设计任务利用STC89C52RC单片机设计一个具有如下功能的电子万年历:(一)、能够显示年、月、日、时、分、秒、星期(二)、能正确显示闰年日期(三)、用独立键盘进行校时二、硬件设计1、系统框图按照系统设计的要求和功能,将系统分为主控模块、时钟电路模块、按键扫描模块、LCD显示模块、蜂鸣器电路、电源电路、复位电路、晶振电路几个模块,系统框图如图1所示。
主控模块采用STC89C52RC单片机,按键模块用5个按键,用于调整时间和设定闹钟,显示模块采用LCD1602,时钟电路模块采用DS1302实时时钟实现对时间,日期的操作。
图1 基于AT89C52RC单片机的电子万年历系统框图2、原理图基于STC89C52RC单片机的电子万年历硬件仿真电路图如图10所示,系统由STC89C52RC单片机、按键扫描电路、显示电路、时钟电路、晶振电路、复位电路、蜂鸣器电路组成。
图2 电子万年历仿真图3、各部分介绍(1)、主控模块控制芯片使用STC89C52,控制系统如下图:图3 STC89C52RC主控模块主控制芯片采用STC89C52,系统包括晶振电路、复位电路、下载接口。
(2)、时钟芯片时钟芯片使用DS1302,该模块电路原理图如下图:图4 DS1302时钟电路时钟电路采用的是ds1302芯片,DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
工作电压与单片机的输入电压比较适合。
上面是它的一些基本的应用介绍。
下面是它的引脚的描述:图5 DS1302引脚下面是DS1302的时钟寄存器。
我们要读取的时间数据就是从下面这些数据寄存器中读取出来的。
当我们要想调整时间时,可以把时间数据写入到相应的寄存器中就可以了。
专科毕业设计说明书(论文)第I 页共I 页目录1 绪论 (1)1.1 本课题的设计目标 (1)1.2 显示方案的选择 (1)1.3 本课题研究的意义 (2)2 各器件的介绍 (3)2.1 STC89C51的介绍 (3)2.2 LCD的介绍 (11)2.3 LCD原理与应用 (12)3 硬件的设计 (18)3.1 电路的设计及元件 (18)3.2 电路的原理 (18)4 系统软件设计 (19)4.1 程序流程图的设计 (19)4.2 按键程序设计 (20)4.3 试验仿真 (22)致谢 (24)附录一:源程序: (25)附录二:总原理图 (35)1 绪论1.1 本课题的设计目标随着人们生活水平的提高,各种事物都在朝着电子化的方向发展,万年历更是如此,纸质万年历已逐渐被人们淘汰,取而代之的则是电子万年历。
因为电子万年历显示信息量大,方便存储,体积小等优点所以逐渐被人们所接受。
而此次课题所要达到的目标则是朝着人们的需求发展,万年历在一块小的LCD1602液晶上显示,可以通过三个功能按键来实现调整年份日期时间等信息,从而满足人们的需求。
1.2 显示方案的选择显示有很多种,比如数码管显示,其中还分为共阳数码管和共阴数码管, LED点阵屏显示,还有LCD液晶显示。
每种显示各有优缼点,正面就比较这几种方案。
方案一:使用数码管显示。
数码管分为两类,一类是共阳极的数码管,另一类是共阴极的数码管,共阳极数码管就是把阴极与单片机连接,而把所有的阳极连接在一起作为公共端。
而共阴数码管恰恰相反,它把阳极与单片机连接,而把所有的阴极连接在一起作为公共端,所以在写程序时这两种数码管的编码恰好相反。
数码管具有显示清晰的优点,但它所占用的单片机资源比较多,而且显示信息量不大,只能显示一些物有的数字,字母等,不能显示汉字等信息。
方案二:使用LED点阵屏的显示。
相对于数码管,LED显示屏则克服了数码管的很多缺点,它具有显示清晰,显示信息量较大等优点,但它也有自己无法改变的缺点,比如占用单片机资源多,编程比较复杂而且占地面积大等缺点。
基于单片机设计的万年历显示电路电路原理图:程序:#include<reg51.h>#include"lcd1602.h"#include"ds1302.h"#include"ds18b20.h"#define uint unsigned int#define uchar unsigned charuint b[6];//年、月、日、时、分、秒uchar code row1[]={"2009-01-01"};uchar code row2[]={"00:00:00"};uchar year1[12]={31,28,31,30,31,30,31,31,30,31,30,31};//平年uchar year2[12]={31,29,31,30,31,30,31,31,30,31,30,31};//润年uchar j[6]={0x85,0x88,0x8b,0x84+0x40,0x87+0x40,0x8a+0x40};//LCD地址uchar i,k,jj=0,w,clock=0,bigclock=0,c=0,num;//i循环数,k温度缓存,jj地址位uint temp;sbit b1=P3^0;//设置sbit b2=P3^1;//上调sbit b3=P3^2;//下调sbit b4=P3^3;//转换sbit b5=P3^4;//闹钟sbit speaker=P3^5;lcdscan(){for(i=0;i<6;i++){ lcdwrite(j[i]);lcdshuju(a[11-i*2]+0x30);lcdwrite(j[i]+0x01);lcdshuju(a[10-i*2]+0x30);}}void key(){ if(b1==0){ dsaddshuju(0x80,(a[1]<<4)+a[0]+0x80);while(b1==0){for(i=0;i<6;i++){b[i]=a[11-i*2+clock]*10+a[10-i*2+clock];}if(b4==0){ delay(3);jj++;if(jj==6){jj=0;}}if(b2==0){ delay(3);b[jj]++;if(b[5]==60)b[5]=0;if(b[4]==60)b[4]=0;if(b[3]==24)b[3]=0;if((b[0]%4==0&&b[0]%100!=0)||b[0]%400==0){if(b[2]>year2[b[1]-1])b[2]=1;} else {if(b[2]>year1[b[1]-1])b[2]=1;}if(b[1]==13)b[1]=1;if(b[0]==100)b[0]=0;}if(b3==0){ delay(3);b[jj]--;if(b[5]==-1)b[5]=59;if(b[4]==-1)b[4]=59;if(b[3]==-1)b[3]=23;if((b[0]%4==0&&b[0]%100!=0) || b[0]%400==0){if(b[2]<=0)b[2]=year2[b[1]-1];}else {if(b[2]<=0)b[2]=year1[b[1]-1];}if(b[1]==0)b[1]=12;if(b[0]==-1)b[0]=99;}for(i=0;i<6;i++){ a[11-i*2+clock]=b[i]/10;a[10-i*2+clock]=b[i]%10;}lcdwrite(j[jj]);lcdshuju(0);lcdwrite(j[jj]+1);lcdshuju(0);delay(200);lcdwrite(j[jj]);lcdshuju(a[11-2*jj+clock]+0x30);lcdwrite(j[jj]+1);lcdshuju(a[10-2*jj+clock]+0x30);delay(200);if(b1==1){ dsaddshuju(0x80,(a[1]<<4)+a[0]);dson();}if(b5==0)clock=12;} }}void main(){ speaker=0;lcdrw=0;dson();lcdon();lcdwrite(0x83);for(i=0;i<10;i++){ lcdshuju(row1[i]);delay(1);}lcdwrite(0x84+0x40);for(i=0;i<8;i++){lcdshuju(row2[i]);delay(1);}dsrst=0;dssclk=0;while(1){for(i=0;i<5;i++){ dsrst=1;dswrite(0x81+i*2);k=dsread();dsrst=0;a[i*2]=k&0x0f;a[i*2+1]=(k>>4)&0x0f;}dsrst=1;dswrite(0x8d);k=dsread();dsrst=0;a[10]=k&0x0f;a[11]=(k>>4)&0x0f;delay(100);lcdscan();key();if(b5==0){ for(i=0;i<12;i++){if(a[i+12]==a[i])num++; }if(num==12)bigclock=1;else num=0;lcdwrite(0x8e);lcdshuju('&');}else{lcdwrite(0x8e);lcdshuju(0x00);}if(bigclock==1){ speaker=1;c++;if(c==100){bigclock=0;speaker=0;}}temp=readtemperature();//temp是uint型的。