时钟电路原理图
51单片机作的电子钟程序及电路图

51单片机作的电子钟程序在很多地方已经有了介绍,对于单片机学习者而言这个程序基本上是一道门槛,掌握了电子钟程序,基本上可以说51单片机就掌握了80%。
常见的电子钟程序由显示部分,计算部分,时钟调整部分构成。
时钟的基本显示原理:时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。
10秒位到5后,即59秒,分钟加1,10秒位回0。
依次类推,时钟最大的显示值为23小时59分59秒。
这里只要确定了1秒的定时时间,其他位均以此为基准往上累加。
开始程序定义了秒,十秒,分,十分,小时,十小时,共6位的寄存器,分别存在30h,31h,32h,33h,34h,35h单元,便于程序以后调用和理解。
6个数码管分别显示时、分、秒,一个功能键,可以切换调整时分秒、增加数值、熄灭节电等功能全部集一键。
以下是部分汇编源程序,购买我们产品后我们用光盘将完整的单片机汇编源程序和烧写文件送给客户。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 中断入口程序 ;; (仅供参考) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ORG 0000H ;程序执行开始地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETI ;外中断1中断返回ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;串行中断程序入口地址RETI ;串行中断程序返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 主程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;START: MOV R0,#70H ;清70H-7AH共11个内存单元MOV R7,#0BH;clr P3.7 ;CLEARDISP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清20H(标志用)MOV 7AH,#0AH ;放入"熄灭符"数据MOV TMOD,#11H ;设T0、T1为16位定时器MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CH ;50MS定时初值MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOV TH1,#3CH ;50MS定时初值SETB EA ;总中断开放SETB ET0 ;允许T0中断SETB TR0 ;开启T0定时器MOV R4,#14H ;1秒定时用初值(50M S×20)START1: LCALL DISPLAY ;调用显示子程序JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序SJMP START1 ;P3.7口为1时跳回START1 SETMM1: LJMP SETMM ;转到时间调整程序SETMM; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 1秒计时程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T0中断服务程序INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR TR0 ;关闭定时器T0MOV A,#0B7H ;中断响应时间同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值)MOV A,#3CH ;高8位初值修正ADDC A,TH0 ;MOV TH0,A ;重装初值(高8位修正值)SETB TR0 ;开启定时器T0DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60秒时中断退出ACALL CLR0 ;大于或等于60秒时对秒计时单元清0MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60分时中断退出ACALL CLR0 ;大于或等于60分时分计时单元清0MOV R0,#79H ;指向小时计时单(78H-79H)ACALL ADD1 ;小时计时单元加1小时MOV A,R3 ;时数据放入ACLR C ;清进位标志CJNE A,#24H,HOUR ;HOUR: JC OUTT0 ;小于24小时中断退出ACALL CLR0 ;大于或等于24小时小时计时单元清0OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;POP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器RETI ;中断返回; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 闪动调时程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T1中断服务程序,用作时间调整时调整单元闪烁指示INTT1: PUSH ACC ;中断现场保护PUSH PSW ;MOV TL1, #0B0H ;装定时器T1定时初值MOV TH1, #3CH ;DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次)MOV R2,#06H ;重装0.3秒定时用初值CPL 02H ;0.3秒定时到对闪烁标志取反JB 02H,FLASH1 ;02H位为1时显示单元"熄灭"MOV 72H,76H ;02H位为0时正常显示MOV 73H,77H ;MOV 74H,78H ;MOV 75H,79H ;INTT1OUT: POP PSW ;恢复现场POP ACC ;RETI ;中断退出FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制MOV 72H,7AH ;01H位为0时,"熄灭符"数据放入分MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据MOV 74H,78H ;MOV 75H,79H ;AJMP INTT1OUT ;转中断退出FLASH2: MOV 72H,76H ;01H位为1时,"熄灭符"数据放入小时MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示MOV 74H,7AH ;MOV 75H,7AH ;AJMP INTT1OUT ;转中断退出; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 加1子程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ADD1: MOV A,@R0 ;取当前计时单元数据到ADEC R0 ;指向前一地址SWAP A ;A中数据高四位与低四位交换ORL A,@R0 ;前一地址中数据放入A中低四位ADD A,#01H ;A加1操作DA A ;十进制调整MOV R3,A ;移入R3寄存器ANL A,#0FH ;高四位变0MOV @R0,A ;放回前一地址单元MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高四位与低四位交换ANL A,#0FH ;高四位变0MOV @R0,A ;数据放入当削地址单元中RET ;子程序返回; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 清零程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;............. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 时钟调整程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;当调时按键按下时进入此程序SETMM: cLR ET0 ;关定时器T0中断CLR TR0 ;关闭定时器T0LCALL DL1S ;调用1秒延时程序JB P3.7,CLOSEDIS ;键按下时间小于1秒,关闭显示(省电)MOV R2,#06H ;进入调时状态,赋闪烁定时初值SETB ET1 ;允许T1中断SETB TR1 ;开启定时器T1SET2: JNB P3.7,SET1 ;P3.7口为0(键未释放),等待SETB 00H ;键释放,分调整闪烁标志置1SET4: JB P3.7,SET3 ;等待键按下LCALL DL05S ;有键按下,延时0.5秒JNB P3.7,SETHH ;按下时间大于0.5秒转调小时状态MOV R0,#77H ;按下时间小于0.5秒加1分钟操作LCALL ADD1 ;调用加1子程序MOV A,R3 ;取调整单元数据CLR C ;清进位标志CJNE A,#60H,HHH ;调整单元数据与60比较HHH: JC SET4 ;调整单元数据小于60转SET4循环LCALL CLR0 ;调整单元数据大于或等于60时清0CLR C ;清进位标志AJMP SET4 ;跳转到SET4循环CLOSEDIS: SETB ET0 ;省电(LED不显示)状态。
数字电子钟毕业设计(数字IC构成)

