单片机课程设计--基于51单片机的万年历

合集下载

基于单片机的万年历课程设计

基于单片机的万年历课程设计

一、前言随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。

由其是单片机技术的应用产品已经走进了千家万户。

电子万年历的出现给人们的生活带来的诸多方便。

本设计是基于51系列的单片机进行的电子万年历设计,采用八位数码管显示年月日时分秒及温度信息,具有可调整日期和时间功能。

时间、日期调整由三个按键来实现,并可对闹铃开关进行设置。

日历能显示阳历和阴历年、月、日以及星期、时、分、秒。

设计以STC89C52RC 单片机为核心,构成单片机控制电路;以DS1302时钟芯片作为万年历信号发生器;以DS18B20作为检测温度的传感器。

关键词时钟电钟;DS1302;DS18B20;数码管;单片机。

二、系统概述及总体方案2.1系统概述本电子万年历采用单片机控制技术和数码管显示方案,可以很好的完成万年历和实时温度显示。

它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能。

对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。

2.2总体方案2.2.1单片机芯片:采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超低压工作;同时也与MCS-51系列单片机完全相同,该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。

所以选择采用AT89S52作为主控制系统.2.2.2 时钟芯片:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.且同组同学已从Maxim申请到了这种芯片,所以本设计采用了这种芯片。

单片机实训报告 - 基于51单片机的数字万年历设计

单片机实训报告 - 基于51单片机的数字万年历设计

《单片机应用实训》课程设计报告姓名:班级:指导老师:实习时间:基于51单片机的数字万年历设计摘要:利用单片机、DS1302芯片、DS18B20芯片搭建一个数字万年历模块,编写程序,实现了年、月、日、时、分、秒计数,温度测量、时钟报警等功能。

关键词: STC89C51 数字时钟一、 实训目的电子时间显示器现在在任何地方都有涉及到,例如电子表和商场的时间显示等等,所以它是一种既方便又实用的技术,而我们所做的万年历则是在它的基础上做出来的,通过万年历的制作,我们可以进一步了解计数器的使用,了解各个进制之间的转换,以及其他的任意进制计数器的构成方法等,并且进一步了解DS1302芯片、DS18B20芯片的使用等。

二、总体设计方案根据项目任务,该系统采用STC89C51为控制核心,以电子大赛开发板为实验平台,利用各种芯片实现相应功能,三、硬件设计1、单片机最小系统STC89C52为40引脚双列直插芯片,有四个I/O 口P0,P1,P2,P3,每一条I/O 线都能独立地作输出或输入。

单片机的最小系统如下图所示,18引脚和19引脚接晶振电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。

第9引脚为复位输入端,接上电容,电阻及开关后够成上电复位电路,20引脚为接地端,40引脚为电源端。

时钟振荡电路用于产生单片机正常工作时所需要的时钟信号,电路由两个22pF的瓷片电容和一个12MHz的晶振组成,并接入到单片机的XTAL1和XTAL2引脚处 使单片机工作于内部振荡模式。

此电路在加电后延迟大约10ms振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率决定。

时钟振荡电路如下图所示。

复位电路由电阻和极性电容组成,如下图所示,通过高电平使单片机复位,在时钟电路开始工作后,当高电平的时间超过大约2us时,即可实现复位。

单片机课程设计报告电子万年历

单片机课程设计报告电子万年历

单片机课程设计报告电子万年历单片机课程设计报告:电子万年历一、设计简介在本次单片机课程设计中,我们选择了电子万年历作为设计主题。

电子万年历是一种结合了数字电路、单片机技术和实时时钟(RTC)技术的电子产品,它具有显示年份、月份、星期、日、时、分、秒的功能,还可以根据用户的需求进行定时、闹钟、报时等功能。

二、硬件设计我们采用了基于8051内核的单片机作为主控芯片。

该单片机具有丰富的I/O 端口,适于实现各种复杂的输入输出操作。

此外,它还内置了定时器和中断控制器,可以很方便地实现实时时钟功能。

1.显示模块:为了方便用户查看时间信息,我们选用了LCD显示屏作为显示设备。

LCD屏具有功耗低、体积小、显示内容丰富等优点。

2.实时时钟(RTC)模块:我们采用了常用的DS1302芯片作为实时时钟模块。

该芯片可以提供秒、分、时、日、星期、月、年的信息,而且还有可编程的报警功能。

3.按键模块:为了实现人机交互,我们设计了一组按键。

用户可以通过按键来调整时间、设置闹钟等。

4.电源模块:为了保证系统的稳定工作,我们采用了稳定的5V直流电源。

三、软件设计我们采用了C语言编写程序。

程序主要由以下几个部分组成:1.主程序:主程序主要负责读取RTC模块的时间信息,并控制LCD显示屏显示时间。

同时,主程序还要检测按键输入,根据用户的需求进行相应的操作。

2.RTC驱动程序:为了正确地读取和设置DS1302芯片的时间信息,我们编写了相应的驱动程序。

驱动程序包括初始化和读写寄存器两部分。

3.按键处理程序:按键处理程序用于检测按键输入,并根据按键值执行相应的操作。

比如,用户可以通过按键来增加或减少时间,设置闹钟等。

4.LCD显示程序:LCD显示程序用于控制LCD显示屏的显示内容。

在本设计中,我们使用了点阵字符库,将时间信息以字符的形式显示在LCD屏上。

四、测试与验证为了确保我们的电子万年历设计正确无误,我们进行了以下的测试和验证:1.硬件测试:首先,我们对硬件电路进行了测试,确保每个模块都能正常工作。

基于51单片机的万年历设计

基于51单片机的万年历设计

基于51单片机的万年历设计一、系统设计方案本万年历系统主要由 51 单片机、时钟芯片、液晶显示屏、按键等部分组成。

51 单片机作为核心控制器,负责整个系统的运行和数据处理。

时钟芯片用于提供精确的时间信息,液晶显示屏用于显示万年历的相关内容,按键则用于设置时间和功能切换。

二、硬件设计1、单片机选型选用常见的 51 单片机,如 STC89C52 单片机,它具有性能稳定、价格低廉、易于编程等优点。

2、时钟芯片选择 DS1302 时钟芯片,该芯片能够提供高精度的实时时钟,具有闰年补偿功能,并且可以通过串行接口与单片机进行通信。

3、液晶显示屏采用 1602 液晶显示屏,能够清晰地显示字符和数字,满足万年历的显示需求。

4、按键电路设计四个按键,分别用于时间设置、功能切换、加和减操作。

三、软件设计1、主程序流程系统上电后,首先进行初始化操作,包括单片机端口初始化、时钟芯片初始化、液晶显示屏初始化等。

然后读取时钟芯片中的时间数据,并在液晶显示屏上显示出来。

接着进入循环,不断检测按键状态,根据按键操作执行相应的功能,如时间设置、功能切换等。

2、时钟芯片驱动程序通过单片机的串行接口向 DS1302 发送命令和数据,实现对时钟芯片的读写操作,获取准确的时间信息。

