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

51单片机定时器中断函数内能不能重置该定时器

[复制链接]
  • TA的每日心情
    开心
    2025-6-17 15:35
  • 签到天数: 265 天

    [LV.8]以坛为家I

    跳转到指定楼层
    1#
    发表于 2017-7-22 14:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    51单片机模式1为16为定时计数器,1、在定时器模式1的中断函数内重置该定时器,能否实现自动重装的效果?2、自己以流水灯为例试了一下,好像不可以,大家帮忙看一下程序有没有问题。(定时器定时10s,变量i,用来加倍定时)
      k) x( T5 E) H# _4 {% p% v$ ?( H+ K* j
    #include <reg52.h>
    % I  f4 {) |+ q/ _& x#define uint unsigned int7 T& R6 ]& K* E
    uint data i = 0;
    : ?' ^; r( m3 Y$ B. b& x; S+ Jvoid time0_init(void)
    # ?6 F9 l0 m& ~6 j{
    * S, m. A6 _  H3 _ TMOD = 0x02;
    $ D! r8 B  d; Y1 |/ O! i& G TH0 = (65536-60000)/256;3 s: A* j. m2 c7 E6 s4 [, c# S
    TL0 = (65536-60000)%256;$ d# d, O( x# b6 w6 t: Y8 N
    EA = 1;& A6 w% V+ C  A) y, R
    ET0 = 1;
      {& K2 _; A6 e TR0 = 1;  `4 A" X0 @2 t" ?  J$ n
    }/ G6 W( U) k, h1 W  z7 W) v
    # p6 w7 \) \! |' t& N8 ~
    4 H' @$ S( c9 j  U
    int main()# R) Z. w; u# B5 O9 @1 O
    { 3 V, I$ O8 }, @% D3 Q0 D
      P1=0xfe;. P% A1 I4 n/ q! i, o- _1 p
      time0_init();( q7 a, k4 Q# L( J
    while(1);. P- o0 x" D% e- ?
    }
    ) x' w& j( f8 c0 k$ Q& ]2 k& g3 y' g7 R: E4 S" L, |2 O
    & X/ D5 ?2 q, T
    & N- ~1 D* f6 ]3 H
    void flash(void) interrupt 1* Y/ A5 M5 Q$ ^7 ]
    {   4 h" l2 H' x' ^# Z) e* v
       time0_init();! P8 Z6 f+ N/ X# j: B3 @+ m
         if(i>9)+ ^: L  d7 s  U4 y' x9 o$ b+ {
      { ; s  J- t" b/ f1 |
        if(P1==0x7f)/ z( M" p* v) t* w8 w
           {
    * c: F7 Q' v4 `6 F( c2 x        P1=0xfe;
    * `+ H/ b! w% ]2 z& q2 K       }
    0 X) Y" V* f& O    else* y* C, r* I$ f+ `1 A9 h9 C
        {
    ) j2 a8 ~. r/ d; h0 K        P1<<=1;
    $ Y( h) t: O' _    P1|=0x01;5 K- s8 t; `" A- Z
        }: d& B; m5 {8 ?+ H% c
       i=0;/ c3 _( V# M) R( j. _& x/ I# y
      }
    5 X, J) ]4 u2 E else
    4 w. C. [- C: s  e  i++;
    1 _9 ^7 x2 B. i}7 [" ?" t: c6 f+ [" z
    0 V4 [  V3 o+ @; N2 F
    ; v( w  }7 `# ~# V$ A, N4 P6 G- q
    5 \1 q4 r' e2 D6 O# t* \2 K- Y

    该用户从未签到

    2#
    发表于 2017-7-25 12:54 | 只看该作者
    定时器方式2是8位自动重装的定时计数器,通过设置TMOD来设置M1M0选择方式二,这样定时比较精确。初值的计算会有些不同。自己参考一下资料吧

    该用户从未签到

    3#
    发表于 2021-1-10 00:09 | 只看该作者
    感谢分享6666666666666
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-21 05:45 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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