STC89C51单片机数字时钟的设计+程序(3)

ALE(地址锁存输出引脚)PROG(编程的脉冲引脚)。EA是内部存储引脚Vpp即片内EPROM编程电压输入引脚。PSEN是片外程序以及存储器读选通用的信号引脚。 2


ALE(地址锁存输出引脚)PROG(编程的脉冲引脚)。EA是内部存储引脚Vpp即片内EPROM编程电压输入引脚。PSEN是片外程序以及存储器读选通用的信号引脚。

2.1.2上拉电阻和下拉电阻

把一个电阻镶嵌在不能确定信号的高电平上,同时这个电阻又具有限流作用,即为上拉电阻。在低电平不能确定的信号上镶嵌一个电阻,并且可以与上拉电阻一起驱动关闭的线路并且给一个固定的电平即为下拉电阻。

上拉电阻主要作用于元器件的注入电流,下拉是主要作用于输出电流。

上拉电阻下拉电阻:

(1)用TTL作为COMS的驱动电路时,要使输出端的电平提高,可以在TTL的输出端口接一个上拉电阻,因为TTL的最低电平3.5V还要比COMS电路的输出的高电平还要高[3]。

图3上拉电阻

(2)管脚的悬空,会比较容易的受到外界的干扰,从而增加总线路电磁波干扰的能力。

(3)在单片机引脚上加上拉电阻,往往也可以使输出的驱动引脚增大。

(4)被提供的泄荷通路中,需要在不悬空的引脚上接一个上拉电阻来降低输出阻抗。

(5)为了增加抗干扰能力,提高噪声容限,可以增加加上拉电阻来提高输出端的电平。

(6)为了可以提高输出端阻值,可以在OC电路中增加上拉电阻。

(7)在电路中加上下拉电阻,可以使长线传输中带来的反射波得到有效的仰制。

上拉电阻:即在电源的高电平上接一个电阻。

(1)如果用电平OC或OD做为输出,那么这样是离不开上拉电阻的,即如果管子没有电源肯定就不可能输出高电平了。

(2)如果要输出大电流,随之输出端的电平就会降低,如果我们把IC内的上拉电阻上并联一个电阻,使上拉电阻提供电流分量,把电平的信号拉高,从而降低压降。管子也要在工作线性内的上拉阻值不要太小。当然也可以用样的方式来实现门电路的匹配。需要特别注意的问题是,如果上拉阻值太大就有可能引起输出端电平延迟。

下拉电阻:将一个电阻镶嵌到不确定的低电平信号上就可以拉低阻值。在低电平以及抗回波中,常常需要加一个下拉电阻。

上拉阻值选择主要有:

  (1)考虑到功耗以及灌电流要足够大,我们就需要大电阻,小电流。

  (2)从驱动电流来考虑就应该足够小;即小电阻,大电流。

  (3)为了防止在高速电路中上拉电阻过大可以使其边缘变得平缓一些。

  以上选择,主要是在1k到10k中间选取。对下拉电阻也应该考虑这些问题。

2.1.3LED数码管

在单片机设计的应用系统中,显示模块主要用LED数码管显示,在本数字时钟设计中采用共阴极数码管来实现时间的显示。将七个发光二极管组成8字形,并且将七个发光二极管的阴极相连组成共阴极数码管,把图4各段段码相结合显示就可以得到数字“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“0”,进而显示出时间[9]。

图4引脚定义

LED数码管通过内部不同的电路可以分为共阴极和共阳极,两者内部的二极管接法大不相同,最主要区分是看将阴极还是阳极共同连接,LED共阴极和共阳极在编写程序的时候代码是不同的,其共阴极共阳极代码分别如下表1:

表1共阴极共阳极代码

字符 共阴极 共阳极

0 C0H 3FH

1 F9H 06H

2 A4H 5BH

3 B0H 4FH

4 99H 66H

5 92H 6DH

6 82H 7DH

7 F8H 07H

8 80H 7FH

9 90H 6FH

要让LED显示屏显示出来数字,我们就要把每一个段码通过驱动来进行显示。因此可以根据LED数码管驱动的方式的不同,可分为静态驱动和动态驱动。

静态驱动:当显示屏显示数字时,只需要让相应的发光二极管导通即段码导通即可显示出相应的数字,通过单片机与相应的段码的输入和输出连接,然后通过软件编程对单片机内部的特定引脚的控制即可显示出相应的数字。静态驱动主要的优点是便于编程以及可以高亮度显示等,主要缺点就是需要占用多个I/O端口,如果需要显示多个数字时,就需要多个驱动端口,用静态驱动就比较麻烦,使硬件电路更加复杂。