电子秒表时钟计数器设计.docx

上传人:b****5 文档编号:15187107 上传时间:2023-07-02 格式:DOCX 页数:17 大小:24.45KB
下载 相关 举报
电子秒表时钟计数器设计.docx_第1页
第1页 / 共17页
电子秒表时钟计数器设计.docx_第2页
第2页 / 共17页
电子秒表时钟计数器设计.docx_第3页
第3页 / 共17页
电子秒表时钟计数器设计.docx_第4页
第4页 / 共17页
电子秒表时钟计数器设计.docx_第5页
第5页 / 共17页
电子秒表时钟计数器设计.docx_第6页
第6页 / 共17页
电子秒表时钟计数器设计.docx_第7页
第7页 / 共17页
电子秒表时钟计数器设计.docx_第8页
第8页 / 共17页
电子秒表时钟计数器设计.docx_第9页
第9页 / 共17页
电子秒表时钟计数器设计.docx_第10页
第10页 / 共17页
电子秒表时钟计数器设计.docx_第11页
第11页 / 共17页
电子秒表时钟计数器设计.docx_第12页
第12页 / 共17页
电子秒表时钟计数器设计.docx_第13页
第13页 / 共17页
电子秒表时钟计数器设计.docx_第14页
第14页 / 共17页
电子秒表时钟计数器设计.docx_第15页
第15页 / 共17页
电子秒表时钟计数器设计.docx_第16页
第16页 / 共17页
电子秒表时钟计数器设计.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电子秒表时钟计数器设计.docx

《电子秒表时钟计数器设计.docx》由会员分享,可在线阅读,更多相关《电子秒表时钟计数器设计.docx(17页珍藏版)》请在冰点文库上搜索。

电子秒表时钟计数器设计.docx

电子秒表时钟计数器设计

秒表/时钟计时器的设计

(2008-11-1810:

59:

58)

转载▼

标签:

it

教育

目录

第1节引言………………………………………………………………………2

1.1秒表概述……………………………………………………………………2

1.2设计任务……………………………………………………………………2

1.3系统主要功能………………………………………………………………3

第2节系统的硬件设计……………………………………………………………4

2.1秒表时钟计时器的硬件电路………………………………………………4

2.2电路原理图…………………………………………………………………5

2.3AT89C2052单片机及其引脚说明…………………………………………5

2.474LS244芯片的介绍………………………………………………………6

第3节系统软件设计………………………………………………………………7

3.1秒表时钟计时器的主程序…………………………………………………7

3.2秒表时钟计时器的显示程序………………………………………………8

3.3定时器中断服务程序………………………………………………………9

3.4中断服务程序………………………………………………………………9

3.5调时功能程序………………………………………………………………9

3.6整点响程序…………………………………………………………………10

3.7秒表时钟功能程序…………………………………………………………10

第4节控制源程序…………………………………………………………………11

第5节结束语………………………………………………………………………21

参考文献………………………………………………………………………………21

第1节引言

单片机具有体积小,成本低,抗干扰能力强,面向控制,可以实现分机各分布式控制等优点。

本秒表/时钟设计就是利用单片机的上述优点,采用目前市场上性能价格比较高的MCS-52单片机设计而成的最小系统。

它在实际生活中具有广泛的应用。

例如:

工业生产中的定时启停自动化设备、学校中上下课铃定时控制、农村广播站每天早中晚广播的自动定时控制均可采用本仪器。

1.1秒表概述

秒表是电器制造,电国,工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、廷时器、定时器等的时间测试。

目前所使用的电秒表大多是指针式或集成电路型的,结构相对复杂、测试功能单一。

本仪器还具有实时时钟、整点报时、手动计时的功能。

1.2本设计任务

(1)省电(关闭显示)功能

(2)以24h(小时)计时方式

(3)白来整点报时,晚上22点后不报时

(4)用六位LED数码管显示时、分、秒

(5)使用按键开关可实现时分调整、秒表功能转换

