TA的每日心情 | 奋斗 2023-11-14 15:58 |
---|
签到天数: 230 天 [LV.7]常住居民III
|
本帖最后由 sucideonce 于 2022-5-17 16:49 编辑 . a) S2 i1 e! v7 R
1 k. o" A( h& S3 O8 ^* M' M, R+ l之前保存过得代码,希望对你有用。 
8 k7 y9 w. \; ~8 y+ w
8 M. Z1 _. ~$ l) D: F#include <reg51.h>
( ^9 h+ s3 ~4 ?2 E0 Rsbit key=P1^0; //定义key为P1.0% X- W2 E2 i" M/ ^* a& |3 k, s& ]/ @: @
sbit led=P2^0; //定义LED为P2.0
$ O% G4 E& \4 {7 S/ }# a" @: Y1 i% z7 J2 H# ?
void main(void)6 @8 ^ @( m. h- y% N6 o
{& j$ l- a9 g7 L% k+ J. X( Z
TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。8 s E) W) _$ `1 t6 ]9 p
TH0=(65536-10000)/256; //给定时器赋初值,定时10ms7 {2 e# s) o9 @2 B5 P( g: |) Q5 F
TL0=(65536-10000)%256;! o: t- p. J& {, L. L6 |9 s
ET0=1;//打开定时器0中断允许
5 P) e# G' l* `1 f4 K1 X& z EA=1;//打开总中断
0 P' d, V# E% y: o7 p" u0 F" h5 K TR0=0;//关闭定时器 * i8 V- P5 s% j3 P( h2 U
while(1)
: c- f* z8 l! r, a6 x8 Q1 w$ j {
7 Q) v1 V2 R0 x! t; L; Z) p! M4 C if(key==0) //读P1.0引脚,如果引脚为低电平,则进入if
{/ q- v% b- d2 g0 ?7 m& R {
1 N+ C Z! o6 t- ~9 @% E, w TR0=1;//打开定时器
) O( Q6 l- s' v3 r# K }% e+ L$ m/ a2 ?2 I( u' A- q
}9 p! g1 Y3 u. A" u3 D; _
}; c3 h* c' U4 N+ J2 h6 m
8 E5 [2 `/ a3 F; J( \
/*定时器中断*/9 I8 D' ?" f0 u3 a
void Timer0() interrupt 1
2 _ e) z! y4 N, a9 b) w{
8 _' J1 e" W, z, G" } TH0=(65536-10000)/256; //给定时器赋初值,定时10ms8 t( C& }1 r8 G$ e
TL0=(65536-10000)%256;
5 u1 e! d- k2 i- Z ]6 y; x O d' |9 ?' ?0 Y
TR0=0;//打开定时器! |" \; W( Q, e$ |/ g' w2 |
if(key==0) //再次判断按键是否按下' `7 ^+ B- e4 b- T l# Z! X0 P5 i
{ 5 V! r! }# g6 `6 o
led=!led;
1 G/ C+ B0 N! u* F* N5 |! ?* r while(key==0); //等待按键松开
. A3 s p! R" ~9 s3 e. x$ t }
: Z1 o# W+ S8 A8 Z9 y} |
|