论文题目:数字电子时钟一、设计题目数字电子钟设计二、设计要求1.能够利用软件设计数字电子钟电路原理图。
2.要求熟悉集成芯片功能。
前言目前市场上提供的无论是机械钟还是石英钟在晚上无照明的情况下都是不可见的。
要知道当前的时间,必须先开灯,故较为不便。
现在市场上出现了这样一类的电子钟,它以六只LED数码管来显示时分秒,与传统的以指针显示秒的方式不同,超越了人们传统的习惯与理念。
数字电子钟是一种用数字显示秒、分、时的计时装置,与传统的机械钟相比,具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛的应用。
如,日常生活中的电子手表,车站、码头、机场等公共场所的大型数显电子钟。
要实现数字电子钟的设计可以由单片机控制或者由数字IC构成。
这里我们要做的是一个由数字IC构成的数字电子钟设计。
目录1 设计功能要求 (1)2 设计方案 (2)3设计中所用到的元器件 (3)3.1译码器 (3)3.2计数器 (4)3.3显示器 (5)3.4振荡器 (5)4 电路设计 (7)4.1时分秒计数器 (7)4.1.1秒计数器的设计 (7)4.1.2分计数器的设计 (8)4.1.3时计数器的设计 (8)4.2校时电路 (9)4.3译码显示电路 (10)4.4总体电路 (11)5器件清单 (13)结束语 (14)致谢 (15)参考文献 (16)附录A 数字电子钟整体体电路图 (17)1 设计功能要求设计一数字钟,该数字钟能够准确计时,以数字形式显示时、分、秒的时间和校时功能。
在电路中,振荡电路提供的1Hz脉冲信号。
在计时出现误差时电路还可以进行校时、校分和校秒的功能。
并且要用数码管显示时、分、秒,各位均为两位显示。
具体要求如下:1.时的计时要求为“23置0”,分和秒的计时要求为60进制。
2.准确计时,以数字形式显示时,分,秒的时间。
3.校正时间。
2 设计方案根据设计要求首先建立了一个多功能数字钟电路系统的组成框图,框图如图2.1所示。
时钟电路基本原理

