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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用51做一个0.00-99.9S的秒表
5 Y: o; Y" q* P! X& b* O# m9 Q0 \' N  C* H! X8 T1 o9 Z( g
8 c; \0 E3 M1 C- ]8 W% K, c! A1 n: w
#include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器9 X9 M8 L4 l  ~8 r
typedef unsigned int uint;          //对数据类型进行声明定义( h' }% t8 [+ f& k
typedef unsigned char uchar;* U3 z: `) V: S+ @5 v) o. K
0 H2 L/ J5 z0 }
uchar datas[3]={0,0,0}; / y  G) `/ C/ D7 l& F+ Y4 u
uchar code smgduan[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};//显示0~F的值4 D6 G. a0 E/ U0 O1 o

* c; c& P. D' z& z( \# g
9 ]" t0 F4 ^$ q. {* Ouint sec = 0;                        
. A( V- l* e; R: O  I8 [; d7 Luchar i = 0;6 d8 }  s8 M6 _4 S; X! \4 S/ \
uint count = 0;3 M* x8 Q( v2 U3 U
bit flag = 0;, g$ Z$ O/ S5 w5 a' W
$ K" @( U/ V1 l' l4 u# {4 o6 D
6 o! l8 F# B: H4 {; a! d. L5 c
void Timer0Init()3 W- q4 j. {% X3 r+ q
{, P. d, T# T! c) J* P2 c5 p* j
        TMOD=0x01;//选择为定时器0 模式1,工作方式1,仅用TR0打开启动。
/ L7 l6 A+ S+ Y* D+ I6 ?        TH0=(-2500)>>8;        //给定时器赋初值,定时1ms
0 m7 A3 A+ b+ X1 Q9 [$ r9 v8 z        TL0=(-2500)&0x00ff;        7 g+ J+ g8 f4 G( O2 I
        ET0=1;//打开定时器0中断允许
  V* K% z5 ?2 I, G1 b        EA=1;//打开总中断
; \- k1 ?: S# x+ ]$ R        TR0=1;//打开定时器                        % s2 o, ?1 w& U: _' Q/ ~( K
}
) F" H/ M7 t/ _3 v- ~7 ]( nvoid jisuan()
  \: V9 D$ _# a) h; g1 t{
! b$ `# R) \* {  p. S: Y: R1 e. V   datas[0] = sec%10;
$ z6 g% A0 E  X# y+ b2 a   datas[1] = sec/10%10;
, J- ?- M; v4 i$ D   datas[2] = sec/100%10;- X' J8 m! |" z
}
  D: M2 M6 b( X$ U# Qvoid main()$ ?  K! _) S: |. A3 v8 O! I
{        4 u6 u) W/ q8 z
        Timer0Init(); //定时器0初始化
: x/ r1 F+ g( X' J9 \        while(1)
7 m; z5 s3 j. [9 s; D% q9 i* s        {
8 I0 B: G1 O' _8 k1 n                if(flag)  W5 g$ ~  h1 k2 |! X7 \
                {
2 f: I" C, j+ Z( p9 t7 C) W                    sec ++;
/ C' c4 t4 n/ ]# f            jisuan();
% S4 h9 K9 v& L2 j                    flag = 0;  o* \) g, \# l8 i1 p/ w) b+ f# O
                    if(sec == 999)
- O( h5 a5 o( |2 |" J7 {! @* q/ R                   {
2 |  g! z4 |5 o                         sec = 0;! d5 R8 }. o2 {% L
                   }
) m& X; h; F! r$ X' ~- _' {- O                }* c/ e: z9 L( n
        }               
# T. }3 J. B3 c* [% T6 ?# n: O: f}
# A. \9 o3 d8 X8 h$ r* S0 ?void Timer0() interrupt 1) [. W( \7 r* Z( _# h( \
{        4 m( H2 I# z. y1 n1 p3 G
    TH0=(-2500)>>8;        //给定时器赋初值,定时2.5ms$ y  u: k" S. E- u7 {& v- T5 D
        TL0=(-2500)&0x00ff;        
5 n& ^, o  {& I# ?# ~6 d        P0 = 0x00;
1 c; `0 v) c! I        P2 = i <<2;
+ X0 v' ~' b/ ?+ Z0 u7 o0 h    if(i == 1)         ; t1 I0 x: l; p. C' R
           P0 = smgduan[datas]|0x80;+ T# P, C& {+ E; L# v
    else
. F. {, f; W5 T2 K+ `: P5 o  n& q3 s       P0 = smgduan[datas];
+ Q/ a2 S; C& }. ?+ V        i ++;' r1 D$ b+ I0 ~0 F
        if(i == 3)
: D6 C# G* r, ]9 C& f5 m          i = 0;7 m! ]% ~  D; R
        count ++;' L( H2 c8 @7 b$ y' A' N- e
        if(count == 40)//0.1S
/ l6 |) x1 c2 i. x: v/ z        {
& x" h  k1 H4 ], e7 @5 |            count = 0;
! g; t1 q9 e/ ?            flag = 1;) m$ y9 b2 {' D* a: L9 q3 f, m: o5 ]6 N
        }
8 e9 {2 p, h5 O( v# S: Y0 B. m}

& b/ |4 j5 O' J$ Z  o: p  d

该用户从未签到

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 19:22 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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