最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于单片机电子秒表设计

来源:动视网 责编:小OO 时间:2025-10-01 02:02:23
文档

基于单片机电子秒表设计

基于单片机的电子秒表1.控制器的选择单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本低等优点,各个领域应用广泛。本实验采用ATC52单片机。2.数码管的选择LED显示方式有共阴极和共阳极两种,在本实验中采用共阳极数码管。字形码表的产生以共阳极为例,LED八段数码管的每一段接低电平时亮,不同的组合可以显示不同的数字,有一定的对应关系。具体的对应关系如下0dgfedcba11000000C0H1dgfedcba1111100
推荐度:
导读基于单片机的电子秒表1.控制器的选择单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本低等优点,各个领域应用广泛。本实验采用ATC52单片机。2.数码管的选择LED显示方式有共阴极和共阳极两种,在本实验中采用共阳极数码管。字形码表的产生以共阳极为例,LED八段数码管的每一段接低电平时亮,不同的组合可以显示不同的数字,有一定的对应关系。具体的对应关系如下0dgfedcba11000000C0H1dgfedcba1111100
基于单片机的电子秒表

1.控制器的选择

单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本低等优点,各个领域应用广泛。本实验采用ATC52单片机。

2.数码管的选择             

   LED显示方式

 有共阴极和共阳极两种,在本实验中采用共阳极数码管。

    字形码表的产生

  以共阳极为例,LED八段数码管的每一段接低电平时亮,不同的组合可以显示不同的数字,有一定的对应关系。

  具体的对应关系如下

0dgfedcba11000000C0H
1dgfedcba11111001F9H
2dgfedcba10100100A4H
3dgfedcba10110000B0H
4dgfedcba1001100199H
5dgfedcba1001001092H
6dgfedcba1000001082H
7dgfedcba11111000F8H
8dgfedcba1000000080H
9dgfedcba1001000090H
静态显示 

在静态显示方式下,每一位显示器的字段控制线是的。当显示某一字时,该位的各字段线和字位线的电平不变,也就是各字段的亮灭状态不变。静态显示方式下LED显示器的电路连接方法是:每位LED的字位控制线门共阴极点或共阳极点连在一起,接地或接 + 5V;

动态显示  

     利用人眼的视觉暂留效应,通过位选分时显示不同的数码管,这样可以看到正常的显示。本实验采用动态设计,p0口与数码管相连,p0.0—p0.7分别对应数码管的dgfedcba位,p2.0—p2.2为数码管的位控制位,当为高点平时对应的数码管亮。P3.2、p3.3分别控制开始和停止。

     

3.设计说明

        当打开电源,进入待机状态,程序开始运行,给p0口送入80H,同时给p2.0送入高电平选中数码管的最低位,数码管将显示数字“8”,然后经过一秒的延时,将位控制位左移一位即选中p2.1,依次循环,这时需要检测数码管的第四位,若为高电平则程序返回最低位显示。在程序开头初始化各个数据,缓存区71H,72H,73H清零,开中断及开T1计数器,当按下开始键时,电子秒表开始计时,由于采用方式1,定时时间选50ms,经过两次中断后,100ms位加1,这时字位码选中最低位,同时查表字形码显示,当100ms位记满10次后,字位码向前移动一位,同时秒位加1,这时字形码的最高位取反,查表显示数字及小数点,当记满10此后,字位码向前移动一位,十秒位加1,查表显示当前数字,当记满10次后,清零,重新开始计时,依次循环,当按下停止键时,停止计时。

4程序流程图

                     

    N

                                        

                                         Y                                                                                                                

                                          

                                                       N              

                                           Y         

          

                                                      N

                

                                                                             

                                             Y                                                                

                                                           N                  

     

                                        

                                                Y              

                           N                                 

                                             Y         

5程序清单

       

      

        ORG    0000H

         AJMP    MAIN

        ORG    0003H

        LJMP    START    

        ORG    0013H

        LJMP    STOP

        ORG    001BH

        LJMP    BRT1

;――――――――――初始化程序―――――――――――

MAIN:  MOV    TMOD,#10H

         MOV    TH1,#3CH

         MOV    TL1,#0B0H

         SETB    EX0

         SETB     EX1

         SETB    ET1

         SETB    IT0

         SETB    IT1

         SETB     EA

         SETB     PT1

         SETB    PX1

         MOV    R4,#2

         MOV    71H,#00H

         MOV    72H,#00H

           MOV    73H,#00H

;―――――――――――待机画面程序―――――――――――

          MOV    P0,#80H

LOOP1:    MOV    A,#01H

LOOP2:    MOV    P2,A

          ACALL    DEL

           RL    A

           JB    ACC.3    ,LOOP1

           SJMP     LOOP2

DEL:       MOV    R7,#10

DEL1:      MOV    R6,#200

DEL2:       MOV    R5,#248

          DJNZ    R5,$

          DJNZ    R6,DEL2

          DJNZ    R7,DEL1

          RET

;―――――――――――开始计时子程序―――――――――― 

START:    SETB    TR1

        ACALL    DISP

        RETI

    

;――――――――――停止计时子程序―――――――――――― 

STOP:     CPL    TR1

        RETI

    

;―――――――LED动态显示子程序――――――――――――― 

DISP:     MOV     R0,#71H            ;显示缓冲区首址送R0

        MOV     R1,#01H            ;选中最右端LED

