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

合集下载

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

基于单片机的智能电子时钟实验研究

基于单片机的智能电子时钟实验研究

基于单片机的智能电子时钟实验研究随着科技的发展,智能化已经渗透到了我们的日常生活中的各个方面。

其中,智能电子时钟作为一种常见的智能化产品,不仅仅用来显示时间,还可以通过添加各种功能来提供更多的服务。

本文将基于单片机进行智能电子时钟的实验研究。

智能电子时钟需要具备以下基本功能:显示当前时间、日期等信息、具备闹钟功能、显示温度和湿度等环境信息等。

在进行实验的过程中,将借助单片机的强大功能和灵活性,实现这些基本功能,并且通过添加其他功能来提供更好的用户体验。

在实验的开始阶段,首先需要了解单片机的基本知识,包括单片机的基本结构和工作原理,以及如何使用单片机进行编程。

然后,选择适当的单片机型号,并进行硬件搭建,包括连接显示器、显示模块、温湿度传感器等外部模块。

在硬件搭建完成后,开始进行软件编程。

根据实验设计,编写程序实现显示时间、日期等信息的功能,通过使用时钟模块实现闹钟功能,通过温湿度传感器获取环境信息并显示在屏幕上等。

编程过程需要熟悉单片机的编程语言和编程工具,以及相应的编程技巧和调试方法。

在实验的过程中,需要进行多次调试和优化。

通过观察实验结果,发现程序中的问题,并进行相应的修改和优化。

在调试的过程中,可以借助仿真工具进行虚拟调试,节省调试时间和成本。

一旦实验中的基本功能实现成功,并且经过多次调试和优化后达到相对稳定的效果,可以考虑添加其他功能来提升时钟的智能化水平。

例如,可以通过添加无线连接的功能,实现与其他设备的连接,例如手机或电脑,通过这种连接,用户可以通过手机远程控制时钟,设置闹钟、查看天气信息等。

此外,还可以添加语音识别功能,通过语音命令来控制时钟的功能。

这些高级功能可以通过单片机的IO口和外围模块实现,需要更加复杂的程序设计和调试。

综上所述,基于单片机的智能电子时钟实验研究需要掌握单片机的基本知识和编程技巧,并且需要进行多次调试和优化。

通过添加各种功能,可以提升时钟的智能化水平,并且为用户提供更好的使用体验。

单片机课程设计报告--电子时钟(2021整理)

单片机课程设计报告--电子时钟(2021整理)

一、设计内容该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。

设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。

二、电子时钟设计思想:用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY〔自己计算〕。

形成定时时间为50ms。

用片内RAM的7BH单元对50ms 计数,计20次产生秒计数器78H单元加1,秒计数器加到60那么分计数器79H单元加1,分计数器加到60那么时计数器7AH单元加1,时计数器加到24那么时计数器清0。

然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。

显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。

在处理过程中加上了按键判断程序,能对按键处理。

三、MCS-51单片机系统简介单片机应用系统由硬件系统和软件系统两局部组成。

硬件系统是指单片机以及扩展的存储器、I\O接口、外围扩展的功能芯片以及接口电路。

软件系统包括监控程序和各种应用程序。

在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。

与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和I\O接口,使单片机应用系统能够运行。

在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。

在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。

配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED 指示灯就可以进行处理了。

在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。

显示器可以是LED指示灯,也可以是LED数码管,也可以是LCD显示器,还可以使用CRT显示器。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

论文_单片机电子时钟 毕业设计论文

论文_单片机电子时钟 毕业设计论文

单片机电子时钟的设计摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。

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

由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。

这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。

关键词:单片机 AT89S51 电子时钟数码管Design of the singlechip electronics clockAbstractSingle slice machine from published in 70's for 20 centuries, is compare with its very high function price, is value by people and pay attention to, apply very widely, develop very quickly. Single slice the machine physical volume is small,the weight is light,the anti- interference ability is strong,the environment haven't high request,the price is cheap,the credibility is high,vivid good,develop more easy. In order to having an above-mentioned advantage, at the our country, single slice the machine is broadly applied already to turn an equipment at industrial automation control,automatic examination,intelligence instrument appearance,home appliances,electric power electronics,the machine electricity integral whole etc. each aspect, but 51 machines is is a typical model most and have a representative most in each machine of a kind. This graduation design passes to its study and application, Take the AT89S51 chips as core, assist with the electric circuit of the necessity, design a simple electronics clock, it from the 4.5 V direct current power supply power supply, pass the figures tube can accurate manifestation time, adjust time。

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

