TA的每日心情 | 开心 2025-6-17 15:35 |
---|
签到天数: 265 天 [LV.8]以坛为家I
|
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
|
|