(6)使用按键开关可实现时分调整、时钟功能转换

1.3系统主要功能

1.时钟功能

对于时钟功能,需要在数码管上显示小时、分钟和秒钟,因此,可以在内部存储空间分别定义它们的显示缓存空间,来存放小时、分钟和秒钟的BCD码,各2个字节。

由于时钟是不能停止的,因此需要采用内部定时器自动计时,并使用定时器中断处理程序来定时进行时间数值的刷新。

52单片机的2个定时器都具有16位定时器的

工作模式。

当晶振为12MHz时,16位定时器的最大定时值为65.536mS;要达到1秒钟,可以采用两种方法:

采用一个定时器定时与软件计数相结合的方法;或者采用两个定时器级联的方法。

由于秒表在计时功能时也需要用到1个定时器,因此,我们采用第一个方法,只使用1个定时器,例如使用T0。

为了达到较为准确的计时,使T0的溢出时间为50ms,使用一个字节作为软件计数器ST,计数值为20。

定时器的中断处理程序对ST进行减1操作,当ST为0时,1秒到达,此时更新存放小时、分钟、秒钟的显示缓存区。

2.计时功能

当秒表用作计时功能时,也需要一个定时器进行10MS的定时,在本例中使用单片机的TIMER1。

在TIMER1的中断处理程序中对SS和ss的缓存空间进行更新,与上面类似。

3.功能按键

再看按键的处理。

这3个键可以采用中断的方法,也可以采用查询的方法来识别。

对于A、B键,主要功能在于功能切换和数值复位,对于时间的要求不是很严格,而C键主要用于时间的锁定,需要比较准确的控制。

因此可以考虑,对A、B键采用查询的方式,而对于C键采用外部中断。

4.中断嵌套和控制

现在在我的方案中有3个中断,T0、T1中断和外部中断INT0。

这3个中断的特点是:

T0的工作是连续的,可以在误差范围内可以被打断但不可以停止;T1的工作同样可以在误差范围内被打断,但可以被INT0停止;INT0是用来启动或停止T1的。

2.系统硬件设计

2.1秒表/时钟计时器的硬件电路

秒表/时钟计时器的硬件电路如图所示,采用AT89C52单片机,最小化应用设计;采用共阳七段LED显示器,P0口输出段码数据,P2.0-P2.5口作列扫描输出,P1.0、P1.1、P1.2口接三个按钮开关,用以调时及功能设置。

为了提供共阳LED数码管的驱动电压,用三极管8550作电源驱动输出。

采用12M晶振,有利于提高秒计时的精确性。

图2.1硬件系统的总体设计框架

P3口引脚特殊功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2(外部中断0)

P3.3(外部中断1)

P3.4T0(定时器0外部输入)

P3.5T1(定时器1外部输入)

图2.2P3口特殊功能

2.2电路原理图设计

电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。

设计电路原理图:

图2.3电路原理图

2.3AT89C2052单片机及其引脚说明

AT89C2052是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

图2.4AT89C52芯片

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。

主要功能特性:

•兼容MCS51指令系统

•8k可反复擦写(>1000次)FlashROM

•32个双向I/O口

•256x8bit内部RAM

•3个16位可编程定时/计数器中断

•时钟频率0-24MHz

•2个串行中断

•可编程UART串行通道

•2个外部中断源

•共6个中断源

•2个读写中断口线

•3级加密位

•低功耗空闲和掉电模式

•软件设置睡眠和唤醒功能

2.474ls244芯片说明

开关量输入的扩展经常使用的芯片是74LS244/74LS245/74LS240等;这些芯片的特点是三态门,可以把多个芯片的输出,并联在一起而不会互相影响;通过138、139、153等译码选通芯片,把RD/WR/地址的高位信号(高3位或者高4位,看单片机系统中的芯片的数量)接到译码芯片,把译码芯片的输出接到锁存器的锁存输入,或者缓冲器的选通输入。

图2.574LS244芯片

