基于51单片机的电子钟设计

合集下载

基于51单片机的多功能电子钟设计

基于51单片机的多功能电子钟设计

基于51单片机的多功能电子钟设计1. 本文概述随着现代科技的发展,电子时钟已成为日常生活中不可或缺的一部分。

本文旨在介绍一种基于51单片机的多功能电子钟的设计与实现。

51单片机因其结构简单、成本低廉、易于编程等特点,在工业控制和教学实验中得到了广泛应用。

本文将重点阐述如何利用51单片机的这些特性来设计和实现一个具有基本时间显示、闹钟设定、温度显示等功能的电子钟。

本文的结构安排如下:将详细介绍51单片机的基本原理和特点,为后续的设计提供理论基础。

接着,将分析电子钟的功能需求,包括时间显示、闹钟设定、温度显示等,并基于这些需求进行系统设计。

将详细讨论电子钟的硬件设计,包括51单片机的选型、时钟电路、显示电路、温度传感器电路等。

软件设计部分将介绍如何通过编程实现电子钟的各项功能,包括时间管理、闹钟控制、温度读取等。

本文将通过实验验证所设计的电子钟的功能和性能,并对实验结果进行分析讨论。

通过本文的研究,旨在为电子钟的设计提供一种实用、经济、可靠的方法,同时也为51单片机的应用提供一个新的实践案例。

2. 51单片机概述51单片机,作为一种经典的微控制器,因其高性能、低功耗和易编程的特性而被广泛应用于工业控制、智能仪器和家用电器等领域。

它基于Intel 8051微处理器的架构,具备基本的算术逻辑单元(ALU)、程序计数器(PC)、累加器(ACC)和寄存器组等核心部件。

51单片机的核心是其8位CPU,能够处理8位数据和执行相应的指令集。

51单片机的内部结构主要包括中央处理单元(CPU)、存储器、定时器计数器、并行IO口、串行通信口等。

其存储器分为程序存储器(ROM)和数据存储器(RAM)。

程序存储器通常用于存放程序代码,而数据存储器则用于存放运行中的数据和临时变量。

51单片机还包含特殊功能寄存器(SFR),用于控制IO端口、定时器计数器和串行通信等。

51单片机的工作原理基于冯诺伊曼体系结构,即程序指令和数据存储在同一块存储器中,通过总线系统进行传输。

(完整版)基于51单片机的数字钟毕业论文

(完整版)基于51单片机的数字钟毕业论文

西安邮电学院毕 业 设 计(论 文)题 目: 基于51单片机的数字钟设计院 (系):专 业:班 级:学生姓名:导师姓名: 职称:基于单片机的数字钟毕业论文摘要…………………………………………………………………………… ⅠAbstract……………………………………………………………………… (Ⅱ)第1章 绪 论 (2)1.1 课题背景 (2)1.2 课题来源 (2)1.3 本章小结 (3)第2章 MCS-51单片机的结构 (4)2.1 控制器 (4)2.2 存储器的结构 (4)2.3 并行IO口 (5)2.4 时钟电路与时序 (5)2.5 单片机的应用领域 (6)2.6 本章小结 (6)第3章 电路的硬件设计 (7)3.1 复位电路 (7)3.2 时钟电路 (7)3.3 按键电路 (8)3.4 相关控制电路 (9)3.4.1 控制打铃电路 (9)3.4.2 时间表显示电路 (9)3.5 数码管显示电路 (10)3.6 电源电路设计 (10)3.7 本章小结 (10)第4章 电路的软件设计 (11)4.1 软件程序内容 (11)4.2 软件流程图 (11)4.3 定时程序设计 (12)4.3.1实时时钟实现的基本方法 . (13)4.3.2 实时时钟程序设计步骤 (13)4.4程序说明 (13)4.5 本章小结 (14)第5章 结论与展望 (15)5.1 结论 (15)5.2 单片机的发展趋势 (15)参考文献 (17)附录………………………………………………………………………………18第1章 绪 论1.1 课题背景单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。

由于单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。

单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC 机外围以及网络通讯等广大领域。

基于51单片机的电子时钟设计

基于51单片机的电子时钟设计

基于51单片机的电子时钟设计
摘要:本文论述了基于51单片机的电子时钟设计,包括硬件设计与软件编程。

其中,硬件设计包括基本指示灯、DS1302时钟芯片等的选择与连接,时钟电路、晶振电路的设计等。

软件编程包括时钟显示的实现,时钟校准、闹钟等功能的实现等。

本设计具有精度高、操作简便、易于实现等特点,可广泛应用于各种场合。

关键词:51单片机;电子时钟;硬件设计;软件编程
前言
随着人们生活水平的提高,电子时钟已经成为人们生活中必不可少的物品,目前市场上各种类型的电子时钟层出不穷。

本文以51单片机为基础,设计了一款高精度、易于操作的电子时钟,采用DS1302时钟芯片作为时钟驱动芯片,实现了时钟的准确显示、校准、闹钟等功能。

硬件设计
硬件设计主要包括控制器、时钟驱动、显示装置以及电源。

本设计采用了AT89C51单片机作为控制器,一块DS1302时钟芯片作为时钟驱动,LED数字管作为显示装置。

同时,本设计采用了USB供电方式,其电源电压为5V。

软件编程
软件编程主要包括时钟显示、时钟校准、闹钟功能的实现等。

时钟显示采用了动态显示方式,实现了时间的精确定位。

同时,本设计还具有时钟校准功能,在程序接通时,可自动对时钟进行校准,保证时钟的精确度。

此外,本设计还具有设置闹钟的功能,用户可在指定时间响起闹钟。

结论本文以51单片机为基础,设计了一款高精度、易于操作的电子时钟。

通过对硬件设计、软件编程的设计与实现,使得该产品能够准确显示时间,保证了时钟的稳定性,满足了时间的要求,目前已
得到广泛应用。

基于51单片机的数字电子时钟设计

基于51单片机的数字电子时钟设计

课程设计任务书摘要数字钟因其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。

单片机为基础上设计出来的数字时钟数字钟,在日常生活中最常见,应用也最广泛。

本次课程设计的时钟就是以STC89C52单片机为核心,配备LED显示模块、时钟模块、等功能模块的数字电子钟。

采用24小时制方式显示时间。

文章主要从硬件设计和软件编程两个大的方面。

硬件电路设计主要包括中央处理模块、时钟模块,显示模块等几部分。

时钟电路采用DS1302芯片,并选用LED显示器。