1时钟供电组成时钟电路主要由时钟发生器(时钟芯片)、、、和等组成。
● 时钟芯片时钟芯片主要有S. Winbond、 PhaseLink. C-Media、IC. IMI等几个品牌,主板上见得最多的是ICS和Winbond两种,如图6-1、图6-2所示。
● 晶振时钟芯片通常使用的晶振,如图6-3所示。
晶振与组成一个谐振回路,从晶振的两脚之问产生的输入到时钟芯片,如图6-4所示。
判断品振是否工作,可以用测量晶振两脚分别对地是否有(以上),这是晶振工作的前提条件,再用示波器测量晶振任意一脚是否有与标称频率相同的振荡正弦波输出(这是最准确的方法)。
在没有示波器的情况下,可以直接更换新的晶振和谐振电容,用替换法来排除故障。
2 时钟电路工作原理时钟电路的1=作原理图,如图6-5所示。
时钟芯片有电压输入后(有的时钟芯片还有一组电压),再有一个好信号,表示主板各部位所有的供电止常,于是时钟芯片开始工作。
晶振两脚产生的基本频率输入到时钟芯片内部的,从振荡器出来的基本频率经过“频率扩展锁相网路”进行频率扩展后输入到各个,最后得到不同频率的时钟输出。
初始默认输出频率由频率选择锁存器输入引脚FS(4:0)设置,之后可以通过IIC总线再进行设置。
多数时钟芯片都支持IIC总线控制,通过一根双向的数据线(SD ATA)和一根时钟线( SCLK)对芯片的时钟输出频率进行设置。
图6-5中:48MHz USB与48MHz DOT为固定48MHz时钟输出;3V66(3:1)共3组为的66MHz时钟输出:CPUCLKT (2:0)共3组为CPU时钟输出;CPUCLKC (2:0)共3组为CPU时钟输出,与CPUCLKT互为;CLK (6:0)共7组为 33MHz 的PCI时钟输出,输出到PCI插槽,有多少个PCI插槽就使用多少组。
主板的时钟分布如图6-6所示,内存总线时钟由北桥供给,部分主板电路设计有独立的内存时钟发生器,如图中虚线所示。
数字电路数字时钟课程实验报告

数字时钟设计实验报告一、设计要求:设计一个24小时制的数字时钟。
要求:计时、显示精度到秒;有校时功能。
采用中小规模集成电路设计。
发挥:增加闹钟功能。
二、设计方案:由秒时钟信号发生器、计时电路和校时电路构成电路。
秒时钟信号发生器可由振荡器和分频器构成。
计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。
校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。
三、电路框图:图一数字时钟电路框图四、电路原理图:(一)秒脉冲信号发生器秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。
由振荡器与分频器组合产生秒脉冲信号。
振荡器: 通常用555定时器与RC构成的多谐振荡器,经过调整输出1000Hz脉冲。
分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz标准秒脉冲。
其电路图如下:译码器译码器译码器时计数器分计数器秒计数器校时电路秒信号发生器图二秒脉冲信号发生器(二)秒、分、时计时器电路设计秒、分计数器为60进制计数器,小时计数器为24进制计数器。
60进制——秒计数器秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。
当计数到59时清零并重新开始计数。
秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。
个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。
利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。
其电路图如下:图三 60进制--秒计数电路60进制——分计数电路分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。
时钟电路的设计