244内部包含8个单向三态门,分为两组,同时作为总线芯片的另外一个特点是驱动能力加强了,可以提供比较大的输出电流,所以经常用来直接驱动光耦、发光管等,也可以用于驱动微型的继电器!

第3节系统程序的设计

3.1主程序

本设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能程序。

其主程序执行流程见下图

y

3.2显示子程序

数码管显示的数据存放在内存单元70H-75H中。

其中70H-71H存放秒数据,72H-73H存放分数据,74H-75H存放时数据,每一地址单元内均为十进制BCD码。

由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。

显示时,先取出70H-75H某一地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。

为了显示小数点及“-”、“A”等特殊字符,在显示班级及计时时采用不同的显示子程序。

3.3定时器T0中断服务程序

定时器TO用于时间计时,定时溢出中断周期可分别设为50ms和10ms.中断进入后,现判断是时钟计时还是秒表计时,时钟计时累计中断20次(即1s)时,对秒计数单元进行加1操作,秒表计时每10ms进行加1操作。

时钟计数单元地址分别在70H-71H(秒)、76H-77H(分)和78H-79H(时),最大计时值为23时59分59秒。

而秒表计数单元地址也在70H-71H(0.01毫秒)、76H-77H(秒)和78H-79H(分),最大计时值为99分59.99秒。