DISP1:     MOV    A,R1                  ;取字位码

        MOV    P2,A                  ;字位码送P2口

        MOV    A,@R0               ;第一位数字地址偏移量送A    

        MOV    DPTR,#TAB           ;指向字形表首址

        MOVC    A,@A+DPTR        ;查表取得字形码        

        JNB    P2.1,DOT              ;查看第二位LED是否被选中

        CPL    ACC.7                  ;如果是,显示小数点

DOT:     MOV    P0,A                  ;字型码送P0口    

        ACALL    DELAY            ;延时1ms

        INC     R0                     ;指向下一位缓冲区地址

        MOV    A,R1

        RL    A                  ;字位码移位

        MOV     R1,A            ;移位后字型码送回R1    

        JB    ACC.3,DISP        ;扫描完,跳转DISP

        AJMP    DISP1            ;未扫描完,继续扫描

            

TAB:     DB    0C0H,0F9H,0A4H,0B0H,99H    ;共阳极LED字形表 

        DB    92H,82H,0F8H,80H,90H

DELAY:      MOV    R7,#02H            ;延时1ms程序

DELAY1:    MOV    R6,#0FFH

DELAY2:    DJNZ    R6,DELAY2

          DJNZ    R7,DELAY1

          RET

;―――――――定时器中断服务程序――――――――――――― 

    

BRT1:    DJNZ     R4,NEXT

          INC    71H

          MOV    R2,71H

          CJNE    R2,#10,NEXT1

          MOV    71H,#00H

          MOV    R2,#00H

          INC    72H

          MOV    R3,72H

          CJNE    R3,#10,NEXT1

          MOV    72H,#00H

          MOV    R3,#00H

          INC    73H

          MOV    A,73H

          CJNE    A,#10,NEXT1

          MOV    71H,#00H

          MOV    72H,#00H

          MOV    73H,#00H    

NEXT1:    MOV    R4,#2

NEXT:       MOV    TH1,#3CH

          MOV    TL1,#0B0H

          RETI

        END

6仿真图

7总结

     通过毕业设计,复习巩固以前我们所学习的数字、模拟电子技术、单片机原理及接口等课程知识,加深对各门课程及相互关系的理解,并成功使用了Proteus Isis电子软件,使理论知识系统化、实用化,系统的掌握微机应用系统的一半方法,培养较强的编程能力、开发能力,并充分认识到团队合作的精得。

    同时感谢老师的指导和同学的帮助。

     

8辅助资料     

  (1)   1秒延时子程序:

  DEL:MOV R7,#10 

  DEL1:MOV R6,#200 

  DEL2:MOV R5,#248 

  DJNZ R5,$ 

  DJNZ R6,DEL2 

  DJNZ R7,DEL1 

  RET 

  对每条指令进行计算得出精确延时时间为:

   1+(1*10)+(1*200*10)+(2*248*200*10)+(2*200*10)+(2*10)+2

  =[(2*248+3)*200+3]*10+3 

  =998033μs≈1s

  由上式整理得:延时时间=[(2*第一层循环+3)*第二层循环+3]*第三层循环+3 

  此式适用三层循环以内的程序。

  

  (2)ATC52是51系列单片机的一个型号,它是ATMEL公司生产的。      ATC52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位处理器和Flash存储单元,功能强大的ATC52单片机可为您提供许多较复杂系统控制应用场合。     ATC52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,ATC52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。   ATC52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。 

主要功能特性

  · 兼容MCS51指令系统 · 8k可反复擦写(>1000次)Flash ROM   · 32个双向I/O口 · 256x8bit内部RAM   · 3个16位可编程定时/计数器中断 · 时钟频率0-24MHz   · 2个串行中断 · 可编程UART串行通道   · 2个外部中断源 · 共8个中断源   · 2个读写中断口线 · 3级加密位   · 低功耗空闲和掉电模式 · 软件设置睡眠和唤醒功能 ATC52各引脚功能及管脚电压

  概述:ATC52P为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 

P0 口

  P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的   方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。   在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。   在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 

P1 口

  P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。   与ATC51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),   参见表1。   Flash 编程和程序校验期间,P1 接收低8 位地址。   表.P1.0和P1.1的第二功能    

引脚号功能特性
P1.0T2,时钟输出

P1.1T2EX(定时/计数器2)

P2 口

  P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑   门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。   在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX @RI 指令)时,P2 口输出P2 锁存器的内容。   Flash 编程或校验时,P2亦接收高位地址和一些控制信号。 

P3 口

  P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻   辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。   P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能   P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。 

RST

  复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。 

ALE/PROG

  当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字 节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。   对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。   如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条   MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。 

PSEN

  程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当ATC52 由外部程序存储器取指令(或数 据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 

EA/VPP

  外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接   地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。   如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。   Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。 

XTAL1

  振荡器反相放大器的及内部时钟发生器的输入端。 

XTAL2

振荡器反相放大器的输出端。

文档

基于单片机电子秒表设计

基于单片机的电子秒表1.控制器的选择单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本低等优点,各个领域应用广泛。本实验采用ATC52单片机。2.数码管的选择LED显示方式有共阴极和共阳极两种,在本实验中采用共阳极数码管。字形码表的产生以共阳极为例,LED八段数码管的每一段接低电平时亮,不同的组合可以显示不同的数字,有一定的对应关系。具体的对应关系如下0dgfedcba11000000C0H1dgfedcba1111100
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top