1、16*16 LED 点阵流水显示实时时钟第 1 页 共 30 页摘 要近年来,随着电子技术的发展,人们对于时钟的要求也越来越高,不仅希望走时精准,还要求字体清晰美观,即使在远处也可看清时间,而不用凑近查看,在夜晚无需任何操作也能看时间。由此我设计了一种由单片机控制的 16*16LED 点阵滚动显示实时数字时钟,将DS1302 实时时钟芯片与 LED 点阵屏相结合,以此满足人们对时钟的新的要求。本设计采用AT89C51 作为数据处理芯片,以 DS1302 外设时钟芯片作为主要硬件,74HC138 译码器及74HC595 移位锁存器作为显示的控制芯片,实现小时、分钟、秒时间数据在 16*16 的
2、LED 点阵屏上显示,采用流水式滚动显示设计,并且对小时及分钟可进行调整。该设计的硬件电路简单,体积小巧,所使用的电子元器件较少,占用的单片机 IO 端口较少所以具有较强的外围功能电路扩展能力,今后如有需要可对系统进行功能升级。本设计采用 C 语言对单片机编程,因为 C 语言比起汇编来更加直观易懂,采用模块化程序设计有很强的移植性。与自己所学专业息息相关,运用到了多门专业学科知识:单片机、模拟电路、数字电路等。本设计的重点在于综合运用所学知识设计单片机外围电路,并且采用 C 语言程序设计出能够满足人们要求的 LED 点阵屏流水显示实时时钟。关键词:51 单片机 C 语言 DS1302 实时时钟
3、 LED 点阵 16*16 LED 点阵流水显示实时时钟第 2 页 共 30 页前 言随着单片机技术的不断发展,用单片机制作的电子电路日益增多,也更加成熟。功能多样且电路简单,无需很多的电子元件支持,减少了电路成本并且使电路更加稳定。本次设计采用 16*16LED 点阵屏作为时钟显示。如今,当我们走在街头会看见许多不断闪动的电子广告牌,其超高的亮度以及流水形式运动的文字吸引着路人的眼球。电子广告牌不同于传统的广告牌,传统广告牌自身不会发光,需要另外增加灯具,且显示的内容有限,无法更改,一段时间后会褪色,需要更换广告牌,后期成本巨大。LED 点阵形式的电子广告牌则没有这些弊端,本身由超高亮度的
4、LED 发光二极管组成,其显示效果自然要好很多,且发光二极管功耗极低,其超长的使用寿命可以减少后期的资金投入,且对显示内容没有限制,因为采用流水式显示方式,其显示内容长度可以说是无限制的,可以随时更换显示的内容,字体图案等。字体显示大且清晰,可见距离远。其控制简单高效,仅由一块单片机及简单的外围电路便可以驱动 LED 点阵显示屏工作。本次设计采用 DS1302 作为时钟芯片,本身具有双重电源,主电源提供正常工作时的电能,辅助电源在主电源关闭后仍可维持芯片的正常工作,即断电后再上电时无需重新设置参数,功耗低,内部参数设置后在主电源打开的情况下还可为可充电的辅助电源充电。采用DS1302 比用单片
5、机内部定时计数器所做的时钟精度更高,无需占用单片机内部定时计数器,且占用单片机 IO 资源少,编程简单,并可由此扩展出闹钟,定时器等功能电路。本次设计目的在于运用 LED 点阵的特点来制作实时数字式时钟,满足人们对时钟精度及可见性的要求。本文对该功能电路的硬件设计有详细的介绍,包括元器件的选用等。具有完整的PROTEUS 模拟软件硬件电路以及 PROTEL 99SE 绘制的实际应用电路。软件方面采用了 KEIL UV2 软件作为单片机程序的开发软件,全部 C 语言程序设计,比汇编语言更加简单易懂,且具有很高的可移植性。本文也包括详细的 C 语言程序,及程序功能介绍。目 录第一章 绪 论 .21
6、.1 应用背景及意义 .21.2 发展及应用 .2第二章 主要元件基础知识 .32.1 AT89C51 单片机概述 .32.1.1 性能参数及引脚图 .32.1.2 AT89C51 内部结构图及各引脚功能介绍 .42.1.3 功能特性概述 .62.2 DS1302 时钟芯片 .62.2.1 DS1302 概述 .62.2.2 DS1302 引脚功能及结构 .62.2.3 DS1302 的控制字节与读写时序 .716*16 LED 点阵流水显示实时时钟第 3 页 共 30 页2.2.4 DS1302 的寄存器地址与数据读写 .82.3 74HC595 与 74HC138 数字芯片 .92.3.1
7、 74HC595 概述及引脚功能 .92.3.2 74HC138 概述及引脚功能 .92.4 16*16LED 点阵屏 .102.4.1 16*16LED 点阵构成及点阵内部结构 .102.4.2 LED 点阵内部结构 .102.4.3 LED 点阵显示文字的原理 .10第三章 16*16 点阵流水显示实时时钟介绍 .123.1 点阵时钟的制作 .123.2 硬件电路的设计 .123.3 软件程序的设计 .153.3.1 程序流程图 .163.3.2 程序设计 .16第四章 结 束 语 .19致 谢 .20参考文献 .21附 录 .22第一章 绪 论1.1 应用背景及意义之前的时钟,基本都没有
8、自带照明光源,在夜晚没有光源的情况下无法看到时间,少数带照明光源的时钟也需要按键之后才会发光,且还需要在黑暗中寻找时钟。而且平时显示也不够醒目,不能远距离看清时间。且时间走时也不太精准,存在较大的误差。现在运用 DS1302 时钟芯片将时间通过单片机控制的 LED 点阵显示出来,不但字体清晰美观,使人一目了然,相隔一段距离仍然能够看清时间,在黑暗中无需任何操作也能查看时间,且走时精准。因此为了使时钟达到此要求,有必要深入了解 LED 点阵以及实时时钟芯片,并设计数字化时钟电路。1.2 发展及应用时钟的发展从最初的机械式时钟到后来的石英电子钟,其计时精度一直在不断提高。现16*16 LED 点阵
9、流水显示实时时钟第 4 页 共 30 页如今出现的实时时钟芯片,已经把时钟精度提到更高的层次。从原来的指针式时钟发展到现如今的数字式时钟,使人们对时间更加明了。普通的指针式时钟只能表示 12 小时制,对于一些特定情况的人来说十分不便,数字式时钟可以表示 24 小时制,可以比指针式时钟更直观的来表示时间。LED 点阵显示可以说是一种多功能的显示设备,但更多的还是作为广告牌来使用。传统的广告牌体积庞大,不加修饰难以吸引顾客,且内容单一不可更改,如果要更改内容需要换掉整个广告牌,投入巨大。而点阵屏对显示内容无限制,不仅可以显示文字数字英文等,还可以显示普通的图案,显示内容可以随时更改,若采用流水式显
10、示效果则对显示的文字长度也基本没有限制,后期投入小,显示效果好,显示方式也可以多样化。可见距离远。为了满足要求,所以利用 LED 点阵的显示特点以及 DS1302 实时时钟芯片的高精度特点,将两者结合起来,制作 LED 点阵流水显示实时时钟。此数字时钟采用 AT89C51 单片机作为数据处理及显示控制芯片,DS1302 时钟芯片产生高精度的时钟数据,16*16LED 点阵屏作为显示器件。74HC138 译码器与 74HC595 移位寄存器作为单片机控制显示输出的辅助芯片,减少单片机 IO 口的占用数量。第二章 主要元件基础知识2.1 AT89C51 单片机概述AT89 系列单片机是美国 ATM
11、EL 公司开发的一个单片机系列,其中最具代表性的 AT89C51型单片机在我国非常流行。AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS 8 位微处理器,俗称单片机。其内部还集成有 128B 的 RAM 并可与 ROM 一起分别扩展至 64KB。AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MC
12、S-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简版本。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。如今 ATMEL 公司还开发出了 AT89C51 的升级版单片机系列,AT89S 系列单片机,拥有更16*16 LED 点阵流水显示实时时钟第 5 页 共 30 页加强大的功能,内部储存数据容量也更大,且支持 ISP 在线编程模式。2.1.1 性能参数及引脚图图 1 AT89C51 单片机外形及引脚图AT89C51 主要性能参数:1)与 MC
13、S-51 兼容 2)4K 字节可编程存储器 3)寿命:1000 写/擦循环4)数据保留时间:10 年5)全静态工作频率:0Hz-24MHz6)三级程序存储器锁定7)128 B 内部 RAM8)32 个可编程 I/O 口9)两个 16 位定时/计数器10)5 个中断源 11)可编程串行通道12)低功耗设置和掉电模式13)片内振荡器和时钟电路2.1.2 AT89C51 内部结构图及各引脚功能介绍16*16 LED 点阵流水显示实时时钟第 6 页 共 30 页图 2 AT89C51 内部结构图VCC:供电电源正极。GND:供电电源负极。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可
14、吸收 8TTL 门电流。当 P0 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在 FLASH 编程时,P0 口作为原码输入口,当 FLASH 进行校验时,P0输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位
15、双向 I/O 口,P2 口缓冲器可接收,输出 4 个TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高。作为输入时,P2 口的管脚被外部拉低。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为
16、高电平。P3 口也可作为 AT89C51 的一些特殊功能16*16 LED 点阵流水显示实时时钟第 7 页 共 30 页口,如下所示:P3 口管脚备选功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问
17、外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令时 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSE
18、N 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.1.3 功能特性概述AT89C51 提供以下标准功能;4K 字节 Flash 闪速存储器,128 字节内部 RAM,32 个 I/O口线,
19、2 个 16 位定时/计数器,一个 6 向量两极中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。在本次设计中 AT89C51 单片机主要作为主控单元使用,同时方便日后的扩展。2.2 DS1302 时钟芯片2.2.1 DS1302 概述DS1302 实时时钟芯片是 MAXIM 公司推出的一种高性能、低功耗、带 RAM 的实时时钟
20、电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为16*16 LED 点阵流水显示实时时钟第 8 页 共 30 页2.5V5.5V。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。DS1302 内部有一个 31B 的用于临时性存放数据的静态 RAM 寄存器。DS1302 是 DS1202 的升级产品,与 DS1202 兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。在本次设计中 DS1302 时钟芯片是实现高精度计时的关键,利用 DS1302 时钟芯片独立于单片机来计时,不占用
21、单片机内部定时计数器资源,在提高计时精度的同时也提高了整个系统的抗干扰能力。2.2.2 DS1302 引脚功能及结构图 3 所示是 DS1302 的引脚排列,其中 VCC1 为后备电源,VCC2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302 由 VCC1 或 VCC2 两者中的较大者供电。当VCC2 大于 VCC10.2V 时,VCC2 给 DS1302 供电。当 VCC2 小于 VCC1 时,DS1302 由 VCC1 供电。X1 和 X2 是振荡源,外接 32.768kHz 晶振。RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。RST
22、输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。如果在传送过程中 RST 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在 Vcc2.5V 之前,RST 必须保持低电平。只有在 SCLK 为低电平时,才能将 RST 置为高电平。I/O 为串行数据输入输出端(双向)。SCLK 是串行时钟输入端。 DS1302 的内部结构如图 4 所示,主要组成部分为:移位寄存器、控制逻辑、振荡器、实时时钟以及 RAM。图 3 D
23、S1302 引脚图16*16 LED 点阵流水显示实时时钟第 9 页 共 30 页图 4 DS1302 内部结构图2.2.3 DS1302 的控制字节与读写时序图 5 DS1302 控制字节图DS1302 的控制字如图 5 所示。控制字节的最高有效位(位 7)必须是逻辑 1,如果它为0,则不能把数据写入 DS1302 中,位 6 如果为 0,则表示存取日历时钟数据,为 1 表示存取RAM 数据;位 5 至位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进行写操作,为1 表示进行读操作。 DS1302 是 SPI 总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数
24、据。如图 6 所示,读数据:读数据时在紧跟 8 位的控制字指令后的下一个 SCLK 脉冲的下降沿,读出 DS1302 的数据,读出的数据是从最低位到最高位。写数据:控制字总是从最低位开始输出。在控制字指令输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入也是从最低位(0 位)开始。图 6 DS1302 数据读写时序图2.2.4 DS1302 的寄存器地址与数据读写DS1302 的数据读写是通过 I/O 串行进行的。当进行一次读写操作时最少得读写两个字节,第一个字节是控制字节,就是一个命令,告诉 DS1302 是读还是写操作,是对 RAM 还是对寄存器操作,以及操作的地
25、址。第二个字节就是要读或写的数据了。单字节写:在进行操作之前先得将 RST 置高电平,然后单片机将控制字的位 0 放到 I/O上,当 I/O 的数据稳定后,将 SCLK 置高电平,DS1302 检测到 SCLK 的上升沿后就将 I/O 上的数据读取,然后单片机将 SCLK 置为低电平,再将控制字的位 1 放到 I/O 上,如此反复,将一个字节控制字的 8 个位传给 DS1302。接下来就是传一个字节的数据给 DS1302,当传完数据后,单片机将 RST 置为低电平,操作结束。单字节读操作的一开始写控制字的过程和上面的单字节写操作是一样,但是单字节读操作在写控制字的最后一个位,SCLK 还在高电
26、平时,DS1302 就将数据放到 I/O 上,单片机将16*16 LED 点阵流水显示实时时钟第 10 页 共 30 页SCLK 置为低电平后数据锁存,单片机就可以读取 I/O 上的数据。如此反复,将一个字节的数据读入单片机。读与写操作的不同就在于,写操作是在 SCLK 低电平时单片机将数据放到 IO 上,当SCLK 上升沿时,DS1302 读取。而读操作是在 SCLK 高电平时 DS1302 放数据到 IO 上,将SCLK 置为低电平后,单片机就可从 IO 上读取数据。图 7 所示是 DS1302 内部的 7 个与时间、日期有关的寄存器地址与写保护寄存器地址。这几个寄存器的说明如下:1、秒寄
27、存器(81h、80h)的位 7 定义为时钟暂停标志(CH) 。当初始上电时该位置为1,时钟振荡器停止,DS1302 处于低功耗状态;只有将秒寄存器的该位置改写为 0 时,时钟才能开始运行。2、小时寄存器(85h、84h)的位 7 用于定义 DS1302 是运行于 12 小时模式还是 24 小时模式。当为高时,选择 12 小时模式。在 12 小时模式时,位 5 是 ,当为 1 时,表示 PM。在24 小时模式时,位 5 是第二个 10 小时位3、控制寄存器(8Fh、8Eh)的位 7 是写保护位(WP) ,其它 7 位均置为 0。在对任何的时钟和 RAM 的写操作之前,WP 位必须为 0。当 WP
28、 位为 1 时,写保护位防止对任一寄存器的写操作。也就是说在电路上电的初始态 WP 是 1,这时是不能改写上面任何一个时间寄存器的,只有首先将 WP 改写为 0,才能进行其它寄存器的写操作。 图 7 DS1302 内部寄存器地址图2.3 74HC595 与 74HC138 数字芯片2.3.1 74HC595 概述及引脚功能74HC595 是一款漏极开路输出的 CMOS 移位寄存器,输出端口为可控的三态输出端,亦能串行输出控制下一级级联芯片。有高速移位时钟频率、标准串行接口、串行输出可用于多个设备的级联、功耗低等特点。如图 8 所示是 74HC595 的引脚图。QA 至 QH 是 8 个并行数据输出引脚,QA 为最低位,QH为最高位。SQH 引脚为串行数据输出引脚,用于级联下一级芯片。OE 使能端,低电平有效。SCK 引脚为数据输入时钟线。SI 引脚为串行数据输入端,当 SCK 为上升延时读取一位数据。RCK 引脚为输出寄存器锁存时钟线,当 RCK 为上升延时,数据锁存。SCLR 引脚为数据清零端,
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。