一、概述本次设计以AT89C51单片机芯片为核心,辅以必要的外围电路,设计了一个简易的电子时钟并且利用单片机自身的定时计数器,使LED 按照一定的时间间隔闪烁,闪烁时间间隔不小于1秒。
在硬件方面,除了CPU 外,使用七段数码管来进行动态扫描。
通过数码管能够比较准确显示时,分,LED 一闪一灭显示秒,设计方面采用C 语言编程,整个电子时钟能完成时间的显示,手动复位等功能。
本系统是基于AT89C51单片机设计的一个具有显示的数字实时时钟的发光二极管,该系统同事具有硬件设计简单,工作稳定性高,价格低廉等优点。
数字单片机的技术进步反应在内部结构,功率消耗,外部电压等级以及制造工艺上。
二、方案论证利用单片机自身的定时计数器,使LED 发光二极管按照一定的时间间隔闪烁,闪烁时间间隔不小于1秒。
方案一:采用AT89C51单片机来做LED 时间闪烁电路,其方案原理框图如下图1所示。
图1 打片机控制设计时钟电路的原理框图方案二:采用电子电路装置安装,其原理框图如下图2所示。
图2 电子电路控制设计时钟电路原理图时钟电路A T89C51 单片机 复位电路按键控制电路LED 显示电路直流5V 电源电路振荡电路控制电路计数器译码器LED 显示电路本设计采用的是方案一,AT89C51单片机构成的数码管显示时钟,硬件设计简单,工作稳定性高,性价比高比较合适。
三、电路设计1.程序流程图程序总体结构示意流程图如下图3所示。
程序从开始运行,设计要求为1秒的闪烁间隔,内容包括了开关中断子程序,以及总体流程。
YNNY图3 程序总体结构示意图2.复位电路AT89C51的复位方式可以是自动复位,也可以是手动复位,复位电路主要是确定开始开关中断 Countor1++(自加1)Counror1==20 D1=~D1(按位取反操作)TH0=(65536-50000)/256(重新赋初值)P1~0口状态改变单片机的起始状态,完成单片机的启动过程,本实验主要采用手动按键复位方式,该复位方式同样具有自动复位功能.当MCS-51单片机的复位引脚RST出现两个周期以上的高电平时,单片机就执行复位操作。
时钟晶振电路工作原理

时钟晶振电路工作原理时钟晶振电路是一种用于提供高精度时钟信号的电路,广泛应用于现代电子技术中。
它的工作原理基于晶体振荡现象,通过晶体中的共振使得频率稳定的信号被产生。
本文将对时钟晶振电路的工作原理进行详细介绍。
一、时钟晶振电路基本结构时钟晶振电路由晶体振荡器、振荡放大器以及电路稳定器等部分组成,其基本结构如图1所示。
图1 时钟晶振电路基本结构(引用自电子元器件技术)晶体振荡器是时钟晶振电路的核心部分,它由一个晶体和激励电路组成。
激励电路产生的电信号通过晶体,使得晶体在某一频率下产生共振,从而使时钟信号被产生。
振荡放大器负责放大晶体振荡器产生的信号,使之达到驱动所需要的电平。
电路稳定器用来稳定整个电路的工作电压,以确保电路的稳定性和可靠性。
二、晶体振荡器工作原理晶体振荡器是时钟晶振电路中最核心的部分,其主要工作原理是利用电石晶体的固有机械振动特性,实现稳定的高精度振荡。
二.1电石晶体电石晶体是一种能够产生固有机械振动现象的晶体,其主要成分是二氧化硅(SiO2)。
通过对电石晶体进行加工和结构设计,可以使得其在某一个频率下具有稳定的固有振动,从而实现时钟晶振电路的振荡器部分。
二.2谐振回路谐振回路是晶体振荡器的一个重要组成部分,其主要作用是把激励电路产生的信号输入到晶体中,通过共振使得晶体开始振荡。
谐振回路常用的两种结构如图2所示。
图2 谐振回路结构(引用自电子元器件技术)图2(a)为串联谐振回路,其特点是将晶体和电容串联在一起,形成一个共振回路。
当电路被激励后,晶体处于共振状态,从而实现了振荡的效果。
图2(b)为并联谐振回路,其特点是把晶体和电容并联起来,形成一个并联谐振回路。
并联谐振回路中的谐振频率是由电容和晶体的等效电容以及串联电阻决定的。
二.3电路激励晶体振荡器的最后一个组成部分就是激励电路,其主要作用是向谐振回路中输入激励信号,产生晶体的共振。
激励电路的信号产生方式有很多种,其中最常见的方式是利用谐振回路中的信号放大器,对输入信号进行放大得到有效率的振荡信号。
电子时钟完整版 有实物图

