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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用51做一个0.00-99.9S的秒表+ q% s# W) _7 W( |3 ^: M

6 H- v% R9 j+ I8 E5 `$ \
. ?+ w  I6 p. n$ b0 ?
#include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器
1 y7 d4 L1 \( U# Htypedef unsigned int uint;          //对数据类型进行声明定义
( u3 _; J! a, ]0 w' Otypedef unsigned char uchar;
$ d" T+ \) w. O# q' C' \9 E3 ^4 M
uchar datas[3]={0,0,0};
0 F" h1 e1 R4 W& u. m0 Tuchar code smgduan[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};//显示0~F的值
3 y* V: R$ b9 B* x/ {# X
  T9 o0 ~5 k4 W; w/ p+ ~3 ?( h4 o) J% }9 d; V' c& z' q
uint sec = 0;                        9 \: k, [6 X7 S$ l7 w
uchar i = 0;
8 C: n# D4 ~% x* c  o. wuint count = 0;
% O+ ]* Y, |2 @7 ~# @- \bit flag = 0;/ f* G+ S& K, o
% S! w; j# w' w1 L2 I& C+ n+ [
; c% \9 i$ A* }7 w- n) a% T4 `% p
void Timer0Init()
0 A4 }; p' z1 x- W{
. X9 E3 \( U% M* Z2 D- ]+ I( w2 j        TMOD=0x01;//选择为定时器0 模式1,工作方式1,仅用TR0打开启动。, d7 K, h3 k1 B4 M' n
        TH0=(-2500)>>8;        //给定时器赋初值,定时1ms
0 c( {' H! g9 V9 T: f  X! T        TL0=(-2500)&0x00ff;        ; p* T$ G2 L' m9 M' Z4 ~
        ET0=1;//打开定时器0中断允许' X; v$ r1 v% F' t) e+ \
        EA=1;//打开总中断% ]8 C7 a5 z  N7 n8 ~
        TR0=1;//打开定时器                        . `6 f4 J/ k/ D
}) [7 C% Q% E1 l1 w: U* g  O
void jisuan()6 A/ n4 F& ~1 g6 |0 B
{
" C4 S+ W3 @, D$ y4 @4 s9 C   datas[0] = sec%10;% a9 t. G! b0 F5 S& ~
   datas[1] = sec/10%10;
3 R: ^  z3 Y! F. F$ Z   datas[2] = sec/100%10;
6 C3 f- o$ Y# ^9 g}
1 I. u9 ?" t8 R5 vvoid main()
$ \  H; {( R" l5 v# i" J( {# X( @+ q{        3 D8 Y  R. n( ~, T3 ^
        Timer0Init(); //定时器0初始化; D4 G0 K' x" q. K
        while(1)2 `$ ^! s7 {" h: S6 a* u
        {
0 P2 a" H3 B! K$ L" I                if(flag)
& s8 a- \: {* y$ T4 b                {7 ^6 d7 c4 D% n; ^* A) G. X! q
                    sec ++;
* K8 z# T1 c+ t4 m* G' y$ r: S            jisuan();
" [. ^/ N( q4 y                    flag = 0;
0 e7 d: z% Y* R2 Y# A$ r                    if(sec == 999)% S1 I, n0 b; M" u" O9 t! {
                   {: z" d! ^: `5 c# \0 u) T9 |* a8 g: E
                         sec = 0;, ]# z3 M, U; k% e
                   }
* J4 v2 y* y4 S5 y1 I                }! i7 [7 ]2 X. N0 O0 Y- A4 u
        }               
; H4 e- L) E  X$ R- a}
: {# B4 a5 r: p  o1 j* p( Q& {  rvoid Timer0() interrupt 12 l. }! \" O/ r* d& e
{        
0 u* B! b  ]4 Q9 Z# G    TH0=(-2500)>>8;        //给定时器赋初值,定时2.5ms. I1 L6 V, B- }+ |( C* V9 Z
        TL0=(-2500)&0x00ff;        
# ~9 L5 h7 [/ A) O& T7 @6 O* E        P0 = 0x00;
# o. o$ p* o2 l( l  w        P2 = i <<2;
( V0 s% A7 g2 h2 Z& W% Q    if(i == 1)         
. |# `& N5 r9 _. B           P0 = smgduan[datas]|0x80;" P5 E$ ?. s, P& o- g& m
    else
' g+ y- t) Z  z- u, r' W9 ]       P0 = smgduan[datas];7 K& {" m, {* p' l7 @0 w9 H2 G
        i ++;
! m  x3 p9 k6 U0 s        if(i == 3)
! Y$ |; |# I4 w" W* R          i = 0;
- m8 h& K/ }8 V: N& _        count ++;
. p, `0 R, r; |. n0 B. S4 N        if(count == 40)//0.1S
- h, C; Q$ Q$ {. M7 p  ~        {
8 m5 f% ~( {' J$ [$ M" ~' X            count = 0;
, [9 Y* S1 g% d+ o- x, k& c' \            flag = 1;4 y8 _  w. K, H) ?% M( t; U
        }
$ U# \0 d# ^, |6 W% ]& ~9 T& {}
8 U2 b! t' n' X2 _( l+ 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 20:40 , Processed in 0.359375 second(s), 23 queries , Gzip On.

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

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

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