软件方面用keil C语言来实现。

软硬件配合,达到电子时钟精准的显示。

关键字:单片机,时钟模块,精准目录1绪论 (2)1.1设计概述 (2)1.2技术简述 (2)1.3本课题的背景 (3)1.4本课题的意义 (3)2系统设计 (4)2.1设计目的 (4)2.2设计功能及要求 (4)2.3设计思路 (4)2.4硬件方案 (4)2.4.1时钟芯片的选择 (5)2.4.2显示屏的选择 (5)2.4.3单片机的选择 (5)2.5软件方案 (5)2.6整体方案 (6)2.7元器件清单 (6)3硬件设计 (7)3.1单片机最小系统 (7)3.1.1时钟电路 (7)3.1.2复位电路 (8)3.2时钟电路 (8)3.3电源电路 (9)3.4系统整体电路 (9)3.5系统仿真 (10)3.6硬件制作 (10)4软件设计 (11)4.1程序设计步骤 (11)4.2系统主程序 (11)4.3时钟模块子程序 (12)4.4显示模块子程序 (12)4.5主程序 (13)5联机调试 (14)6总结 (15)7参考文献 (16)1绪论1.1设计概述在单片机技术日趋成熟的今天,其灵活的硬件电路和软件程序的设计,使单片机得到广泛的应用,从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。

数字电子时钟是基于单片机和DS1302时钟芯片的一种计时工具。

51单片机里电子时钟设计原理

51单片机里电子时钟设计原理

51单片机里电子时钟设计原理单片机是一种集成电路芯片,具有微处理器的所有功能。

电子时钟是一种通过数字化方式显示时间的装置,通常由时钟芯片、计时电路、显示电路、报警电路等组成。

在51单片机中设计电子时钟,主要包括以下几个方面的原理。

1.时钟芯片选择:选择一款适合的时钟芯片非常重要。

时钟芯片提供了计时的稳定性和精度,并且具有时间数据的存储功能。

在51单片机设计中,常常使用DS3231、DS1302等高性能的时钟芯片。

2.计时电路设计:计时电路是电子时钟的核心部分,它通过计数器实现时间的累加。

在51单片机设计中,可以使用定时器和计数器来实现计时功能。

通过设定定时器的工作模式和计数值,可以实现从1ms到秒、分、时的计时。

3.显示电路设计:显示电路用于将计时电路的计时结果以数字形式显示出来。

通常使用数码管或液晶显示屏作为显示装置。

在51单片机设计中,通过控制数码管或液晶显示屏的引脚,将对应的数字段点亮,实现数字的显示。

4.按键输入设计:电子时钟通常具有设置时间、调整时间、报警等功能。

这些功能需要通过按键来实现。

在51单片机设计中,可以使用矩阵按键,通过行列扫描的方式检测按键的按下,并根据按键的不同触发不同的功能。

5.报警电路设计:电子时钟通常具有报警功能,可通过蜂鸣器或其他音频输出装置实现。

在51单片机设计中,通过控制IO口的高低电平输出,控制蜂鸣器的工作状态,从而实现报警功能。

6.软件设计:单片机的设计离不开软件的支持。

在51单片机设计中,通常使用C语言编程,通过编写程序来实现各个功能的控制。

根据需求,设计相应的算法和逻辑,实现时间的计算、显示、设置和报警等功能。

以上是51单片机中设计电子时钟的一些原理。

通过合理的硬件设计和软件编程,可以实现功能齐全、稳定可靠的电子时钟。

基于51的电子闹钟设计报告(附原理图、PCB图、程序)

基于51的电子闹钟设计报告(附原理图、PCB图、程序)

基于51的电⼦闹钟设计报告(附原理图、PCB图、程序)成都信息⼯程学院第五届嵌⼊式创新技术⼤赛基于MCS51的智能电⼦闹钟设计报告姓名学院班级实物图⽬录1.电⼦时钟的设计原理和⽅法 (1)1.1设计原理 (1)1.2 硬件电路的设计 (1)1.2.1 STC89C51RC简介 (1)1.2.2 键盘电路的设计 (2)1.2.3蜂鸣器驱动电路 (3)1.2.4 数码管驱动电路 (3)1.2.5 电源电路 (4)1.3软件部分的设计 (4)1.3.1主程序部分的设计 (4)1.3.2中断计时器及时间进位 (5)1.3.3 闹钟⼦函数 (7)1.3.4 按键扫描 (8)1.3.5 时钟闹钟设置 (9)1.3.6 显⽰数字函数 (10)1.3.7 显⽰界⾯函数 (10)1.3.8 闹钟记录及读取 (11)2.硬件调试 (13)附录A:电路原理图 (15)附录B:电路PCB图 (16)附录C:源程序 (17)1.电⼦时钟的设计原理和⽅法1.1设计原理系统框图1.2硬件电路的设计1.2.1 STC89C51RC简介STC89C52R CSTC89C51RC是⼀种带8K闪烁可编程可擦除只读存储器(FPETOM-FlashProgrammabalandErasableReadOnlyMemory )的低电压、⾼性能CMOS8位微型处理器,即单⽚机芯⽚。

单⽚机的可擦除只读存储器可以反复擦除1000次,内部FLASH 擦写次数为100000次以上。

该芯⽚使⽤⾼密度⾮易失存储制造技术,与⼯业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU 和闪烁存储器集成在单个芯⽚中,使得STC89C51RC 成为了⼀种性价⽐极⾼的微型处理器芯⽚,在许多电路设计中都得到了应⽤。

STC89C51RC 单⽚机特点:⼯作电压:5.5V-3.4V ⼯作频率:0-40MHz ⽤户应⽤程序空间:8K ⽚上集成128*8RAMISP (在系统可编程)/IAP (在应⽤可编程),⽆需专⽤编程器/仿真器可通过串⼝(P3.0/P3.1)直接下载⽤户程序EEPROM 功能共3个16位定时器/计数器,其中定时0还可以当成2个8位定时器使⽤外部中断4路通⽤异步串⾏⼝(UART ),还可⽤定时器软件实现多个UART ⼯作温度范围:0-75℃引脚说明:VCC:供电电压 GND :接地P0:P0是⼀个8位漏级开路双向I/O ⼝,低8位地址复⽤总线端⼝。

基于51单片机的简易电子钟设计

基于51单片机的简易电子钟设计