3、液晶显示屏驱动程序编写相应的函数,实现对1602 液晶显示屏的字符和数字显示控制。

4、按键处理程序采用扫描方式检测按键状态,当检测到按键按下时,执行相应的按键处理函数,实现时间设置和功能切换等操作。

四、时间设置功能通过按键操作进入时间设置模式,可以分别设置年、月、日、时、分、秒等信息。

在设置过程中,液晶显示屏会显示当前设置的项目和数值,并通过加、减按键进行调整。

设置完成后,将新的时间数据保存到时钟芯片中。

五、显示功能万年历的显示内容包括年、月、日、星期、时、分、秒等信息。

通过合理的排版和显示控制,使这些信息在液晶显示屏上清晰、直观地呈现给用户。

六、系统调试在完成硬件和软件设计后,需要对系统进行调试。

基于51单片机的液晶显示万年历设计

基于51单片机的液晶显示万年历设计

基于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- 第二章设计要求和方案 ----------------------------------------------------------------------- 错误!未定义书签。

(完整版)基于51单片机的万年历的设计

(完整版)基于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 位单片机微处理阶段民用电子产品、计算机系统中的部件控制器、智能仪器仪表、工业测控、网络与通信的职能接口、军工领域、办公自动化、集散控制系统、并行多机处理系统和局域网络系统。

基于51单片机GPS自动校时的万年历设计方案

基于51单片机GPS自动校时的万年历设计方案

