当前位置:文档之家› 基于51单片机数字时钟设计

基于51单片机数字时钟设计

单片机系统设计与制作论文2020年6月21日单片机数字时钟【摘要】数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。

数字钟的精度、稳定度远远超过老式机械钟。

在这次设计中,我们采用LED数码管显示时、分、秒,根据数码管动态显示原理来进行显示,用晶振产生振荡脉冲,定时器计数。

在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。

数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。

关键词:单片机数字时钟仿真模块引言目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

下面是单片机的主要发展趋势。

单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。

从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。

这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。

1.1数字时钟的核心数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人家庭、车站、码头、办公室等公共场所,已成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体与振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。

而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、通断动力设备以及各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

因此,研究数字钟 及扩大其应用,有若非常现实的意义。

本次做的数字钟是以单片机(STC12C2052AD )为核心,结合相关的元器件 (LED 数码显示器、驱动器 DS1302、74HC595集成电路等)1.1.1 单片机(STC12C2052AD )简介STC12C2052AD 单片机(图1)是单时钟/机器周期(1T)的单片机,是高速/低功耗、抗干扰的新时代8051单片机。

单片机中包含中央处理器(CPU)、程序存 储器(Flash)数据存储器(SRAM)定时/计数器、UART 串口、I/O 接口、高速A/D 转换、SPI 接口、PCA 、看门狗及片内 具体管脚分布图(见图2)。

1.1.2 DS1302芯片简介采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了 对后背电源进行涓细电流充电的能力。

DS1302的外部引脚分配如图1所示及内部结构如图2所示。

DS1302可以用于数据记录,特别是对某些具有特殊意义的 数据点的记录,能实现数据与出现该数据的时间同时记录。

这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。

传统的数据记录方式是隔时采样或定时采样, 没有具体的时间记录,因此,只能记录数 据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器, 占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且, 某些测控系统可能不允许。

但是,如果在系统中采用时钟芯片 DS1302,贝唯很好地解决这个问题。

R/C 振荡器和外部晶体振荡电路等模块。

U7 RSTvccADC7/SCL1GT17 mo ADC6AnSQPIl5 XTAL2 ADC5T4OSLP15XTAL1XDC1SS.PIIADC3P11 P33INTI ADC2P12PS4/TaECl CKOLTTLLWCLPl)P^5/Tl.KAlGNDPWMOPCAO.P ;?20 7977 77花TT 13图1 单片机(STC12C2052AD )外部图一102 单片机(STC12C2052AD )管脚分配5 61.1.3 74HC595芯片简介74HC595芯片(图3所示)是硅结构的CMOS 器件,兼容低电压TTL 电路 74HC595芯片的特点是:8位串行输入、8为串行并行输出、存储状态寄存器。

具体各管脚作用见(图4)。

输出能力有:并行输出总线驱动、串行输出、标准 中等规模集成电路。

1.1.4数码管简介LED 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显 示出我们要的数字,因此根据 LED 数码管的驱动方式的不同,可以分为静态式 和动态式两类。

led 数码管(LED Segment Displays )由多个发光二极管圭寸装在一 起组成8”字型的器件,弓I 线已在内部连接完成,只需引出它们的各个笔划,公 共电极。

数码管实际上是由七个发光管组成8字形构成的,加上小数点就是 8个。

这些段分别由字母a,b,c,d,e,f,g,dp 来表示。

(见图5)VCC2 匚 X1匚 X2 — GND — 1 P18 2 7 36 45.1 V CC1 J SCLK 1 I/O □ RST#—i*图3DS1302芯片的外部分配图 5O□□叵叵叵叵工叵凶工弟04050&07时ng FI B EIIEl Eil a可Q0 DS诵aIla1、了、4* 5*.6-齐15 QA-QH三态輪出紳8GNDSQh百行葩1甌出營押 10 SCLR誓栓寿存赛佶馬端11SCK 12 RCK13 OF丄49115vcc'电匪端图5 74HC595芯片的外部分配图 DS1302图4 DS1302芯片功能结构早』夕=眸a. 5 = W图674HC595管脚功能表1.2数字时钟的基本组成1.2.1电路构成该电路由于使用单片机内部具有定时/计数功能,STC12C2052AD 单片机有 已下特点:①性价比高②集成度高,体积小、可靠性高③控制能强④低电压低功 耗。