3.6 校时电路……………………………………………………………….14 3.6.1 电路结构及工作原理……………………………………………14 3.6.2 电路仿真…………………………………………………………14 3.6.3 元器件的选择及参数确定………………………………………15
3.7 整点报时电路………………………………………………………….16 4 电路总体仿真………………………………………………………………16 5 电路安装、调试与测试……………………………………………………18
7
图 3.2 由仿真图可知,该电路可以得到 5V 的直流电源,因此可以做为整个系统的电源。
3.1.3 元件的选择
电网供给交流电压(220v 50HZ)经变压器降压后,得到符合电路需要的 交流电压,然后由整流桥经整流后变换成方向不变、大小随时间变化的脉动电流, 然后有滤波电容滤去其中的杂波,并且可以抵消线路的电感效应防止产生自激震 荡,但是这样的直流电压还会随电网和负载的变化而变化,因此在该电路中又使 用了稳压芯片(7805)可以得到比较理想的直流电压,输出端的滤波电容的作用 是用以滤除输出端的高频信号,改善电路的暂态效应。
这里我用 555 定时器构成一个多谐振荡器其产生的频率为 100Hz,然后 经过整形、分频获得 1Hz 的秒脉冲。电路原理图如图 3.3
8
图 3.3 3.2.2 电路仿真结果如下图 3.4
图 3.4 由仿真图可知,产生的波形符合我们的标准,周期大约为 1 秒,大致可以做为秒 脉冲信号。
3.2.3 元件的选择
电子技术综合训练
设计报告
题目:
多功能电子钟的设计
姓名: 学号: 班级: 同组成员: 指导教师: 日期:
杜鹏 10020106 控制工程基地一班 宋峰 杨新华 2012 年 12 月 31 日星期一
智能时钟万年历(详细电路图)