基于51单片机的简易电子钟设计一、设计目的现代社会对于时间的要求越来越精确,电子钟成为家庭和办公场所不可缺少的设备之一、本设计基于51单片机,旨在实现一个简易的电子钟,可以显示当前的时间,并且能够通过按键进行时间的调整和设置闹钟。

二、设计原理本设计主要涉及到51单片机的IO口、定时器、中断、LCD显示技术等方面知识。

1.时钟模块时钟模块采用定时器0的中断进行时间的累加和更新。

以1秒为一个时间单位,每当定时器0中断发生,就将时间加1,并判断是否需要更新小时、分钟和秒的显示。

同时,根据用户按键的操作,可以调整时间的设定。

2.显示模块显示模块采用16x2字符LCD显示屏,通过51单片机的IO口与LCD连接。

可以显示当前时间和设置的闹钟时间。

初次上电或者重置后,LCD显示时间为00:00:00,通过定时器中断和键盘操作,实现时间的更新和设定闹钟功能。

3.键盘模块键盘模块采用矩阵键盘连接到51单片机的IO口上,用于用户进行时间的调整和设置闹钟。

通过查询键盘的按键状态,根据按键的不同操作,实现时间的调整和闹钟设定功能。

4.中断模块中断模块采用定时器0的中断,用于1秒的定时更新时间。

同时可以添加外部中断用于响应用户按键操作。

三、主要功能和实现步骤1.系统初始化。

2.设置定时器,每1秒产生一次中断。

3.初始化LCD显示屏,显示初始时间00:00:00。

4.查询键盘状态,判断是否有按键按下。

5.如果按键被按下,根据不同按键的功能进行相应的操作:-功能键:设置、调整、确认。

-数字键:根据键入的数字进行时间的调整和闹钟设定。

6.根据定时器的中断,更新时间的显示。

7.判断当前时间是否与闹钟设定时间相同,如果相同,则触发闹钟,进行提示。

8.循环执行步骤4-7,实现连续的时间显示和按键操作。

四、系统总结和改进使用51单片机设计的简易电子钟可以显示当前时间,并且实现时间的调整和闹钟设定功能。

但是由于硬件资源有限,只能实现基本的功能,不能进行其他高级功能的扩展,例如闹铃的音乐播放、温度、湿度的显示等。

基于51单片机的电子时钟的设计

基于51单片机的电子时钟的设计

基于51单片机的电子时钟的设计电子时钟已经成为我们日常生活中不可或缺的设备之一。

随着科技的不断发展,电子时钟也越来越智能化,功能也越来越强大。

然而,简单的电子时钟也非常实用,可以帮助我们准确地把握时间,安排生活。

本文将基于51单片机,介绍一个简单的电子时钟的设计。

第一步,硬件设计。

要实现电子时钟,我们需要用到一个时钟模块,它可以为我们提供一个准确的时间基准。

同时,我们还需要将时间显示在一个数码管上,所以在硬件设计中我们需要使用数码管。

此外,为了方便调试,我们需要一个串口模块,它可以将调试信息输出到PC端,供我们观察。

具体的硬件设计如下:1.时钟模块我们使用的是DS1302时钟模块,它可以提供准确的时间计算。

DS1302时钟模块有六个引脚,分别是:VCC、GND、CLK、DAT、RST、DS。

其中,VCC和GND分别连接电源正负极,CLK是时钟,DAT是数据,RST是复位,DS是时钟数据存储器。

2.数码管我们使用共阴数码管,它有12个引脚,其中11个引脚是段选线,另外一个引脚是位选线。

为了方便连接,我们可以使用数码管驱动芯片,如74HC595。

它可以将51单片机的串行数据转为并行数据,以驱动数码管。

3.串口模块串口模块是用于通信的模块,它有4个引脚,分别是:VCC、GND、TX、RX。

其中,VCC 和GND连接电源正负极,TX是发送端口,RX是接收端口。

第二步,软件设计。

软件设计主要包括三个部分,分别是时钟模块的驱动程序、数码管的驱动程序和主程序。

我们需要编写一个DS1302时钟模块的驱动程序。

通过驱动程序,我们可以读取当前时间,并将其设置为时钟模块的初始时间。

同时,我们还需要实现定时器中断,以更新时钟显示。

数码管驱动程序是通过74HC595芯片实现的。

我们需要编写一个函数,将当前时间转换为段选数据,再通过74HC595芯片输出到数码管上。

3.主程序主程序主要包括时钟的初始化、时钟的设置、时钟的显示等功能。

51单片机的电子时钟设计

51单片机的电子时钟设计

51单片机的电子时钟设计一、引言随着科技的发展和人们对时间的准确度的要求日益提高,电子时钟成为了人们生活中不可缺少的一部分。

本文将介绍一种基于51单片机的电子时钟设计。

二、硬件设计1.主控部分本设计使用了51单片机作为主控芯片,51单片机具有丰富的接口资源和强大的处理能力,非常适合用于电子时钟的设计。

2.显示部分采用了数码管显示屏作为显示部分。

为了提高显示的清晰度,我们选用了共阳数码管。

使用4位数码管即可显示时、分和秒。

3.时钟部分时钟部分由振荡器和RTC电路构成。

振荡器提供时钟脉冲信号,RTC 电路实现对时钟的准确计时。

4.按键部分按键部分采用矩阵按键,以实现对时间的设置和调整。

三、软件设计1.系统初始化在系统初始化阶段,需要对硬件进行初始化设置。

包括对I/O口的配置,定时器的初始化等。

2.时间设置用户可以通过按键设置当前的时间。

通过矩阵按键扫描,检测到用户按下了设置键后,进入时间设置模式。

通过按下加减键,可以增加或减少时、分、秒。

通过按下确认键,将设置的时间保存下来。

3.时间显示在正常运行模式下,系统将会不断检测当前的时间,并将其显示在数码管上。

通过对时钟模块的调用,可以获取当前的时、分、秒并将其显示出来。

4.闹钟功能在时间设置模式下,用户还可以设置提醒闹钟的功能。

在设定时间到来时,系统会发出蜂鸣器的声音,提醒用户。

四、测试与验证完成软硬件设计后,进行测试与验证是必不可少的一步。

通过对硬件的连线接触检查和软件的功能测试,可以确保整个设计的正确性和可靠性。

五、总结通过本次设计,我对51单片机的使用和原理有了更清晰的认识,同时也对电子时钟的设计和制作有了更深入的了解。

电子时钟作为一种常见的电子产品,在我们的日常生活中发挥了重要的作用。

这次设计过程中,我遇到了许多问题,但通过查阅资料并与同学一起探讨,最终解决了问题。