因此采用STC12C2052AD 单片机和LED 数码管为核心,加以必要的电路和 驱动部分,来构成了一个单片机时钟。

单片机控制时钟基本电路要实现一定功能必须又已下几个模块组成: 1、电源模块2、显示模块3、驱动模块4、单片机模块5、晶振模块。

电源模块 为主要芯片以及辅助电路提供 5V/12V 不等的直流电压。

(图8)U22图9 电源模块2、单片机模块 主要利用变成软件进行程序编写,来驱动电路实现一定的功能。

(图9)76 4 3 9 10VCC12V1FEEDBACVINF O + C11 N严卜470UF%5VD OUTGL133UHL2___ r vws10UH+ C12 VCC5VTLM2596D6SS34f 220UF/35VSEG7_L8图7数码管外部分配图ABCDEFGD图8数码管内部结构图图10单片机模块3、驱动模块和显示模块 利用晶振电路和单片机的时序信号输出显示的信号。

我们米用六路独立的电路来完成时分秒的显示(图 9)U LN 280 3图11 驱动模块和显示模块局部图1.2.2程序构成我们利用keil 软件进行编写程序,是51系列兼容单片机C 语言软件开发系 统。

C 语言在功能上、结构性、可读性、可维护性上有明显的优势。

一下是数字 un sig ned char const table[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe 0,0xff,0xf6}; /* 定义数组 */un sig ned char sec, min, hour; void Letlatch(void)TXD 3 XTA L2 4 XTAL15 6P33 7 P34 8 P35 910丄RST VCC P30/RX D ADC7/SC LK/P17 P31/TX D A DC6/MISO /P16 XTA L2 A DC5/MO SI/P15 XTAL1 ADC4/SS/P14 P32/INT0 ADC3/P1 3 P33/INT1 ADC 2/P1 2 P34/T0/EC 1 CKOUT1/ADC1/P1 1P35/T1/PC A1/PWMKOUT0/A DC0/P1 0GND PWM0/PC A0 /P3718 C L KSTR 花KEY115 KEY2 14 13 12 A1R 1 R2 7R3「:R 5El R 6 2F1 R 7G1 DP1—R813Q 35Q 31IN2 IN3 IN4 IN5IN6 IN7 IN8 GND时钟程序介绍。

#i nclude "reg52.h" #in clude<ds1302.h> sbit clk=P2A0; sbit dat=P2A1;sbit latch=P2A2; /* 定义变量 */12 R1610K 'RXD' U7STC1 2C205 2AD11U 2VCC 12 VU 9Q 37 1IN1 OUT 1 OUT 8 C OMV CC12 VOUT 2 OUT 3 OUT 4 OUT 5 OUT 6 OUT 7{ latch=1; }latch=O;void send(un sig ned char k){un sig ned char i;for(i=0;i<8;i++){dat=k&0 x01;clk=0;clk=1;k>>=1;}}void delay(void){un sig ned char i,j,k;for(i=0;i<10;i++)for(j=0;j<100;j++)for(k=0;k<100;k++); }void mai n(){un sig ned char i;2.1数字时钟的仿真ds1302_i nit(); ds1302_write_time();while(1){ds1302_read_time();hour=time_buf1[4];min=time_buf1[5];sec=time_buf1 [6];for(i=0;i<10;i++){se nd(table[sec%10]);se nd(table[sec/10]);se nd(table[mi n%10]);sen d(table[mi n/10]);se nd(table[hour%10]);se nd(table[hour/10]);/*输出时分秒的逻辑*/Letlatch();}}}利用仿真功能强大、仿真元件模型丰富的Proteus软件对数字钟各个单元电路和整体电路进行了设计和详尽的仿真分析,缩短了设计周期,提高了设计效率降低了设计成本同时,Proteus软件对于电子技术的教学演示和实际设计都具有很大的辅助作用。

图12数字时钟仿真3总结我在这一次数字电子钟的设计过程中,很是受益匪浅。

相关主题