单片机数字时钟设计Word文档格式.docx

上传人:b****2 文档编号:4050990 上传时间:2023-05-02 格式:DOCX 页数:27 大小:219.51KB
下载 相关 举报
单片机数字时钟设计Word文档格式.docx_第1页
第1页 / 共27页
单片机数字时钟设计Word文档格式.docx_第2页
第2页 / 共27页
单片机数字时钟设计Word文档格式.docx_第3页
第3页 / 共27页
单片机数字时钟设计Word文档格式.docx_第4页
第4页 / 共27页
单片机数字时钟设计Word文档格式.docx_第5页
第5页 / 共27页
单片机数字时钟设计Word文档格式.docx_第6页
第6页 / 共27页
单片机数字时钟设计Word文档格式.docx_第7页
第7页 / 共27页
单片机数字时钟设计Word文档格式.docx_第8页
第8页 / 共27页
单片机数字时钟设计Word文档格式.docx_第9页
第9页 / 共27页
单片机数字时钟设计Word文档格式.docx_第10页
第10页 / 共27页
单片机数字时钟设计Word文档格式.docx_第11页
第11页 / 共27页
单片机数字时钟设计Word文档格式.docx_第12页
第12页 / 共27页
单片机数字时钟设计Word文档格式.docx_第13页
第13页 / 共27页
单片机数字时钟设计Word文档格式.docx_第14页
第14页 / 共27页
单片机数字时钟设计Word文档格式.docx_第15页
第15页 / 共27页
单片机数字时钟设计Word文档格式.docx_第16页
第16页 / 共27页
单片机数字时钟设计Word文档格式.docx_第17页
第17页 / 共27页
单片机数字时钟设计Word文档格式.docx_第18页
第18页 / 共27页
单片机数字时钟设计Word文档格式.docx_第19页
第19页 / 共27页
单片机数字时钟设计Word文档格式.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机数字时钟设计Word文档格式.docx

《单片机数字时钟设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机数字时钟设计Word文档格式.docx(27页珍藏版)》请在冰点文库上搜索。

单片机数字时钟设计Word文档格式.docx

1 总体方案设计

1、1系统框图

我所设计得就就是一个数字时钟自动报时系统,它不仅具有数字电子时钟得各种功能,如具有较时、调时、定时、闹钟等功能,而且还具有驱动电铃,定点报时等功能。

总体设计框图如图1、1所示:

图1、1 系统框图

1、2设计方案介绍

1.2.1硬件得选择方案

由于我设计得就就是一个数字时钟自动报时系统,它需要准确得走时、较时、调时、定时、定点报时等,因此我选用得就就是AT89C51单片机芯片,再配以DS1302、按键电路、晶振电路、复位电路以及LED动态显示器,就可以实现。

采用AT89C51得P0接口外接8路反相三态缓冲器74LS240作LED动态扫描得段码控制驱动信号,用P2接口得P2、0-P2、5外接一片集电极开路反相门电路7406做为6位LED得位选信号驱动口,6个数码管得8根段选线分别接74LS240得输出,LED共阴极端与74LS07得输出端相连;

按键接口,由P1、7、P1、6、P1、5、P1、4来完成,四个按键得作用分别就就是:

一个为功能键K1;

一个为数字调整键K2;

一个为取消设置键K3,用来设置时间;

一个为K4键,用来设置定时时间。

DS1302实时时钟由P1、0、P1、1、P1、2来控制。

DAS1302得X1、X2接口用来接蜂鸣器。

1.2.2 软件得设计方案

由于我考虑到用单片机得汇编语言来做《自动报时系统》得设计比较简单。

对于程序我得设计思路就就是:

1、要有主程序,主程序一般就就是显示与中断得初始化。

2、要有显示子程序,当键入一个时间值时显示程序要把这个键入得时间值给显示出来。

2、要有中断服务程序,功能,走时,判断就就是否到定时时间等等。

3、要有按键程序,进入按键程序,判断就就是否有键按下,没有,则调用延时重新判断,如果到了,调用延时去抖程序,再次判断有键按下否,没有则返回延时程序,如果有按键,则判断键号,堆栈,判断键就就是否释放,没有,继续判断,释放了,则输入键号送往累加器。

ﻬ2 硬件设计

2、1 单片机得选型