相信通过不断的学习和实践,我可以在未来的设计中取得更好的成果。

(完整)基于51单片机电子时钟设计

(完整)基于51单片机电子时钟设计

(完整)基于51单片机电子时钟设计编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)基于51单片机电子时钟设计)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)基于51单片机电子时钟设计的全部内容。

基于51单片机的电子时钟设计摘要本电子时钟以STC89C52单片机作为主控芯片,采用DS12C887时钟芯片,使用1602液晶作为显示输出.该时钟走时精确,具有闹钟设置,以及可同时显示时间、日期等多种功能。

本文将详细介绍该电子时钟涉及到的一些基本原理,从硬件和软件两方面进行分析.【关键词】STC89C52单片机 DS12C887时钟芯片 1602液晶蜂鸣器目录一、绪论 (4)1.1 电子时钟功能 (4)1.2设计方案 (4)二、硬件设计 (4)2。

151单片机部分设计 (4)2.2 USB供电电路设计 (5)2.3 串行通信电路设计 (6)2.4 DS12C887时钟芯片电路的设计 (6)2。

5 1602LCD液晶屏显示电路设计 (7)2。

6蜂鸣器电路设计 (8)2。

7按键调整电路设计 (8)三、软件设计 (9)3.1系统程序流程图设计 (9)3。

2程序设计 (11)四、心得体会 (22)参考文献 (23)一、绪论1。

1电子时钟功能(1)在1602液晶上显示年、月、日、星期、时、分、秒,并且按秒实时更新显示。

(2)具有闹铃设定即到时报警功能,报警响起时按任意键可取消报警。

(3)能够使用实验板上的按键随时调节各个参数,四个有效键分别为功能选择键、数值增大键、数值减小键和闹钟查看键。

(4)每次有键按下时,蜂鸣器都以短“滴”声报警.(5)利用DS12C887自身掉电可继续走时的特性,该时钟可实现断电时间不停、再次上电时时间仍准确显示在液晶上的功能。

51单片机设置的电子闹钟(可调时间和闹钟)

51单片机设置的电子闹钟(可调时间和闹钟)

#include<reg52.h>#define uint unsigned int#define uchar unsigned char#define LED P0 // 数码管的段选#define LIGHT P1 // 时分秒位的指示灯#define WS P2 // 数码管的位选sbit key1=P3^0; // 时间暂停/开始sbit key2=P3^1; // 时间/闹钟设置sbit key3=P3^2; // 增加sbit key4=P3^3; // 减少sbit alarm=P3^6; // 闹铃uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 0-9 uchar tab_dp[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; // 0.-9.(带小数点)uchar data1[]={0,0,0,0,0,0};uchar data2[]={0,0,0,0,0,0};uint t,k,kk,k1,flag;uint bbh,bbm,bbs,bbh1,bbm1,bbs1;uint sec,min,hour,sec1,min1,hour1; // 定义秒,分,时void init();void display();void display_bb();void delay( uint );void keyscan();void main(){init();while(1){keyscan();if(k1==0||k1==1||k1==2||k1==3) // 显示调节时间{display();}if(k1==4||k1==5||k1==6) // 显示调节闹钟{display_bb();}if((bbh==hour)&&(bbm==min)&&data1[4]==0&&data1[5]==5) // 5s报时{alarm=~alarm;delay(1);}if((bbs==sec)&&(bbm==min)&&(bbh==hour)) // 可调报时{alarm=~alarm;delay(1);}}}void init(){WS=LIGHT=flag=0;sec=min=hour=0; // 将0赋给时分秒TMOD=0x01; // 方式1 P129(见课本)TH0=0x3c; // 65536-50000=15536=0x3cb0(50ms) P128(见课本)TL0=0xb0;EA=1; // 开总中断 P161(见课本)TR0=1; // 定时/计数器0开启ET0=1; // 定时器/计数器0溢出中断启动 P161(见课本)}void delay( unsigned int t) // 延时函数{unsigned int i;while(t--)for(i=0;i<125;i++);}void display() // 显示时间函数{if(TF0==1) // 定时器/计数器溢出 P130(见课本){TF0=0; // 清中断标志位t++;if(t==20) // (50ms*20=1s){t=0;sec++; // 秒加1if(sec==60) // 秒为60,则清零,分加1 {sec=0;min++;}if(min==60) // 分为60,则清零,时加1{min=0;hour++;}if(hour==24)// 时为24,则清零{hour=0;}}}data1[5]=sec%10;data1[4]=sec/10;data1[3]=min%10;data1[2]=min/10;data1[1]=hour%10;data1[0]=hour/10;WS=0xdf; // 1101 1111 ,低电平显示LED=tab[data1[5]];delay(1);WS=0xef; // 1110 1111LED=tab[data1[4]];delay(1);WS=0xf7; // 1111 0111LED=tab_dp[data1[3]];delay(1);WS=0xfb; // 1111 1011LED=tab[data1[2]];delay(1);WS=0xfd; // 1111 1101LED=tab_dp[data1[1]];delay(1);WS=0xfe; // 1111 1110LED=tab[data1[0]];delay(1);}void display_bb() // 显示闹钟函数{data2[5]=bbs%10;data2[4]=bbs/10;data2[3]=bbm%10;data2[2]=bbm/10;data2[1]=bbh%10;data2[0]=bbh/10;WS=0xdf; // 1101 1111 ,低电平显示LED=tab[data2[5]];delay(1);WS=0xef; // 1110 1111LED=tab[data2[4]];delay(1);WS=0xf7; // 1111 0111LED=tab_dp[data2[3]];delay(1);WS=0xfb; // 1111 1011LED=tab[data2[2]];delay(1);WS=0xfd; // 1111 1101LED=tab_dp[data2[1]];delay(1);WS=0xfe; // 1111 1110LED=tab[data2[0]];delay(1);}void keyscan() // 键盘扫描{if(key1==0) // 暂停/开始{++kk;while(!key1){display();if(kk==1){TR0=0;if(k1==0||k1==1||k1==2||k1==3) // 显示调节时间{display();}if(k1==4||k1==5||k1==6) // 显示调节闹钟{display_bb();}if(key2==0) // 模式选择(调节时间/闹钟){k1++;while(!key2){if(k1==1) // 第1次按下{sec1=sec; // 保存秒的数值sec=88; // 显示88,表示可以调节秒的数值了display(); // 显示88sec=sec1; // 恢复前一刻秒的数值}if(k1==2){min1=min;min=88;display();delay(1);min=min1;}if(k1==3){hour1=hour;hour=88;display();delay(1);hour=hour1;}if(k1==4){sec1=bbs; // 保存秒的数值bbs=66; // 显示66,表示可以调节秒的数值了display_bb(); // 显示66bbs=sec1; // 恢复前一刻秒的数值}if(k1==5){min1=bbm;bbm=66;display_bb();delay(10);bbm=min1;}if(k1==6){hour1=bbh;bbh=66;display_bb();delay(10);bbh=hour1;}if(k1==7){k1=0;display();}}}if(key3==0) // 时间/闹钟增加设置{while(!key3){if(k1==1){sec++; // 秒加1delay(60);if(sec==60)sec=0;display();}if(k1==2){min++;delay(60);if(min==60)min=0;display();}if(k1==3){hour++;delay(60);if(hour==24)hour=0;display();}if(k1==4){bbs++; // 秒加1delay(60);if(bbs==60)bbs=0;display_bb();}if(k1==5){bbm++;delay(60);if(bbm==60)bbm=0;display_bb();}if(k1==6){bbh++;delay(60);if(bbh==24)display_bb();}if(k1==7){k1=0;display();}}}if(key4==0) // 时间/闹钟减少设置 {while(!key4){if(k1==1){sec--; // 秒加1delay(60);if(sec==0)sec=60;display();}if(k1==2){min--;delay(60);if(min==0)min=60;display();}if(k1==3){hour--;delay(60);if(hour==0)hour=24;display();}if(k1==4){bbs--; // 秒减1delay(60);if(bbs==0)display_bb();}if(k1==5){bbm--;delay(60);if(bbm==0)bbm=60;display_bb();}if(k1==6){bbh--;delay(60);if(bbh==0)bbh=24;display_bb();}if(k1==7){k1=0;display();}}}}}if(kk==2){kk=0;k1=0;TR0=1;}}}。