3 硬件设计
HARDWARE DESIGN
3.1 系统概述
本系统由51单片机、DS1302时钟芯片、1062液晶显示器、DS18B20温度测量、键盘、蜂鸣器 系统等部分构成。软件部分在keil环境下用C51语言编写,包括时间设置、时间显示、定时设置、 定时闹钟、温度显示。原理框图如下:
3.2 系统框图
蜂鸣器设置:蜂鸣器报警时,设置响100毫秒,停100毫秒,循环响应,产生滴滴的声音。
液晶显示的设置:写入指令码write_com(0x38),设置功能16*2显示,5*7点阵,8位数据接口显 示/开关及光标设置8)写入指令码write_com(0x0c),设置开显示,不显示光标,光标不闪烁。 16)写入指令码write_com(0x06),设置当读或写一个字符后地址指针加一,且光标加一。当写 一个字符,整屏显示不移动。显示清屏,写入指令码write_com(0x01)。
写入指令码函数write_com()写指令过程 :输入:rs=0,D0-D7=指令码,E=高脉冲写入数据 函数 write_date() 写指令过程: 输入:rs=1,D0-D7=数据,E=高脉冲写入指令和数据时rw 端已经接地。数据指针设置 指令码80H+地址码(0-27H)显示第一行的字符指令码80H+地址码 (40H-67H)显示的第二行字符
本时钟还具有环保、走时无噪音、低功耗等非实时时钟不具有的功能。该实时时钟不但可以作 为家用,而且更可以在公共场合使用,如车站、码头、商场等场所。
2 总体方案
GENERAL PLANNING
本方案所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容
包括以下几个方面: (1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功 耗、抗断电的器件。 (2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。

基于51单片机的万年历_毕业设计

基于51单片机的万年历_毕业设计

基于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目录第一章前言 (4)1.1系统开发背景及现状 (4)1.2 系统开发的目的 (4)第二章总体设计 (5)2.1 本设计实现的功能和要求 (5)2.2 设计的选择方案和论证 (5)2.2.1单片机芯片的选择方案和论证 (5)2.2.2显示模块选择方案和论证 (5)2.2.3 时钟芯片的选择方案和论证 (6)2.3.4 温度传感器的选择方案与论证 (6)2.3总体设计框图 (6)第三章硬件设计 (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温度传感器模块 (13)3.2.4 键盘输入模块设计 (13)3.2.5 蜂鸣器模块设计 (13)3.2.6 DS1302时钟电路模块 (14)第四章软件设计 (16)第五章安装与调试 (18)5.1 安装制作 (18)5.2 硬件调试 (18)5.2.1布线的原则与焊接 (18)5.2.2 硬件调试与测试 (19)5.3 软件调试 (19)5.3.1 软件测试仪器 (19)5.3.2 软件调试与测试 (19)5.4 联调 (20)5.5测试结果分析与结论 (21)第六章总结 (22)参考文献 (23)附录A (24)附录B (26)致谢 (28)第一章前言1.1系统开发背景及现状当今世界,知识更新的速度越来越快。

基于51单片机电子闹钟或万年历的设计课程设计

基于51单片机电子闹钟或万年历的设计课程设计

目录目录. (1)1. ..................................................................... 工程背景. 31.1工程研究地目地和意义. (3)1.2课题研究地内容 (3)2.方案地选择和和论证. (4)2.1单片机型号地选择. (4)2.2按键地选择. (4)2.3显示器地选择. (4)2.4计时部分地选择. (5)2.5发音部分地设计. (5)2.6电路设计最终方案 (5)3.AT89C52 单片机简介 (6)3.1单片机基本特性 (6)3.2单片机内部结构图 (6)3.3单片机I/O 引脚结构. (6)3.3.1P0 口 (6)3.3.2P1 口 (7)3.3.3P2 口 (7)3.3.4P3 口 (7)3.4单片机最小系统板 (8)4.数字电子钟地设计原理和方法. (9)4.1设计原理. (9)4.2硬件电路地设计. (9)4.2.1DS1302 时钟芯片 (9)4.2.21602 液晶简介. (11)4.2.3蜂鸣器驱动电路. (12)4.2.4独立键盘电路. (13)5. ......................................................................... 软件部分地设计. 145.1程序流程图 (14)5.1.1系统总流程图. (14)5.1.2DS1302 时钟程序流程图 (15)5.1.3LCD 显示程序流程图 (16)5.2程序地设计 (17)5.2.1 DS1302 读写程序 (17)5.2.2液晶显示程序 (17)7.心得体会. (20)参考文献. (21)附录一系统原理图. (22)附录二系统程序. (23)1. 工程背景1.1工程研究地目地和意义20 世纪末,电子技术获得了飞速地发展,在其推动下,现代电子产品几乎渗透了社会地各个领域,有力地推动了社会生产力地发展和社会信息化程度地提高,同时也使现代电子产品性能进一步提高,产品更新换代地节奏也越来越快. 时间对人们来说总是那么宝贵,工作地忙碌性和繁杂性容易使人忘记当前地时间.忘记了要做地事情,当事情不是很重要地时候,这种遗忘无伤大雅. 但是,一旦重要事情,一时地耽误可能酿成大祸. 例如,许多火灾都是由于人们一时忘记了关闭煤气或是忘记充电时间等造成地. 而钟表地数字化给人们生产生活带来了极大地方便. 数字钟是通过数字电路实现时,分,秒数字显示地计时装置,广泛用于个人家庭、车站、码头办公室等公共场所, 成为人们日常生活中不可少地必需品. 由于数字集成电路地发展和石英晶体振荡器地广泛应用,使得数字钟地精度, 远远超过老式钟表, 钟表地数字化给人们生产生活带来了极大地方便,而且大大地扩展了钟表原先地报时功能,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烤箱、通断动力设备、甚至各种定时电气地自动启用等. 所有这些,都是以钟表数字化为基础地. 因此,研究数字钟及扩大其应用,有着非常现实地意义.1.2 课题研究地内容本论文主要研究基于单片机地万年历设计.当程序执行后,LCD显示即时时间、年月日、星期.设置4个操作键:K1,时间调整键;K2,上调键;K3,下调键;K4,闹钟设置键本设计地主要内容:1 、了解单片机技术地发展现状,熟悉万年历各模块地工作原理;2、选择适当地芯片和元器件,确定系统电路,绘制电路原理图,尤其是各接口电路;3、熟悉单片机使用方法和C语言地编程规则,编写出相应模块地应用程序. 设计目标:使基于AT89C52单片机地万年历实现以下三个功能:a.具有年、月、日、星期、时、分、秒等功能;b.具备年、月、日、星期、时、分、秒校准功能;2. 方案地选择和和论证2.1单片机型号地选择通过对多种单片机性能地分析,最终认为AT89C52是最理想地电子时钟开发芯片.AT89C51是一种带4K字节闪烁可编程可擦除只读存储器地低电压,高性能CMOS 位微处理器,器件采用ATMEI高密度非易失存储器制造技术制造,与工业标准地MCS-51指令集和输出管脚相兼容•由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEI地AT89C52是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程序存储器和1000次擦写循环,数据保留时间为10年,是最好地选择.2.2按键地选择方案一:4X4矩阵式键盘.如果选择此方案,那么在修改时钟或设置闹铃时间时就可以直接从键盘输入,方便、快捷,但程序较为复杂.方案二:独立式按键. 如果设置过多按键,将会占用较多I/O 口,而且会给布线带来不便,因此,此方案适用于按键较少地情况. 如果选择此方案,由于按键较少,在修改时间或设置闹铃时间时就不能直接输入,只能通过加或减完成,稍为麻烦一些,但其程序简单.由于并不需要经常修改时间和设置闹铃时间,而且方案二地程序简单,按键少、成本低,因此,选择方案二.2.3显示器地选择方案一:采用LED数码管动态扫描丄ED数码管价格适中,对于显示数字合适, 采用动态扫描法与单片机连接时, 虽然占用地单片机口线少,但连线还需要花费一点时间,所以也不用此种作为显示.方案二:采用点阵式数码管显示,点阵式数码管是由八行八列地发光二极管组成,对于显示文字比较适合, 若采用在显示数字显得太浪费, 且价格也相对较高, 所以在此也不用此种作为显示.方案三:采用1602液晶显示屏, 该液晶显示屏地显示功能强大, 内置192种字符,可显示大量符号、数字, 清晰可见, 而且功率消耗小寿命长抗干扰能力强所以在此设计中采用1602液晶显示屏.2.4 计时部分地选择方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数. 采用此种方案虽然减少芯片地使用,节约成本,但是,实现地时间误差较大, 所以不采用此方案.方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能地时钟芯片,可自动对秒、分、时、日、周、月、年进行计数,而且精度高, 位地RAM做为数据暂存区,工作电压2.5V〜5.5V范围内,2.5V时耗电小于300nA. 所以本设计采用DS1302时钟芯片.2.5发音部分地设计通过三极管放大后驱动蜂鸣器工作,再通过软件产生地时时间方波驱动蜂鸣器发出间断嘀声,这样就可以省去硬件振荡电路,降低成本.2.6电路设计最终方案综上各方案所述,对此次作品地方案选定:采用AT89C52乍为主控制芯片,DS1302时钟芯片计时,LCD1602乍为显示模块.3.AT89C52单片机简介3.1单片机基本特性8位地CPU,片内有振荡器和时钟电路,工作频率为0〜24MHz片内有256字节数据存储器RAM片内有8K字节程序存储器ROM个8 位地并行I/O 口(P0、P1、P2、P3)1个全双工串行通讯口3个16位定时器/计数器(T0、T1、T2)可处理6个中断源,两级中断优先级3.2单片机内部结构图图3-1单片机内部结构图3.3单片机I/O引脚结构3.3.1P0 口P0 口是一组8位漏极开路型双向I/O 口,也即地址/数据总线复用口.作为输出口用时,每位能吸收电流地方式驱动8个TTL逻辑门电路,对端口P0写“ T时,可作为高阻抗输入端用•在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻.在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻.3.3.2P1 口P1 是一个带内部上拉电阻地8 位双向I/O 口,P1 地输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路.对端口写“ 1”,通过内部地上拉电阻把端口拉到高电平,此时可作输入口. 作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2地外部计数输(P1.0/T2 )和输入(P1.1/T2EX),Flash 编程和程序校验期间,P1 接收低8 位地址.3.3.3P2 口P2 是一个带有内部上拉电阻地8 位双向I/O 口,P2 地输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路. 对端口P2 写“1”,通过内部地上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).在访问外部程序存储器或16 位地址地外部数据存储器(例如执行MOVX @DPT 指令)时,P2 口送出高8位地址数据.在访问8位地址地外部数据存储器(如执行MOVX@R旨令)时,P2 口输出P2锁存器地内容.Flash编程或校验时,P2亦接收高位地址和一些控制信号.3.3.4P3 口P3 口是一组带有内部上拉电阻地8位双向I/O 口.P3 口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对P3 口写入“ T时,它们被内部上拉电阻拉高并可作为输入端口.此时,被外部拉低地P3 口将用上拉电阻输出电流(IIL ).P3 口除了作为一般地I/O 口线外,更重要地用途是它地第二功能P3 口还接收一些用于Flash 闪速存储器编程和程序校验地控制信号.U1 ATS9S52PL 0 JPl i 2Pl 3PT7~4PL4PL?X'CC 101Pl 0vcc Pl.l POOPl.2POL Pl.J P0.2 P1.4M3 Pl 5 MOS!P0,4 Pl 6 AHSJO PG. 5 ?1 7SCK P06 KST P0.7 P3.0RXD EAWP P3 LTM).4JLEPRUG pj.zwfo PSEN p^j^rri P2.7 P3,4J T0P2.6 pj.5m P2.5P>4 P3.7/KD P23 XTAL2P2.2 XTAU P2.L GND P2.0J" 236 PO 3 TT PO7JoTOF—』PS.5 1^P3.6 16■.? 17 ~Is~r?~20匕序2625 P2.4 24 p:.S 23 P2 2 22 PT1 21 P2 03.4单片机最小系统板仅仅一个单片机是没有办法工作地,要想使单片机正常功能,单片机需要有电源电路、复位电路、晶振.电源电路给单片机提供电源,复位电路使得单片机具备复位功能,晶振地作用产生原始地时钟频率,这个频率经过频率发生器地放大或缩小后就成了电脑中各种不同地总线频率.单片机最小系统是保证单片机正常工作地最基本单位.图3-2单片机最小系统板P3.0 10 直1 JP3.2 11 PTHU.0592M4.数字电子钟地设计原理和方法4.1设计原理根据上述方案设计出系统整体框图如下所示图4-1系统原理图为使时钟走时与标准时间一致,校时电路是必不可少地,键盘模块用来校正液晶上显示地时间;AT89C52单片机通过输出各种电脉冲信号来驱动控制各部分正常工作;而系统地时间数据则最终通过液晶模块显示出来.4.2硬件电路地设计4.2.1DS1302时钟芯片DS1302是DALLAS^司推出地涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM通过简单地串行接口与单片机进行通信.图4.5所示为DS1302地引脚排列,其中VCC伪后备电源,VCC2为主电源.所以在主电源关闭地情况下,也能保持时钟地连续运行.DSX1和DSX2是振荡源,外接32.768KHZ晶振用来为芯片提供计时脉冲.RST是复位/片选线,通过把RST输入驱动置高电平来启动所有地数据传送.RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据地传送手段.当RST为高电平时,所有地数据传送被初始化,允许对DS1302进行操作.如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态.上电行动时,在VCC大于等于2.5V之前,RST必须保持低电平•在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向).SCLK始终是输入端.时钟芯片DS1302地工作原理:⑴DS1302地控制字节DS1302控制字节地高有效位(位7)必须是逻辑1,如果它为0,贝U不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元地地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出(2)数据输入输出(I/O )在控制指令字输入后地下一个SCLK时钟地上升沿时,数据被写入DS1302数据输入从低位即位0开始.同样,在紧跟8位地控制指令字后地下一个SCLK脉冲地下降沿读出DS1302地数据,读出数据时从低位0位到高位7.(3)DS1302地寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放地数据位为BCD码形式•“CH是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行•“WP是写保护位,在任何地对时钟和RAM地写操作之前,“ WP必须为0.当“ WP为1时,写保护位防止对任一寄存器地写操作•此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关地寄存器等.时钟突发寄存器可一次性顺序读写除充电寄存器外地所有寄存器内容.DS1302与RAM相关地寄存器分为两类:一类是单个RAM 单元,共31个,每个单元组态为一个8位地字节,其命令控制字为C0H H FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下地RAM寄存器,此方式下可一次性读写所有地RAM地31个字节,命令控制字为FEH写)、FFH 读).4.2.21602 液晶简介本设计中由于要对时间进行显示,所以选择液晶显示屏1602模块作为输出.1602字符型LCD®常有14条引脚线或16条引脚线地LCD多出来地2条线是背光电源线•它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高地性价比.1602液晶模块内部地字符发生存储器(CGRO已经存储了160个不同地点阵字符图形,这些字符有:阿拉伯数字、英文字母地大小写、常用地符号、和日文假名等,每一个字符都有一个固定地代码•管脚功能如表4-1所示:LCD1602主要管脚介绍:RS为寄存器选择端,高电平时选择数据寄存器,低电平时选择指令寄存器.R/W为读写信号线端,高电平时进行读操作,低电平时进行写操作•当RS和R/W共同为低电平时可以写入指令或者显示地址;当RS 为高电平R/W为低电平时可以写入数据.E为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令.将L1602地RS端和P2.0,R/W端和P2.1, E 端和P2.2 相连,当RS=0 时,对LCD1602写入指令;当RS=1时,对LCD1602写入数据.当R/W端接高电平时芯片处于读数据状态,反之处于写数据状态,E端为使能信号端.当R/W为高电平,E端也为高电平,RS为低电平时,液晶显示屏显示需要显示地示数.图4-3为1602液晶.4.2.3蜂鸣器驱动电路发音部分是通过三极管放大驱动蜂鸣器工作,再通过软件这时产生等时时间方波驱动蜂鸣器发出间断嘀声,这样就可以省去硬件振荡电路,降低成本424独立键盘电路实现键盘控制地方法有多种,在本系统中,我们采用了AT89C52单片机来进行控制,因为单片机可以很好地解决键抖动•由若干个按键组成一个键盘,其电路结构可分为独立式键盘和矩阵式键盘两种.本设计采用地是独立式键盘.键盘地工作方式可分为编程控制方式和中断控制方式.CPU在一个工作周期内,利用完成其他任务地空余时间,调用键盘扫描子程序,经程序查询,若无键操作,则返回;若有键操作,则进而判断是哪个键,并执行相应地键处理程序.这种方式为编程扫描方式.由于单片机在正常应用过程中,可能会经常进行键操作,因而编程控制方式使CPU经常处于工作状态,在进行本次设计中,涉及到了调整时间、设置闹钟、上调、下调四个功能.因此采用独立式键盘.如下图所示:5.软件部分地设计5.1程序流程图5.1.1系统总流程图系统总流程图如图5-1所示.流程图分析:首先系统初始化,系统开始运行,当有设置键按下时进入修改时间模式,无按键按下时读取时间等数据送入液晶屏显示;在修改时间模式下设置时间完成后再送数据到液晶屏显示•图5-1系统总流程图5.1.2DS1302时钟程序流程图时钟流程图如图5-2所示.流程图分析:DS1302开始计时时,首先进行初始化,当有中断信号时,读取时钟芯片地数据送入液晶屏显示.这时若有设置键按下时,进行时间修改,完成后将数据送入时钟芯片;若没有按键按下,则直接存入EPRO M送入液晶屏显示•开始图5-2时钟流程图5.1.3LCD显示程序流程图显示程序流程图如图5-3.流程图分析:首先对1602显示屏进行初始化(初始化大约持续10ms左右),然后检查忙信号,若BF=0,则获得显示RAM 地地址,写入相应地数据显示;若BF=1,则代表模块正在进行内部操作,不接受任何外部指令和数据,直到BF=O为止.Y结束图5-3 LCD显示程序流程图5.2程序地设计521 DS1302读写程序DS1302是SPI总线驱动方式.它不仅要向寄存器写入控制字,还需要读取相应寄存器地数据.要想与DS1302通信,首先要先了解DS1302地控制字.DS1302地控制字如图5-4所示.图5-4 DS1302 地控制字控制字总是从最低位开始输出.在控制字指令输入后地下一个SCLK寸钟地上升沿时,数据被写入DS1302数据输入从最低位(0位)开始.同样,在紧跟8位地控制字指令后地下一个SCLK脉冲地下降沿,读出DS1302地数据,读出地数据也是从最低位到最高位.数据读写时序如图5-5、5-6所示.RST图5-5单字节读RST曲丄fTfLfLfnbfLTLjTfnLFLfnJTfLfUmjn I/O —(刖示]AO I Al I A2 I A3 ] A斗I R/日1 X 00 | | 口2 | | D斗 | 口弓| 口帘|D7 >图5-6单字节写5.2.2液晶显示程序1602通过D0~D7地8位数据端传输数据和指令,其模块内地控制器有11 条控制指令.当液晶显示屏地接口电路与单片机系统I/O按照并行数据传输方式连接完成以后,即可以对AT89C52单片机进行编程.在液晶屏完成显示之前首先要对液晶进行初始化.程序见附录二.6.实验结果此电子闹钟设计是利用Proteus仿真软件进行仿真,基本上实现了课程设计要求实现地功能.硬件部分设置了地三个按键K1、K2、K3 K4.K1键为调整时间功能键,K4 为设置闹钟功能键,K2、K3分别为上调和下调键.当按键K4第一次按下时,停止计时进入闹钟1地时设置,当按键K4第二、第三次按下时,分别进入闹钟1地分设置和秒设置,当按K4第四次按下时,退出闹钟设置,正常显示当前时间.当按下K1键时进入时间调整模式,K1按下第一次进入年调整,K1按下第二次进入月调整,K1按下第三次进入日调整;当K1按下第四、五、六次时,分别进入时、分、秒调整,K1按下第七次时时间调整完毕,退出时间调整功能,显示器正常显示时间.下面是程序运行结果截图图6-2调整时间后显示图上图6-1表示程序启动时将时间初始化为2015年01月10日00时00分00秒;之后进行了调整,将时间调整为操作地当前时间如图6-2所示,2015年01月10日11时59分15秒;图6-3表示是将闹钟设置为13时00分29秒.7. 心得体会通过自己地不懈努力,我终于完成了毕业设计任务书上地任务要求. 功能上基本达标:时钟地显示、调时功能、闹铃功能. 其精确度完全可以满足日常生活显示时间地需要;调时功能,方便快捷;校时功能保证了时钟准确和可靠性硬件设施合乎要求,软件设计可以配合硬件实现要求地功能. 但是由于时间比较短,前期设计出现部分不足:如位选闪烁功能不能实现、闹钟地开启与关闭、间断蜂鸣声等. 这些只是软件设计时相应功能部分还不完善造成.不过经仔细思考和程序地完善,最终将软件设计改进,并完全可以很好实现所有要求地功能.可见技术在不断进步,机械式时钟已经被淘汰,取而代之地是具有高度准确性和直观性且无机械装置,具有更长地使用寿命等优点地数字时钟. 数字时钟更具人性化,更能提高人们地生活质量,更受人们欢迎.无可否认机械时代已经过去,电子时代已经到来. 做为新时代地我们,更应该提高自身能力,适应新时代地发展. 知识来自实践,多去生活中探询所需要地. 对于上述所提到地研究课题,我们应尽量考虑到人地因素,增强时钟地实用性和操作性,为使用者提供切实地方便,营造一种舒适地生活氛围. 所以,在设计地时候,应该从多方面、多角度去考虑问题,而且应该进一步提高时钟地质量.另外,在本次设计地过程中,我发现很多地问题,虽然以前没有做过这样地设计但通过这次设计我学会了很多东西,单片机课程设计重点就在于软件算法地设计,需要有很巧妙地程序算法,虽然以前写过几次程序,但我觉地写好一个程序并不是一件简单地事,比如写一个程序看其功能很少认为编写程序简单,但到编程地时候才发现一些细微地知识或低级错误经常犯做不到最后常常失败,所以有些东西只有学精弄懂并且要细心才行,只学习理论有些东西是很难理解地,更谈不上掌握.从这次地课程设计中,我们真真正正地意识到,在以后地学习中,要理论联系实际,把我们所学地理论知识用到实际当中,学习单机片机更是如此,程序只有在经常地练习地过程中才能提高,我想这就是我在这次课程设计中地最大收获.参考文献[1]张友德,赵志英,涂时亮. 《单片微型机原理、应用与实验》[M]. 上海:复旦大学出版社,2008.[2]赵亮,侯国锐•《单片机C语言编程与实例》[M].北京:人民邮电出版社,2003.[3]高鹏,安涛,寇怀成. 《电路设计与制版——protel99 入门与提高》[M]. 北京:人民邮电出版社,2006.[4]谭浩强.《C程序设计(第三版)》[M].北京:清华大学出版社,2005.[5]李朝青. 《单片机原理及接口技术》[M]. 北京:北京航空航天大学出版社,2004.[6]康光华,《电子技术基础—模拟部分(第五版)》[M]. 北京:高等教育出版社,2005.附录一系统原理图LCD1RUZ1f-UZZERR1U3RESPACK^eL :P5EN ALE 丽*3V 马 VCCB.1AT&3C52 <TEXT>r.VCC1 VCC2X1 Or$CLkraX2DSI^DZTEXTSa->XIAL1 XIAL2pi.DrraPi.irr2EXP12 P13PI.4 PI.5 P1.B PI.7LM010LPO'D/ADaro.2MD £ TOrSMKP0/WAD4 P0.5/AD5 FO-BWOa PO.7WD7P2.UAQP2.2/A10P2.3/A11P2.A/A12 P2.5/A13 P2.6/A14 P2.7/A1I6P3.Q>RX& P3.1/TXD F3 2ANT0 P33^NiTTP3.-VT0 P3.5/T1 P3.BWR P3.7JR&SQpFXA 飞e10DATA=dat&0x01OII 取出 dat 地第 0 位数据写入 1302 低位在sbit SCLK=PMO 。

51单片机万年历实验原理

51单片机万年历实验原理

51单片机万年历实验原理1. 概述51单片机万年历实验是一项基于51单片机的实验项目,用于模拟和显示日期和时间信息,使其具备一定的时钟和日历功能。

本文将详细介绍该实验的原理和实现方法。

2. 实验所需材料完成51单片机万年历实验需要以下材料: - 51单片机开发板 - LCD显示屏 - 时钟芯片(如DS1302) - 电容 - 电阻 - 键盘模块 - 连接线等3. 实验原理本实验的原理主要包括三个方面:51单片机的控制逻辑、时钟芯片的数据存储和显示屏的信息展示。

3.1 51单片机的控制逻辑在51单片机中,首先需要定义和初始化各个引脚和功能模块。

通过引脚的输入输出控制、时钟和定时器的设置,实现对时钟芯片和LCD显示屏的控制和数据传输。

3.2 时钟芯片的数据存储时钟芯片一般具有独立的电源供应和存储空间,用于储存日期和时间等信息。

通过与51单片机的通讯接口,读取和写入时钟芯片中的数据,实现对日期和时间信息的读取和更新。

3.3 显示屏的信息展示LCD显示屏作为用户界面,用于展示日期和时间等信息。

通过51单片机的输出控制,将读取到的日期和时间信息通过LCD显示屏进行展示。

具体的显示方式可以根据需求设计,如以年、月、日的格式显示,或者以星期和时间的格式显示等。

4. 实验步骤基于以上原理,可以按照以下步骤进行51单片机万年历实验:4.1 硬件连接按照实验所需材料,将51单片机开发板、LCD显示屏和时钟芯片等进行正确的连接。

根据引脚功能和电平要求,通过连接线将它们连接在一起。

4.2 编写程序使用合适的集成开发环境(如Keil)编写51单片机的程序。

程序主要包括引脚和功能模块的初始化设置、时钟芯片数据的读写和LCD显示屏信息的输出等。

4.3 载入程序将编写好的程序通过USB下载线或其他方式,将程序载入到开发板中。

确保程序可以正确地运行在51单片机上。

4.4 测试实验接通电源,观察LCD显示屏是否正常显示日期和时间信息。

基于51单片机的万年历设计流程

基于51单片机的万年历设计流程

基于51单片机的万年历设计流程
基于51单片机的万年历设计流程可以分为以下几个步骤:
1. 确定需求:首先,你需要明确你的万年历需要有哪些功能。

例如,是否需要显示日期、时间、星期,是否需要闹钟功能,是否需要手动或自动校准等。

2. 选择硬件:选择合适的单片机作为主控制器。

常用的单片机有8051系列,如AT89C51、AT89S52等。

此外,还需要选择适当的显示模块、按键模块、实时时钟模块等。

3. 设计硬件电路:根据选择的硬件设备,设计电路原理图和PCB图。

需要
考虑单片机的引脚连接、电源供给、时钟源、外部扩展等问题。

4. 编写软件程序:根据硬件电路和需求,编写相应的软件程序。

这包括初始化程序、主程序、中断服务程序等。

5. 调试和测试:将编写好的程序下载到单片机中,进行实际测试。

根据测试结果,对程序进行调试和修改,直到满足设计要求。

6. 生产:完成调试后,就可以进行批量生产了。

在生产过程中,还需要对产品进行质量检测,确保每个产品都能正常工作。

7. 后期维护:在产品上市后,可能需要对产品进行维护或升级。

例如,如果用户在使用过程中发现了问题,或者有新的需求,就需要对产品进行改进或升级。

以上是基于51单片机的万年历设计的基本流程,但具体的步骤可能会根据具体的需求和硬件设备有所不同。

单片机课程设计--基于51单片机的万年历

单片机课程设计--基于51单片机的万年历

单片机课程设计--基于51单片机的万年历单片机课程设计基于 51 单片机的万年历一、引言在现代生活中,时间的准确记录和显示对于我们的日常生活和工作具有重要意义。

万年历作为一种能够同时显示年、月、日、星期、时、分、秒等信息的设备,给人们带来了极大的便利。

本次课程设计旨在利用 51 单片机实现一个简单实用的万年历系统。

二、系统设计方案(一)硬件设计1、单片机选型选择经典的 51 单片机,如 STC89C52 单片机,其具有性能稳定、价格低廉、资源丰富等优点,能够满足本设计的需求。

2、显示模块采用液晶显示屏(LCD1602)作为显示设备,能够清晰地显示数字和字符信息。

3、时钟芯片选用DS1302 时钟芯片,它可以提供精确的实时时钟数据,包括年、月、日、星期、时、分、秒等。

4、按键模块设置三个按键,分别用于调整时间、选择调整项(年、月、日、时、分、秒等)以及切换显示模式(正常显示和设置模式)。

(二)软件设计1、主程序流程系统初始化后,首先读取 DS1302 中的时间数据,并将其显示在LCD1602 上。

然后进入循环,不断检测按键状态,根据按键操作进行相应的时间调整和显示模式切换。

2、时间读取与显示程序通过与 DS1302 进行通信,读取实时时间数据,并将其转换为适合LCD1602 显示的格式进行显示。

3、按键处理程序检测按键的按下状态,根据不同的按键执行相应的操作,如调整时间、切换显示模式等。

三、硬件电路设计(一)单片机最小系统单片机最小系统包括单片机芯片、晶振电路和复位电路。

晶振电路为单片机提供时钟信号,复位电路用于系统初始化时将单片机的状态恢复到初始值。

(二)显示电路LCD1602 显示屏通过数据总线和控制总线与单片机相连。

数据总线用于传输要显示的数据,控制总线用于控制显示屏的读写操作和显示模式。

(三)时钟电路DS1302 时钟芯片通过串行通信接口与单片机进行通信。

单片机通过发送特定的指令和数据,对 DS1302 进行读写操作,获取或设置时间信息。

基于51单片机的电子万年历系统的设计

基于51单片机的电子万年历系统的设计

参考内容
一、引言
单片机是现代电子设备中的重要组成部分,广泛应用于各种嵌入式系统设计。 51单片机作为一种经典的微控制器,因其结构简单、易于编程、可靠性高等优点, 被广泛用于各种领域,如智能家居、工业控制、物联网等。万年历作为一种日常 生活中常见的计时工具,具有显示日期、时间、星期、月份等功能,对于人们的 日常生活和工作有着重要的作用。本次演示将介绍一种基于51单片机的万年历设 计。
二、系统设计
1、硬件设计
基于51单片机的万年历设计需要硬件和软件的配合实现。硬件部分主要包括 51单片机、显示模块、按键输入模块和时钟芯片等。其中,51单片机作为主控制 器,负责处理各种数据和控制信号;显示模块用于显示日期、时间等信息;按键 输入模块用于用户输入操作;时钟芯片则为系统提供实时时间。
基于51单片机的电子万年历系 统的设计
目录
01 一、概述
03 三、软件设计
02 二、硬件设计 04 四、系统调试与优化
目录
05 五、应用场景及前景
07 参考内容
06 六、结论
随着科技的不断发展,单片机已经成为现代于51单片机的电子万年历系统设计具有广泛的实际应用价值。 本次演示将详细介绍这种系统的设计过程和实现方法。
感谢观看
首先需要进行硬件搭建,包括选择合适的单片机、显示模块、按键输入模块 和时钟芯片等,并将其连接起来。需要注意的是,在搭建硬件时需要考虑各个模 块之间的接口和连接方式,以确保系统能够正常工作。
2、软件编程
在硬件搭建完成后,需要进行软件编程。首先需要进行系统初始化,包括对 单片机进行初始化和对显示进行清屏处理。然后需要进行按键处理和时钟数据处 理,以实现用户输入和实时时间的读取。最后需要进行显示处理,将处理后的数 据显示到显示模块上。

基于51单片机的万年历设计

基于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单片机的万年历。

单片机课程设计--基于51单片机的万年历

单片机课程设计--基于51单片机的万年历

单片机课程设计报告万年历的设计基于51单片机的万年历摘要:电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。

它可以对年、月、日、周日、时、分、秒进行计时,使用寿命长,误差小。

对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。

该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。

在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。

万年历的设计过程在硬件与软件方面进行同步设计。

硬件部分主要由AT89C52单片机,LCD显示电路,以及调时按键电路等组成。

在单片机的选择上本人使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。

显示器使用了1602液晶显示,并且使用蜂鸣器实现了整点报警的功能,温度测试的功能实现使用了DS18B20,并实现了温度过高或过低时的温度报警。

软件方面主要包括日历程序、时间调整程序,显示程序等。

程序采用C语言编写。

所有程序编写完成后,在KeilC51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真,并最终实现基本要求。

综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

一、设计要求基本要求:1,8 个数码管上显示,显示时间的格式为(假如当前时间是19:32:20)“19-32-20”;2,具有日历功能;③时间可以通过按键调整。

发挥部分:④具有闹钟功能(可以设定多个)。

二:总体设计电路设计框图系统硬件概述本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由单片机定时功能提供;温度的采集由DS18B20构成,它具有独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯,使用时不需要额外的外围电路。

基于51单片机电子万年历设计

基于51单片机电子万年历设计

摘要 (I)Abstract (II)第一章引言 (1)第二章单片机 (2)2.1 什么是单片机 (2)2.1.1 概述 (2)2.1.2 单片机的基本结构 (2)2.2 单片机的历史及发展趋势 (2)2.2.1 早期阶段 (3)2.2.2 早期发展 (3)2.2.3 中期发展 (4)2.2.4当前趋势 (4)2.3 应用范围 (4)2.4 主流的单片机产品 (4)第三章设计要求及方案选定 (5)3.1设计要求 (5)3.2 系统基本方案 (5)3.2.1单片机芯片的选择 (5)3.2.2显示模块的选择 (5)3.2.3 时钟芯片的选择 (5)3.2.4 电路设计最终方案决定 (6)第四章系统的硬件设计 (7)4.1 总的设计框架 (7)4.2 晶振电路模块 (7)4.3 复位电路模块 (8)4.4 显示模块 (8)4.5 按键电路模块 (9)第五章系统的软件设计及仿真 (11)5.1系统的软件设计 (11)5.1.1 主程序 (11)5.1.2 时间计时子程序 (12)5.1.3 显示子程序 (14)5.1.4 时间调整子程序 (14)5.2 Proteus仿真 (15)作品总结 (18)参考文献(References) (19)致谢 (20)附录一系统电路图 (21)附录二系统程序清单 (22)摘要随着微电子技术的快速发展,单片机的应用越来越广泛。

它有着体积小、功能全、性价比高等诸多优点,在多个测控领域的应用中扮演着很重要的角色。

单片机开发技术已成为现代专业技术人员必须掌握的一门技术。

电子万年历,是一种被广泛应用的日常计时工具。

本设计目标是利用单片机设计一个电子万年历,要求可以实现日期和时间的显示并且具有可调整日期和时间的功能。

文章的主要部分是硬件设计和软件编程。

硬件部分主要由AT89C51单片机、晶振电路、复位电路、数码管显示电路以及调时按键电路等组成。

在本文中选择使用AT89C51单片机,该单片机功耗小、低成本,且适合于许多比较复杂的控制应用场合。

基于51单片机电子万年历设计

基于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.按键操作:对按键进行扫描,根据按键的不同操作进行相应的处理。

例如按下设置键进行日期和时间的设置,按下上下键进行数值的变化,按下确定键进行数值的确认。

基于51单片机的电子万年历设计

基于51单片机的电子万年历设计

课程设计报告书目录设计报告书目录一、设计目的 (1)二、设计思路 (1)三、设计过程 (1)3.1、系统方案论证 (1)3.2、电子万年历流程图设计 (2)四、系统调试与结果 (6)五、主要元器件与设备 (6)六、课程设计体会与建议 (7)6.1、设计体会 (7)6.2、设计建议 (7)七、参考文献 (8)八、源程序清单与注释 (10)一、设计目的1、熟悉单片机各部件的组成及其功能。

2、掌握时钟芯片显示时间和调试的方法。

3、掌握温度传感器的工作原理及其调试方法。

4、掌握数码管的显示方法。

二、设计思路1、利用单片机的时钟芯片来实现时间信息显示。

2、利用四个按键实现时间的调整功能。

3、利用温度传感器来实现温度显示。

4、利用单片机对各个数据进行处理并保证各模块正常工作。

5、单片机处理后的数据送入显示模块显示。

三、设计过程3.1系统方案论证数字万年历的总体方框图如图1所示:图1 数字万年历总体方框图其工作原理为:时间模块利用时钟芯片可以读取到高精度的年、月、日、时、分、秒信息。

按键部分采用四个按键实现时间的调整功能,即设置、加1、减1、切换四个按键。

温度采集模块利用温度传感器采集温度信息。

单片机使用AT89C52单片机,将读取的时间信息、按键信息和温度信息送入单片机机进行数据处理,同时单片机控制保证着各模块芯片的正常工作,单片机将经过处理后的时间温度信息送显示模块显示。

显示模块使用17个LED显示管,可以显示年、月、日、星期、时、分、秒和温度。

3.2、电子万年历流程图设计3.2.1、电子万年历系统的主程序流程图如图2所示:图2 电子万年历系统的主程序流程图电子万年历系统总的电路连接如附图1所示。

3.2.2、时间程序设计因为使用时钟芯片为DS12C887,阳历程序只需从DS12C887各寄存器中读出年,月,日,时,分,秒等数据,再处理即可。

在首次对DS12887进行操作之前必须对它进行初始化,然后DS12C887中读出数据,再经处理后送给显示缓冲单元。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计报告万年历的设计基于51单片机的万年历摘要:电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。

它可以对年、月、日、周日、时、分、秒进行计时,使用寿命长,误差小。

对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。

该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。

在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。

万年历的设计过程在硬件与软件方面进行同步设计。

硬件部分主要由AT89C52单片机,LCD显示电路,以及调时按键电路等组成。

在单片机的选择上本人使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。

显示器使用了1602液晶显示,并且使用蜂鸣器实现了整点报警的功能,温度测试的功能实现使用了DS18B20,并实现了温度过高或过低时的温度报警。

软件方面主要包括日历程序、时间调整程序,显示程序等。

程序采用C语言编写。

所有程序编写完成后,在KeilC51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真,并最终实现基本要求。

综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

一、设计要求基本要求:1,8 个数码管上显示,显示时间的格式为(假如当前时间是19:32:20)“19-32-20”;2,具有日历功能;③时间可以通过按键调整。

发挥部分:④具有闹钟功能(可以设定多个)。

二:总体设计电路设计框图系统硬件概述本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由单片机定时功能提供;温度的采集由DS18B20构成,它具有独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯,使用时不需要额外的外围电路。

并且,其测温范围-55℃~+125℃,固有测温分辨率0.5℃;显示部份使用1602液晶显示,可完美地显示年、月、日、周日、时、分、秒,且在整点时刻通过蜂鸣器实现响铃。

还可以实现温度显示,且当判断得温度过高或过低时,通过液晶显示及LED发光二极管完成报警。

单片机主控制模块的设计AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端.液晶显示模块的设计LCD1602有16个引脚,其中VCC、VSS分别为电源正负极;VO为液晶偏压信号输入端,图中W1可调节液晶明亮度; DB0—DB7 8位数据段;BLA、BLK背光源正负极;RS数据/命令选择端;R/W读写选择端;E使能端温度采集模块设计采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P0.7与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。

PCB 图三电子时钟的软件设计系统软件按键检测流程图系统软件定时器程序流程图Y+是否按下M 是否按下Y 开始检测NN 相应项加一 —是否按下相应项减一YN子程序的设计DS18B20温度子程序void write_temp(uchar add,uchar dat)//向LCD写温度数据,并指定显示位置{uchar gw,sw,bw;if(dat>=0&&dat<=128){gw=dat%10;//取得个位数字sw=dat%100/10;//取得十位数字bw=dat/100 ;//取得百位数字}else{dat=256-dat;gw=dat%10;//取得个位数字sw=dat%100/10;//取得十位数字bw=-3; //0x30-3表示为负号}write_1602com(er+add);//er是头文件规定的值0x80+0x40write_1602dat(0x30+bw);//数字+30得到该数字的LCD1602显示码write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码write_1602dat(0xdf);//显示温度的小圆圈符号,0xdf是液晶屏字符库的该符号地址码write_1602dat(0x43); //显示"C"符号,0x43是液晶屏字符库里大写C的地址码}1602子程序void write_byte(uchar dat)//写一个字节{ACC=dat;RST=1;for(a=8;a>0;a--){IO=ACC0;SCLK=0;SCLK=1;ACC=ACC>>1;}}uchar read_byte()//读一个字节RST=1;for(a=8;a>0;a--){ACC7=IO;SCLK=1;SCLK=0;ACC=ACC>>1;}return (ACC);}//----------------------------------------void write_1302(uchar add,uchar dat)//向1302芯片写函数,指定写入地址,数据{RST=0;SCLK=0;RST=1;write_byte(add);write_byte(dat);SCLK=1;RST=0;}uchar read_1302(uchar add)//从1302读数据函数,指定读取数据来源地址{uchar temp;RST=0;SCLK=0;RST=1;write_byte(add);temp=read_byte();SCLK=1;RST=0;return(temp);}uchar BCD_Decimal(uchar bcd)//BCD码转十进制函数,输入BCD,返回十进制{uchar Decimal;Decimal=bcd>>4;return(Decimal=Decimal*10+(bcd&=0x0F));}//--------------------------------------void ds1302_init() //1302芯片初始化子函数(2010-01-07,12:00:00,week4)RST=0;SCLK=0;write_1302(0x8e,0x00); //允许写,禁止写保护write_1302(0x80,0x00); //向DS1302内写秒寄存器80H写入初始秒数据00write_1302(0x82,0x00);//向DS1302内写分寄存器82H写入初始分数据00write_1302(0x84,0x12);//向DS1302内写小时寄存器84H写入初始小时数据12write_1302(0x8a,0x01);//向DS1302内写周寄存器8aH写入初始周数据4write_1302(0x86,0x08);//向DS1302内写日期寄存器86H写入初始日期数据07write_1302(0x88,0x07);//向DS1302内写月份寄存器88H写入初始月份数据01write_1302(0x8c,0x10);//向DS1302内写年份寄存器8cH写入初始年份数据10write_1302(0x8e,0x80); //打开写保护}时分秒显示子函数void write_sfm(uchar add,uchar dat)//向LCD写时分秒,有显示位置加、现示数据,两个参数{uchar gw,sw;gw=dat%10;//取得个位数字sw=dat/10;//取得十位数字write_1602com(er+add);//er是头文件规定的值0x80+0x40write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码}//-------------------------------------//年月日显示子函数void write_nyr(uchar add,uchar dat)//向LCD写年月日,有显示位置加数、显示数据,两个参数{uchar gw,sw;gw=dat%10;//取得个位数字sw=dat/10;//取得十位数字write_1602com(yh+add);//设定显示位置为第一个位置+addwrite_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码}//-------------------------------------------void write_week(uchar week)//写星期函数{write_1602com(yh+0x0c);//星期字符的显示位置switch(week){case 1:write_1602dat('M');//星期数为1时,显示 write_1602dat('O');write_1602dat('N');break;case 2:write_1602dat('T');//星期数据为2时显示 write_1602dat('U');write_1602dat('E');break;case 3:write_1602dat('W');//星期数据为3时显示 write_1602dat('E');write_1602dat('D');break;case 4:write_1602dat('T');//星期数据为4是显示 write_1602dat('H');write_1602dat('U');break;case 5:write_1602dat('F');//星期数据为5时显示 write_1602dat('R');write_1602dat('I');break;case 6:write_1602dat('S');//星期数据为6时显示 write_1602dat('T');write_1602dat('A');break;case 7:write_1602dat('S');//星期数据为7时显示 write_1602dat('U');write_1602dat('N');break;定时器0初始化程序void init() //定时器、计数器设置函数{TMOD=0x11; //指定定时/计数器的工作方式为1TH0=0; //定时器T0的高四位=0TL0=0; //定时器T0的低四位=0EA=1; //系统允许有开放的中断ET0=1; //允许T0中断TR0=1; //开启中断,启动定时器}}//****************键盘扫描有关函数**********************void keyscan(){if(key1==0)//---------------key1为功能键(设置键)-------------------- {delay(9);//延时,用于消抖动if(key1==0)//延时后再次确认按键按下{buzzer=0;//蜂鸣器短响一次delay(20);buzzer=1;while(!key1);key1n++;if(key1n==12)key1n=1;//设置按键共有秒、分、时、星期、日、月、年、返回,8个功能循环switch(key1n){case 1: TR0=0;//关闭定时器//TR1=0;write_1602com(er+0x09);//设置按键按动一次,秒位置显示光标 write_1602com(0x0f);//设置光标为闪烁temp=(miao)/10*16+(miao)%10;//秒数据写入DS1302write_1302(0x8e,0x00);write_1302(0x80,0x80|temp);//miaowrite_1302(0x8e,0x80);break;case 2: write_1602com(er+6);//按2次fen位置显示光标//write_1602com(0x0f);break;case 3: write_1602com(er+3);//按动3次,shi//write_1602com(0x0f);break;case 4: write_1602com(yh+0x0e);//按动4次,week//write_1602com(0x0f);break;case 5: write_1602com(yh+0x0a);//按动5次,ri//write_1602com(0x0f);break;case 6: write_1602com(yh+0x07);//按动6次,yue//write_1602com(0x0f);break;case 7: write_1602com(yh+0x04);//按动7次,nian//write_1602com(0x0f);break;case 8: write_1602com(er+1);write_1602dat(0x4d);write_1602com(er+1);break;case 9: write_1602com(er+1);write_1602dat(0x46);write_1602com(er+1);break;case 10:write_1602com(er+1);write_1602dat(0x53);write_1602com(er+1);break;case 11:write_1602com(er+1);write_1602dat(0x20);write_1602com(0x0c);//按动到第8次,设置光标不闪烁TR0=1;//打开定时器temp=(miao)/10*16+(miao)%10;write_1302(0x8e,0x00);write_1302(0x80,0x00|temp);//miao数据写入DS1302write_1302(0x8e,0x80);break;}}}//------------------------------加键key2---------------------------- if(key1n!=0)//当key1按下以下。

相关文档
最新文档