万年历电子系统设计方案
电子万年历课程设计
电子万年历课程设计一、课程目标知识目标:1. 学生能够理解电子万年历的基本原理和组成部分。
2. 学生掌握电子万年历的日期、时间设置及调整方法。
3. 学生了解电子万年历在不同场合的应用和功能。
技能目标:1. 学生能够独立完成电子万年历的组装和调试。
2. 学生通过实际操作,学会使用编程软件编写简单的程序,实现电子万年历的基本功能。
3. 学生具备分析电子万年历故障并进行排除的能力。
情感态度价值观目标:1. 学生培养对电子万年历的兴趣,激发学习电子技术和编程的热情。
2. 学生在合作学习中,培养团队协作能力和沟通表达能力。
3. 学生认识到电子万年历在现代生活中的重要作用,增强对科技创新的认识。
课程性质:本课程为实践性较强的信息技术课程,结合电子技术和编程知识,培养学生的动手能力和创新能力。
学生特点:五年级学生具备一定的电子技术基础和编程兴趣,好奇心强,喜欢动手操作。
教学要求:教师应关注学生的个体差异,采用分层教学,引导学生主动探索、实践,提高学生的综合素养。
在教学过程中,注重目标分解,确保学生能够达到预期学习成果。
二、教学内容1. 电子万年历的原理与结构- 介绍电子万年历的组成及工作原理- 分析电子万年历的核心元件及其功能2. 电子万年历的组装与调试- 指导学生进行电子万年历的组装- 教授调试方法,确保电子万年历正常运行3. 编程软件的使用- 介绍编程软件的基本操作和功能- 演示如何编写程序,实现电子万年历的基本功能4. 电子万年历的应用与拓展- 讲解电子万年历在不同场合的应用- 探讨电子万年历的拓展功能及其实现方法5. 故障分析与排除- 分析电子万年历可能出现的故障- 教授排除故障的方法和技巧教学内容安排与进度:第一课时:电子万年历原理与结构介绍第二课时:电子万年历组装与调试第三课时:编程软件使用及基本程序编写第四课时:电子万年历应用与拓展第五课时:故障分析与排除教材章节关联:本教学内容与课本第四章“电子时钟与万年历”相关,涉及电子万年历的原理、组装、编程及应用等方面的知识。
项目四 电子万年历系统设计
21 22 23 24 25 26 P2.5 27 P2.6 28 P2.7
RXD TXD ALE/P PSEN
10 11 30 29
4.2单片机与LCD液晶显示模块接口
#include <reg51.h>
#define uchar unsigned char
sbit LCDEN=P1^5;
//
使能信号,H为读,H跳变
74ABLS16124
CLK GND
8 VMCRC7
194
7AB4LS16124
CLK GND
8 VMCRC7
194
7AB4LS16124
CLK GND
8 VMCRC7
194
74ABLS16124
CLK GND
8 VMCRC7
194
B A
2 1
19 18
X1 X2
9 RESET
17 16
RXD TXD ALE/P PSEN
时钟脉冲,P0.0作为数据输出线。
DS1
DS2
DS3
DS4
DS5
U1
1 2 3 4 5 6 7 8
P10 P11 P12 P13 P14 P15 P16 P17
P00 P01 P02 P03 P04 P05 P06 P07
39 38 37 36 35 34 33 32
dp
8
g7
d
f6
c
ee 5
b
g
f
Y a=4?
N
发送第(4-a)个数码 管的字型码
sent(dispb[4-a])
Y i=8?
N
ch=ch<<1; DIN=CY; CLK=0; CLK=1;
电子万年历的设计
三、硬件设计
LED数码管动态 数码管动态 扫描显示模块 AT89S52 主控制 模块 温度采集模块 键盘模块
DS1302时钟模块 时钟模块
主控制系统图
键盘模块
日期和时间的修改由3 个按键构成。 键1为向右移; 键2为加1; 键3为减1。
DS1302的引脚图
返回
ds1302内部结构
温度采集模块
谢谢大家 欣赏
数字式温度传感器DS18B20, 它是数字式温度传感器, 具有测量精度高,电路连 接简单特点,此类传感器 仅需要一条数据线进行数 据传输,使用P0.7与 DS18B20的I/O口连接加一 个上拉电阻,Vcc接电源 ,Vss接地
I/O
vss
vcc
返回
LED动态扫描显示模块 动态扫描显示模块
系统电路图
一.设计要求
具有年、 具有年、月、日、星期、时、分、秒等功 星期、 能; 时间与阴、阳历能够自动关联; 时间与阴、阳历能够自动关联; 具备年、 星期、 具备年、月、日、星期、时、分、秒校准 功能; 功能; 具有温度计功能; 具有温度计功能;
二、基本方案
采用AT89S52作为主控制系统 作为主控制系统 采用 采用DS1302提供时钟 提供时钟 采用 采用数字式温度传感器DS18B20 采用数字式温度传感器 采用LED数码管动态扫描作为显示 数码管动态扫描作为显示 采用
1.
六、总结
通过此次毕业设计, 通过此次毕业设计,我 不仅把知识融会贯通, 不仅把知识融会贯通,而且 丰富了大脑, 丰富了大脑,同时在查找资 料的过程中也了解了许多课 外知识,开拓了视野, 外知识,开拓了视野,认识 了将来电子的发展方向, 了将来电子的发展方向,使 自己在专业知识方面和动手 能力方面有了质的飞跃。 能力方面有了质的飞跃。
基于AT89C51电子万年历的设计与仿真设计方案
基于AT89C51电子万年历的设计与仿真设计方案第一章绪论1.1 课题的背景在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。
为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。
钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能——计时功能,只是工作原理不同而已,在人们的使用过程中逐渐发现了钟表的功能太单一,没有更大程度上的满足人们的需求。
随着电子技术的迅速发展,特别是随着大规模集成电路产生而出现的微型计算机,给人类生活带来了极大的方便。
走入家庭,从洗衣机、微波炉到音响、汽车,到处都可以见到单片机应用的踪影。
如果说微型计算机技术的出现使现代科学研究得到了质的飞跃,那么也可以毫不夸的说:“单片机技术的出现则是给现代工业测控领域带来了一次新的工业革命”。
因此,单片机技术的开发和应用水平已经逐步成为一个国家自动化发展水平的标志之一。
万年历是采用数字电路实现对时、分、秒数字显示的计时装置, 随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
它们可以对年、月、日、周日、时、分、秒进行计时,还具有润年补偿等功能,且使用寿命长、误差小、使用方便,电子万年历的出现给人们的生活带来的诸多方便。
目前,国际上的电子万年历正从模拟模式向数字式、由集成化向智能化的方向飞速发展。
1.2 电子万年历的应用电子万年历广泛用于个人家庭,车站,码头办公室等公共场所,成为人们常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。
万年历电子系统设计方案
万年历电子系统设计方案一、设计要求与方案论证1.1 项目设计容、功能、指标:(1)基本要求①具有年、月、日、时、分、秒等功能;②具有自动判别闰年闰月的功能③有一路闹钟( 2 ) 创新要求①具有闹钟功能,时间到后蜂鸣器响,led灯亮。
②设置的时间日期掉电不丢失③具有温度计功能;1.2项目设计方案和比较1.2.1单片机芯片的选择方案和论证:方案一:采用89C51芯片作为硬件核心,采用Flash ROM,部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
方案二:采用STC89C52,片ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。
所以选择采用AT89S52作为主控制系统.1.2.2 显示模块选择方案和论证:方案一:采用Lcd液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见。
方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示. 方案三:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。
由于显示的容较多,采用led数码管不方便,所以采用了LCD液晶作为显示。
1.2.3时钟芯片的选择方案和论证:方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
电子万年历系统设计方案
电子万年历系统设计方案1.1 STC89C52简介STC89C52完全兼容MCS-51,还有新的功能,比如新增两级中断优先级,多一个外中断,置EEPROM,512B存等。
还支持ISP下载,不用编程器,只要一个MAX232和一些廉价的元件就能写程序,可擦写10万次。
比51起最大的优点能支持在线下载,在线烧写程序,而不必专门买昂贵的编程器,只需要ISP下载线就可以了。
图1 STC功能逻辑图1.2 性能参数STC单片机比51单片机性能有以下优越性:(1) 高抗静电(ESD),6000伏静电测试,直接打在芯片管脚上,安然无恙。
(2) 超强抗干扰,轻松过2KV/4KV,快速脉冲干扰(EFT)。
(3) 超强加密,性能良好。
(4) STC 5V单片机,宽电压,5V - 3.8V给复位信号,正常工作。
(5) STC 单片机,Power 直接在用户系统上用ISP在线下载方式,将用户程序(6) 下载进STC单片机Down,掉电时功耗<0.1uA(C版本)。
(7) I/O 口输入/ 输出口经过特殊处理,很多干扰是从I/O 进去的,每个I/O 均有对VCC,对GND二级管箝位保护。
(8) 单片机部的电源供电系统经过特殊处理,很多干扰是从电源进去的。
图 2 STC89C52引脚图鉴于SCT89C52和AT98C51引脚分布相同,以上仅介绍SCT89C52一些优于AT98C51的性能,在此,就不对单片机多做介绍了,详细参数可以参考SCT89C52 PDF资料图,或者相关书籍,或者上网查阅相关,在此,推荐一官方:.mcu-memory.2 应用系统设计2.1系统功能说明根据家居生活中的实际需要,万年历应该具有如下功能。
1、时间显示时间显示是万年历设计最重要的功能。
万年历应该不仅能准确显示时、分、秒,而且还要能够显示年、月、日和星期。
2、时间调整万年历在第一次使用时,需要根据当前时间进行时间调整,设定起初始时间,设置完成之后,它会在设定值基础上进行准确的计时和显示。
基于51单片机的万年历设计
基于51单片机的万年历设计一、系统设计方案本万年历系统主要由 51 单片机、时钟芯片、液晶显示屏、按键等部分组成。
51 单片机作为核心控制器,负责整个系统的运行和数据处理。
时钟芯片用于提供精确的时间信息,液晶显示屏用于显示万年历的相关内容,按键则用于设置时间和功能切换。
二、硬件设计1、单片机选型选用常见的 51 单片机,如 STC89C52 单片机,它具有性能稳定、价格低廉、易于编程等优点。
2、时钟芯片选择 DS1302 时钟芯片,该芯片能够提供高精度的实时时钟,具有闰年补偿功能,并且可以通过串行接口与单片机进行通信。
3、液晶显示屏采用 1602 液晶显示屏,能够清晰地显示字符和数字,满足万年历的显示需求。
4、按键电路设计四个按键,分别用于时间设置、功能切换、加和减操作。
三、软件设计1、主程序流程系统上电后,首先进行初始化操作,包括单片机端口初始化、时钟芯片初始化、液晶显示屏初始化等。
然后读取时钟芯片中的时间数据,并在液晶显示屏上显示出来。
接着进入循环,不断检测按键状态,根据按键操作执行相应的功能,如时间设置、功能切换等。
2、时钟芯片驱动程序通过单片机的串行接口向 DS1302 发送命令和数据,实现对时钟芯片的读写操作,获取准确的时间信息。
3、液晶显示屏驱动程序编写相应的函数,实现对1602 液晶显示屏的字符和数字显示控制。
4、按键处理程序采用扫描方式检测按键状态,当检测到按键按下时,执行相应的按键处理函数,实现时间设置和功能切换等操作。
四、时间设置功能通过按键操作进入时间设置模式,可以分别设置年、月、日、时、分、秒等信息。
在设置过程中,液晶显示屏会显示当前设置的项目和数值,并通过加、减按键进行调整。
设置完成后,将新的时间数据保存到时钟芯片中。
五、显示功能万年历的显示内容包括年、月、日、星期、时、分、秒等信息。
通过合理的排版和显示控制,使这些信息在液晶显示屏上清晰、直观地呈现给用户。
六、系统调试在完成硬件和软件设计后,需要对系统进行调试。
基于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)附录............................................................................................................... 错误!未定义书签。
毕业设计---基于单片机的多功能电子万年历的设计
基于单片机的多功能电子万年历的设计摘要随着科技的快速发展,自从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
本文主要介绍了基于单片机的智能电子万年历的研制,该万年历能够实时显示公历年、月、日、时、分、秒,以及对应的农历日期、24节气、天干地支、闹铃功能,同时还能够实时测取环境温度。
本系统的硬件部分主要由A VR单片机、时钟芯片、温度传感器等部件组成,文中给出了详细的硬件设计实现及相关电路图;软件部分主要包含公历转农历的算法设计模块、显示模块、时间的读取、温度的检测模块,按键的扫描输入模块等,文中给出了系统的软件程序流程图及各功能模块的软件程序清单,最后介绍了整体系统的设计实现、仿真及调试过程,给出了下一步的改进方案等。
关键词:单片机;液晶技术;万年历;时钟芯片Design of Multifunctional digital Perpetual Calendar Based on MCUAbstractWith the development of technology,Since the concept of the sun, Baizhong, andnow the electronic bell,human beings continue to study and constant innovation record。
This paper-based Microcontroller Development of Intelligent electronic calendar, The calendar can display real-time in the calendar year, month, day, hours, minutes and seconds,a nd the correspond ing date of the Lunar New Year, 24 Solar Terms,at the same time also to real-time measurement from the ambient temperature,In addition to the user through the keyboard input years of history,for the correspond ing period of the Lunar.The system hardware from some of the major A VR microcontroller, a number of digital control, decoder, the clock chip,temperature sensors and other components,the paper gives a detailed design and implementation of hardware and related circuit;Software contains some of the major Lunar calendar to the algorithm design module,dynamic digital display modules,time to read,temperature detection module,Press enter the scanning module.In this paper, the system software modules and flow chart of the list of software programs,Finally, the realization of the overall system design, simulation and debugging process, the next step is the improvement programmes.Keywords:MCU;crystal technology;Calendar;Clock chip目录引言 (1)第1章绪论 (2)1.1课题的背景与意义 (2)1.2 数字万年历的现状与发展 (2)1.3 论文的主要工作及章节安排 (3)1.4 本章小结 (3)第2章方案论证比较.............................................................................. (4)2.1 多功能数字万年历系统概述 (4)2.2计时方案 (4)2.3温度检测方案 (5)2.4显示方案 (5)2.5本章小结 (5)第3章系统硬件设计 (6)3.1 主控制器ATmega16 单片机介绍 (6)3.2 时钟电路DS1302 (6)3.3 温度检测DS18B20 (7)3.4 动态显示 (8)3.5 键盘接口 (8)3.6 语音闹铃模块 (8)3.7 电源设计 (9)3.8本章小结 (11)第4章系统软件设计 (12)4.1 公历计算显示程序设计 (13)4.1.1 DS1302 内部寄存器 (13)4.1.2 时间读取程序设计 (15)4.2 农历转换程序设计 (16)4.2.1 公历转农历算法研究 (16)4.2.2 干支纪年简介 (18)4.2.3 公历转农历程序 (18)4.3 温度测量程序设计 (20)4.3.1 DS18B20 的测温原理 (20)4.3.2 温度程序 (21)4.4 二十四节气算法研究 (23)4.5系统仿真 (24)4.6本章小结 (25)结论与展望 (26)致谢 (27)参考文献 (28)附录 A 电子万年历原理图 (29)附录 B 外文文献与译文 (30)英文原文: (30)中文译文: (33)附录 C 参考文献题录及摘要 (35)附录 D 电子万年历源程序 (37)插图清单图2-1 数字万年历系统框图 (4)图3-1 DS1302与ATmega16连接图 (7)图3-2 DS18B20与AtMEGA16连接图 (8)图3-3 报时电路 (9)图3-4 稳压电源原理图 (10)图3-5 电源电路 (10)图4-1 系统程序流程图 (13)图4-2 公历程序流程图 (14)图4-3 DS18B20测温原理 (21)表格清单表3-1 LCD12864显示内容 (8)表4-1 DS1302的寄存器及其控制字 (14)表4-2 RS位配置 (15)引言人类的日常生活离不开时间,任何具有周期性变化的自然现象都可以用来测量时间。
电子万年历的仿真与设计方案
电子万年历的仿真与设计方案一、方案论证1、技术可行性随着国超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。
集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行I/O口、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-Chip Microcomputer)。
而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A 转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元、PWM控制输出单元、PWM输出时的死区可编程控制功能等。
因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。
单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关:(1)单片机构成的应用系统有较大的可靠性。
这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。
(2)系统扩展、系统配置较典型、规,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。
(3)由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。
(4)有优异的性能、价格比。
2、单片机的选择方案一:采用传统的AT89C52作为电机的控制核心。
单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
方案二:采用FTC10F04单片机,还带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。
其主要特点如下:8KB Flash ROM,可以擦除1000次以上,数据保存10年。
电子万年历系统课程设计
计算机学院信息管理与信息系统专业《管理信息系统课程设计》报告(2010/2011学年第一学期)学生姓名:学生班级:学生学号:指导教师:2011年1月15 日目录第一章课程设计目的和要求 (1)1.1课程设计主要目的 (1)1.2本课程设计主要目标 (1)1.3课程设计要求 (1)第二章课程设计任务背景与内容 (2)2.1任务背景介绍 (2)2.2任务内容 (2)第三章详细设计说明 (3)3.1总体模块图 (3)3.11程序设计组成框图 (3)3.12程序流程图 (4)第四章程序运行及调试 (8)4.1 调试与测试 (8)4.2 分析及结论 (9)4.3 程序运行调试图 (10)第五章课程设计心得与体会 (13)附录1 参考文献 (14)附录2 程序 (15)电子万年历系统第一章课程设计目的和要求1.1课程设计的目的C++语言程序设计的主要目的是要求我们遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C++语言程序及编写设计报告。
根据自己学习到的内容,在设计的过程中充分的将老师所教和课本固有充分发挥出来。
使得理论和实践联系起来,同时也培养综合运用C++程序设计的素质。
培养用C++编写程序的能力,和养成良好的编写程序的习惯。
通过本次实践学习,可以使自身对所学知识进一步消化,理解并掌握,锻炼和提高综合运用所学知识解决实际问题的能力,熟悉编译工具的使用方法和环境。
1.2课程设计的目标本课程设计的目标:1.巩固和加深学生对C++语言课程的基本知识的理解和掌握;2.掌握C++语言编程和程序调试的基本技能;3.掌握利用C++语言进行软件设计的方法;4.提高书写程序设计说明文档的能力;5.提高运用C++语言解决实际问题的能力。
1.3课程设计要求基本要求:1.分析课程设计题目的要求;2.对系统功能模块进行分析,写出详细设计说明文档;3.编写程序代码,调试程序使其能正确运行;4.设计完成的软件要便于操作和使用;5.设计完成后提交课程设计报告。
万年历设计项目设计方案
万年历设计项目设计方案第一章绪论1.1课题研究的意义万年历是我国古代传说中最古老的一部太阳历。
为纪念历法编撰者万年功绩,便将这部历法命名为“万年历”。
而现在所使用的万年历,实际上就是记录一定时间范围内(比如100年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用,与原始历法并无直接联系。
而随着微电子技术的高速发展,人类用于计时的工具也在不断发展更新,单片机技术的出现使得万年历有了新的发展方向。
单片机以其体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。
目前世界上单片机年产量已达十多亿片,通常是当年微处理器产量的4-5倍以上。
用最少的芯片就能实现最强大的功能,这是将来电子产品的主流方向,它将无可置疑地一步步取代其它同类产品,其数量之大和应用面之广,是其它任何类型的计算机所无法比拟的。
以基于单片机的万年历作为设计的课题,因为它有很好的开放性和可发挥性,对作者的要求比较高,不仅考察了对单片机的掌握能力而且强调了对单片机扩展的应用。
另外液晶显示的万年历已经越来越流行,特别适合在家庭居室、办公室、大厅、会议室、车站和广场等地方使用,它具有显示清晰直观、走时准确、可以进行夜视等功能,并且还可以扩展出其它多种功能。
所以,电子万年历作为设计课题很有价值。
1.2本课题主要的研究工作本论文主要研究基于单片机的万年历设计。
当程序执行后,LCD显示即时时间、年月日、星期、温度。
设置3个操作键:K1:设置键;K2:上调键;K3:下调键。
本设计的主要内容:1、了解单片机技术的发展现状,熟悉万年历各模块的工作原理;2、选择适当的芯片和元器件,确定系统电路,绘制电路原理图,尤其是各接口电路;3、熟悉单片机使用方法和C语言的编程规则,编写出相应模块的应用程序;4、分别在各自的模块中调试出对应的功能,在Proteus软件上进行仿真。
数字电子万年历 时钟电路设计 毕业设计
摘要在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。
为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。
钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能——计时功能,只是工作原理不同而已,在人们的使用过程中,逐渐发现了钟表的功能太单一,没有更大程度上的满足人们的需求。
因此在这里,我想能不能把一些辅助功能加入钟表中去。
在此设计中所设计的钟表不但具有普通钟表的功能,它还能实现一个额外的功能:温度测量。
且数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。
该电路采用AT89C52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电.。
具有较高的实用性。
关键词:单片机AT89C52;万年历; DS18B20温度传感器;时钟芯片DS12C887AbstractIn contemporary work and busy life, time and every one of us has a very close relationship, each person affected by time. In order to better use of our own time, we must have a measure of time, resulting in a watch. Clocks is a very rapid development, from the beginning of the mechanical watches that is now widely used in digital watches, clocks, even though it is now unusual, but they are just completed a feature - a time function, working principle is different in people's use of the process, and gradually found a single watch function too, there is no greater demand to meet the people. So here, I would like to be able to watch a number of auxiliary functions to join in to.In the design of the watches designed not only has the general functionality of watches and clocks, it can achieve an additional function: temperature measurement. And digital electronic calendar using intuitive digital display, you can also display year, month, day, weekdays, hours, minutes, seconds and temperature information, but also time-calibration functions. AT89C52 single-chip microcomputer of the circuit as the core of power in small, low-pressure in the work of 3V, voltage can be selected 3 ~ 5V supply voltage.. Have a high relevance.Key words:single-chip microcomputer AT89C52; calendar; DS18B20 temperature sensor; clock chip DS12C887目录绪论 (1)1. 方案设计 (2)1.1 课题开发背景 (2)1.2 设计的目的 (2)1.3 设计的意义 (3)1.4 国内外发展 (3)1.5 总体方案论证与选择 (3)1.6 模块方案论证与选择 (4)1.6.1 时钟模块 (4)1.6.2 键盘模块 (4)1.6.3 显示模块 (5)1.6.4 温度传感器模块 (5)2. 系统总体设计 (6)2.1 电路设计框图 (6)2.2 系统硬件概述 (7)2.3 单片机AT89C52功能介绍 (7)2.4 时钟模块设计 (13)2.5 温度采集模块 (16)2.6 显示模块 (22)2.7 电源电路部分 (26)2.7.1 电路组成 (26)2.7.2 三端稳压集成电路7805 (27)2.8 键盘部分 (28)2.9 报警模块 (30)2.9.1 报警电路 (30)2.9.2 NE555芯片 (30)结论与展望 (32)结论 (32)单片机的发展趋势 (32)致谢 (33)参考文献 (34)附录一 (35)绪论电子钟已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
电子万年历的设计与制作
一、设计目的及意义(1)在学习了《数字电子技术》和《单片机原理及接口技术》课程后,为了加深对理论知识的理解,学习理论知识在实际中的运用,培养动手能力和解决实际问题的经验让学生接触专用时钟芯片DS1302,并会用DS1302芯片开发时钟模块,应用到其他系统中去。
熟悉WAVE 软件调试程序和仿真。
(2)、通过实验提高对单片机的认识;(3)通过实验提高焊接、布局、电路检查能力;(4)、通过实验提高软件调试能力;(5)进一步熟悉和掌握单片机的结构及工作原理.(6)通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。
(7)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
(8) 通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
二、设计内容要求电子万年历能显示阳历年、月、日、星期、[小]时、分、秒和阴历月、日,在显示阴历时间时能标明是否为闰年。
三、方案选择与实验基本原理。
按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、显示模块、键盘接口模块共4个模块组成,电路系统构成框图如图L1所示.主控芯片使用51系列AT89c52单片机,时钟芯片使用美国DALLAs公司推出的一种高性能、低功耗、带RAM的实时时钟DSl302.采用DSl 302作为主要计时芯片,可以做到计时准确。
更重要的是,DSl302可以在很小电流的后备电源(2.5-5.5v电源,在2.5v时耗电小于300 nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。
显示模块采用普通的共阳LED数码管,键输入采用查询法实现调整功能。
图1 电子万年历电路系统构成框图系统硬件电路的设计图2为电子万年历电路设计原理图,系统由主控制器AT89C52、时钟芯片DSl302、串口显示电路及键扫描电路组成。
图2电子万年历电路设计原理图3。
数字万年历的设计设计
摘要电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。
它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。
该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。
万年历的设计过程在硬件与软件方面进行同步设计。
硬件部分主要由AT89C52单片机,LED显示电路,以及调时按键电路等组成。
在单片机的选择上本人使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。
74HC164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。
软件方面主要包括日历程序、时间调整程序,公历转阴历程序,显示程序等。
所有程序编写完成后,在wave软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。
最后总在老师同学的帮助以及自己的努力下完成了此次电子万年历的设计。
关键词:时钟电钟 DS1302 DS18B20 动态扫描单片机AbstractE-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 AT89S52 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 AT89C52 microcontroller, LED display circuit, and the tune composed of the circuit when the button. In the SCM choice I used the AT89C52 microcontroller, which is suitable for many of the more complex control applications. Monitor the use of two 7SEG-MPX8-CA and a 7SEG-MPX4-CA. 7SEG-MPX8-CA is a total of eight-yang diode display, 7SEG-MPX4-CA is a total offour-yang diode display. In order to more easily control the three monitors, I use three 74HC164 to drive.74HC164 is an 8-bit edge-triggered shift register, serial input data, and parallel output. The software includes calendar program, time to adjust procedures, turn the lunar calendar programs, display programs. Programs written in assembly language used in order to more easily adjust the time and the realization of the lunar calendar display. All programming is complete, the wave software debugging, make sure that no problems, in the Proteus software within a microcontroller embedded in the simulation. The final overall the teacher to help students, as well as their own efforts to complete the design of the electronic calendar.Keywords:Clock electric clock DS1302 DS18B20 Dynamic scan SCM目录第一章设计要求与方案论证 (1)第一节设计要求 (1)第二节系统基本方案选择和论证 (1)第三节电路设计最终方案决定 (3)第二章系统的硬件设计与实现 (4)第一节电路设计框图 (4)第二节系统硬件概述 (4)第三节主要单元电路的设计 (4)第三章系统的软件设计 (8)第一节程序流程框图 (8)第四章指标测试 (12)第一节测试仪器 (12)第二节硬件测试 (12)第三节软件测试 (13)第四节测试结果分析与结论 (13)致谢词 (15)参考文献 (16)附录一系统电路图 (17)附录二系统使用说明书 (18)第一章设计要求与方案论证第一节设计要求一、基本要求:1.具有年、月、日、星期、时、分、秒等功能;2.时间与阴、阳历能够自动关联;3.具有温度计功能;4.具备年、月、日、星期、时、分、秒校准功能。
万年历的设计与实现
一、引言万年历是一种用来显示公历日期的工具,它可以显示任意年份、月份和日期的具体信息,是人们日常生活中常用的日历。
在现代科技的发展下,电子万年历已经成为人们生活中不可或缺的工具之一、本文将介绍电子万年历的设计与实现。
二、需求分析电子万年历的主要功能包括显示年份、月份、日期、星期和节假日等信息,还可以实现查询功能和闹钟功能。
基于这些需求,我们可以列出以下设计要点:1.显示日期信息:能够准确显示当前年份、月份和日期,并根据日期自动显示对应的星期。
2.节假日功能:能够根据日期判断是否是法定节假日,并在显示上进行标识。
3.查询功能:用户可以通过输入特定的年份、月份和日期来查询对应日期的具体信息。
4.闹钟功能:用户可以设置闹钟,在指定的时间点进行提示。
三、设计方案1.硬件设计电子万年历的硬件设计主要包括显示屏、按键和主控芯片等部分。
显示屏采用液晶显示屏,用于显示日期和相关信息;按键用于用户输入,包括查询和设置闹钟等功能;主控芯片用于控制整个系统的运行。
2.软件设计电子万年历的软件设计主要包括日期显示、节假日判断、查询功能和闹钟功能。
具体的软件设计如下:(1)日期显示:根据当前日期获取对应的年份、月份和日期信息,并通过显示屏进行显示。
同时,根据日期信息计算对应的星期,并显示在屏幕上。
(2)节假日判断:根据国家的法定节假日规定,判断当前日期是否是法定节假日,并在显示屏上进行标识。
(3)查询功能:用户可以通过输入特定的年份、月份和日期来查询对应日期的具体信息。
根据用户输入的信息,系统进行判断并显示相应的结果。
(4)闹钟功能:用户可以设置闹钟时间,当时间到达时,系统进行提示。
闹钟功能需要经常与实时的时间进行比对,以确保准确性。
四、实现细节1.硬件实现硬件设计主要包括选择合适的显示屏、按键和主控芯片。
显示屏可以选择液晶显示屏,具有较好的显示效果和易操作性;按键可以选择独立按键或触摸按键,用于用户输入;主控芯片可以选择单片机或嵌入式系统,用于控制整个系统的运行。
基于51单片机的电子万年历系统的设计
参考内容
一、引言
单片机是现代电子设备中的重要组成部分,广泛应用于各种嵌入式系统设计。 51单片机作为一种经典的微控制器,因其结构简单、易于编程、可靠性高等优点, 被广泛用于各种领域,如智能家居、工业控制、物联网等。万年历作为一种日常 生活中常见的计时工具,具有显示日期、时间、星期、月份等功能,对于人们的 日常生活和工作有着重要的作用。本次演示将介绍一种基于51单片机的万年历设 计。
二、系统设计
1、硬件设计
基于51单片机的万年历设计需要硬件和软件的配合实现。硬件部分主要包括 51单片机、显示模块、按键输入模块和时钟芯片等。其中,51单片机作为主控制 器,负责处理各种数据和控制信号;显示模块用于显示日期、时间等信息;按键 输入模块用于用户输入操作;时钟芯片则为系统提供实时时间。
基于51单片机的电子万年历系 统的设计
目录
01 一、概述
03 三、软件设计
02 二、硬件设计 04 四、系统调试与优化
目录
05 五、应用场景及前景
07 参考内容
06 六、结论
随着科技的不断发展,单片机已经成为现代于51单片机的电子万年历系统设计具有广泛的实际应用价值。 本次演示将详细介绍这种系统的设计过程和实现方法。
感谢观看
首先需要进行硬件搭建,包括选择合适的单片机、显示模块、按键输入模块 和时钟芯片等,并将其连接起来。需要注意的是,在搭建硬件时需要考虑各个模 块之间的接口和连接方式,以确保系统能够正常工作。
2、软件编程
在硬件搭建完成后,需要进行软件编程。首先需要进行系统初始化,包括对 单片机进行初始化和对显示进行清屏处理。然后需要进行按键处理和时钟数据处 理,以实现用户输入和实时时间的读取。最后需要进行显示处理,将处理后的数 据显示到显示模块上。
多功能电子万年历设计
多功能电子万年历设计一、本文概述本文旨在探讨多功能电子万年历设计的原理、方法及其在实际应用中的价值。
我们将对电子万年历的基本概念进行简要介绍,包括其发展历程、主要功能以及与传统日历的对比。
接着,我们将详细分析多功能电子万年历的设计要素,包括硬件选择、软件编程、用户界面设计等方面,以展示其独特的功能和设计理念。
在此基础上,我们将深入探讨多功能电子万年历设计的关键技术,如时间同步技术、多语言支持、日历算法优化等,以揭示其背后的技术原理和实现方法。
我们还将对多功能电子万年历的市场需求和应用前景进行分析,以展示其在现代社会中的重要作用。
本文将对多功能电子万年历设计的未来发展进行展望,探讨其在智能化、个性化、集成化等方面的趋势和挑战。
通过本文的阐述,读者可以对多功能电子万年历设计有一个全面、深入的了解,为其在实际应用中的开发和使用提供有益的参考。
二、电子万年历的设计原理电子万年历的设计原理主要基于时间计算、显示控制和数据存储三大核心部分。
在设计过程中,我们需要考虑如何精确计算时间,如何将时间信息以清晰易懂的方式显示出来,以及如何将这些时间数据存储和处理。
时间计算是电子万年历设计的基石。
它涉及到如何准确地计算年、月、日、时、分、秒等时间单位,并且要考虑闰年、闰月等复杂的时间规则。
这通常通过内置的时钟芯片实现,该芯片能够按照预设的算法进行时间计算,确保时间的准确性和连续性。
显示控制是电子万年历设计的关键。
显示控制的主要任务是将计算得到的时间信息转化为可视化的界面,供用户查看。
这包括选择适合的显示器件(如LCD屏幕、LED数码管等),并编写相应的显示驱动程序,以确保时间信息能够清晰、准确地呈现在用户面前。
数据存储是电子万年历设计的重要组成部分。
数据存储主要负责保存用户设置的时间、日期、闹钟等信息,以便在用户关机或断电后能够恢复。
通常,这些数据会存储在内置的存储芯片中,如EEPROM或Flash芯片,这些芯片具有非易失性,能够长期保存数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
万年历电子系统设计方案一、设计要求与方案论证1.1 项目设计容、功能、指标:(1)基本要求①具有年、月、日、时、分、秒等功能;②具有自动判别闰年闰月的功能③有一路闹钟( 2 ) 创新要求①具有闹钟功能,时间到后蜂鸣器响,led灯亮。
②设置的时间日期掉电不丢失③具有温度计功能;1.2项目设计方案和比较1.2.1单片机芯片的选择方案和论证:方案一:采用89C51芯片作为硬件核心,采用Flash ROM,部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
方案二:采用STC89C52,片ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。
所以选择采用AT89S52作为主控制系统.1.2.2 显示模块选择方案和论证:方案一:采用Lcd液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见。
方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示. 方案三:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。
由于显示的容较多,采用led数码管不方便,所以采用了LCD液晶作为显示。
1.2.3时钟芯片的选择方案和论证:方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。
方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V围,2.5V时耗电小于300nA,但成本高。
最终确定采用方案一,直接用单片机定时器提供秒信号。
1.2.4温度传感器的选择方案与论证:方案一:使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。
此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。
方案二:采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。
另外,数字式温度传感器还具有测量精度高、测量围广等优点。
最终采用DS18B20。
1.2.5 掉电不丢失采用EEROM 24C02存储设定的时间日期,实现掉电不丢失。
1.3 电路设计最终方案决定综上各方案所述,对此次作品的方案选定: 采用STC89C52作为主控制系统;单片机计数器提供时钟;数字式温度传感器18B20;LCD液晶屏作为显示;用独立按键控制时间的调整、闹钟的设定。
二.系统的硬件设计与实现2.1 电路设计框图2.2 系统硬件概述本电路是由STC89C52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由单片机部计数器构成,每计1秒,产生一个终断,提供秒信号;采用E2ROM 1602存储,掉电不丢失;温度的采集由DS18B20构成;显示部份由液晶显示屏1602构成。
2.3 主要单元电路的设计2.3.1单片机主控制模块的设计stc89c52单片机为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引脚为电源端. 如图-1 所示图-1 主控制系统2.3.2温度采集模块设计如图-3所示。
采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P2.7与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,1管脚接地。
图-3 DS18B20温度采集2.3.3部计数器用计数器的工作方式一,采用16位加一计数器, THx8位和TLx8位组成16位加1计数器,计数外部脉冲个数:1~65536(216),计数的最大值为65536,定时时间(若T=1ms):1ms~(65536×T=65.54ms)。
计数器工作原理框图如下2.3.4 显示模块的设计显示模块通过一块16脚的LCD1602组成。
其中1、2脚接地,7、9、11分别接一个I/O口用于控制液晶的显示,13--28接P0的8个I/O口用于数据传输,29、31用于控制液晶的背光。
如下图所示基本操作时序表读写操作时序如图所示:图读操作时序图写操作时序2.3.5 按键模块的设计采用独立按键控制,上拉电阻接Vcc,按键为低电平有效。
2.3.6 蜂鸣器模块的设计蜂鸣器需要用三极管驱动才能工作,高电平有效。
2.3.6 rom模块采用E2ROM 24C02,存储时间设置,可以起到掉电不丢失的作用。
2.3.7 串口下载模块采用芯片max232,在pcb板上设计串口,接单片机的txd和rxd,用于下载程序。
三、系统的软件设计实验程序流程图如下所示:四、调试过程和测试方法调试过程:1、首先在一块单片机开发板上调用相应的模块,调试程序,这主要是软件调试,软件调试正确后,按照原理图将所需模块用DXP软件画pcb板并完成腐蚀和焊接。
2、检测串口是否能够下程序3、检测晶振工作频率是否正常4、检测按键按下前后输出端点评是否正常5、正确下进程序之后,发现液晶显示屏始终无法显示字符,这是调节液晶1602 的5管脚相连的滑动变阻器,直至能够显示字符。
6、在设定时间的时候,光标闪烁显示正在设置的是哪一位,但加上温度显示后,由于温度随时在采样并显示,所以出现了温度与时间抢光标的情况,而更加糟糕的是,由于不同模块间的相互干扰,加上温度后,时间经常会终止,这是用单片机部计数器定时的弊端,如果用时钟芯片,应该可以避免这种现象。
最终只能去掉温度显示模块。
结果测试:最终可以实现年、月、日、时、分、秒的显示和闹钟功能,可以判断闰年闰月,时间可以设定。
按下s1进入时间设定模式,此时再按键s1可以切换要设置的是哪一位,多次按s1,依次可以设定秒、分、时、日、月、年的低2位、年的高2位、时钟的分、时钟的时,按键s2使被设置位的数值增加,按键s3使被设置位的数值减小,按键s4使液晶显示从时间设定模式转换为正常走时模式。
闹钟所设定的时间到后,蜂鸣器响,led灯亮,这里的led 灯代表一个驱动,比如家里的电饭煲,当时间到的时候,可以自动启动,此时按下按键s5,蜂鸣器停止鸣叫,led灯灭。
掉电后,设定的时间不会丢失,再次开机,仍未原关机前的时间。
此外,串口工作正常。
五、参考文献[1] 郭天翔.新概念51单片机C语言教程入门、提高、开发、拓展全..电子工业2009.1[2]罗杰 .电子线路设计实验测试. 电子工业 2008年4月[3] 江志红51单片机技术与应用系统开发案例精选清华大学2008.12[3] 居义单片机课程设计指导清华大学 2009.9[3] 宋戈 51单片机应用开发例大全人民邮电 2008.12附录一、原理图与PCB图附录二、试验程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intbit write=0;sbit sda=P2^3;sbit scl=P2^4;sbit p1=P1;sbit rs=P2^2;sbit rw=P2^1;sbit lcden=P2^0;sbit s1=P1^0;sbit s2=P1^1;sbit s3=P1^2;sbit s4=P1^3;sbit s5=P1^4;sbit rd=P3^7;sbit beep=P2^3;sbit guanjiao=P3^4;sbit deng=P1^5;uchar count,s1num;uint shi1,shi2,shi3,shi4,shi5,shi6; char miao,shi,fen;uint setshi,setfen;uint ri,yue,nian,nian1;uchar code table[]="2012-04-20";uint shi1=0;uint fen1=0;uchar flag;/**************************************AT24C02C芯片*****************************************************/ void flash(){;;}void start() //开始信号{sda=1;flash();scl=1;flash();sda=0;flash(); }void stop() //停止{sda=0;flash();scl=1;flash();sda=1;flash(); }void respons() //应答{uchar i;scl=1;while((sda==1)&&(i<250)) i++; scl=0;flash();}void init(){sda=1;flash();scl=1;flash();}void write_byte(uchar date) {uchar i,t;t=date;for(i=0;i<8;i++){t=t<<1;scl=0;flash();sda=CY;flash();scl=1;flash();}scl=0;flash();sda=1;flash();}uchar read_byte(){uchar i,k;flash();sda=1;flash();for(i=0;i<8;i++){scl=1;flash();k=(k<<1)|sda;scl=0;flash();}return k;}void write_add(uchar address,uchar date) {start();write_byte(0xa0);respons();write_byte(address);respons();write_byte(date);respons();stop();}uchar read_add(uchar address){uchar date;start();write_byte(0xa0);respons();write_byte(address);start();write_byte(0xa1);respons();date=read_byte();stop();return date;}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void di(){beep=0;delay(100);beep=1;}void write_(uchar ){rs=0;lcden=0;P0=;delay(5);lcden=1;delay(5);lcden=0;}void write_date(uchar date) {rs=1;lcden=0;delay(5);lcden=1;delay(5);lcden=0;}void write_sfm(uchar add,uchar date) {uchar sh,ge;sh=date/10;ge=date%10;write_(0x80+0x40+add);write_date(0x30+sh);write_date(0x30+ge);}void write_sfm1(uchar add,uchar date) {uchar sh,ge;sh=date/10;ge=date%10;write_(0x80+add);write_date(0x30+sh);write_date(0x30+ge);}void init0(){uchar num;// P1=0x0f;rd=0;rw=0;lcden=0;count=0;guanjiao=0;init();write_(0x38);write_(0x0c);write_(0x06);write_(0x01);write_(0x80+4);write_date('-'); delay(5);write_(0x80+0x40+2); write_date(':');write_(0x80+7);write_date('-'); delay(5);delay(5);write_(0x80+0x40+5); write_date(':'); delay(5);write_(0x80+0x40+12); write_date(':'); delay(5);miao=read_add(1);fen=read_add(2);shi=read_add(3);ri=read_add(4);yue=read_add(5);nian=read_add(6);nian1=read_add(7);fen1=read_add(8);shi1=read_add(9);write_sfm(6,miao); write_sfm(3,fen);write_sfm(0,shi);write_sfm1(8,ri);write_sfm1(5,yue); write_sfm1(2,nian); write_sfm1(0,nian1); write_sfm(13,fen1); write_sfm(10,shi1); TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;}void keyscan(){if(s1==0){delay(5);if(s1==0){s1num++;while(!s1);di();if(s1num==1){TR0=0;write_(0x80+0x40+6); write_(0x0f);}if(s1num==2){write_(0x80+0x40+3);} if(s1num==3){write_(0x80+0x40+0);} if(s1num==4){write_(0x80+8);}if(s1num==5){write_(0x80+5);}if(s1num==6){write_(0x80+2);}if(s1num==7){write_(0x80);}if(s1num==8){write_(0x80+0x40+13);} if(s1num==9){write_(0x80+0x40+10);} if(s1num==10){s1num=0;TR0=1;write_(0x0c);}}}if(s1num!=0){if(s2==0){delay(5);if(s2==0){while(!s2);di();if(s1num==1){miao++;if(miao==60)miao=0;write_sfm(6,miao); write_(0x80+0x40+6); write_add(1,miao);} if(s1num==2){fen++;if(fen==60)fen=0;write_sfm(3,fen); write_(0x80+0x40+3); write_add(2,fen);} if(s1num==3){shi++;if(shi==24)shi=0;write_sfm(0,shi); write_(0x80+0x40+0);write_add(3,shi);}if(s1num==4){if(((nian1*100+nian)%4==0&&(nian1*100+nian)%100!=0)||(nian1*100+nian)%400==0) {goto ll1;}if(yue==2){ri++;if(ri==29)ri=1;write_sfm1(8,ri);write_(0x80+8);write_add(4,ri);goto ll2;}ll1: if(yue==2){ri++;if(ri==30)ri=1;write_sfm1(8,ri);write_(0x80+8);write_add(4,ri);}ll2: if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12){ri++;if(ri==32)ri=1;write_sfm1(8,ri);write_(0x80+8);write_add(4,ri);}if(yue==4||yue==6||yue==9||yue==11) {ri++;if(ri==31)ri=1;write_sfm1(8,ri);write_(0x80+8);write_add(4,ri);}}if(s1num==5){yue++;if(yue==13)yue=1;write_sfm1(5,yue);write_(0x80+5);write_add(5,yue);}if(s1num==6){nian++;if(nian==100)nian=0;write_sfm1(2,nian);write_(0x80+2);write_add(6,nian);}if(s1num==7){nian1++;if(nian1==100)nian1=0;write_sfm1(0,nian1);write_(0x80);write_add(7,nian1);} if(s1num==8){fen1++;if(fen1==60)fen1=0;write_sfm(13,fen1); write_(0x80+0x40+13); write_add(8,fen1);}if(s1num==9){shi1++;if(shi1==24)shi1=0;write_sfm(10,shi1); write_(0x80+0x40+10); write_add(9,shi1);}}} if(s3==0){delay(5);if(s3==0){while(!s3);di();if(s1num==1){miao--;if(miao==-1)miao=59;write_sfm(6,miao);write_(0x80+0x40+6);write_add(1,miao);}if(s1num==2){fen--;if(fen==-1)fen=59;write_sfm(3,fen);write_(0x80+0x40+3);write_add(2,fen);}if(s1num==3){shi--;if(shi==-1)shi=23;write_sfm(0,shi);write_(0x80+0x40+0);write_add(3,shi);}if(s1num==4){if(((nian1*100+nian)%4==0&&(nian1*100+nian)%100!=0)||(nian1*100+nian)%400==0) {goto lll1;}if(yue==2){ri--;if(ri==-1)ri=28;write_sfm1(8,ri);write_(0x80+8);write_add(4,ri);goto lll2;}lll1: if(yue==2){ri--;if(ri==-1)ri=29;write_sfm1(8,ri);write_(0x80+8);write_add(4,ri);}lll2: if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12) {ri--;if(ri==-1)ri=31;write_sfm1(8,ri);write_(0x80+8);write_add(4,ri);}if(yue==4||yue==6||yue==9||yue==11){ri--;if(ri==-1)ri=30;write_sfm1(8,ri);write_(0x80+8);write_add(4,ri);}}if(s1num==5){yue--;if(yue==-1)yue=12;write_sfm1(5,yue); write_(0x80+5);write_add(5,yue);}if(s1num==6){nian--;if(nian==-1)nian=99;write_sfm1(2,nian); write_(0x80+2);write_add(6,nian);}if(s1num==7){nian1--;if(nian1==-1)nian1=99;write_sfm1(0,nian1); write_(0x80+0x40+8); write_add(7,nian1);} if(s1num==8){fen1--;if(fen1==-1)fen1=59;write_sfm(13,fen1); write_(0x80+0x40+13); write_add(8,fen1);}if(s1num==9){shi1--;if(shi1==-1)shi1=23;write_sfm(10,shi1);write_(0x80+0x40+10);write_add(9,shi1);}}}if(s4==0){delay(5);if(s4==0){while(!s4);TR0=1;s1num=0;write_(0x0c);setshi=read_add(8);setfen=read_add(9);}}}if(s5==0){delay(5);if(s5==0){while(!s5);guanjiao=0;flag=0;deng=1;}}}void main(){ init0();while(1){ keyscan();if((shi==shi1)&&(fen==fen1)&&flag){guanjiao=1;deng=0;}if((shi!=shi1)||(fen!=fen1)){flag=1;}if(count==20){ count=0;miao++;if(miao>59){ miao=0;fen++;if(fen>59){fen=0;shi++;if(shi>23){shi=0;ri++;{if(((nian1*100+nian)%4==0&&(nian1*100+nian)%100!=0)||(nian1*100+nian)%400==0) {goto loop1;}if(yue==2){if(ri>28){ri=1;yue++;goto loop2;}}loop1: if(yue==2){if(ri>29){ri=1;yue++;}}loop2: if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12){if(ri>31){ri=1;yue++;}}if(yue==4||yue==6||yue==9||yue==11) {if(ri>30){ri=1;yue++;}}if(yue>12){yue=1;nian++;if(nian>99){nian=0;nian1++;write_sfm1(0,nian1);write_add(7,nian1); }write_sfm1(2,nian);write_add(6,nian); }write_sfm1(5,yue);write_add(5,yue);}write_sfm1(8,ri);write_add(4,ri);}write_sfm(0,shi);write_add(3,shi);}write_sfm(3,fen);write_add(2,fen);}write_sfm(6,miao);write_add(1,miao);}} }void timer0() interrupt 1 {TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++;}。