基于51单片机的电子时钟的设计与实现综述

基于51单片机的电子时钟的设计与实现综述

基于51单片机的电子时钟的设计与实现综述基于51单片机的电子时钟是一种常见的嵌入式系统设计项目。

它通过使用51单片机作为核心处理器,结合外部电路和显示设备,实现了时间的计时和显示功能。

本文将对基于51单片机的电子时钟的设计和实现进行综述,包括硬件设计和软件设计两个部分。

一、硬件设计1.时钟电路时钟电路是电子时钟的核心部分,它提供稳定的时钟信号供给单片机进行计时。

常用的时钟电路有晶振电路和RTC电路两种。

晶振电路通过外接晶体振荡器来提供时钟信号,具有较高的精度和稳定性;RTC电路则是通过实时时钟芯片来提供时钟信号,具有较高的时钟精度和长期稳定性。

2.显示电路显示电路用于将时钟系统计算得到的时间信息转换为人们可以直接观察到的显示结果。

常用的显示器有数码管、液晶显示屏、LED显示屏等。

显示电路还需要与单片机进行通讯,将计时的结果传输到显示器上显示出来。

3.按键电路按键电路用于实现对电子时钟进行设置和调节的功能。

通过设置按键可以实现修改时间、调节闹钟等功能。

按键电路需要与单片机进行接口连接,通过读取按键的输入信号来实现对时钟的操作。

4.供电电路供电电路为电子时钟提供电源,通常使用直流电源。

供电电路需要满足单片机和其他电路的电源需求,同时还需要考虑电源的稳定性和保护措施等。

二、软件设计1.系统初始化系统初始化主要包括对单片机进行外设初始化、时钟初始化和状态变量初始化等。

通过初始化将各个外设配置为适合电子时钟功能运行的状态,并设置系统初始时间、闹钟时间等。

2.计时功能计时功能是电子时钟的核心功能,通过使用定时器和中断技术来实现。

通过设置一个固定时间间隔的定时器中断,单片机在每次定时器中断时对计时寄存器进行增加,实现时间的累加。

同时可以将计时结果转化为小时、分钟、秒等形式。

3.显示功能显示功能通过将计时结果传输到显示器上,实现时间信息的显示。

通过设置显示器的控制信号,将时间信息依次发送到各个显示单元上,实现数字或字符的显示功能。

基于单片机的智能电子时钟的设计及应用

基于单片机的智能电子时钟的设计及应用

基于单片机的智能电子时钟的设计及应用一、引言智能电子时钟是一种应用广泛的电子产品,它不仅能够准确显示时间,还具备了一系列智能化的功能,如闹钟、温湿度显示、定时开关等。

基于单片机的智能电子时钟设计是近年来电子技术领域中备受关注的研究方向。

本文将详细介绍基于单片机的智能电子时钟设计及其应用,并对其进行深入研究。

二、基于单片机的智能电子时钟设计原理1. 选取合适的单片机芯片在设计基于单片机的智能电子时钟之前,首先需要选取合适的单片机芯片。

常见选择包括51系列、AVR系列和ARM系列等。

根据具体需求和功能要求进行选择,并考虑到其性价比、易用性和扩展性。

2. 时钟模块设计在整个系统中,准确显示时间是最基本也是最关键的功能之一。

因此,需要设计一个稳定可靠且精度高的时钟模块。

常见选择包括RTC 芯片和GPS模块等。

3. 显示模块选择与驱动为了实现时间的直观显示,需要选择合适的显示模块。

常见选择包括LED数码管、LCD液晶显示屏和OLED显示屏等。

同时,还需要设计合适的驱动电路,以实现对显示模块的控制。

4. 功能模块设计除了基本的时间显示功能外,智能电子时钟还可以具备一系列智能化功能。

常见功能包括闹钟、温湿度显示、定时开关等。

这些功能需要通过相应的传感器和控制电路来实现。

三、基于单片机的智能电子时钟应用1. 家庭生活基于单片机的智能电子时钟在家庭生活中有着广泛应用。

它可以作为家庭闹钟,准确地唤醒人们起床;同时也可以作为温湿度监测器,在家中监测室内温湿度,并提供相应数据。

2. 办公场所在办公场所中,基于单片机的智能电子时钟可以作为时间提醒器,在工作时间结束时提醒人们休息;同时也可以作为定时开关,在指定时间自动打开或关闭相应设备。

3. 公共场所在公共场所中,基于单片机的智能电子时钟具备更多应用场景。

例如,在火车站、机场等候车室中,它可以作为候车时间显示器,为旅客提供准确的候车时间信息。

