找回密码
 注册
关于网站域名变更的通知
查看: 738|回复: 3
打印 上一主题 下一主题

用51做一个0.00-99.9S的秒表

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-11 13:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
用51做一个0.00-99.9S的秒表
2 j% X% r8 A5 q* x, K" E) C
( G# N! ~1 n' x- F

! k1 p, s9 R% ^7 |3 ^#include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器! t9 t  t! J$ M; Q: q8 D
typedef unsigned int uint;          //对数据类型进行声明定义  G  M. Z& M3 H1 t- y- F, I
typedef unsigned char uchar;
4 U( e7 q3 N8 z5 p+ }" u5 ~
: g# K! A: A; U: w2 `uchar datas[3]={0,0,0}; + G& T; ]& h6 M+ O; k1 a
uchar code smgduan[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};//显示0~F的值6 u" F: v' Y- Q) }/ q  F) v- k
8 d& b% P% W1 ^8 N' s$ C

* v5 L% {; _* q  Y5 {( F0 buint sec = 0;                        5 D) ^4 D4 C5 o' B
uchar i = 0;0 ~5 C; O6 o) E0 `0 {4 q" ]+ m
uint count = 0;! F' |; m$ }- n. d" @3 p# N0 c
bit flag = 0;+ M+ w8 N( Z3 g2 T( U: I
' ]# E9 Z3 M, X9 o6 i
/ Z1 R7 c- h7 z7 U& H6 Q
void Timer0Init()
9 n# D) L# v% L{( ^2 X5 ~* e9 @# a8 W, Q
        TMOD=0x01;//选择为定时器0 模式1,工作方式1,仅用TR0打开启动。1 |; Y7 p! \, }1 F
        TH0=(-2500)>>8;        //给定时器赋初值,定时1ms
) I$ N' u" k' Q$ M# [7 p        TL0=(-2500)&0x00ff;        0 [0 O( z+ M$ U
        ET0=1;//打开定时器0中断允许
! a4 m5 d& l) g0 k        EA=1;//打开总中断
2 o: @5 |" N, s2 G7 {        TR0=1;//打开定时器                        
  K1 X: z8 B8 r0 _+ u}
9 Y& E, j/ D/ t4 {' o% I" S6 g/ svoid jisuan()3 w/ z  E9 p; p" ~. H
{( p9 x9 z1 A& ~0 j; V1 E/ W
   datas[0] = sec%10;
3 l& e& a0 |! M$ |, T% B) H   datas[1] = sec/10%10;) Z8 i+ G. f6 [. @% \  Q5 ?. H
   datas[2] = sec/100%10;2 v9 a; D! X% \8 A  P' ]
}
$ W0 A- V7 @- U/ Uvoid main()
& J9 D8 p" V# L, j. u) K{        
1 d; ?- n6 p( I8 q" Z  n        Timer0Init(); //定时器0初始化8 \  f$ _$ S" G6 W
        while(1)
% w8 C7 j8 I: C        {, K# w7 G" m( v% A' {4 V$ C3 ~
                if(flag)
& V( P( ?" M, b- b; i                {
- s- r( a( F! a7 q                    sec ++;  w" J: m5 O0 l- K( e! O9 N1 f
            jisuan();7 I& K3 t+ K: k' \9 T7 @
                    flag = 0;) @$ y' p6 D5 [
                    if(sec == 999)
( a- D! O" D' g+ o1 c! f/ Y                   {7 Q; |. ~: A! [
                         sec = 0;
9 Q: o0 v7 G: [9 I' z) B4 G% X                   }
7 i8 h% s* x. e" l9 }                }
0 T; c6 I5 \0 O. l        }                & R! U% T  O2 x* b
}0 R$ J: ~/ k  y  c8 v) _5 x3 \
void Timer0() interrupt 1
- u- S. y4 A( H7 j, W$ [  {! ~{        
, A8 j9 P/ ]( |- `  f  R    TH0=(-2500)>>8;        //给定时器赋初值,定时2.5ms7 ~9 X  V7 k: G! i
        TL0=(-2500)&0x00ff;        * \5 M0 I! x4 l
        P0 = 0x00;
! K+ Y+ k1 e# s7 K- S        P2 = i <<2;: _: O: f( M$ p* t# E/ q8 g) |
    if(i == 1)         
" B  ]' ?  q$ N$ H. e; {           P0 = smgduan[datas]|0x80;0 p( e) w, g! i6 x) A/ m# ?7 a" U
    else) K, ?5 l- J* H1 ]# P, Q. a# M
       P0 = smgduan[datas];1 W: W% g# z) \8 c. o. ?
        i ++;
9 N  d) `" i/ h9 c        if(i == 3)
& ~" Y  s2 c6 U* d          i = 0;
; `( w9 m% c8 M5 M, U9 B        count ++;4 e* y- Z! G4 m( N8 J
        if(count == 40)//0.1S
% @  f* K" r' C. Z, _        {% Z2 x2 h2 i+ m6 l  S' Z2 U& A" p5 }
            count = 0;
+ h9 F) d. \$ U            flag = 1;
! |8 t9 h5 g  x" Z. _        }
" a6 J  R% P7 [. z: D* Q}
' b0 a+ u/ g3 T+ _( A

该用户从未签到

2#
发表于 2019-1-11 14:04 | 只看该作者
不错,谢谢分享
  • TA的每日心情
    擦汗
    2025-10-20 15:44
  • 签到天数: 62 天

    [LV.6]常住居民II

    4#
    发表于 2024-8-10 16:47 | 只看该作者
    一点下载都要搞个威望值,一点都不地到
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 23:20 , Processed in 0.171875 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表