《嵌入式课程设计》讲义项目1 智能数字万年历一.项目指标分析项目指标要求如下:1. 显示年、月、日、时、分、秒和星期。
2. 实时显示温度。
3. 可手动调整时间。
4. 采用LCD显示。
基于以上要求,核心控制芯片选用STC89C51;时钟芯片选用DS1302;温度传感器选用DS18B20;液晶屏选用LCD1602;设置按键,以便于调整时间。
二.电路原理系统电路功能图如图1所示:图1 智能数字万年历电路功能图由图1可知,P2口控制LCD的数据端;P3.5、P3.6和P3.7控制着LCD的片选、读/写和寄存器选择信号;可调电阻RP2用于调节屏的显示对比度。
P3.4是温度传感器DS18B20的1-wire接口,即片选、时钟和数据信号均由P3.4口控制。
P0.5、P0.6和P0.7是时钟芯片DS1302的SPI接口,为使信号控制更稳定,这三个接口上都上拉了10KΩ电阻;为获得精准的时钟信号,选用频率为32.768KHz的外部晶振对DS1302提供振荡信号。
P0.0-P0.3控制着四个按键,以便于调整时间。
三.程序设计基于这个项目,程序的设计可分成各芯片驱动程序设计和控制算法程序两部分。
1.各芯片的驱动程序设计在写驱动程序时,首先通读芯片手册,以掌握主要技术指标;然后可按照以下3个步骤进行:(1)分清楚各芯片的通信属于哪种接口方式,例如:时钟芯片DS1302按照SPI 接口进行通信;温度传感器DS18B20按照1-wire接口进行通信;液晶屏LCD1602采用常规的并行数据传输方式。
(2)仔细分析芯片时序图,弄清楚片选信号是高电平有效还是低电平有效;数据是在时钟信号的上升沿还是下降沿时打入;数据前还是时钟前等。
(3)将功能程序函数化、驱动程序模块化。
2.控制算法程序设计这里的算法主要集中在如何设置按键识别程序,即便于调整时间,又不影响液晶屏的显示。
这里,提供两种思想以便参考。
(1)循环扫描方式流程图图2 循环扫描方式流程图(2图3 状态机方式流程图将图2和图3比较起来看,两种方式的最大差别在于“10ms消抖时间如何度过?”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AT89C2051组成的时钟电路原理图
2010-04-09 15:42:37 来源:21ic
关键字:AT89C2051 时钟定时器
我们以一个实际的时钟电路来说明定时器的软件编程方法,时钟就是我们最为常见的显示时、分、秒为单位的计时工具,它是典型的应用代表。
时钟的最小计时单位是秒,但使用单片机定时器来进行计时,若使用6.0MHz的晶振,即使按工作方式1工作,最大的计时时间也只能到131ms,所以我们可把每个定时时间取125ms,这样定时器溢出8次(125ms╳8=1000ms)就得到最小的计时单位秒。
而要实现8次计数用软件方法实现是轻而易举的。
我们使用定时器1,以工作方式1工作,定时器进行125ms定时。
采用中断方法进行溢出次数的累计,当计满8次即得到1秒的计时。
一个时钟的计时累加,要实现分、时的进位,要用到多种进制,秒、分、时中的进位是十进制,秒向分进位和分想时进位却是六十进制,而每天又有十二小时制或二十四小时制,它们分别又是十二进制和二十四进制。
从秒到分和从分到小时可以通过软件累加和数值比较方法实现。
在单片机的内部RAM中,需要设置显示缓冲区,显示的时、分、秒值是从显示缓冲区中取出的,在RAM中设置四个单元作为显示缓冲区,分别是7AH、7BH、7CH。
为使电路和原理叙述方便,我们这里不显示秒值,秒的进位我们通过闪烁分值实现。
这样我们一共有四位LED分别显示时和分值。
同时时钟都需要校准的。
在程序中还需设置显示码表,要显示的数值通过查表指令将显示用的真正码值送到LED上。
我们用单片机A T89C2051的PP3.4和P3.5两个I/O口外接微动开关来实现时和分的校正,每按一次小时或分值加1,连续按下数值累计下去,实现时钟的校准。
在电路中我们还设置了一个蜂鸣器,用作简单报时用,如可设早上7:30分起床,中午1点30分再有起床报时,每次响时1分钟,响1秒,停2秒的方式,而不是连续响铃。
这个程序我们采用12小时制,为此,要在程序中设置相应的标志,以利于主程序识别。
同样计时程序中还会有几个相关的标志,主要是控制程序流的转向。
程序中我们都作了较详细的注释,这里不再赘述。
硬件电路,我们还是以低价的AT89C2051单片机为微处理单元,这个芯片兼容C51指令系统,在C51上编写的程序,无需任何修改即可方便地移植到这个芯片上来。
我们以P0口作为LED的字段位驱动输出,秒的“进位”采用分值闪烁提示,亮0.5秒,熄0.5秒。
,P3.1—P3.3用于位驱动,使用动态扫描方式显示,每位LED的显示时间10—25ms之间均可,扫描频率不能太高,否则每位LED显示的时间过短,亮度太低,不易于观看,以肉眼不感觉到LED闪烁为宜。
为了直观,我们的驱动输出没有采用集成电路,而是使用了分立元件—三极管,但工作原理却是一致的。
这个电路结构决定LED采用共阳极的数码管,可以采用LQ5101BS普通的发光二极管,驱动三极管可采用易得的2SA1015和2SC1815等型号,当然也可使用象S9012,S9013,S9014,2N5401,2N5555等小功率三极管,其它器件没有特殊要求。
为便于实验,单片机AT89C2051可采用DIP20P插座,程序编制好后,调试无错,即可烧写到AT89C2051中,值得一提的是,A T89C2051是Flash程序存储器,程序可反复擦写,对于做实验是非常方便的。
(本文转自电子工程世界:/mcu/2010/0409/article_1946.html)。