|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
用定时器控制一个灯亮5S 灭5S. b' T2 d& H7 j% n8 I( |8 i
* l4 |/ ^; g6 _! H' E/ ]
: Z: f B* G' P
; l/ l; U9 N: p, N5 p% B) O7 `3 S' Y- I
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器8 T, H- } y3 M( g
typedef unsigned int u16; //对数据类型进行声明定义
2 m. \5 ]! a$ y) G1 {; z: D5 A4 ttypedef unsigned char u8;
# G7 O: L/ h: M0 O, r- J0 A, d+ k
! l" c7 Z- y1 ], ?' O; z2 E9 W/ Fsbit k1=P3^1; //定义P31口是k1# w$ i2 U0 m- P! [4 G3 ^
bit flag = 0;( }% C) X" U! S, B7 \1 Q9 u6 D
sbit led = P2;void Timer0Init()0 W2 ~7 R# J, C. O9 z6 W: g6 u
{
' e4 `, W: c. O2 @6 |9 @. ~ TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。, Y. y% C; j' h2 f" I
TH0=0XFC; //给定时器赋初值,定时1ms% X8 ]3 j d# t% G8 [
TL0=0X18; ) _9 h2 w/ F+ q2 b6 d4 G
ET0=1;//打开定时器0中断允许
$ \' a: J7 j1 P. Y6 g' g/ p EA=1;//打开总中断
/ A6 `# E2 N; E( s E" d. } TR0=1;//打开定时器 ' o2 ?, k% c C/ W& I0 @8 J# W
}# J9 j) R) ]0 o5 x! \! \( b
void delay(u16 i); Z6 b j p9 `' {4 ^
{
$ J( v/ m" Y V9 p" V6 H. B' K4 S while(i--); : l0 _" {8 j9 ~6 b
}
# T) w) Q! F: r# T* f V$ Jvoid keypros()0 X% [5 |2 b4 f3 n$ J, f
{* y5 z: i- s" Q. q% w. @) [
if(k1==0) //检测按键K1是否按下- @5 ?# a n2 L6 n+ V8 k1 q
{
6 c+ W. r* C* }; ^1 m/ L6 j+ a delay(1000); //消除抖动 一般大约10ms$ n; K. [' R/ K6 i7 t
if(k1==0) //再次判断按键是否按下6 w" h0 k) U* o7 a! |
{
0 P [$ B! `8 }' a, X7 ~% O led = 0;! ]. E+ y" b1 S% U
}8 H' }# u: P/ E2 `7 \. d, }9 M
while(!k1); //检测按键是否松开. Y* @1 ]7 B) d8 P# ]1 I
}
- T s; L( G4 q1 X6 A T8 M! j* N- d}void main()
3 |! T1 q4 R* a2 O* f{
6 s. q, B7 k: f8 D6 k" m8 k3 O8 s P2=0xff;; H3 ]7 S4 S9 [7 }
Timer0Init(); //定时器0初始化/ r J4 D* E- Q0 f
while(1); M9 B- ?+ x6 Z
{
4 K' G+ T. o1 D/ B: o9 O; z keypros();
) o, I3 ]# _- O) K4 ] }
7 [, g, i* P! b5 W3 b! m}5 H! J! T. X9 s4 J$ ]! r
void Timer0() interrupt 1
& x. m4 F9 w O0 W. Z+ O9 A{* W0 j( @( K: }; V( U2 u* k
static u16 i;* j5 O' ]0 G( c3 Z3 R) w9 M
TH0=0XFC; //给定时器赋初值,定时1ms" \& P- `' \7 X/ _
TL0=0X18;
7 v3 E' r8 L9 [* D; A- E3 B8 x if(led == 0)
5 B- Q9 l* B; f7 E: O. e* {4 Z* ]7 t. c {5 O- r* R) f/ r9 O/ K0 G
i++;
1 F' N" ^, j( j4 H7 b" Y$ ~ if(i==5000)1 T- ~4 R9 p4 X4 e
{
1 U4 w" @) Q) M) { i=0;
4 Q. N- y2 L3 E. p+ z/ ^ led = 1;
+ k2 _7 N2 V& t) v }4 _4 Q$ G5 G) ]- L8 D0 }
} ) h; c3 ]. F/ L# |* e
} |
5 w4 B- Y+ j3 H9 B6 S' P. } |
|