四、基于单片机的智能电子时钟设计案例以基于51系列单片机的智能电子时钟设计为例,具体设计方案如下:1. 硬件设计选用51系列单片机作为主控芯片,搭配RTC芯片作为时钟模块。

51单片机设置的电子闹钟(可调时间和闹钟)

51单片机设置的电子闹钟(可调时间和闹钟)

#include<reg52.h>#define uint unsigned int#define uchar unsigned char#define LED P0 // 数码管的段选#define LIGHT P1 // 时分秒位的指示灯#define WS P2 // 数码管的位选sbit key1=P3^0; // 时间暂停/开始sbit key2=P3^1; // 时间/闹钟设置sbit key3=P3^2; // 增加sbit key4=P3^3; // 减少sbit alarm=P3^6; // 闹铃uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 0-9uchar tab_dp[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; // 0.-9.(带小数点)uchar data1[]={0,0,0,0,0,0};uchar data2[]={0,0,0,0,0,0};uint t,k,kk,k1,flag;uint bbh,bbm,bbs,bbh1,bbm1,bbs1;uint sec,min,hour,sec1,min1,hour1; // 定义秒,分,时void init();void display();void display_bb();void delay( uint );void keyscan();void main(){init();while(1){keyscan();if(k1==0||k1==1||k1==2||k1==3) // 显示调节时间{display();}if(k1==4||k1==5||k1==6) // 显示调节闹钟{display_bb();}if((bbh==hour)&&(bbm==min)&&data1[4]==0&&data1[5]==5) // 5s报时{alarm=~alarm;delay(1);}if((bbs==sec)&&(bbm==min)&&(bbh==hour)) // 可调报时{alarm=~alarm;delay(1);}}}void init(){WS=LIGHT=flag=0;sec=min=hour=0; // 将0赋给时分秒TMOD=0x01; // 方式1 P129(见课本)TH0=0x3c; // 65536-50000=15536=0x3cb0(50ms) P128(见课本)TL0=0xb0;EA=1; // 开总中断P161(见课本)TR0=1; // 定时/计数器0开启ET0=1; // 定时器/计数器0溢出中断启动P161(见课本)}void delay( unsigned int t) // 延时函数{unsigned int i;while(t--)for(i=0;i<125;i++);}void display() // 显示时间函数{if(TF0==1) // 定时器/计数器溢出P130(见课本){TF0=0; // 清中断标志位t++;if(t==20) // (50ms*20=1s){t=0;sec++; // 秒加1if(sec==60) // 秒为60,则清零,分加1{sec=0;min++;}if(min==60) // 分为60,则清零,时加1{min=0;hour++;}if(hour==24)// 时为24,则清零{hour=0;}}}data1[5]=sec%10;data1[4]=sec/10;data1[3]=min%10;data1[2]=min/10;data1[1]=hour%10;data1[0]=hour/10;WS=0xdf; // 1101 1111 ,低电平显示LED=tab[data1[5]];delay(1);WS=0xef; // 1110 1111LED=tab[data1[4]];delay(1);WS=0xf7; // 1111 0111LED=tab_dp[data1[3]];delay(1);WS=0xfb; // 1111 1011LED=tab[data1[2]];delay(1);WS=0xfd; // 1111 1101LED=tab_dp[data1[1]];delay(1);WS=0xfe; // 1111 1110LED=tab[data1[0]];delay(1);}void display_bb() // 显示闹钟函数{data2[5]=bbs%10;data2[4]=bbs/10;data2[3]=bbm%10;data2[2]=bbm/10;data2[1]=bbh%10;data2[0]=bbh/10;WS=0xdf; // 1101 1111 ,低电平显示LED=tab[data2[5]];delay(1);WS=0xef; // 1110 1111LED=tab[data2[4]];delay(1);WS=0xf7; // 1111 0111LED=tab_dp[data2[3]];delay(1);WS=0xfb; // 1111 1011LED=tab[data2[2]];delay(1);WS=0xfd; // 1111 1101LED=tab_dp[data2[1]];delay(1);WS=0xfe; // 1111 1110LED=tab[data2[0]];delay(1);}void keyscan() // 键盘扫描{if(key1==0) // 暂停/开始{++kk;while(!key1){display();if(kk==1){TR0=0;if(k1==0||k1==1||k1==2||k1==3) // 显示调节时间{display();}if(k1==4||k1==5||k1==6) // 显示调节闹钟{display_bb();}if(key2==0) // 模式选择(调节时间/闹钟){k1++;while(!key2){if(k1==1) // 第1次按下{sec1=sec; // 保存秒的数值sec=88; // 显示88,表示可以调节秒的数值了display(); // 显示88sec=sec1; // 恢复前一刻秒的数值}if(k1==2){min1=min;min=88;display();delay(1);min=min1;}if(k1==3){hour1=hour;hour=88;delay(1);hour=hour1;}if(k1==4){sec1=bbs; // 保存秒的数值bbs=66; // 显示66,表示可以调节秒的数值了display_bb(); // 显示66bbs=sec1; // 恢复前一刻秒的数值}if(k1==5){min1=bbm;bbm=66;display_bb();delay(10);bbm=min1;}if(k1==6){hour1=bbh;bbh=66;display_bb();delay(10);bbh=hour1;}if(k1==7){k1=0;display();}}}if(key3==0) // 时间/闹钟增加设置{while(!key3){if(k1==1){sec++;// 秒加1if(sec==60)sec=0;display();}if(k1==2){min++;delay(60);if(min==60)min=0;display();}if(k1==3){hour++;delay(60);if(hour==24)hour=0;display();}if(k1==4){bbs++; // 秒加1delay(60);if(bbs==60)bbs=0;display_bb();}if(k1==5){bbm++;delay(60);if(bbm==60)bbm=0;display_bb();}if(k1==6){bbh++;delay(60);if(bbh==24)bbh=0;display_bb();if(k1==7){k1=0;display();}}}if(key4==0) // 时间/闹钟减少设置{while(!key4){if(k1==1){sec--; // 秒加1delay(60);if(sec==0)sec=60;display();}if(k1==2){min--;delay(60);if(min==0)min=60;display();}if(k1==3){hour--;delay(60);if(hour==0)hour=24;display();}if(k1==4){bbs--; // 秒减1delay(60);if(bbs==0)bbs=60;display_bb();if(k1==5){bbm--;delay(60);if(bbm==0)bbm=60;display_bb();}if(k1==6){bbh--;delay(60);if(bbh==0)bbh=24;display_bb();}if(k1==7){k1=0;display();}}}}}if(kk==2){kk=0;k1=0;TR0=1;}}}。

