找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 86|回复: 2
打印 上一主题 下一主题

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

[复制链接]

100

主题

419

帖子

2424

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

EDA365欢迎您!

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

x
51单片机模式1为16为定时计数器,1、在定时器模式1的中断函数内重置该定时器,能否实现自动重装的效果?2、自己以流水灯为例试了一下,好像不可以,大家帮忙看一下程序有没有问题。(定时器定时10s,变量i,用来加倍定时)" T4 I. y" D- W! k& r! F& G( Z

) Y: ]* O$ H) ^9 n#include <reg52.h>
1 a9 v) _3 k2 L. v& ~4 r0 E#define uint unsigned int; Z+ G& k- j, G: p& R& _2 x
uint data i = 0;
$ b2 h5 c8 o8 c1 Z8 f% N. evoid time0_init(void)/ Y! |( `- R, u5 s: P# R  W  ^
{
, O4 O" D! |9 k2 F3 Q) J TMOD = 0x02;
2 n6 W9 x/ W2 H, @ TH0 = (65536-60000)/256;5 z& f6 w5 _8 _1 |
TL0 = (65536-60000)%256;
" ]  j/ ^4 p2 \& s EA = 1;6 B  x* ]& I" v# R! S( J. W4 e3 ]
ET0 = 1;* M% z) m- ^  J2 r4 z5 y3 C2 \% ]9 [
TR0 = 1;; ?6 V/ v6 P% N6 x7 ^
}
- U  F7 m* F7 d2 w
. ?. {, t' \6 C9 ]  C  a9 f  {) W# B* z
int main()8 K6 N4 Q6 ~) r3 U& E6 S( h& P
{ / p3 v6 D% o7 V/ W+ F7 I/ w1 }
  P1=0xfe;. Y+ ]+ v0 l, C0 n: ?( n8 j0 E  r
  time0_init();
3 Z- p5 b# f: @. s while(1);
4 t  Y( V: |3 R+ Q: v/ m}
2 l! G- O! ^" {. C) Y
1 c# R& I0 B. e6 _$ L8 _2 {
  H8 E- F( b% ~8 T1 s+ ~0 u
: x+ q4 |$ c! Kvoid flash(void) interrupt 1' y# _' P! b0 \/ O  P  h
{   
. H8 {2 H( S4 [8 w, k   time0_init();
& q; h/ u& g! B1 `     if(i>9): d, G5 m& s; J, _4 n$ F
  {
) k' m- l3 U: k$ i( M/ X3 p6 K    if(P1==0x7f)- w5 o1 m8 q" p: A: v: j: p
       {
" b# @& @; y: J        P1=0xfe;& V) h7 ^: a/ W( u" P3 q) V
       }$ v* v) e3 j8 {7 m  a
    else
" V: `" i9 _: Z9 k2 A0 \    {3 H1 q- u8 J+ I& f  `
        P1<<=1;
5 I+ N) j4 Q+ r( ^: b3 d; q    P1|=0x01;. [- [/ P9 ]5 Z8 z" @$ m1 w2 _5 N8 L
    }
3 @% b! p% X3 Q) P* u   i=0;
& n) l1 L0 E! B8 c4 W$ x* _4 X  }3 v5 Y9 f+ I6 R
else + f( q% r, g* h2 d/ E8 P
  i++;/ e# D! r, K4 @. Z2 u
}
; l( T0 d' R5 |- Y$ }" o, ?: \2 f0 s% T
8 j: z1 e' p/ ?
8 a+ F* ?! |  V, d* `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

0

主题

2

帖子

146

积分

二级会员(20)

Rank: 2Rank: 2

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

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-21 05:17 , Processed in 0.056594 second(s), 35 queries , Gzip On.

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

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

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