找回密码
 注册
关于网站域名变更的通知
查看: 710|回复: 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,用来加倍定时)
    * I+ G( c( t3 [1 f1 \; _  l6 B7 N7 w
    . n' O' b/ K, C9 i#include <reg52.h>
    ' _  Z  s6 j" h6 g#define uint unsigned int( R9 a) B2 F: e  U  X
    uint data i = 0;
    $ ?# s( a: K4 t1 F" \void time0_init(void)
    ) }5 l6 N+ d, |8 ?+ N2 I3 ]{
    0 O7 J5 R/ a! k7 [0 X5 A* W TMOD = 0x02;& h) K1 X5 |, W3 a. z( `
    TH0 = (65536-60000)/256;
    % P. {3 L& C; K& j! X; x9 i TL0 = (65536-60000)%256;+ I. D( d& \/ {; G( l$ I9 g3 f
    EA = 1;3 F( x* ~* r" `6 r5 T* j
    ET0 = 1;
    ' p- Y! l- n/ o3 ? TR0 = 1;
    1 N  f9 _6 z9 i2 y1 f4 b}
    0 c: b0 }, u/ L) P" P7 d  q1 H) [  @. Z
    2 _5 L5 @% _" v/ s* S, |2 M
    int main()
    ; D/ c6 O$ g. i0 c{
    3 q+ v4 ^8 ^9 M9 ?  P1=0xfe;2 w$ |3 X, q  N. [
      time0_init();
    / n4 @% k0 q. X while(1);
    2 w& J6 B6 ^% G+ D, t}7 h0 R. N3 G# J4 n; T0 V; \
    " G+ {5 c) h) S
    , u& G! P# j" w# @6 u
    # V' J3 q/ c6 F2 Y" Q  |( P( ~
    void flash(void) interrupt 1
    ; e8 ~, z: R+ c: p& H{   * R, _+ Z/ p0 t; x! A. d
       time0_init();: W5 [% ^6 ], ~
         if(i>9): U+ k% S, g: H: W0 }
      {
    - V$ y4 {# T2 k- r2 k( \) P7 I    if(P1==0x7f)
    4 v2 K6 p; ~# t8 g3 u* e7 o/ U       {
    8 q; p8 R) j4 w+ b# o, s        P1=0xfe;4 e) d& S1 Q; F4 w7 ]
           }
    1 c) H# J/ Z" k  w' \+ M4 d    else/ j5 U; p) U, W/ Z
        {6 K" N0 f3 m( v3 D- \& t0 O
            P1<<=1;! s5 d+ z- X4 g* U
        P1|=0x01;. a: z' C- t9 |! Z$ d6 h. x
        }
    6 i$ J- _8 I6 ]5 }( \& K   i=0;! K0 r% E2 O+ f+ Z: s
      }* i. S/ W- @. y& P# A
    else
    % I* r2 m% l5 g' o' P7 s  i++;
    6 T/ s& v! `0 B+ x$ C# _3 H}
    3 Y8 s" O9 w; u' k" h+ r- ~! `) \3 B
    4 C# Q1 o  t, L0 b
    - M, W. f) z9 `/ R* _

    该用户从未签到

    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-8-24 10:25 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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