课程设计基于51单片机电子时钟设计

课程设计基于51单片机电子时钟设计

摘要 (2)Abstract (2)第一章前言 (3)第二章关于电子时钟 (4)2.1电子时钟简介 (4)2.2 电子时钟的基本特点 (4)2.3 电子时钟的原理 (4)该电子时钟由89C51,BUTTON,六段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。

而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。

(4)第三章关于单片机 (4)3.1 单片机简介 (4)3.2 单片机的发展史 (5)3.3单片机的特点 (6)第四章方案论证与比较 (7)2.1数字时钟方案 (7)2.2 数码管显示方案 (7)第五章系统设计 (8)5.1 总体设计 (8)计时方案 (8)控制方案 (8)5.具体设计分析 (8)5.2 模块设计 (9)5.2.1芯片分析 (9)5.2.1.1 AT89S51芯片 (9)5.2.1.2 74LS47芯片说明 (11)5.2.1.3 74LS138芯片说明 (13)5.2.2 晶振电路 (14)5.2.3复位电路 (15)5.2.4数码显示模块设计 (16)5.2.5 5.2.5按键模块 (17)5.2.5整个电路原理图 (18)第六章控制系统的软件设计 (18)源程序代码 (20)第七章系统仿真与实验测试 (26)7.1 系统仿真 (26)7.2 Proteus软件应用 (26)7.3 实验测试 (28)心得体会 (29)单片机电子时钟的设计摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。

单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。

基于51单片机的电子时钟设计

基于51单片机的电子时钟设计

基于51单片机的电子时钟设计
电子时钟是一种使用电子元件和计算机技术制造的时计,它可以显示年、月、日、时、分、秒等时间信息,并且具有显示精确、功能齐全、操
作简便等特点。

本文将基于51单片机设计一个电子时钟。

一、硬件设计:
1.时钟模块:我们可以使用DS1302时钟模块作为实时时钟芯片,它
可以提供精确的时间信息,并且可以通过单片机与之进行通信。

2.显示模块:我们可以使用共阳数码管进行时间的显示,将时钟设计
成6位7段显示器。

3.按键模块:我们可以使用按键作为输入方式,通过按键调整时间信息。

二、软件设计:
1.初始化:首先,我们需要初始化时钟模块和显示模块,使它们正常
工作。

同时,设置时钟的初始时间为系统当前时间。

2.获取时间:通过与时钟模块的通信,获取当前的时间信息,包括年、月、日、时、分、秒等。

3.显示时间:将获取到的时间信息通过显示模块显示出来,分别显示
在6个数码管上。

4.时间调整:通过按键模块的输入,判断用户是否需要调整时间。


果需要,可以通过按键的不同组合来调整时、分、秒等时间信息。

5.刷新显示:通过不断更新显示模块的输入信号来实现时钟的流动性,保持秒针不断运动的效果。

6.时间保存:为了保证时钟断电后依然能够保持时间,我们需要将时
钟模块获取到的时间信息保存在特定的EEPROM中。

7.闹钟功能:可以通过按键设置闹钟,当到达闹钟时间时,会通过蜂
鸣器发出响声。

以上就是基于51单片机的电子时钟设计方案。

通过对硬件和软件的
综合设计,我们可以实现一个功能齐全的电子时钟。

基于51单片机定时器的电子时钟设计

基于51单片机定时器的电子时钟设计

基于51单片机定时器的电子时钟设计电子时钟是一种集计时、显示时间等功能于一体的电子设备。

它可以准确地显示当前的时间,并通过定时器控制乃至更新时间。

本文将介绍基于51单片机定时器的电子时钟设计。

设计步骤如下:步骤一:硬件设计首先,需要准备以下硬件元件:1.51单片机:作为主要控制单元;2.DS1302实时时钟芯片:用于计时和保存时间数据;3.16x2字符LCD显示屏:用于显示时间;4.4x4矩阵键盘:用于调整时间和设置闹钟;5.蜂鸣器:用于报时功能;6.电位器:用于调整LCD背光亮度。

将这些硬件元件按照电路图连接起来,注意正确连接引脚和电源。

步骤二:软件设计在51单片机上编写程序,实现以下功能:1.初始化:a.初始化DS1302实时时钟芯片,设置初始时间;b.初始化LCD显示屏;c.初始化矩阵键盘;2.获取时间:a.从DS1302芯片读取当前时间;3.显示时间:a.将时间数据转换为字符,并在LCD上显示出来;4.键盘输入:a.监测矩阵键盘输入,判断用户按下的是哪个键;b.根据不同的键,执行相应的操作,如设置时间、设置闹钟等;5.闹钟功能:a.设置闹钟时间,当当前时间与闹钟时间相同时,触发蜂鸣器报时;b.可以通过按键来设置闹钟时间和开启/关闭闹钟功能。

以上是基本的电子时钟功能,可以根据实际需求进行扩展和添加其他功能。

步骤三:测试与调试步骤四:优化与扩展在基本功能正常运行的基础上,可以对电子时钟进行优化和扩展。

添加一些实用的功能,如温湿度显示、日期显示、闹钟音乐选择等,以提高电子时钟的实用性和用户体验。

总结:本文介绍了基于51单片机定时器的电子时钟设计步骤,包括硬件设计和软件编程。

通过该设计,可以实现准确显示时间、调整时间、设置闹钟等功能。

为了使电子时钟更加实用,可以根据需要进行优化和扩展。

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

课程设计(论文)题目:基于51单片机的电子钟设计院(系):信息与通信学院专业:电子信息工程专业学生姓名:学号: 0900220104 指导教师:职称:2011年12 月11日摘要本次的课程设计基于单片机技术原理,以美国ATMEL公司开发的AT89S52芯片作为核心控制器。

通过硬件电路的制作及软件程序的编制,设计制作了一种具有复位、校时功能的数字时钟系统。

利用1602液晶同时显示提示信息和时间信息,用户可通过系统上的按键对时间进行调整,实现实时的时钟显示。

本次设计的硬件由主控模块、复位模块以及显示模块构成。

复位模块主要由电阻、电容、按键和发光二极管组成而显示模块则由1602字符液晶构成,用于显示提示信息和实时时钟。

