APP下载

基于单片机的数字钟设计研究

2016-08-19刘宾赵艳东

大科技 2016年7期
关键词:上拉数码管高电平

刘宾 赵艳东

(青岛科技大学自动化与电子工程学院 266042)

基于单片机的数字钟设计研究

刘宾 赵艳东

(青岛科技大学自动化与电子工程学院 266042)

本文基于AT89C51单片机的最小系统,进行了数字钟的设计。通过多功能数字钟的设计思路,详细讲述了系统的具体实现过程。在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。

单片机;最小系统;数字钟

1 最小系统设计

1.1 电源引脚

工作电压为5V,另有AT89LV51工作电压则是2.7-6V,引脚功能一样。

1.2 外接晶体引脚

XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1~24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。

1.3 复位

在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。复位操作不会对内部RAM有所影响。

1.4 输入输出引脚

她大概不会成为科学家,我却决定继续给她或买或借“科学小实验”“趣味数学”——一切都是本性,父母想力挽狂澜,恐怕不现实。但推波助澜,总归是可以的。她尽情发挥自我,而我负责小小修正。

(1)P0端口[P0.0-P0.7]P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL。

对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。

在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。

(2)P1端口[P1.0-P1.7]P1是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

对内部Flash程序存储器编程时,接收低8位地址信息。

(3)P2端口[P2.0-P2.7]P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收高8位地址和控制信息。

在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。

(4)P3端口[P3.0-P3.7]P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

对内部Flash程序存储器编程时,接控制信息。除此之外P3端口还用于一些专门功能。

2 LED显示电路

显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有:发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED显示器是现在最常用的显示器之一。

发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED数码管有共阳、共阴之分。

显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。

数码管使用条件:

(1)段及小数点上加限流电阻;

(2)使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定;

(3)使用电流:静态:总电流80mA(每段10mA);动态:平均电流4~5mA峰值电流100mA。

数码管使用注意事项说明:

(1)数码管表面不要用手触摸,不要用手去弄引角;

(2)焊接温度:260℃;焊接时间:5s;

(3)表面有保护膜的产品,可以在使用前撕下来。

3 键盘控制电路

该设计需要校对时间,所以用三个按键来实现。按khour来调节小时的时间,按kmin来调节分针的时间,按ksec来调节秒的时间。

当用手按下一个键时,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,在读入键盘码。

TP368.1

A

1004-7344(2016)07-0280-01

2016-2-25

猜你喜欢

上拉数码管高电平
一种基于FPGA的PWM防错输出控制电路
高效PDT 终端定位数据上报方法
微课教学设计之“数码管动态显示”
某车型雾灯偶发点亮故障分析与设计优化
Arduino编程
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
在老师的葬礼上拉小提琴的男孩
基于Xilinx芯片的FPGA的DONE信号上拉电阻阻值分析