7AH单元内存放“熄灭符”数据(#0AH)。

在计数单元中采用十进制BCD码计数,满60(秒表功能时有100)进位,T0中断服务程序执行流程见下图

图3.2

定时器T0、T1溢出周期为50ms(10ms),T0为秒计数用,T1为调整时闪烁用;P1.0,P1.1,P1.2为调整按钮,P0口为字符输出口,采用共阳显示管。

3.4T1中断服务程序

T1中断服务程序用于指示调整单元数字的亮闪。

在时间调整状态下,每过0.3s,将对应单元的显示数据换成“熄灭符”数据(#0AH)。

这样在调整时间时,对应调整单元的显示数据会间隔闪亮。

3.5调时功能程序

调时功能程序的设计方法时:

按下P1.0口按键,若按下时间短于1s,则进入省电状态(数码管不亮,时钟不停);否则进入调分状态,等待操作,此时计时器停止走动。

当再按下按钮时,若按下时间短于0.5s,则时间加1分;若按下时间长于0.5s,则进入小时调整状态。

在小时调整状态下,当按键按下的时间长于0.5s,退出调整状态,时钟继续走动。

P1.1口按键在调时状态下可实现减1功能。

3.6整点响程序

如果在时钟状态下,如果是整点那么就用P3.2这个引脚来控制蜂鸣器。

3.7时钟/秒表功能程序

在正常计时状态下,若按下P1.1口按键,则进行时钟/秒表功能的转换,转换后计时从开始。

当按下P1.2口的按键时,可实现清0、计时启动、暂停功能。

第四节控制源程序清单

START:

    MOV R0,#70H

    MOV R7,#0BH

CLEARDISP:

MOV @R0,#00H

      INC R0

DJNZ R7,CLEARDISP

MOV 20H,#00H/*清20H(标志用)*/

MOV 7AH,#0AH

MOV TMOD,#11H

MOV TL0,#0B0H

MOV TH0,#3CH

MOV TL1,#0B0H

MOV TH1,#3CH

SETB EA

SETB ET0

SETB TR0

MOV R4,#14H

START1:

LCALL DISPLAY 

JNB P1.0,SETMM1

JNBP1.1,FUNSS

JNBP1.2,FUNPT

SJMPSTART1

SETMM1:

LJMPSETMM

FUNSS:

LCALL DS20MS 

JB P1.1,START1

WAIT11:

JNB P1.1,WAIT11

CPL 03H

MOV 70H,#00H

MOV 71H,#00H

MOV 76H,#00H

MOV 77H,#00H

MOV 78H,#00H

MOV 79H,#00H

AJMP START1

ACALLZDBS

FUNPT:

LCALL DS20MS

JB P1.2,START1

WAIT22:

JNB P1.2,WAIT21

CLR ET0

CLR TR0

WAIT33:

JB P1.2,WAIT31

LCALL DS20MS

JB P1.2,WAIT33

WAIT66:

JNB P1.2,WAIT61

MOV R0,#70H

MOV R7,#0AH

始地址*/

LJMPSTART;

ORG 0003H;

ORG 000BH

LJMP INTT0

ORG 0013H

TETI

ORG 001BH

LJMP INTT1

ORG 0023H

RETI

INTT0:

PUSH ACC

    PUSH PSW 

   CLR ET0

    CLR TR0

    JB 03H,FSS

    MOV A,#0B7H

    ADD A,TL0

    MOV TL0,A

    MOV A,#3CH

    ADCC A,TH0

    MOV HT0,A

    SETB TR0

    DJNZ R4,OUTT0

ADDSS:

MOV R4,#14H

    MOV R0,#71H 

    CJNE A,#60H,ADDMM

ADDMM:

JC OUTT0

    ACALL CLR0

    MOV R0,#77H

    ACALL ADD1

    MOV A,R3

    CLR C

    CJNE A,#60H,ADDHH

ADDHH:

JC OUTT0

    ACALL LCR0

    MOV R0,#79H

    ACALL ADD1

    MOV A,R3

    CLR C 

    JB 03H,OUTT0

    CJNE A,#24H,HOUR

HOUR:

JC OUTT0

   ACALL CLR0

OUTT0:

MOV 72H,76H

    MOV 74H,78H

    MOV 75H,79H

    POP PSW 

    POP ACC 

    SETB ET0

    RETI

最大计数值为99分59.99秒

FSS:

MOVA,#0F7H

ADDA,TL0

MOVTL0,A

MOVA,#0D8H

ADDCA,THO

MOVTHO,A

SETBTHO

MOVR0,#71H

ACALLADD1

CLRC

MOVA,R3

JZFSS1

SETBC

FSS1:

AJMPADDMM

INTT1:

PUSH ACC 

   PUSH PSW 

   MOV TL1,#0B0H

   MOV TH1,#3CH

   DJNZ R2,INTT1OUT

   MOV R2,#06H

   CPL 02H

   JB 02H,FLASH1

   MOV 72H,76H

   MOV 73H,77H

   MOV 74H,78H

   MOV 75H,79H

INTT1OUT:

POP PSW

      POP ACC

      RET1

FLASH1:

JB 01H,FLASH2

     MOV 72H,7AH

     MOV 73H,7AH

     MOV 74H,78H

     MOV 75H,79H

     AJMP INTT1OUT 

FLASH2:

MOV 72H,76H

     MOV 73H,77H

     MOV 74H,7AH

     MOV 75H,7AH

     AJMP INTT1OUT

 

ADD1:

MOV A,@R0

    DEC R0

    SWAP A

    ORL A,@R0

    ADD A,#01H

    DA A

    MOV R3,A

    ANL A,#0FH

    MOV @R0,A 

    MOV A,R3

    INC R0

    SWAP A

    ANL A,#0FH

    MOV @R0,A

    RET

SUB1:

MOV A,@R0  

    DEC R0

    SWAP A

    ORL A,@R0

    JZ SUB11

    DEC A

SUB111:

MOV R3,A

    ANL A,#0FH 

    CLR C

    SUBB A,#0AH

SUB1111:

JC SUB1110

     MOV @R0,#09H

SUB110:

MOV A,R3

     INC R0

     SWAP A

     ANL A,#0FH

       JZ SUBB11

    DEC A

SUBB111:

MOV R3,A

    ANL A,#0FH

    CLR C

    SUBB A,#0AH

SUBB1111:

JC SUBB1110

     MOV @R0,#09H

SUBB110:

MOV A,R3

     INC R0

     SWAP A 

     ANL A,#0FH

     MOV @R0,A

     RET

SUBB11:

MOV A,#23H

     AJMP SUBB111

SUBB1110:

MOV A,R3

      ANL A,#0FH

      MOV @R0,A 

      AJMP SUBB110

CLR0:

CLR A

    MOV @R0,A

    DEC R0

    MOV @R0,A

    RET

当调时按键按下进入此程序

SETMM:

CLR ET0

     CLR TR0

    LCALL DLIS

    JB P1.0,CLOSEDIS

    MOV R2,#06H

    SETB ET1

    SETB TR1

SET2:

JNB P1.0,SET1

   SETB 00H

SET4:

JB P1.0,SET3

   LCALL DL05S

   JNB P1.0,SETHH

   MOV R0,#77H

   LCALL ADD1

   MOV A,R3

   CLR C

   CJNE A,#60H,HHH

HHH:

JC SET4

   LCALL CLR0

   CLR C

   AJMP SET4

CLOSEDIS:

SETB ET0

        CLR 01H

    CLR 00H

    CLR 02H

    CLR TR1

    CLR ET1

    SETB TR0

    SETB ET0

    LJMP START1

SET1:

LCALL DISPLAY

   AJMP SET2

SET3:

LCALL DISPLAY

   JNB P1.1,FUNSUB

   AJMP SET4

SET5:

LCALL DISPLAY

   AJMP SETHH1

SET7:

LCALL DISPLAY

   JNB P1.1,FUNSUBB

   AJMP SET6

SETOUT1:

LCALL DISPLAY

     AJMP SETOUT

FUNSUB:

LCALL DISPLAY

     JB P1.1,SET41

FUNSUB1:

JNB P1.1,FUNSUB1

      MOV R0,#77H

      LCALL SUB1

      LJMP SET4

SET41:

LJMP SET4

FUNSUBB:

LCALL DISPLAY

      JB P1.1,SET61

FUNSUBB1:

JNB P1.1,FUNSUBB1

      MOV R0,#79H

      LCALL SUBB1

      LJMP SET6

SET61:

LJMP SET6

DISPLAY:

MOV R1,#70H

     MOV R5,#0DFH

PLAY:

MOV A,R5

   MOV P2,A

   MOV A,@R1

   MOV DPTR,#TAB

   MOVCA,@A+DPTR

   MOV P0,A

   MOV A,R5

   JB ACC.1,LOOP5

   CLR P0.7

LOOP5:

JB ACC.3,LOOP6

    CLR P0.7

LOOP6:

LCALL DL1MS

    INC R1

    MOV A,R5

    JNB ACC.0,ENDOUT

    RR A

    MOV R5,A

    MOV P0,#0FFH

    AJMP PLAY

ENDOUT:

MOV P2,#0FFH

     MOV P0,#0FFH

     RET

TAB:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH

SDISPLAY:

MOV R5,#0DFH

SPLAY:

MOV A,R5

    MOV P2,A

    MOV A,@R1

    MOV DPTR,#TABS

    MOVC A,@A+DPTR

MOVP0,A

MOV A,R5

    LCALL DL1MS

    INC R1

    MOV A,R5

    JNB  ACC.0,ENDOUTS

    RR A

    MOV R5,A

    AJMP SPLAY

ENDOUTS:

MOV P2,#0FFH

      MOV P0,#OFFH

      RET

TABS:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH

STAB:

DB 0AH,0AH,0AH,0AH,0AH,0AH,08H,02H,0CH,01H,00H,0BH,0AH,

DB 07H,00H,0CH,02H,01H,0CH,03H,00H,00H,02H,0AH,0AH,0AH,0AH,0AH,0AH

ZDBS:

MOVA,72H

JNZZDBSEND

MOVA,#22

CJNE72H,A,ZDBSEND

MOVA,73H

CJNE73H,#3CH,ZDBSEND

CLRP3.2

ACLLDL05S

SETBP3.2

ZDBSEND:

RET

DL1MS:

MOV R6,#14H

DL1:

MOV R7,#19H

DL2:

DJNZ R7,DL2

   DJNZ 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2