关键词:AT89S52;LCD 1602; 实时时钟AbstractThe curriculum design is based on the principles of microcomputer technology and has adapted the AT89S52 chip developed by the ATMEL company of American as the core controller. A digital clock system with the functions of both reset and time adjustment is realised by the hardware circuit board making and the software programming. LCD 1602 is used to display the prompt and time information. The users can adjust time through the buttons on the system with the purpose of the real-time displaying. The reset module is made up of the resistance, capacitance, small button and light-emitting diode while the display module is mainly realized through the LCD 1602 to display the relative information including prompt and real-time clock message.Key words: AT89S52, LCD 1602, Real-time clock目录引言 (1)一系统功能设计 (2)1.1 系统概述 (2)1.2 单元电路设计概述 (2)二系统方案设计及各模块原理 (3)2.1 AT89S52核心模块 (3)2.1.1 AT89S52单片机简介 (4)2.1.2 AT89S52主要性能 (5)2.2 复位模块 (6)2.2.1 复位电路组成 (6)2.2.2 复位电路分析 (6)2.3 显示模块 (7)2.3.1 1602液晶简介 (7)2.3.2 1602引脚说明 (7)三系统程序设计 (8)四印制电路板的设计与制作 (9)4.1 印刷电路板的布线设计 (9)4.2 印刷电路板的制作 (9)五电路板的调试 (9)六总结 (10)谢辞 (11)参考文献 (12)附录 (13)引言单片机是一种采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU,随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等集成到一块硅片上构成一个小而完善计算机系统的集成电路芯片。

目前单片机已经渗透到我们生活的各个领域,几乎很难找到某个领域没有单片机的踪迹了。

自导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,到广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等这些都离不开单片机,更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。

单片机,“麻雀虽小,五脏俱全”,在科技高速发展的今天,由单片机自由发挥的舞台更加宽广,现已明显的朝着巨型化,单片化和网络化方向发展。

因此在大学阶段打好基础,为今后真正学会并灵活运用好单片机做好充分的准备,是我们每一个电子信息类专业大学生义不容辞的责任。

本着学以致用的原则,本次课程设计我从实际生活出发,结合单片机原理和技术理论的学习,设计制作了一个电子时钟,通过液晶显示时间,希望经过简单电子制作的程序,在实际动手做板和软件编程过程中,体会单片机强大功能的同时提高自己动手的能力。

一系统功能设计1.1 系统概述根据所学过的有关电子电路和单片机方面的相关知识,以AT89S52单片机芯片为核心控制器件,采用LCD1602 字符液晶显示时间。

在单片机外围设置四个按键,其中三个用于调整时间还有一个用于完成复位操作。

整个系统功能设计利用单片机内部16位定时/计数器实现定时,每经过1秒的时间,单片机会控制秒变量加1,加到60秒时,分变量加1,分变量加到60时,时变量加1,时变量加到24时,返回00继续计时,从而实现了电子时钟的基本走时功能。

用AT89S52单片机芯片作为主控制器,使用其内部16位定时器的定时功能和其可位寻址的IO端口控制各个输入输出设备,用晶振作为单片机时钟脉冲的输入电路。

LCD1602字符液晶作为输出设备,显示所有的时钟和用户在编程时所设置的初始提示信息。

按键作为输入设备,用于输入和修改时钟信息。

电路的基本工作原理是:晶振为单片机提供走时所需要的时钟脉冲,使其能够逐条地执行内存中的程序。

16位定时器提供时间的累加,并将这种累加的效果通过字符型液晶1602显示出来,从而最终实现了一个电子钟系统的设计。

1.2 单元电路设计概述(1)复位电路电路实现上电自动复位和人工复位,对于51单片机而言,只要复位电路接高电平超过两个时钟周期(12M晶振约2us),即可产生复位操作,用10pF电容和10K电阻构成充放电电路,其时间常数超过2us,可实现复位,当按键按下时,RESET处产生2us的高电平,从而实现复位功能。

(2)时钟电路8051内部已有振荡电路,只需在XTAL1和XTAL2两个管脚处接一个石英晶振即可。

(3)液晶显示电路用于显示时间信息。

二系统方案设计及各模块原理本电子钟系统直接采用AT89S52单片机芯片控制时钟,外围电路简单,同时该芯片为用户提供了良好的编程环境。

外围电路设计包括两大部分,分别是液晶显示部分和按键控制部分。

在设计过程中采用了一个复位和三个对时间进行调整的按键。

复位按键用于对时钟走时进行复位,调时按键用于调整时间。

设计的整个过程都采用数字电路,保证了系统工作的可靠性与稳定性。

单片机本身使得设置和调时操作更加准确,综上所述,整体的电路设计思路如下图1-1所示。

图1-1 系统整体原理图2.1 AT89S52核心模块本次课程设计的核心控制器件是美国ATMEL公司生产的AT89S52单片机芯片,它是一种低功耗、高效能CMOS 8位微控制器,具有在系统可编程Flash 存储器。

使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得该芯片可以为众多的嵌入式控制应用系统提供了高灵活、超有效的解决方案。

2.1.1 AT89S52单片机简介其引脚结构如下图2-1-1所示:图2-1-1 AT89S52引脚结构图引脚功能说明:VCC : 电源GND : 接地P0口:P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对其写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也作为低8位地址/数据复用。

P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4个TTL 逻辑电平。

对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入。

P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4个TTL 逻辑电平。

对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。

在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4个TTL 逻辑电平。

对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

P3口亦作为AT89S52特殊功能使用,如下所示。

P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)INT(外部中断0)P3.2 0INT(外部中断1)P3.3 1P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)在flash编程和校验时,P3口也接收一些控制信号。

RST: 复位输入。

晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。

ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。

在flash编程时,此引脚(PROG)也用作编程输入脉冲。

在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

PSEN:外部程序存储器选通信号,当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN 将不被激活。

EA/VPP:访问外部程序存储器控制信号。

为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。

为了执行内部程序指令,EA应该接VCC。

XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:振荡器反相放大器的输出端。

2.1.2 AT89S52主要性能--与MCS-51单片机产品兼容--8K字节在系统可编程Flash存储器--1000次擦写周期--全静态操作:0Hz~33Hz--三级加密程序存储器--32个可编程I/O口线--三个16位定时器/计数器--八个中断源--全双工UART串行通道--低功耗空闲和掉电模式--掉电后中断可唤醒--看门狗定时器--双数据指针--掉电标志位2.2 复位模块对单片机电路而言,复位操作主要是完成单片机内电路的初始化,使其能够从一种确定的状态开始运行。

相关文档
最新文档