基于单片机的电子时钟设计
] V@ 1A V l O R , t V A #1 , . 0 I O
M V @ 1A O R.
0 B V A.
D C ] E t l
M V@ 1A O R.
D C Rl E M VA Sc N O 。E 0 D DVA I B
M V B #1 O . 0 M V@ 1A 0 R . M VAB O . D C R E 1
应 用技 术
I ■
Caiedcl i h e "noI0 isnai oyv nccne g ̄ w h e
基于单 片机 的 电子时钟设计
郭晓琳
( 中国矿 业大 学 江苏 徐州 21 ) 2 n6 [ 摘 要] 单片机 是把 主要 计算 机功 能部件 都集 成在 一块 芯片上 的微 型计 算机 。被广 泛应 用在 智能 产品 和工业 自动 化上 。本 设计利用 软 件程序 设计 的方 案, 利用 单片 机 内部 的定 时 /计数 器进 行中 断定 时, 合软 件延 时实 现时 、分 、秒 的计 时 。运 用 串行通 信 方式且 计 时不 占用 C U时间, 配 P 能够充 分利用 好 C I PI

I T t E D S I P: ^0 A # I P U lv 。 D S B F DC A E
A DA # D .8 M vR . 0 1A M V B #1 O . 0
M ̄ @ 1A O R.
i VA }U d .1 R O 0 D VA I B
L ALD L OS C L E YI M
IC 2CT N T S N B M AT SN B O .2 CT
Hale Waihona Puke J E O D , I1 R S C N K N(

单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。

二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。

2.软件设计通过C语言编写单片机程序,用于实现时钟功能。

3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。

(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。

(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。

(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。

(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。

三、实验结果经过调试,电子时钟的各项功能都能够正常实现。

在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。

在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。

同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。

四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。

通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。

在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。

基于51单片机的DS12C887时钟芯片的时钟电路设计 - 副本

基于51单片机的DS12C887时钟芯片的时钟电路设计 - 副本

基于AT89C51单片的DS12C887芯片电子时钟的设计摘要:本设计开发了一款具有日期、时间、星期和气温同步显示功能的电子时钟.工作原理是主控MCU读取实时时钟芯片DS12C887,获取时间信息,由全数字单总线结构温度传感器DS18B20读取温度信息,经MCU处理,送LCD显示,关键字:DS12C887 DS18B20 电子时前言随着科学技术的不断发展, 人们对时间计量的要求越来越高。

在当今社会,电子时钟已经得到相当广泛的应用,产品多样,发展更是多元化。

本作品是以STC89C51单片机作为主控芯片,使用12MHZ的晶振,使用专用时钟日历芯片DS12C887产生时间信息,时间精确。

软件部分以C语言为主体,用1602LCD液晶屏显示输出信息,输出信息量多,更直观、人性化。

该时钟可实现人机交互,可通过提供的键盘对其进行调整。

系统具有以下功能:年、月、日、时、分、秒显示;12小时/24小时模式切换,在12小时模式中,用AM和PM区分上午和下午;秒表功能;整点闹铃和报时功能,且闹钟可设置多组。

本次设计的电子时钟系统由单片机最小系统,1602LCD液晶屏,时钟芯片,调整按键,蜂鸣器,电源五大部分组成。

1. 课题分析随着电子技术的发展,电子技术为人们的生活带来了越来越大的方便.本课题旨在借助实时时钟芯片DS12C887和温度传感器DS18B20 和51单片机设计一个多功能的电子时钟.由于DS12C887芯片内附加锂电池,在上电情况下可以通过电源充电,断电后可以利用内部锂电池供电继续工作,在掉电重新上电后,不影响时间数据,不需重新对时,方便可靠.2. 方案论证方案一、利用单片机内部定时器产生秒信号,通过软件处理得到时间信息,送LCD显示.方案二、利用通用串行实时时钟芯片DS1302产生时间信息,利用MCU读取时间信息,送LCD 显示.方案三、通过实时时钟芯片DS12887,获取时间信息,经MCU处理,送LCD显示.方案一电路结构简单,可控性强,但断电后时间数据完全消失,再次上电后需重新设定,且由于电路本身缺陷和附加干扰较多,时间误差较大.方案二电路结构简单,时间精度较高,由于使用串行数据传输,节省MCU资源,但DS1302无内置电池,掉电后,数据丢失,重新上电后需对时.方案三采用实时时钟芯片DS12C887,其内部具有内置锂电池,在掉电的情况下可以正常工作10年以上,且带有非易失性RAM,可以保证在掉电的情况下,用户的定时信息不会丢失;带有温度补偿,保证时间数据的准确.经过综合考虑,我们认为方案三满足设计需求.2.2温度部分由于只是测量气温,用数字温度传感器单总线结构DS18B20即可满足要求,该器件采用单总线结构,且数字传输,可以与CPU直接接口,电路结构简便,可靠性好.2.3主控部分选用单片微控制器AT89C52作为主控.系统方案方框图如图2.1所示.图2.1 系统方案3.方案实现3.1 器件简介(1)AT89C52AT89C52是ATMEL公司生产的通用低功耗8位CMOS微控器,具有8051内核和8KB的可编程Flash程序存储空间以及256字节RAM.有32个通用IO口线和全双工串口,两个数据指针、两个16位可编程计数器/定时器、8个2级优先级中断源,具有片内时钟电路,通过简单的外接器件即可实现时钟电路.(2)DS12C887引脚结构及其功能如图3.1.图3.1 DS12C887引脚结构AD0-AD7:地址/数据总线NC :空脚MOT :总线模式选择CS :片选信号AS :地址锁存信号R/W :写信号(intel总线模式下)DS :读信号(intel总线模式下)RESET :复位信号IRQ : 中断请求输岀VCC :+5V电源GND :电源地DS12C887是美国DALLAS半导体公司生产的实时时钟芯片.采用24 引脚双列直插式的封装形式.芯片的晶体振荡器、振荡电路、充电电路和可充电锂电池等一起封装在芯片内部,组成一个加厚的集成电路模块.电路通电时,其内部充电电路便自动对其内部电池充电.可保证时钟数据10 年内不会丢失.DS12C887内部设有方便的接口电路,接口设计简便,使其与各种微处理器的接口大大简化.使用时无需外围电路元件,通过对MOT引脚的电平控制,可以实现与不同的计算机总线连接.DS12C887 能够自动存取并更新当前的时间,CPU 可通过读取DS12C887 的内部时标寄存器得到当前的时间和日历,也可通过选择二进制码或BCD 码初始化芯片的10 个时标寄存器.其中114 字节的非易失性静态RAM 可供用户使用,可以在控制器掉电的情况下,保存一些重要的数据.DS12C887 的4 个状态寄存器用来控制和指出DS12C887 模块当前的工作状态,除数据更新周期外,程序可随时读写这4 个寄存器.其内部结构如下图3.2.图3.2 DS12C887内部结构(3)DS18B20DS18B20是美国DALLAS半导体公司生产的可组网数字式温度传感器,在其内部使用了在板(ON-B0ARD)专利技术.全部传感元件及转换电路仅集成在形如三极管的一个集成电路内.DS18B20采用单总线接口方式,与微处理器连接时仅需要一条总线即可实现微处理器与DS18B20的双向通讯;支持多点组网功能,多个DS18B20可以并联在一条总线上,即可实现多点测温;在使用中不需要任何外围元件.测温范围为-55℃~+125℃,结果以9位数字量方式串行传送.DS18B20测温原理如图3.3所示.图3.3 DS18B20内部结构图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1.高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入.计数器1和温度寄存器被预置在-55℃所对应的一个基数值.计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1 ,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶体振荡器产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度.其内部带有非线性修正,确保温度数据的准确性.DS18B20的测温分辨率为0.5℃以9位数据格式表示,其中最低有效位(LSB)由比较器进行0.25℃比较,当计数器1中的余值转化成温度后低于0.25℃时,清除温度寄存器的最低位(LSB),当计数器1中的余值转化成温度后高于0.25℃,置位温度寄存器的最低位(LSB),DS18B20温度数据格式如表3.1所示.表3.1 DS18B20温度数据格式DS18B20采用12位二进制数据表示温度,分成两个字节,低字节低四位为小数位,低字节高四位和高字节低四位组成温度信息的8位整数位,其中第一位为符号位,为0表示温度为正值,为1表示温度为负值.当温度为负值时,数据采用补码存放.高字节高四位无效,与符号位保持一致.温度与数据对应关系如表3.2所示.表3.2 部分温度对应数据3.2硬件电路设计本课题涉及电路原理图和PCB图均由Altium Designer Summer 09绘制.(1)电源部分图3.7 整机电源电路由于电路微控器供电电压为5V,osyno6188供电电压为3V或4.5V,osyno6188对电源电压精度要求不高,决定整机采用5V电源供电,在电源处串联一只1N4003二极管,为osyno6188供电,1N4003为硅管,正向导通压降在0.7V左右,经过二极管后,得到约4.3V 电压,为osyno6188供电.电源电路为普通稳压电源电路,由于不是本项目主要方面,不再赘述.(2)AT89C52最小系统电路图3.8 AT89C52单片机最小系统电路由震荡电路,复位电路和单片机构成最小系统.震荡电路为单片机提供工作时钟,由石英晶体和补偿电容构成.由于语音部分需要1200bps波特率,石英晶体选取11.0592MHz,保证波特率零误差,补偿电容选取30pF瓷片电容.复位电路在上电时为单片机提供复位信号,由10uF电容和10K电阻构成的RC充电电路构成,当系统复位上电瞬间,电源通过电阻R为电容充电,在电阻上得到下降的指数充电电压,由高电平经过一段时间到达低电平,提供单片机需要的高脉冲复位信号.电源部分电容为去耦电容.EA拉高,MCU 上电后,从内部程序存储器开始执行.(3)osyno6188及外围电路设计.图3.9 osyno6188及外围电路系统采用4.5V电源供电模式,电源VDD由电源电路中VCC串接二极管后获得.电源电路、复位电路以及时钟电路参考osyno6188用户手册.RXD、TXD为串行总线接口,分别连接主控MCU的TXD、RXD端.(4)DS12C887与AT89C52接口电路设计.图3.10 DS12C887接口电路DS12C887的AD0-AD7为地址\数据复用总线,与控制器地址\数据总线(P0口)直接连接,R2为上拉电阻;MOT为总线模式选择引脚,接地选择INTEL总线连接方式;R/W在INTEL 总线模式下位写使能,接控制器读信号WR(P3.6)端;DS在INTEL总线模式下为读使能信号,接控制器读信号RD(P3.6)端;AS为地址锁存,接控制器地址锁存信号ALE(30脚)端;RST接电源拉高,片选CS直接接地使能。

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

百度文库 - 让每个人平等地提升自我 1 单片机课程设计

* 名: *** 学 号: 32 班 级:自动化11402 成 绩: 指导老师: *** 设计时间:2016年12月26日~2017年1月5日

目 录 百度文库 - 让每个人平等地提升自我 2 STC89C51是公司生产的一种低功耗、高性能CMOS8位微控制器,具有 4K 在系统可编程Flash存储器。STC89C51使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统不具备的功能。在单芯片上,拥有灵巧的8 位和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的。支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被 ........................................................... 5 图5 单片机系统 冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。 .......................................................... 5 将所有数码管的8个显示段码"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,电路如下图:

................................................................................................................................................. 5 图6 数码管显示电路 ............................................................................................................. 6

一、设计要求 利用51单片机开发电子时钟,实现时间显示、调整功能。具体要求如下: (1) 按以上要求制定设计方案,并绘制出系统工作框图; (2) 按要求设计部分外围电路,并与单片机仿真器、单片机实验箱、电源等正确可靠的连接,给出电路原理图; (3) 用仿真器及单片机实验箱进行程序设计与调试; (4) 利用键盘输入调整秒、分和小时时刻,数码管显示时间; 二、系统总体方案 百度文库 - 让每个人平等地提升自我 3 1.时钟计数:形成秒、分、小时,系统时间采用24小时制。利用单片机内部的定时器/计数器来实现,它的处理过程如下:首先设定单片机内部的一个定时器/计数器工作于定时方式,对机器周期计数形成基准时间(如10ms),然后用另一个定时器/计数器或软件计数的方法对基准时间计数形成秒(对10ms计数100次),秒计60次形成分,分计60次形成小时,小时计24次则计满一天。 2.显示:采用8个LED显示系统当前时间,显示格式为“时-分-秒”(如12-25-09)。 3.设置功能:用户可以对系统的时间进行设置。没有按键时,则时钟正常走时。当按下K0键,进入调分状态,时钟停止走动,此时,按K1或K2键可进行加1或减1操作;继续按K0键可分别进行分和时的调整,此时,按K1或K2键可进行加1或减1操作;最后按K0键将退出调整状态,时钟开始计时运行。 4.系统框图

三、硬件电路设计 1.时钟电路(晶振电路) 单片机利用外部12MHZ晶振构成振荡电路作为时钟源,单片机内部具有一个高增益反向放大器,用于构成振荡器。通常在引脚XTAL1和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,结构如图所示:

晶振电路 STC89C51 复位电路 显示电路 按键电路 电源电路 百度文库 - 让每个人平等地提升自我

4 图2 时钟电路图 2.按键电路

按键处理设置为:当有没键按下时,时钟正常运行;当按一次K1,时钟停止走动,按K2对秒进行调整;当K1按2次时,按K2 对分进行调整;当K1按下3次时,按K2 对小时进行调整,当按下4次K1时,校时完毕,时钟按设定的时间进行正常走时。当按1次K3进入闹钟设置界面,时钟继续进行走时,按K2对秒进行设置;当按2次K3,按K2对分进行设置;当按3次K3,按K2对秒进行设置;当按下4次K3时,闹钟设置完毕进入时钟显示界面。电路如下图:

图3 独立按键电路

3.复位电路

单片机小系统常采用上电自动复位和手动按键复位两种方式实现系统的复位操作,上电复位要求接通电源后,自动实现复位操作,手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位,其结构图如下图,上电自动复位通过电容C充电来实现,手动按键复位是通过按键将电阻R与Vcc接通来实现。 百度文库 - 让每个人平等地提升自我 5 图4 复位电路 4.单片机系统 STC89C51是公司生产的一种低功耗、高性能CMOS8位微控制器,具有 4K 在系统可编程Flash存储器。STC89C51使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统不具备的功能。在单芯片上,拥有灵巧的8 位和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的。支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被 图5 单片机系统 冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。 5. 数码管显示电路 将所有数码管的8个显示段码"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要百度文库 - 让每个人平等地提升自我 6 将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,电路如下图:

图6 数码管显示电路 四、软件设计 本系统的软件系统主要可分为主程序、定时计数中断程序、按键程序、延时程序四大模块。 设计思路: 本系统主要可分为主程序、定时计数中断程序、按键程序、延时程序和共阴极数码管显示程序。定时中断程序是利用单片机内部定时器0实现1秒的定时,然后利用软件延时实现分小时,时间调整程序是利用单片机的内部存贮器,把调整好的时间写到显示时间的存贮单元,然后启动定时器开始计时并显示,延时程序是利用软件实现延时达到去抖的目的和数码管动态显示的延时。主程序就是利用这些子程序中断程序实现显示、定时等功能。

1.软件流程图 (1)主程序

开始

初始化 键盘扫描 百度文库 - 让每个人平等地提升自我 7 (2)键盘扫描程序

(3)显示程序 显示 开始 计时满1s 秒加1 满60s 秒清零,分加1 分满60 分清零,时加1 时满24 时清零 时间显示 开始 开始

时间数据个十位分离 百度文库 - 让每个人平等地提升自我 8 2、程序清单 #include<> #define uint unsigned int #define uchar unsigned char uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; sbit k0=P1^0; sbit k1=P1^1; sbit k2=P1^2; int s0,s1,min0,min1,h0,h1,shi,fen,miao,count,slnum,a0,a1,b0,b1,c0,c1; void delay(uint z) //延时函数1ms { uint x,y; for(x=z;x>0;x--) for(y=90;y>0;y--); } void init() //初始化函数 { P0=table[0]; P2=0xff; shi=23; fen=59; //上电时间23-59-50 miao=50;

i=0 送位选码 送段选码 消隐 结束

i>8 ? 百度文库 - 让每个人平等地提升自我

9 s1=miao/10; s0=miao%10; min1=fen/10; min0=fen%10; h1=shi/10; h0=shi%10; //分离出个位十位 TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; //基准时间为20ms EA=1; ET0=1; TR0=1; //打开中断定时器 } void display0() // { P2=0x80; P0=table[h1]; delay(1); P0=0x00; //消隐 P2=0x40; P0=table[h0]; delay(1); P0=0x00; P2=0x20; P0=0x40; delay(1); P0=0x00; P2=0x10; P0=table[min1]; delay(1); P0=0x00; P2=0x08; P0=table[min0]; delay(1); P0=0x00; P2=0x04; P0=0x40; //让时分秒中间显示“—” delay(1); P0=0x00; P2=0x02; P0=table[s1]; delay(1); P0=0x00; P2=0x01;

相关文档
最新文档