找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 88|回复: 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,用来加倍定时)
! o! [1 @4 c5 P8 M( c$ O  d7 E8 k3 x7 t; V5 b
#include <reg52.h>
8 D( I2 q5 D+ f. G3 M+ j. g#define uint unsigned int0 E/ W% a+ s8 M6 E! a6 A: }/ |
uint data i = 0;
/ N4 o, k5 ]  x8 Ovoid time0_init(void)  r/ ]6 V# e! H3 S8 B
{& {  I8 T5 c. F; J9 `9 h
TMOD = 0x02;
* ~" K" j1 \  ?  ~* W% {9 p) c TH0 = (65536-60000)/256;
' \0 F# P+ F, X) G" Z' T TL0 = (65536-60000)%256;
4 H6 q5 H1 V( t5 c" u. @# { EA = 1;
+ N6 S1 P+ J: ]+ T ET0 = 1;
4 s* |6 r1 t# G( M4 H TR0 = 1;4 w5 ?# h  ?! N/ {, J+ S; E
}
1 f" X# {7 R9 S. D  O1 K" w) e2 A& m/ |

: g) g8 g1 J6 B) \3 }; X; n3 t: f/ w" [int main(): [4 A( z/ p2 V+ ?2 E
{
, G( z( b+ v# t9 J  P1=0xfe;# D- n  c& K2 s, b
  time0_init();
9 s$ V: n6 w8 q+ n+ n while(1);
' g! h$ F; W, p5 q}/ E# o# t- [1 K% ]

( q( z( q2 T6 D& i! |, C- a2 }1 K- f' ]- Q

& A3 D. D4 C0 j. A" mvoid flash(void) interrupt 1
8 K8 Q, P& x1 N1 X{   
! _  A  U1 S4 R+ Q& e   time0_init();8 s/ z) L! E! U7 }& \
     if(i>9)! d- f2 J9 g9 T7 C
  {
, e2 K; B( q8 F0 m( ^! n( r    if(P1==0x7f)
$ x; p* h, n; N5 I- `, Z( I. p       {
! e6 `1 v+ o2 u9 R" K' @        P1=0xfe;) r( i* ^2 ?! Q2 C+ m3 J
       }
% B2 A2 ]  V! g0 e  }    else
8 D3 n1 B9 m1 x8 v" n6 H    {
- l" c% X- |: K( C- A9 w) p        P1<<=1;
# n; [+ q6 T: w9 s- l: f) m    P1|=0x01;
( q. l+ P; m! F8 Z# b' d9 O    }; V! n/ E5 I; z3 {7 S& k
   i=0;
8 O9 B' K8 O/ y6 v" L8 _  }
6 ~" S. Q; S8 [+ V: E else
% o+ n! L, [; ?! \  o% f  i++;
2 A. r' O1 t/ Q  _}6 x, H& {' h; T  l- N
4 P3 n, O3 @1 N2 s, Y

3 O: R" T, J8 w6 y# O5 ?1 N+ @2 h$ `( ?# v1 \$ j1 y
分享到:  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:20 , Processed in 0.056708 second(s), 35 queries , Gzip On.

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

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

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