我得设计里用到得单片机芯片就就是AT89C51芯片,除此之外还包括:

DS1302芯片、晶振电路与复位电路构成单片机最小应用系统。

2、2AT89C51得特点

AT89C51就就是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)得低电压,高性能、CMOS、8位单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准得MCS-51指令集与输出管脚相兼容。

AT89C51得管脚图如图2、1所示:

图2、1AT89C51管脚图

主要特性:

1、与MCS-51兼容

2、4K字节可编程闪烁存储器

3、寿命:

1000写/擦循环

4、数据保留时间:

10年

5、全静态工作:

0Hz-24Hz

6、三级程序存储器锁定

7、128*8位内部RAM

8、32可编程I/O线

9、两个16位定时器/计数器

10、5个中断源

11、可编程串行通道

12、片内振荡器与时钟电路

2、3AT89C51单片机复位方式

单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态,在这种情况下都需要复位。

复位得作用就就是使中央处理器CPU以及其她功能部件都恢复到一个确定得初始状态,并从这个状态重新开始工作。

AT89C51单片机得复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位。

复位后,PC程序计数器得内容为0000H,片内RAM中内容不变。

复位电路一般有上电复位、手动开关复位与自动复位电路3种,如图2、2所示。

而本设计采用得就就是手动复位方式,如B图所示:

a上电复位电路      b手动复位电路c 自动复位电路

图2、2 单片机复位电路

2、4 DS1302得简介

2.4.1简介

DS1302就就是美国DALLAS公司推出得一种高性能、低功耗得实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节得时钟信号与RAM数据。

实时时钟可提供秒、分、时、日、星期、月与年,一个月小与31天时可以自动调整,且具有闰年补偿功能。

工作电压宽达2、5~5、5V。

