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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用51做一个0.00-99.9S的秒表  m: _3 x0 \4 J: q

% D- Q# x  e( S- N$ U$ Y2 Z
$ N* T. Y& A% O$ |3 {9 d) Y
#include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器
2 M$ K. |+ \$ P0 G4 Mtypedef unsigned int uint;          //对数据类型进行声明定义, i6 M8 T  B/ R2 F
typedef unsigned char uchar;7 O" U  l% l% O

% U3 d. z" q/ fuchar datas[3]={0,0,0};
" Y8 ]0 _8 u3 a! ouchar code smgduan[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};//显示0~F的值
8 V0 {% }  b+ @3 T9 l0 N6 }& K3 @' F8 r! k( o: \
* p/ f& c: k& w, f
uint sec = 0;                        
7 a1 G' W- X9 w. W0 kuchar i = 0;
5 Z. i1 B. H- X1 Z% [uint count = 0;; i5 k2 l3 z- d  N7 p! F4 ^
bit flag = 0;3 J! l6 a; L8 |, K) i

8 C$ b4 y/ P$ S( V' {
; H0 q, D7 ^8 Z! X6 uvoid Timer0Init()# U7 s$ [2 }! u
{
+ e/ I1 G1 n1 x        TMOD=0x01;//选择为定时器0 模式1,工作方式1,仅用TR0打开启动。
1 x) y! G) z( ^+ l3 Y* y0 S        TH0=(-2500)>>8;        //给定时器赋初值,定时1ms" ?0 D4 r: I2 k& v5 a
        TL0=(-2500)&0x00ff;        
: L+ q, L/ y7 K& a# S# K        ET0=1;//打开定时器0中断允许
, w0 U+ K" k# B1 A( c0 p! _        EA=1;//打开总中断; R4 H% O" j1 ^, c  E
        TR0=1;//打开定时器                        
/ z1 A- c( a+ W  F+ @8 a) Z}
% i3 Z* N4 }  V# mvoid jisuan(): I. P$ j2 s! z3 B/ X2 h9 G1 ?
{
* e6 v$ Q' `" ?1 ~   datas[0] = sec%10;
3 x4 z4 A$ U, Y. ?- i   datas[1] = sec/10%10;$ z! ?% V* i5 _- x- o4 X
   datas[2] = sec/100%10;
% n; u3 C4 U5 w: r5 {  A8 O}
* W+ d/ d! [4 S/ I( b4 S1 avoid main(): ]( B) U% E1 p7 o
{        . j5 x6 D* C4 \% S, h1 @
        Timer0Init(); //定时器0初始化
( u4 }7 L# ]/ W7 o        while(1)5 [' v1 @/ L1 M# n: d- t" V* }
        {+ w, j% q( U5 P2 v1 p7 z
                if(flag)- G8 y6 {% w. Q! L8 d
                {
- c+ V5 M2 q1 z                    sec ++;) Z) J, }3 w' z1 k6 a' a% v5 I
            jisuan();5 K% }2 `) \; \. L8 P
                    flag = 0;
" w$ O. T& ?3 P/ o; x' ^! @                    if(sec == 999)
& A  L3 J. Q5 n: c8 [; K                   {
& C3 p, o+ R, }* o7 d                         sec = 0;1 _1 @0 t$ D8 n+ o- _9 l
                   }
* u/ v2 N2 F" y# }: m2 T) B$ C& u$ N# ^                }
' Q) s! }+ p' @2 j        }               
6 n% Y% ]" X) Y: g" `! e}
$ R* a/ }# v  T+ {. H' Kvoid Timer0() interrupt 1
& X; w9 E( ?) j$ P2 {" {{        
5 M! a# v* k& s0 N  s    TH0=(-2500)>>8;        //给定时器赋初值,定时2.5ms4 v6 K2 f# G$ c. q- C
        TL0=(-2500)&0x00ff;        : o6 J+ a( Q$ u$ i- T
        P0 = 0x00;6 v/ r* O5 L6 I3 i4 t
        P2 = i <<2;7 K1 C: G6 _; g( Q; G+ i. G
    if(i == 1)         & ^7 S8 |- e5 v% S2 s; i8 v5 ]
           P0 = smgduan[datas]|0x80;
8 z& F' j9 A6 C6 Y, o0 }    else
8 U$ J) G$ _1 j       P0 = smgduan[datas];
. K4 n6 g4 {$ N' c+ s$ d        i ++;
2 {0 A; r, I1 d4 `; u+ m        if(i == 3)' ]7 i+ ^% u* n, V8 t
          i = 0;& i5 X) h  [% H  s1 m
        count ++;  G! w. _- |" o
        if(count == 40)//0.1S
4 s/ l/ G" R4 x( a& Y        {
1 F0 J! a' P* O4 P) a0 a: I4 ^; _            count = 0;& U- x) w" ~: b
            flag = 1;- ]2 q- }' b2 L: x& y
        }( I6 B0 p8 N7 t) M% A) G% f
}
+ Q6 \! e) Z. y! |1 H+ y9 _- q

该用户从未签到

2#
发表于 2019-1-11 14:04 | 只看该作者
不错,谢谢分享
  • TA的每日心情
    郁闷
    2025-5-27 15:47
  • 签到天数: 47 天

    [LV.5]常住居民I

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-14 04:35 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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