单片机数字时钟设计_时分
一般电子钟是一个将 “ 时”,“分”,“秒”显示于人的视觉器官的计时装置。 它的计时周期为 24 小时,显示满刻度为 23 时 59 分 59 秒,另外应有校时 功能和报时功能。因此,一个基本的数字钟电路主要由译码显示器、 “时”, “分”,“秒”计数器、校时电路、报时电路和振荡器组成。主电路系统由秒信 号发生器、 “时、分、秒 ”计数器、译码器及显示器、校时电路、整点报时电 路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度, 一般用石英晶体振荡器加分频器来实现。将标准秒信号送入 “秒计数器 ”, “秒计数器 ”采用 60 进制计数器,每累计 60 秒发出一个 “分脉冲 ”信号,该
本设计主要设计了一个基于 AT89C51 单片机的电子时钟。并在数码管上 显示相应的时间。并通过一个控制键用来实现时间的调节和是否进入省电模式 的转换。该方法仿真效果真实、准确,节省了硬件资源。
关键字:单片机、电子时钟、程序
第2页
单片机电子时钟设计
第一章 电子时钟的设计
1.1 电子时钟简介
电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具 有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境 的不断改善和美化,在许多场合都用到电子时钟。
第4页
单片机电子时钟设计
设计原理图
本设计电路,硬件部分共由五个模块组成:按键模块、复位电路模块、晶 振电路模块、发声指示模块、时间显示模块。晶振电路模块负责给单片机提供 时钟周期。复位单路模块负责上电后自动复位,或按键后强制复位。上电后, 由单片机内部定时器计时,同时通过动态显示函数自动将时分秒显示到数码管 上。与此同时,按键扫描函数,一直扫描按键引脚状态,一旦扫描到按键被按 下,即进入相应的功能函数。如果检测到定时时间到,则驱动蜂鸣器发声提示。
LCD 数字电子钟除了在城市的主要营业场所、车站、码头等公共场所使 用,还可以改装在摩托车和汽车上, LCD 显示,带蓝色背光,白天在太阳 光下也能非常清楚的看到显示时间,关钥匙可以关闭蓝色背光,时间还能显 示也不会清零,因 LCD 的显示耗电量很省的,所以一直工作也不必担心耗 电问题。在骑摩托车时,为了看时间,先要停下车子,取出手机,才能看时 间,是否有点麻烦,现在车上改装了一个蓝色背光的液晶电子钟后,不管白 天黑夜色,随时可以看时间,非常方便。
而该电子时钟由 89C51,六段数码管等构成,采用晶振电路作为驱动电路, 由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟, 六十分钟为一小时,满二十四小时为一天。而电路中个控制键可以实现多种不 同的功能;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟 加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时 加一。
第3页
单片机电子时钟设计
信号将作为 “分计数器 ”的时钟脉冲。 “分计数器 ”也采用 60 进制计数器,每 累计 60 分钟,发出一个 “时脉冲 ”信号,该信号将被送到 “时计数器 ”。“时 计数器 ”采用 24 进制计时器,可实现对一天 24 小时的累计。译码显示电路 将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显 示器显示出来。整点报时电路时根据计时系统的输出状态产生一脉冲信号, 然后去触发一音频发生器实现报时。校时电路时用来对 “时”、“分”、“秒” 显示数字进行校对调整。
单片机电子时钟设计
河南交通职业技术学院
交通信息工程系
单片机数字时钟设计
专业 电子 11301 姓名 单德过 学号
1104060115
专业 电子 11301 姓名 楚洋坪 学号
1104060121
第0页
单片机电子时钟设计
目录 摘要…………………………………………………………2 第一章 电子时钟的设计…………………………………3
第二章 设计方案
2.1 硬件电路的设计方案
根据设计要求和设计思路,硬件电路有两部分组成,即单片机按键电路, LED 显示器电路。图 1 为硬件电路设计框图。
复位,电 路晶振, 电路
按键 控制 喇叭
A T89S5 1
74LS2 45
硬件电路设计框图
2.2 硬件电路的原理图
设计原理图,如图所示。
数码管 驱动电路
第1页
单片机电子时钟设计
摘要
随着现代生活的推进,电子时钟在人们的生活中已经普及,本课题的主要 内容就是结合单片机的强大功能,在一块普通的电子时钟集成多种功能,方便 人们的日常生活,该功能是通过单片机、8 段数码管以及一些简单辅助电路实 现的。由于之前没有独立做过单片机实现多功能电子时钟方面的内容,所以在 做设计时总会遇见很多问题,本次设计是在结合老师的指导及同学的帮助下完 成的,并通过本人在网上所查的大量资料及单片机设计中常见的电路而构思出 来的。 单片计算机即单片微型计算机。由 RAM ,ROM,CPU 构成,定时,计 数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智 能产业和工业自动化上。而 51 系列单片机是各单片机中最为典型和最有代表 性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发 软、硬的能力。
1.1 电子时钟简介…………………………………………3 1.2 电子时钟的工作原理……………………………………3 第二章 硬件设计方案…………………………………………4 2.1 硬件电路的设计方案……………………………………4 2.2 硬件电路的原理图………………………………………4 2.3 硬件电路说明…………………………………………5 第三章 电子时钟的程序设计…………………………………… 8 3.1 程序流程图……………………………………………8 3.2 程序设计………………………………………………………11 总结…………………………………………………………………15
现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、 石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经 常调试,数字式电子钟用集成电ቤተ መጻሕፍቲ ባይዱ计时时,译码代替机械式传动,用 LED 显示 器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示 时间的功能,还可以进行时和分的校对,片选的灵活性好。
单片机课程设计数字钟实验报告
单片机课程设计:电子钟一、实现功能1、能够实现准确计时,以数字形式显示时、分、秒的时间。
2、小时以24小时计时形式,分秒计时为60进位,能够调节时钟时间。
3、闹钟功能,一旦走时到该时间,能以声或光的形式告警提示。
4、能够实现按键启动与停止功能。
5、能够实现整点报时功能。
6、能够实现秒表功能。
二、设计思路1、芯片介绍VCC:电源。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能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口同时为闪烁编程和编程校验接收一些控制信号。
基于C51单片机的数字时钟课程设计(C语言,带闹钟).
单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词:电子钟 AT89C52 硬件设计软件设计目录一、数字电子钟设计任务、功能要求说明及方案介绍 (4)1.1 设计课题设计任务 (4)1.2 设计课题的功能要求说明 (4)1.3 设计课的设计总体方案介绍及工作原理说明 (4)二、设计课题的硬件系统的设计 (5)2.1硬件系统各模块功能简要介绍 (5)2.1.1 AT89C52简介 (5)2.1.2 按键电路 (6)三、设计课题的软件系统的设计 (6)3.1 使用单片机资源的情况 (6)3.2 软件系统个模块功能简要介绍 (7)3.3 软件系统程序流程框图 (7)3.4 软件系统程序清单 (7)四、设计课题的设计结论、仿真结果、误差分析 (9)4.1 设计结论及使用说明 (9)4.2 仿真结果 (10)结束语 (12)参考文献 (12)附录 (13)附录A:程序清单 (13)一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。
具有时间显示,并有时间设定,时间调整功能。
1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。
基于51单片机的简易数字钟系统设计
简易数字钟系统设计完成一个简易数字时钟系统设计。
要求:用3个独立按键调整时间。
一个按键控制启动运行。
在调整结束后按运行键后开始运行。
1,开机时,显示00:00:00时间从零开始调整。
2,P10控制秒的调整,每按一次加1s。
3,p11控制分的调整,每按一次加1min。
4,p12控制时的调整,每按一次加1h。
5,p13控制运行和停止。
程序:#include<reg52.h>sbit key1=P3^4;sbit key2=P3^5;sbit key3=P3^6;sbit key4=P3^7;#define uchar unsigned char#define uint unsigned intuchar shi,ge,aa,num,num1,num2,tt;uint n;uchar q1,q2,b1,b2;sbit dula=P2^6;sbit wela=P2^7;void keyscan();void delay(uint);void display();uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void keyscan(){if(key1==0){ num2++;if(num2==24)num2=0;while(!key1);if(key2==0){num1++;if(num1==60)num1=0;while(!key2);}if(key3==0){num++;if(num==60)num=0;while(!key3);}if(key4==0){ TR0=~TR0;while(!key4);}}void main(){TMOD=0x00;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;while(1){ k eyscan();display();}}void time0()interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt++;if(tt==100){ tt=0;num++;if(num==60){ num=0;num1++;if(num1==60){ num1=0;num2++;if(num2==24)num2=0;}}}}void display(){q1=num2/10;q2=num2%10;b1=num1/10;b2=num1%10;shi=num/10;ge=num%10;wela=1;P0=0xfe;wela=0;P0=0xff;P0=table[q1]; dula=0; delay(1);wela=1;P0=0xfd; wela=0;P0=0xff; dula=1;P0=table[q2]; dula=0; delay(1);wela=1;P0=0xfb; wela=0;P0=0xff; dula=1;P0=table[b1]; dula=0; delay(1);wela=1;P0=0xf7; wela=0;P0=0xff; dula=1;P0=table[b2]; dula=0; delay(1);wela=1;P0=0xef; wela=0;P0=0xff; dula=1;P0=table[shi]; dula=0; delay(1);wela=1;P0=0xdf;P0=0xff;dula=1;P0=table[ge];dula=0;delay(1);}void delay(uint x){uint i,j;for(i=x;i>0;i--)for(j=110;j>0;j--); }。
单片机实验报告数字时钟设计报告
单片机实验报告数字时钟设计报告一、实验目的本次单片机实验的目的是设计并实现一个基于单片机的数字时钟。
通过该实验,深入了解单片机的工作原理和编程方法,掌握定时器、中断、数码管显示等功能的应用,提高综合运用知识解决实际问题的能力。
二、实验原理1、单片机选择本次实验选用了常见的 51 系列单片机,如 STC89C52。
它具有丰富的资源和易于编程的特点,能够满足数字时钟的设计需求。
2、时钟计时原理数字时钟的核心是准确的计时功能。
通过单片机内部的定时器,设定合适的定时时间间隔,不断累加计时变量,实现秒、分、时的计时。
3、数码管显示原理采用共阳或共阴数码管来显示时间数字。
通过单片机的 I/O 口控制数码管的段选和位选信号,使数码管显示相应的数字。
4、按键控制原理设置按键用于调整时间。
通过检测按键的按下状态,进入相应的时间调整模式。
三、实验设备与材料1、单片机开发板2、数码管3、按键4、杜邦线若干5、电脑及编程软件(如 Keil)四、实验步骤1、硬件连接将数码管、按键与单片机开发板的相应引脚通过杜邦线连接起来。
确保连接正确可靠,避免短路或断路。
2、软件编程(1)初始化单片机的定时器、中断、I/O 口等。
(2)编写定时器中断服务程序,实现秒的计时。
(3)设计计时算法,将秒转换为分、时,并进行进位处理。
(4)编写数码管显示程序,将时间数据转换为数码管的段选和位选信号进行显示。
(5)添加按键检测程序,实现时间的调整功能。
3、编译与下载使用编程软件将编写好的程序编译生成可执行文件,并下载到单片机中进行运行测试。
五、程序设计以下是本次数字时钟设计的主要程序代码片段:```cinclude <reg52h>//定义数码管段选码unsigned char code SEG_CODE ={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};//定义数码管位选码unsigned char code BIT_CODE ={0x01, 0x02, 0x04, 0x08, 0x10,0x20, 0x40, 0x80};//定义时间变量unsigned int second = 0, minute = 0, hour = 0;//定时器初始化函数void Timer_Init(){TMOD = 0x01; //定时器 0 工作在方式 1 TH0 =(65536 50000) / 256; //定时 50ms TL0 =(65536 50000) % 256;EA = 1; //开总中断ET0 = 1; //开定时器 0 中断TR0 = 1; //启动定时器 0}//定时器 0 中断服务函数void Timer0_ISR() interrupt 1{TH0 =(65536 50000) / 256;TL0 =(65536 50000) % 256;second++;if (second == 60){second = 0;minute++;if (minute == 60){minute = 0;hour++;if (hour == 24){hour = 0;}}}}//数码管显示函数void Display(){unsigned char i;for (i = 0; i < 8; i++)P2 = BIT_CODEi;if (i == 0){P0 = SEG_CODEhour / 10;}else if (i == 1){P0 = SEG_CODEhour % 10;}else if (i == 2){P0 = 0xBF; //显示“”}else if (i == 3){P0 = SEG_CODEminute / 10;else if (i == 4){P0 = SEG_CODEminute % 10;}else if (i == 5){P0 = 0xBF; //显示“”}else if (i == 6){P0 = SEG_CODEsecond / 10;}else if (i == 7){P0 = SEG_CODEsecond % 10;}delay_ms(1);//适当延时,防止闪烁}}//主函数void main(){Timer_Init();while (1){Display();}}```六、实验结果与分析1、实验结果将程序下载到单片机后,数字时钟能够正常运行,准确显示时、分、秒,并且通过按键可以进行时间的调整。
单片机课程设计实验报告 基于单片机的数字时钟 含完整实验代码..
单片机课程设计报告基于单片机的数字时钟姓名:班级:学号:一、前言利用实验板上的4个LED数码管,设计带有闹铃、秒表功能的数字时钟。
功能要求:a)计时并显示(LED)。
由于实验板上只有4位数码管,可设计成显示“时分”和显示“分秒”并可切换。
b)时间调整功能。
利用4个独立按钮,实现时钟调整功能。
这4个按钮的功能为工作模式切换按钮(MODE),数字加(INC),数字减(DEC)和数字移位(SHITF)。
c)定闹功能。
利用4个独立按钮设定闹钟时间,时间到以蜂鸣器响、继电器动作作为闹铃。
d)秒表功能。
最小时间单位0.01秒。
二、硬件原理分析1.电源部分电源部份采用两种输入接口(如上图)。
a)外电源供电,采用2.1电源座,可接入电源DC5V,经单向保护D1接入开关S1。
b)USB供电,USB供电口输入电源也经D1单向保护,送到开关S1。
注:两路电源输入是并连的,因此只选择一路就可以了,以免出问题。
S1为板子工作电源开关,按下后接通电源,提供VCC给板子各功能电路。
电路采用两个滤波电容,给板子一个更加稳定的工作电源。
LED为电源的指示灯,通电后LED灯亮。
2.蜂鸣器蜂鸣器分为有源和无源两种,有源即两引脚有一个直流电源就可以长鸣,无源则需要一个1K左右的脉冲才可以蜂鸣,因此对于按键的提示音及报警蜂鸣使用有源来得方便。
有源也可以当无源使用,而无源则不能当有源使用,当然用有源蜂鸣器作音乐发声会失真厉害。
如上图:单片机P15输出高低电平经R21连接三极管B极,控制三极管的导通与截止,从而控制蜂鸣器的工作。
低电平时三极管导通,蜂鸣器得电蜂鸣,高电平时三极管截止,蜂鸣器失电关闭蜂鸣。
电路使用一个四位共阳型数码管,四个公共阳级由三极管放大电流来驱动,三极管由P10-P13控制开与关。
数码管的阴级由P0口经过电阻限流连接。
例如,要十位的数码管工作,P12输出0,使三极管Q12导通,8脚得电,当P0口相应位有输出0时,点亮相应的LED灯组合各种字符数字。
单片机数字时钟课程设计报告
第1章绪论1. 设计要求(1)系统可以按“秒”进行计时.(2)数字时钟可以显示小时(00-23)、分钟(00-59)和秒(00-59).(3)可通过按键K1来选择设置“小时”、“分钟”和“秒”.设置时可通过“加”和“减”按键(K2、K3)来调整时间;设置过程中时钟停止计时.(4)无键按下三秒后,自动进入时钟的计时程序.2. 设计方案采用AT89C51芯片作为硬件核心,其内部采用Flash ROM,具有4KB ROM 存储空间,能于3V的超低压工作,本系统的计时方案是利用单片机内部的定时/计数器进行中断定时,配合软件延时实现对时、分、秒的计时.整个系统的控制方案是:上电后系统自动进入时间显示,从00:00:00 开始计时.按下P1.0键,进入调秒状态,时钟停止计时;按P1.1或P1.2键可进行加1或减1操作;继续按P1.0键可分别进行分位、时调整;无键按下3秒钟后退出调整状态,自动进入时钟的计时和显示.整个系统的硬件原理框图如图1.1,它采用的是AT89C51单片机,只用了P1口.为了简化硬件电路,LED显示采用了动态扫描的方式实现,LED采用共阳极数码管,驱动电流由三极管9012提供.为了提高计数精度,所采用的晶振频率为12MHz.第2章硬件设计1单片机的选择本课程选用AT89C51型号的单片机. AT89C51 是美国ATMEL 公司生产的低电压,高性能CMOS8 位单片机,片内含4k bytes 的可反复擦写的只读程序存储器(PEROM)和128 bytes 的随机存取数据存储器(RAM ),器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准MCS-51 指令系统,片内置通用8 位央处理器(CPU)和Flash 存储单元,功能强大AT89C51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域.主要性能参数:·与MCS-51 产指令系统完全兼容·4k 字节可重擦写Flash 闪速存储器·1000 次擦写周期·全静态操作:0Hz-24MHz·三级加密程序存储器·128×8 字节内部RAM·32 个可编程I /O 口线·2 个16 位定时/计数器2. 显示方案由于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济.LED有共阴极和共阳极两种.如图2.2所示.二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压.一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管.当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗.为了保护各段LED不被损坏,需外加限流电阻.图2.2 LED数码管结构原理图众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动.本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性.所谓软件译码,即由单片机软件完成从数字到显示码的转换.从LED数码管结构原理可知,为了显示字符,要为LED显示数码管提供显示段码,组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显示段码为1个字节.各段码位与显示段的对应关系如表2.2.表2.2 各段码位的对应关系需说明的是当用数据口连接LED数码管a~dp引脚时,不同的连接方法,各段码位与显示段有不同的对应关系.通常数据口的D0位与a段连接,D1位与b段连接, (7)与dp段连接,如表1所示,表2.3为用于LED数码管显示的十六进制数和空白字符与P的显示段码.根据AT89C2051单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码管.将AT89C2051的P1.0~P1.7分别与共阳数码管的a~g及dp相连,高电平的位对应的LED 数码管的段暗,低电平的位对应的LED数码管的段亮,这样,当P0口输出不同的段码,就可以控制数码管显示不同的字符.例如:当P0口输出的段码为1100 0000,数码管显示的字符为0.表2.3 LED显示段码注:(1)本表所列各字符的显示段码均为小数点不亮的情况.(2)“空白”字符即没有任何显示.数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式.为节省端口及降低功耗,本系统采用动态扫描显示方式.动态扫描显示方式需解决多位LED数码管的“段控”和“位控”问题,本电路的“段控”(即要显示的段码的控制)通过P0口实现;而每一位的公共端,即LED数码管的“位控”,则由P3口控制.这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码.在这一瞬时,只有这一位在显示,其他几位则暗.在本系统中,字位线的选通与否是通过PNP三极管的导通与截止来控制,即三极管处于“开关”状态.第3章软件设计1. 主程序主程序功能主要是初始化、正常现实时间和判断功能转换键.流程图如图3.1所示.图3.1 主程序流程图2. 定时器T0中断服务程序定时器T0用于时间计时.定时溢出中断周期可设为50ms,中断进入后,时钟计时累计20次(即1s)时,对秒计数单元进行加1操作.时钟计数单元在定义的6个单元70H~75H 中,70H~71H 存放秒数据,72H~73H存放分数据,74H~75H存放时数据.最大计时值为23小时59分59秒.在计数单元中采用十进制BCD码计数,秒、分、时之间满60进位.3.显示子程序数码管显示的数据放在内存单元70H~75H中,其中70H~71H存放秒数据,72H~73H]存放分数据,74H~75H存放时数据,每一单元内均为十进制BCD码.由于采用软件动态扫描实现数据显示功能,显示用的十进制BCD码数据的对应段码存放在ROM表中,显示时,先取出70H~75H中的某一地址中的数据,然后查表得对应的显示段码从P0口输出,P2口将对应的数码管位选中供电,就能显示该地址单元的数据值.4.定时器T1中断服务程序进行时间调整是,正在被调整的时间以闪烁的形式表现,定时器T1用于产生闪烁的时间间隔,每隔0.3s闪烁一次.5.调时功能程序通过按键K1来选择设置“小时”、“分钟”和“秒”.通过“加”和“减”按键(K2、K3)来调整时间图3.5时间设置流程图6.延时程序因为系统是动态显示,为了确保系统在有效显示时间范围内必须执行显示程序,所以使用延时程序.7. 结论这次课程设计项目虽然是最简单的数字时钟设计,但用的技术和知识是源于课本又远远高于课本的,比如说AT89C51基本操作知识,汇编语言方面的知识等.我负责的是软件设计的时间设置以及T1中断部分,运用到了按键部分以及定时器/计数器部分的知识.通过这次自己编写程序,使我摆脱了以往单纯的理论知识学习状态,并且在和实际设计的结合锻炼了我的综合运用所学的专业基础知识.不过在这次课设中我也遇到了不少问题,实际操作时才发现课堂知识和实际运用还是有差距的,不过最终还是在老师或同学的帮助下一个一个解决了.通过这次对课程设计,我也认识到自己对单片机应用方面的知识的贫乏,对于书本上的很多理论知识还不能灵活运用,有很多我们掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识.同时还从中学到了一件很重要的东西,那就是如何从理论到实践的转化.此次的课程设计给我奠定了一个实践基础,我会在以后的学习,生活中磨练自己,使自己掌握更多的技术能力.8.参考文献[1]杨忠义.单片机课程设计指导.北京:清华大学出版社,2009.201~217[2]靳达.单片机应用系统开发实例导航.北京:人民邮电出版社,2004.1~37[3]南建辉.MCS-51单片机原理及应用实例.北京:清华大学出版社,2004.92~117[4]刘海成.单片机及应用系统设计原理与实践.北京:北京航天航空大学出版社,2009.129~180附录ORG 0000HAJMP MAINT ;转主程序NOPORG 000BHAJMP INT01 ;转定时器T0中断程序NOPORG 001BHAJMP INT11 ;转定时器T1中断程序NOPMAINT:MOV R0,#7FH ;00H~7FH单元清零CLR AWZ1:MOV @R0,ADJNZ R0,WZ1MOV SP,#30H ;置堆栈指针MOV 5AH,#0AH ;放入“熄灭符”数据MOV TMOD,#11H ;设T0,T1为16位定时器MOV TL0,#0B0H ;置50 ms定时初值MOV TH0,#3CHMOV TL1,#0B0HMOV TH1,#3CHSETB EA ;开中断SETB ET0 ;允许T0中断SETB TR0 ;启动T0MOV R4,#14H ;用于产生1 s定时MAINT1: LCALL XSZCX ;调用显示子程序JNB P1.0,SJTZ0 ;功能键按下,进入调时程序SJMP MAINT******T0中断服务程序******INT01:PUSH ACC ;保护现场PUSH PSWCLR ET0 ;关T0中断CLR TR0 ;关定时器T0MOV A,#0B7H ;修正中断响应时间ADD A,TL0MOV TL0,AMOV A,#3CHADDC A,TH0SETB TR0 ;启动定时器T0DJNZ R4,INT0U ;20次中断未到退出中断AD1:MOV R4,#14H ;R4重新赋值MOV R0,#51H ;指向秒计时单元(50H,51H)LCALL ADD1 ;调用加1 s程序MOV A,R3 ;秒数据放入ACLR C ;清进位标志CJNE A,#60H,AD2 ;小于60 s吗AD2:JC INT0U ;小于60 s退出中断CLR A ;大于或等于60 s,清秒计数单元MOV @R0,ADEC R0MOV @R0,AMOV R0,#57H ;指向分计时单元(56H,57H)ACALL ADD1 ;调用加1 min程序MOV A,R3 ;分数据放入ACLR CCJNE A,#60H,AD3 ;小于60 min吗AD3:JC INT0U ;小于60 min退出中断CLR A ;大于或等于60 min,清分计数单元MOV @R0,ADEC R0MOV @R0,AMOV R0,#59H ;指向小时计时单元(58H,59H)ACALL ADD1 ;调用加1 h程序MOV A,R3 ;小时数据放入ACLR CCJNE A,#24H,AD4 ;小于24 h吗AD4:JC INT0U ;小于24 h退出中断CLR A ;大于或等于24 h清小时计数单元MOV @R0,ADEC R0MOV @R0,AINT0U: MOV 52H,56H ;中断退出时将分、时计时单元数MOV 53H,57H ;据移入对应显示单元MOV 54H,58HMOV 55H,59HPOP PSW ;恢复现场POP ACCSETB ET0 ;开放T0中断RETI ;中断返回******显示子程序******XSZCX:MOV R1,#50H ;显示数据首址MOV R5,#0FEH ;扫描控制字初值MAXY:MOV A,R5 ;扫描控制字送AMOV P2,A ;输出扫描控制字MOV A,@R1 ;取显示数据MOV DPTR,#ABC ;取段码表首地址MOVC A,@A+DPTR ;取对应段码MOV P1,A ;P1口输出段码LCALL YS1MS ;延时1 msINC R1 ;显示地址增1MOV A,R5 ;扫描控制字送AJNB ACC.5,ENDOUT ;ACC.5为0时一次显示结束RL A ;控制字左移MOV R5,A ;制字送回R5中AJMP MAXY ;循环显示下一个数据ENDOUT: MOV P2,#0FFH ;一次显示结束,P2口复位MOV P1,#0FFH ;P1口复位RET ;子程序返回****** T1中断服务程序******INT11:PUSH ACC ;中断保护现场PUSH PSWMOV TL1,#0B0H ;装定时器T1初值MOV TH1,#3CHDJNZ R2,INT1U ;0.3 s未到退出中断MOV R2,#06H ;重装0.3 s定时用初值CPL 02H ;0.3 s定时到,对闪烁标志取反JB 02H,CCC1 ;02H位为1时显示单元“熄灭”MOV 52H,56H ;02H位为0时显示正常MOV 53H,57HMOV 54H,58HMOV 55H,59HINT1U:POP PSW ;恢复现场POP ACCRETI ;退出中断INT0U:POP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器RETI ;中断返回******时钟时间调整程序******SET0:LCALL XSZCX ;通过调用显示时间程序延时消抖动JNB P1.0,SJTZ1SJMP MAINT1 ;功能键没有按下,显示时间SET1: CLR ET0 ;关闭定时器T0中断CLR TR0 ;关闭定时器T0MOV R2,#06H ;进入调时状态,置闪烁定时初值SETB ET1 ;允许T1中断SETB TR1 ;启动T1SET2:JNB P1.0,SET1 ;P1.0端为0(键未释放),等待CLR 01H ;置调分标志位为1SET4:JB P1.0,SET3 ;等待键按下JNB P1.0,HOUR ;有键按下,进入调小时状态JB P1.0,SET10 ;等待键按下JNB P1.0,MINUTE ;有键按下,进入调分状态JB P1.0,SET12 ;等待键按下JNB P1.0,SECOND ;有键按下,进入调秒状态MOV A,R3 ;取要调整的单元数据CLR CKMTES: SETB ET0 ;省电状态,开T0中断SETB TR0 ;启动T0(开时钟)KMA: JB P1.0,$ ;无按键按下,等待LCALL XSZCX ;通过调用显示时间程序延时消抖动JB P1.1,KMA ;是干扰返回等待KMA1: JNB P1.0,$ ;等待键释放LJMP MAINT1 ;返回主程序,显示时间HOUR: JNB P1.0,SET5 ;等待键释放SETB 01H ;置调小时标志位SET6: JB P1.0,SET9 ;等待键按下LCALL TM3s ;有键按下延时3秒LCALL XSZCX ;消抖JNB P1.0,STOP ;按下时间大于3秒,退出调整状态MOV R0,#70H ;小于3秒,调整小时JB P1.1,SET3 ;等待键按下JNB P1.1,ADD1 ;P1.1按下,调时间加1子程序JB P1.2,SET3 ;等待键按下JNB P1.2,SUB-H ;P1.2按下,调小时减1子程序MOV A,R3CLR CCJNE A,#24H,BJ24 ;计时单元与24比较BJ24: JC SET6,;小于24转SET6循环CLR A ;大于或等于24,则清零MOV @R0,ADEC R0MOV @R0,AAJMP SET6 ;转SET6循环MINUTE: JNB P1.0,SET10 ;等待键释放SETB 01H ;置调分钟标志位SET7: JB P1.0,SET11 ;等待键按下LCALL TM3s ;有键按下延时3秒LCALL XSZCX ;消抖JNB P1.0,STOP ;按下时间大于3秒,退出调整状态MOV R0,#70H ;小于3秒,调整分钟JB P1.1,SET11 ;等待键按下JNB P1.1,ADD1 ;P1.1按下,调时间加1子程序JB P1.2,SET11 ;等待键按下JNB P1.2,SUB-M ;P1.2按下,调分减1子程序MOV A,R3CLR CCJNE A,#60H,BJ601 ;计时单元与60比较BJ601: JC SET7,;小于24转SET7循环CLR A ;大于或等于24,则清零MOV @R0,ADEC R0MOV @R0,AAJMP SET7 ;转SET7循环SECOND: JNB P1.0,SET12 ;等待键释放SETB 01H ;置调秒钟标志位SET8: JB P1.0,SET13 ;等待键按下LCALL TM3s ;有键按下延时3秒LCALL XSZCX ;消抖JNB P1.0,STOP ;按下时间大于3秒,退出调整状态MOV R0,#70H ;小于3秒,调整分钟JB P1.1,SET13 ;等待键按下JNB P1.1,ADD1 ;P1.1按下,调时间加1子程序JB P1.2,SET13 ;等待键按下JNB P1.2,SUB-S ;P1.2按下,调时间减1子程序MOV A,R3CLR CCJNE A,#60H,BJ602 ;计时单元与60比较BJ602: JC SET8,;小于24转SET8循环CLR A ;大于或等于24,则清零MOV @R0,ADEC R0MOV @R0,AAJMP SET8 ;转SET8循环OUT: JNB P1.0,SETOUT1 ;退出调时状态,等待键释放LCALL XSZCX ;通过调用显示程序延时消抖动JNB P1.0,SETOUT ;是抖动,返回SETOUT等待MOV 20H,#00H ;清调时标志位CLR TR1 ;关闭T1CLR ET1 ;关T1中断SETB TR0 ;启动T0SETB ET0 ;开T0中断LJMP MAINT1 ;返回主程序SET1: LCALL XSZCX ;键释放等待时,调用显示子程序AJMP SET2 ;防止此时无时钟显示SET3:LCALL XSZCX ;等待调小时按键时时钟显示用AJMP SET4 ;调时等待SET5:LCALL XSZCX ;键释放等待时调用显示程序(调小时)AJMP SETHH ;防止键按下时无时钟显示SET9:LCALL XSZCXAJMP SET6SET10:LCALL XSZCX ;键释放等待时调用显示程序(调分钟)AJMP SETHH ;防止键按下时无时钟显示SET11:LCALL XSZCXAJMP SET7SET12:LCALL XSZCX ;键释放等待时调用显示程序(调秒钟)AJMP SETHH ;防止键按下时无时钟显示SET13:LCALL XSZCXAJMP SET8SETOUT1:LCALL XSZCXAJMP OUT****** 加1子程序******ADD1:MOV A,@R0 ;取出现计时数据放入ADEC R0 ;指向前一单元SWAP A ;A中高4位与低4位互换ORL A,@R0 ;前一单元中数据放入A中低4位ADD A,#01H ;A加1DA A ;十进制调整MOV R3,A ;移入R3寄存器ANL A,#0FH ;高4位变0MOV @R0,A ;放回前一地址单元MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中高4位与低4位互换ANL A,#0FH ;高4位变0MOV @R0,A ;数据存入当前地址单元RET ;子程序返回****** 时减1子程序******SUB-H:MOV A,@R0 ;取当前计时单元数据到ADEC R0 ;指向前一地址SWAP A ;A中数据高4位与低4位交换ORL A,@R0 ;前一地址中数据放入A中低4位JZ SUB-H1 ;00减1为23(小时)DEC A ;A减1操作SUB-H11:MOV R3,A ;移入R3寄存器ANL A,#0FH ;高4位变0CLR C ;清进位标志SUBB A,#0FH;;时个位是否大于9SUB-H111:JC SUB-H110MOV @R0,#09H ;大于等于0AH,为9SUB-H10:MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高4位与低4位交换ANL A,#0FH ;高4位变0MOV @R0,A ;时十位数据放入RET ;子程序返回SUB-H1:MOV A,#23HAJMP SUB-H11SUB-H110:MOV A,R3 ;时个位小于0A不处理ANL A,#0FH ;高4位变0MOV @R0,A ;时个位数据放入AJMP SUB-H10******分减1子程序******SUB-M:MOV A,@R0 ;取当前计时单元数据到ADEC R0 ;指向前一地址SWAP A ;A中数据高4位与低4位交换ORL A,@R0 ;前一地址中数据放入A中低4位JZ SUB-M1DEC A ;A减1操作SUB-M11:MOV R3,A ;移入R3寄存器ANL A,#0FH ;高4位变0CLR C ;清进位标志SUBB A,#0AH;SUB-M111:JC SUB-M110MOV @R0,#09H ;大于等于0AH,为9SUB-M10:MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高4位与低4位交换ANL A,#0FH ;高4位变0MOV @R0,A ;数据放入当前地址单元中RET ;子程序返回SUB-M1:MOV A,#59HSUB-M110:MOV A,R3 ;移入R3寄存器ANL A,#0FH ;高4位变0MOV @R0,AAJMP SUB-M10****** 秒减1子程序******SUB-S:MOV A,@R0 ;取当前计时单元数据到ADEC R0 ;指向前一地址SWAP A ;A中数据高4位与低4位交换ORL A,@R0 ;前一地址中数据放入A中低4位JZ SUB-S1DEC A ;A减1操作SUB-S11:MOV R3,A ;移入R3寄存器ANL A,#0FH ;高4位变0CLR C ;清进位标志SUBB A,#0BH;SUB-S111:JC SUB-S110MOV @R0,#09H ;大于等于0AH,为9SUB-S10:MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高4位与低4位交换ANL A,#0FH ;高4位变0MOV @R0,A ;数据放入当前地址单元中RET ;子程序返回SUB-S1:MOV A,#14HAJMP SUB-S11SUB-S110:MOV A,R3 ;移入R3寄存器ANL A,#0FH ;高4位变0MOV @R0,A******延时子程序******TM1ms:MOV R6,#14H ;延时1 ms子程序TM1:MOV R7,#19HTM2:DJNZ R7,YS2DJNZ R6,YS1RETTM3s:LCALL TM05s ;延时3s子程序LCALL TM05sLCALL TM05sLCALL TM05sLCALL TM05sLCALL TM05sRETTM05s:MOV R3,#51H ;延时0.5 s子程序YS05s1:LCALL XSZCXDJNZ R3,YS05s1RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH END西安建筑科技大学课程设计(论文)目录第1章绪论 (1)1. 设计要求 (1)2. 设计方案 (1)第2章硬件设计 (2)1 单片机的选择 (2)2. 显示方案 (2)第3章软件设计 (5)1. 主程序 (5)2. 定时器T0中断服务程序 (5)3. 显示子程序 (5)4. 定时器T1中断服务程序 (6)5. 调时功能程序 (6)6. 延时程序 (7)7. 结论 (7)8.参考文献 (8)附录 (9)。
基于单片机的多功能数字钟的设计
一、概述现代社会,时间被视为人们生活的重要组成部分。
而数字钟作为时间的一种展现形式,已经成为人们生活中不可或缺的一部分。
基于单片机的多功能数字钟设计,将为人们提供更加准确、便捷、多功能的时间展现方式,满足人们对时间的精准要求,同时也为人们的生活带来更多便利。
二、设计目标1. 实现精准的时间显示功能,包括时、分、秒的显示;2. 实现对日期的显示,包括年、月、日的显示;3. 实现多种报时功能,如定时报时、闹钟报时等;4. 实现多种显示效果,如渐变显示、闪烁显示等;5. 实现对时间的调整功能,包括校时、调整日期等;6. 实现对亮度的调节功能,适应不同环境下的使用需求。
三、设计思路1. 硬件设计1.1 硬件采用单片机作为核心控制器,通过外部晶振提供时钟信号;1.2 采用数码管作为显示设备,通过单片机控制数码管进行时间、日期的显示;1.3 通过按钮、旋钮等输入设备,实现时间调节、报时设置等操作;1.4 通过EEPROM等存储设备,实现时间、设置的存储和读取功能;1.5 通过光敏电阻等光敏传感器,实现对环境光强的检测,调节数码管显示亮度。
2. 软件设计2.1 设计合理的时钟系统,确保时间的准确显示;2.2 设计报时功能模块,实现定时报时、闹钟报时等功能;2.3 设计显示控制模块,实现数字、日期的显示效果控制;2.4 设计操作响应模块,实现对按钮、旋钮等输入设备的操作响应;2.5 设计存储管理模块,实现时间、设置数据的存储和读取功能;2.6 设计光敏控制模块,实现对数码管显示亮度的实时调节。
四、实现方法1. 硬件设计1.1 选择合适的单片机作为核心控制器,根据需要进行外围电路的设计;1.2 选择合适的数码管作为显示设备,设计驱动电路以及显示控制电路;1.3 选择合适的按钮、旋钮等输入设备,设计输入电路以及操作响应电路;1.4 选择合适的EEPROM芯片,设计存储管理电路实现数据的存储和读取;1.5 选择合适的光敏电阻或光敏二极管,设计光敏控制电路实现显示亮度的调节。
基于51单片机的数字钟设计与制作
一.基于52单片机制作的数字钟1.设计任务⑴时间显示: 上电后,系统自动进入时钟显示,从00:00:00开始计时,此时可以设定当前时间.⑵时间调整:按下k1,k2,k3键可以顺序设置秒、分、时,并在相应数码管上显示设置值,直至6位设置完毕。
2.系统基本方案选择和论证本时钟的设计具体有两种方法。
一是通过单纯的数字电路来实现;二是使用单片机来控制实现。
本次设计选取了较为简单的单片机控制;而选择这一方法后还要进行各个芯片的选择。
以下是我在这次设计中所用的方案。
2.1 芯片的选择方案一:采用AT89C51芯片,其为高性能CMOS 8位单片机,该芯片内含有4k bytes的可反复擦写的只读程序存储器(PEROM)、128 bytes的随机存取数据存储器(RAM)、 32位可编程I/O口线、2个16位定时/计数器、6个中断源、可编程串行UART通道及低功耗空闲和掉电模式,但是由于AT89C51芯片可擦写的空间不够大,且中断源提供的较小,为防止运行过程中出现不必要的问题,我们不选用AT89C51。
方案二:采用AT89C52芯片,它除了具备AT89C51的所有功能与部件外,其最大的优势就是AT89C52提供了8K字节可擦写Flash闪速存储器空间、8个中断源、及256*8字节内部存储器(RAM),解决了我们对可反复擦写的Flash闪速存储器空间大小与中断源的不够问题的担心。
2.2显示模块选择方案和论证方案一:采用LCD,电路比较简单,且在软件设计上也相对简单,具有低功耗功能。
价格贵。
方案二:采用LED数码管显示,显示较为清楚。
价格便宜。
所以本方案采用LED数码管显示。
2.3 时钟信号的选择方案和论证直接采用单片机定时计数器提供的秒信号,使用程序实现年、月、日、周、时、分、秒计数。
采用此种方案可减少芯片的使用,节约成本,实现的时间误差较小。
2.4 电路设计最终方案决定综上各方案所述,对此次数字时钟的方案选定为: 采用AT89C52作为主控制系统; 并由其定时计数器提供时钟; LED作为显示电路来实现功能。
单片机数字钟课程设计
单片机数字钟课程设计单片机数字钟课程设计1. 硬件设计:- 使用单片机控制数字钟的显示和时间的设置功能,在电路板上连接LED数码管用于显示时间。
- 使用实时时钟芯片或者外部晶振作为时钟源,确保时间的准确性。
- 设置按键用于调整时间,包括小时、分钟和秒钟。
2. 功能设计:- 初始化功能:启动时将时间设置为00:00:00。
- 显示功能:将当前时间显示在LED数码管上,包括小时、分钟和秒钟。
- 调整时间功能:按下相应的按键,可以调整小时、分钟和秒钟,同时更新LED数码管上的显示。
- 闹钟功能:设置一个闹钟时间,并在闹钟时间到达时发出声音或者闪烁LED灯提示。
3. 软件设计:- 使用C语言编写单片机的程序,通过编程控制数码管的显示和按键的响应。
- 在程序中使用定时器中断来更新时间的显示,确保时间的准确性。
- 使用按键中断来响应按键的操作,包括调整时间和设置闹钟功能。
4. 测试与调试:- 在编写完程序后,进行测试和调试,确保各项功能的正常运行。
- 使用示波器等工具来监测时钟信号和按键信号的波形,确保硬件连接的正确性。
- 运行程序并观察LED数码管的显示,以及按键的响应情况,进行功能的验证。
5. 效果展示:- 在完成测试和调试后,将数字钟的效果展示给他人,包括时间的显示和调整、闹钟的设置和响应等功能。
- 可以将数字钟制作成实物展示,方便他人观看和操作,也可以进行演示和讲解,介绍数字钟的工作原理和设计思路。
整个单片机数字钟的课程设计过程包括硬件设计、功能设计、软件设计、测试与调试以及效果展示。
通过这个设计项目,可以锻炼学生的硬件和软件设计能力,提高他们对单片机原理和应用的理解和掌握程度。
基于51单片机设计的多功能数字时钟毕业设计
基于51单片机多功能数字时钟1系统设计1.1设计要求设计制作一个24小时制多功能数字钟。
1.1.1主要性能指标1、数字显示年、月、周、日、时、分、秒。
1.1.2创意部分要求准确的进行年、月、周、日、时、分、秒的转换,切换两种显示模式。
1.2总体设计方案1.2.1概述及设计思路该设计方案是以MC51单片机为核心,采用LCD液晶屏幕显示系统,温度采集模块、日期提醒、键盘时间调整预设置等模块,所构建的数字时钟系统,能动态显示实时时钟的时、分、秒,数据显示(误差限制在30每天)。
1.2.2方案论证(1)时钟模块【方案一】采用单片机内置定时/计数器。
它的处理过程主要是先设定单片机内部定时/计数器的工作方式,对机器周期计数确定基准时间,然后用另外一个定时器软件计数的方法对基准时间形成秒,秒计60次形成分,分计60次形成小时。
依此类推,获取日期也是采用相同的方法。
该方案在具体实现过程中,计时存在较大的误差。
如果晶振受到其他外界信号干扰,或者基准时间计算不准确,都会导致时间显示错误。
【方案二】采用555多谐振荡器。
由555定时器组成一个多谐振荡器,产生周期为100HZ的脉冲,然后经过两个74LS160组成的分频器得到1HZ的秒脉冲。
多谐振荡器的稳定度及频率的准确度决定了数字钟计时的准确程度,通常选用成品晶振构成振荡器电路。
计时精度取决于振荡器的频率,振荡器频率越高计时精度越高。
【方案三】采用DS1302时钟芯片。
DS1302是一种高性能、超低功耗的实时时钟芯片,附加31字节静态RAM,可以通过串行接口与单片机进行通信。
实时时钟提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。
芯片内部集成备用电源,当外围电路电路有电源供应的时候,备用电源充电储能。
当外围电路掉电时,DS1302芯片工作在休眠状态,以备用电源供电。
当外围电路再次供电,即可唤醒休眠进入正常工作状态,显示时间无任何异常。