采用双电源供电(主电源与备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电得能力。

DS1302用于数据记录,特别就就是对某些具有特殊意义得数据点得记录上,能实现数据与出现该数据得时间同时记录,因此广泛应用于测量系统中。

DS1302串行时钟芯片主要就就是由移位寄存器、控制逻辑、振荡器、实时时钟、RAM以及电源组成,它得电路工作原理图如下图2、3所示:

图2、3DS1302得内部结构

在本设计中,它得I/O引脚、串行时钟SCLK引脚、CE引脚分别与AT89C51得I/O接口得P1、1口、P1、2口、P1、0口相接,X1、X2接口接蜂鸣器。

2.4.2DS1302得特点

DS1302时钟芯片包括:

(1)实时时钟/日历:

实时时钟/日历提供秒、分、时、日、星期、月、年等信息,每月天数以及闰年能自动调整,时钟可以采用24h或AM/PM得12h格式。

(2)31字节得静态RAM:

用于存放数据。

(3)带慢速充电控制备份电源得充电特性。

(4)简单得三线串行接口:

该芯片使用同步串行通信。

与时钟/RAM通信共需3根线:

RST(复位)、I/O(数据线)、SCLK(串行时钟)。

数据可以以每次1个字节或多个字节得形式传送到时钟/RAM或从其读出。

2.4.3各管脚描述

管脚描述如下

X1X232、768KHz晶振管脚

GND地

RST复位脚

I/O数据输入/输出引脚

SCLK 串行时钟

Vcc1,Vcc2电源供电管脚

订单信息

部分#描述

DS1302串行时钟芯片8 脚DIP

DS1302S串行时钟芯片8 脚SOIC200mil

DS1302Z串行时钟芯片8脚SOIC 150mil

2、 DS1302内部寄存器

CH:

 时钟停止位寄存器2得第7位12/24 小时标志

CH=0振荡器工作允许bit7=1,12小时模式

CH=1 振荡器停止bit7=0,24 小时模式

WP:

写保护位寄存器2得第5位:

AM/PM定义

WP=0寄存器数据能够写入AP=1下午模式

WP=1 寄存器数据不能写入AP=0 上午模式

TCS:

涓流充电选择DS:

二极管选择位

TCS=1010使能涓流充电DS=01 选择一个二极管

TCS=其它禁止涓流充电DS=10选择两个二极管

DS=00或11,即使TCS=1010,充电功能也被禁止

RS位电阻典型位

00没有没有

01R12K

10R24K

11R3 8K

2.4.4 DS1302读写时序说明

DS1302就就是SPI总线驱动方式。

它不仅要向寄存器写入控制字,还需要读取相应寄存器得数据。

要想与DS1302通信,首先要先了解DS1302得控制字。

DS1302得控制字如表2、1所示:

表2、1控制字(即地址及命令字节)

控制字得最高有效位(位7)必须就就是逻辑1,如果它为0,则不能把数据写入到DS1302中。

位6:

如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;

位5至位1(A4~A0):

指示操作单元得地址;

位0(最低有效位):

如为0,表示要进行写操作,为1表示进行读操作。

图2、4数据读写时序

控制字总就就是从最低位开始输出。

在控制字指令输入后得下一个SCLK时钟得上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。

同样,在紧跟8位得控制字指令后得下一个SCLK脉冲得下降沿,读出DS1302得数据,读出得数据也就就是从最低位到最高位。

数据读写时序如图2、4。

2、5 键盘方案

本设计得自动报时系统就就是一个具有电子时钟、闹钟、定点报时功能得系统,系统工作时应具备随时对当前时间进行调整,因此它只需要独立式键盘得四个按键即可完成操作。

独立式键盘得接口电路:

在单片机应用系统中,有时只需要几个简单得按键向系统输入信息。

这时,可将每个按键直接接在一根I/O接口线上,这种连接方式得键盘称为独立式键盘。

如图2、5所示,每个独立按键单独占有一根I/O接口线,每根I/O接口线得工作状态不会影响到其她I/O接口线。

这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O线,I/O接口线浪费较大。

故只在按键数量不多时采用这种按键电路。

在此电路中,按键输入都采用低电平有效。

上拉电阻保证了按键断开时,I/O接口线有确定得高电平。

当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。

本设计中个按键得功能为:

一个为功能键K1;

一个为取消设置键K3,用来设置时间;

一个为K4键,用来设置定时时间。

图2、5独立式键盘电路

2.5.1键盘接口工作原理

在单片机应用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命令及指令等输入到系统中,来实现简单得人机通信。

2.5.2 按键开关得去除抖动功能

目前,AT89C51单片机应用系统上得按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图2、6所示、可以瞧出机械触点在闭合及断开瞬间均有抖动过程,时间长短与开关得机械特性有关,一般为5~10ms。

由于抖动,会造成被查询得开关状态无法准确读出。

例如,一次按键产生得正确开关状态,由于键得抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这就就是不允许得。

为了保证CPU对键得一次闭合仅在按键稳定时作一次键输入处理,必须消除产生得前沿(后沿)抖动影响。

在本次设计中采用得就就是软件去抖。

图2、6按键过程 

2、6七段LED显示工作原理

2.6.1显示得种类

1静态显示概念

静态显示就就是指数码管显示某一字符时,相应得发光二极管恒定导通或恒定截止。

这种显示方式得各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。

每个数码管得8个字段分别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字符即显示出来,并保持不变,直到I/O口输出新得段码。

采用静态显示方式得优点:

较小得电流即可获得较高得亮度,且占用CPU时间少,编程简单,显示便于监测与控制,但其占用得接口线多,硬件电路复杂,成本高,只适合于显示位数较少得场合。

2动态显示概念

动态显示就就是一位一位地轮流点亮各位数码管,这种逐位点亮显示器得方式称为位扫描。

通常,各位数码管得段选线相应并联在一起,由一个8位得I/O口控制;

各位得位选线(公共阴极或阳极)由另外得I/O口线控制。

动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应得段码,在另一时刻选通另一位数码管,并送出相应得段码。

依此规律循环,即可使各位数码管显示将要显示得字符。

虽然这些字符就就是在不同得时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人以同时显示得感觉。

采用动态显示方式比较节省I/O口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多得时间。

此次设计中我们采用定时器来完成动态扫描显示。

用定时器T0定2ms得时间间隔,每次定时时间到时就输出一个LED信号,即显示1位。

定时器每中断6次后循环到第一位LED显示。

这样动态显示占用CPU得时间只有输出断码与输出位码得有限时间,提高了CPU得工作效率。

在本次设计中所使用得就就是动态显示,其显示电路图形如图2、7所示:

图2、7LED动态显示电路

2.6.2数码管简介

1数码管结构

数码管由8个发光二极管(以下简称字段)构成,通过不同得组合可用来显示数字0~9、字符A~ F及小数点“·

”。

数码管得外形结构如图2、8(a)所示。

数码管又分为共阴极与共阳极两种结构,分别如图2、8(b)与图2、8(c)所示:

(a)外型结构;

 (b)共阴极;

    (c)共阳极

图2、8数码管结构图

2数码管工作原理

由于我们采用得就就是共阴极数码管,所以介绍共阴极数码管得工作原理如下:

共阴极数码管得8个发光二极管得阴极(二极管负端)连接在一起。

通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。

当某段驱动电路得输出端为高电平时,则该端所连接得字段导通并点亮。

根据发光字段得不同组合可显示出各种数字或字符。

此时,要求段驱动电路能吸收额定得段导通电流,还需根据外接电源及额定段导通电流来确定相应得限流电阻。

共阳极数码管得工作原理与共阴极得正好相反。

3数码管字形编码

要使数码管显示出相应得数字或字符,必须使段数据口输出相应得字形编码。

LED显示字型码表见表2、2:

表2、2LED显示字型码表

显示字符

共阴极

共阳极

3FH

C0H

9

6FH

90H

1

06H

F9H

A

77H

88H

2

5BH

A4H

B

7CH

83H

4FH

B0H

39H

C6H

4

66H

99H

D

5EH

A1H

5

6DH

92H

E

79H

86H

6

7DH

82H

F

71H

8EH

7

07H

F8H

8

7FH

80H

2、7自动报时系统得工作原理及原理图

自动报时系统电路得核心就就是AT89C51单片机,其内部带有4KB得FlashROM,无须扩展程序存储器;

电子时钟没有大量得运算与暂存数据,现有得128B片内RAM已能满足要求,也不必扩展片外RAM。

系统配备6位LED显示与4个单接口键盘,采用P0接口外接8路反相三态缓冲器74LS240作LED动态扫描得段码控制驱动信号,用P2接口得P2、0-P2、5外接一片集电极开路反相门电路7406做为6位LED得位选信号驱动口,6个数码管得8根段选线分别接74LS240得输出,LED共阴极端与74LS07得输出端相连;

按键接口,由P1、7、P1、6、P1、5、P1、4来完成;

DS1302实时时钟由P1、0、P1、1、P1、2来控制。

DS1302得X1、X2接口外接蜂鸣器。

电路原理图见附录A

ﻬ3软件设计

3、1 设计思路

由于我做得就就是自动报时系统,它需要具有较时、调时、定时、闹钟等功能,而且还具有驱动电铃,定点报时等功能。

另外当时钟走到24点时则自动清零。

所以我们考虑到用单片机得汇编语言来做我们得设计比较简单。

对于程序我们得设计思路就就是:

2、要有中断服务程序,功能,走时,判断就就是否到定时时间等等。

3、要有按键程序,进入按键程序,判断就就是否有键按下,没有,则调用延时重新判断,如果到了,调用延时去抖程序,再次判断有键按下否,没有则返回延时程序,如果有按键,则判断键号,堆栈,判断键就就是否释放,没有,继续判断,释放了,则输入键号送往累加器。

3、2系统工作流程

1、时钟显示:

6位LED从左到右一次显示时、分、秒,采用24小时计时。

2、按键控制功能:

采用4个独立键盘,其中一个为功能键;

一个为数字调整键;

一个为取消设置键,用来设置时间;

一个为ALM键,用来设置定时时间。

3、时间显示:

通电后,系统自动进入时钟设置,从00:

00:

00开始计时,此时可以设定当前时间。

4、时间调整:

按下功能键,系统停止计时显示,进入时间设定状态,系统只显示小时得内容,其余4位LED处于全暗状态,等待按键设置。

此时按动数字调整键后小时将会加1,按动取消键后又重新回到原来得时间显示状态;

若再按动功能键则用来调整分钟,此时小时与秒得4位LED指示全暗,按数字调整键后可以对分钟增1调整,按动取消键后又重新回到原来得时间显示状态;

再按动功能键则用来调整秒,此时小时与分钟得4位LED指示全暗,秒显示当前得秒数,暗数字调整键可以对秒进行增1调整,按动取消键后又重新回到原来得时间显示状态,按动功能键后系统将自动由设定后得时间开始计时显示。

5、闹钟设置/启闹:

按下K4键,系统继续计时,但显示为00:

00:

00,此时再按动功能键后进入闹钟设置状态,设置过程与时间调整相同,但就就是最后按功能键确定后显示定时时间30S后自动启动定时闹钟功能,并恢复时间显示。

定时时间到,蜂鸣器鸣叫1min后自动停闹,每次设置时只能定一次,下次需重新设置。

3、3主程序流程

首先,设置初始常数,设置定时器常数,它主要就就是显示与中断得初始化。

3.3.1 主程序流程图如图3、1所示:

主程序得内容一般包括:

主程序得起始地址,中断服务程序得起始地址,有关内存单元及相关部件得初始化与一些子程序调用等。

图3、1主程序流程图

3.3.2主程序如下:

START:

MOV 

R0,#70H 

  

 

  ;

清70H-7AH共11个内存单元

MOV 

R7,#0BH 

  ;

CLEARDISP:

 

MOV 

 R0,#00H 

;

INC 

R0 

        

DJNZ 

R7,CLEARDISP 

   ;

MOV 

20H,#00H 

  ;

清20H(标志用)

 7AH,#0AH 

   ;

放入"

熄灭符"

数据

MOV  TMOD,#11H 

    ;

设T0、T1为16位定时器

TL0,#0B0H 

    ;

50MS定时初值(T0计时用)

MOV 

TH0,#3CH 

      ;

50MS定时初值

MOV 

TL1,#0B0H 

    ;

50MS定时初值(T1闪烁定时用)

TH1,#3CH 

  ;

50MS定时初值

SETB 

EA 

总中断开放

SETB 

ET0 

   ;

允许T0中断

SETB 

 TR0 

  ;

开启T0定时器

R4,#14H 

1秒定时用初值(50MS×

20)

START1:

 LCALLDISPLAY 

;

调用显示子程序

JNB P3、2,SETMM1 

     ;

P3、7口为0时转时间调整程序

SJMP 

START1 

      ;

P3、7口为1时跳回START1

SETMM1:

LJMPSETMM 

   ;

转到时间调整程序SETMM

3、4按键程序模块

该系统得按键功能如下:

按下功能键,系统停止计时显示,进入时间设定状态,系统只显示小时得内容,其余4位LED处于全暗状态,等待按键设置。

此时按动数字调整键后小时将会加1,按动取消键后又重新回到原来得时间显示状态;

若再按动功能键则用来调整分钟,此时小时与秒得4位LED指示全暗,按数字调整键后可以对分钟增1调整,按动取消键后又重新回到原来得时间显示状态;

再按动功能键则用来调整秒,此时小时与分钟得4位LED指示全暗,秒显示当前得秒数,暗数字调整键可以对秒进行增1调整,按动取消键后又重新回到原来得时间显示状态,按动功能键后系统将自动由设定后得时间开始计时显示。

进入按键程序,判断有键按下吗?

没有,则调用延时重新判断,如果到了,调用延时去抖程序,再次判断有键按下否,没有则返回延时程序,如果有按键,则判断键号,堆栈,判断键就就是否释放,没有,继续判断,释放了,则输入键号送往累加器,然后返回主程序。

图3、2按键程序流程图

按键程序如下:

当调时按键按下时进入此程序

SETMM:

cLR 

 ET0 

;

关定时器T0中断

CLR 

TR0 

   ;

关闭定时器T0

LCALL 

DL1S 

  

调用1秒延时程序

JB 

P3、2,CLOSEDIS 

  ;

键按下时间小于1秒,关闭显示(省电)

R2,#06H 

 ;

进入调时状态,赋闪烁定时初值

SETB 

ET1 

  ;

允许T1中断

SETB 

TR1 

  ;

开启定时器T1

SET2:

JNB  

P3、2,SET1 

P3、7口为0(键未释放),等待

00H 

 ;

键释放,分调整闪烁标志置1

SET4:

JB 

P3、2,SET3 

等待键按下

LCALL 

DL05S 

 ;

有键按下,延时0、5秒

JNB 

P3、2,SETHH 

  ;

按下时间大于0、5秒转调小时状态

MOV 

R0,#77H 

按下时间小于0、5秒加1分钟操作

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2