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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用51做一个0.00-99.9S的秒表
9 a7 r1 H- A* `/ Q3 Q; d/ v$ e- t4 F4 G; m- L: o
0 a( Q7 @4 t0 {
#include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器
+ `% c" R6 F! |* H- z( utypedef unsigned int uint;          //对数据类型进行声明定义7 i/ _- g6 ]" Q7 |% l
typedef unsigned char uchar;
" U3 S) e# f" q- l
' m$ x/ j2 E1 juchar datas[3]={0,0,0};
( Q; ^( t" l5 A9 ^, ~uchar code smgduan[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};//显示0~F的值
+ K, k$ j, |2 t1 @0 d0 H
& ?$ k8 W9 I& k3 x# c! `0 C( u5 H1 f& }5 W" V# ^# d/ L& W- v
uint sec = 0;                        
2 H  Y( X& d- Q8 r  f- F# euchar i = 0;  O* D4 ^" I' O( @2 k1 l
uint count = 0;% @0 W$ A2 a: F3 H' Z
bit flag = 0;
' h  s/ I% W9 ]- N; Q% d% G
7 B% z& B! A5 X0 ^! c' U
- r2 L5 G& k" a# Ivoid Timer0Init()3 z- l. z; ~7 X
{  _: @% p5 o+ ~7 y2 h; d. Y
        TMOD=0x01;//选择为定时器0 模式1,工作方式1,仅用TR0打开启动。
6 l# {+ p& u. b' J/ x) \$ a        TH0=(-2500)>>8;        //给定时器赋初值,定时1ms
3 [9 Y% M- Z! W/ |- @6 S+ k$ w! l        TL0=(-2500)&0x00ff;        
% |5 E/ ~7 l+ u4 \% A! ?        ET0=1;//打开定时器0中断允许4 ]  K7 w& w! T) f
        EA=1;//打开总中断
2 p0 I- v/ @6 ?5 p' `% `7 G        TR0=1;//打开定时器                        
+ j4 g4 B8 G" {' B' @3 \. s5 [}5 v' W2 Q& S; x" I8 @; K7 G
void jisuan()
9 l3 r4 O7 A7 w* k/ c{" m5 _3 D/ Y* R9 ~2 w* P/ E8 p5 U: h
   datas[0] = sec%10;
' j9 Z6 q0 `4 b  ~) {   datas[1] = sec/10%10;1 j) g& ?) \* ^
   datas[2] = sec/100%10;
5 v* i5 V7 c2 ^8 e  X  `; T6 S}! N- p1 E7 q+ T
void main()5 f+ s0 W3 Y% e9 k% J) o7 X
{        7 f4 F% e6 N4 n0 ^* N6 C4 g
        Timer0Init(); //定时器0初始化8 T; S/ d! c- D
        while(1)
7 G3 v  W+ r% ?  V4 |        {
/ D; a7 m6 y" X8 s( {+ W: T+ h0 n* N                if(flag)
& S+ ^0 ^. E! N/ e                {
/ o' i* B# ]7 Y0 @* [8 I! H1 ~" c                    sec ++;
/ a' ^# @  I* I9 Q3 V            jisuan();) ?3 l/ n& B8 O' \
                    flag = 0;5 x: ]+ X7 D) ~6 R
                    if(sec == 999): B- ~) w( \# }7 u  N
                   {
; q/ a" z* X' F8 O) l/ f3 t# ~                         sec = 0;" e8 s0 o1 t. [; C3 g* ^" B
                   }
0 K% Q% Y2 z8 h6 c0 h7 \3 v                }/ f( a7 w# [( n/ i% E* l& ^
        }                6 E7 X! y7 U9 j$ @: O) B2 u7 K
}+ ^% O3 W3 x# U* W
void Timer0() interrupt 19 H) @. C9 p: x5 U2 s3 v- C
{        $ Q# k, A2 c2 `# U' f! l" G3 w1 [
    TH0=(-2500)>>8;        //给定时器赋初值,定时2.5ms
1 h( p. D$ h$ s* M3 r        TL0=(-2500)&0x00ff;        
2 b& f+ Z; n9 n3 d' Y- O/ m9 U        P0 = 0x00;8 P9 D# C) U9 C
        P2 = i <<2;/ h2 ]( p9 t) x; V
    if(i == 1)         
' j4 o0 c( V2 h           P0 = smgduan[datas]|0x80;
' f4 h) Y) w$ O    else
9 ?7 Z9 A! `. s       P0 = smgduan[datas];0 e5 C# b+ i! K- U* J# K
        i ++;
! m% j8 Z1 W2 q/ \0 R        if(i == 3): K( Q+ W9 d3 j, T; i
          i = 0;
8 e# G: V+ S0 J8 v        count ++;% g' J/ H& i( @6 j; u
        if(count == 40)//0.1S+ ^) P' O5 C+ W. o" n) P6 k
        {
/ v3 a* x% g9 a) V: J& I            count = 0;
$ G& m# q1 |, T- O& M# s/ V- J            flag = 1;
5 z7 o4 b6 Y- w        }6 @# I$ p" K6 `" \  d* V2 Z
}

3 l" ~& W2 h! e! Y' U/ F! T6 c- T$ U, ]
  • TA的每日心情
    擦汗
    2025-10-20 15:44
  • 签到天数: 62 天

    [LV.6]常住居民II

    3#
    发表于 2024-8-10 16:47 | 只看该作者
    一点下载都要搞个威望值,一点都不地到

    该用户从未签到

    1#
    发表于 2019-1-11 14:04 | 只看该作者
    不错,谢谢分享
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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