TA的每日心情 | 奋斗 2023-11-14 15:58 |
---|
签到天数: 230 天 [LV.7]常住居民III
|
本帖最后由 sucideonce 于 2022-5-17 16:49 编辑
$ B) f- f9 h/ ]
( k1 [6 e/ ^3 P: N. i之前保存过得代码,希望对你有用。 4 e* q$ J7 R1 S+ b t6 [4 d
* v- ?( ?* n2 }$ v- J7 Q#include <reg51.h>. K/ O! {' ?4 t! Z3 r4 Z0 c
sbit key=P1^0; //定义key为P1.0
; ?5 L. D2 ]. Asbit led=P2^0; //定义LED为P2.0
; ^6 A1 h7 D$ m: {9 o- j( J* w" N! D
void main(void)
0 e( M3 U0 K1 G+ a$ U1 E{" t- u1 k* E# h" h3 G8 n$ C
TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。1 p$ D7 |% R# J0 r! ^' s
TH0=(65536-10000)/256; //给定时器赋初值,定时10ms
, j. V( _% o) `9 C2 L TL0=(65536-10000)%256;- B: Y; A) A0 }. ^# ^3 o9 N
ET0=1;//打开定时器0中断允许. C4 y' u E$ _+ _
EA=1;//打开总中断. t) t* [8 @0 K' k
TR0=0;//关闭定时器 Q( A6 @# w7 \. |3 D
while(1)
+ k! K: x) Q2 Q- f1 p" m% Z {
& i* ]4 ]% J0 B. }. _ if(key==0) //读P1.0引脚,如果引脚为低电平,则进入if
6 C& Z5 c9 s: |' n( O6 E: _, v9 V { u& F4 j" k7 A. C5 s
TR0=1;//打开定时器; u; e& T; W3 j) \( s4 O/ ]
}+ q+ Z% t" h1 r8 j6 ^" B$ m# }
}0 j2 |& H C* b0 A! @
}% |! z' K6 G- b. C. i# l9 w: _( M b+ ^
" O4 h# h& x5 h8 N4 r. r9 _, w1 h& g
/*定时器中断*/
# ?, I% q+ t) Y$ V$ _; @- xvoid Timer0() interrupt 13 b7 Z+ p) J4 c$ p/ o5 w+ T* P; y
{
/ [/ ]; A6 E' J4 ]2 A4 h TH0=(65536-10000)/256; //给定时器赋初值,定时10ms
% T# L$ u0 R9 n$ Q TL0=(65536-10000)%256; 5 P: L1 D/ Y, B0 P, }7 ^; M& P
; J6 y: x/ D0 D; i( m+ d. \& F
TR0=0;//打开定时器/ o G% I* N; G# R( P
if(key==0) //再次判断按键是否按下$ o! j, x- K! _$ J; G. ~
{
: r0 |' C# e9 C6 j. B$ Y led=!led;
/ t+ X; b" N. w while(key==0); //等待按键松开
+ x. Z- S7 G: h' a }% V5 G; o7 D0 Q7 l
} |
|