|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
用定时器控制一个灯亮5S 灭5S) s+ k0 u5 i+ p0 I
2 O; B) ~4 M; [' c
& @: p' h" g8 S1 D# r
* |: M5 q; U: k: [6 y! L
9 P. ?' o1 [7 E* M; o. v#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器7 [" f4 C8 ]8 N" {
typedef unsigned int u16; //对数据类型进行声明定义
9 M6 V: b) t& _typedef unsigned char u8;
1 f5 @$ f3 Q7 Q6 ]' x
: j* z+ p7 Y! nsbit k1=P3^1; //定义P31口是k1( F4 ^% O: \0 {$ F& o
bit flag = 0;7 e& p9 U3 d3 g
sbit led = P2;void Timer0Init()* t' y) _7 ]+ Z3 j
{
) Q1 n2 L* L9 U/ q# H9 b TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。
/ F1 y% C |+ z; {$ P# Z4 P# r; f TH0=0XFC; //给定时器赋初值,定时1ms6 _: E* @% V6 J$ V: q" X, B
TL0=0X18; ( Q* N M4 Y4 o. g3 m& Y# R2 x" r
ET0=1;//打开定时器0中断允许5 c) I5 Z! J# m( }- h0 b
EA=1;//打开总中断
6 z0 I+ I$ d) e1 Y TR0=1;//打开定时器 y7 z1 n8 p6 I- {- S# }1 S6 X( }
}
1 _/ l- {- G; |" y( Q) Ovoid delay(u16 i)# g) G) F5 N8 u8 D+ A; E0 B; X" y
{1 |- u( L3 C1 s0 H: X2 ?$ L
while(i--);
. V4 a& v+ m2 c. k+ V}
8 h# f1 T, N* c- l; F& bvoid keypros() I: O2 ^7 V, r0 o8 G& o; y. b
{
5 g/ I. [. B; H9 m4 j if(k1==0) //检测按键K1是否按下
8 s, V6 ]- I' K" z# D& s$ r; I {
: W* t3 U# k7 s- z$ h: D: r+ w delay(1000); //消除抖动 一般大约10ms3 D9 G( D2 k2 c5 [1 x `- i
if(k1==0) //再次判断按键是否按下
8 z2 Z$ G- R+ H3 A' b" M {& u. ?0 w) ]* b
led = 0;
1 {* H# Z! N( k$ [0 w/ ~- Q5 e }
6 l3 b2 a; V0 g ?/ e; P while(!k1); //检测按键是否松开* n0 i( U$ L; C3 v
} ( s+ q0 C U4 o: j6 w, W: q
}void main()
) D9 H8 `2 g* D; l8 t{
+ B8 |. d+ m% _- N9 h5 w P2=0xff;7 e! y% x2 V+ g- B, x3 p
Timer0Init(); //定时器0初始化
# F) a6 W! a. J9 f8 v while(1)7 J8 d9 z h" D. D3 h, u: I
{
+ o1 D2 Z; Z- F5 `$ _ keypros();$ T5 B% I" r2 P% E! R3 @0 h
}
' ~: H$ l9 x( t! G5 o6 v( C}( ]+ E4 M" v6 u, }$ |
void Timer0() interrupt 1
T( z" l' v, {- Q7 x" u6 O: [{! ~; c. T7 B: c+ h' T+ {0 y! L
static u16 i;
) O# p4 @# ]. v8 | TH0=0XFC; //给定时器赋初值,定时1ms
7 I4 u7 a" D- p' t8 K- E TL0=0X18;
8 G. j2 n$ w9 a Y4 [ if(led == 0)' ?/ h8 P; z7 U% R) O9 k1 R
{
& ~6 s. j6 Y$ ]- I( ? i++;! y8 ^" O! X' r8 U1 _
if(i==5000)
) _, u- G: O0 [1 d) k {) \: z/ D* h) i+ w
i=0;
! ]2 d0 v, {. G" y led = 1;
2 h, h8 J0 \8 V- Z; i9 e }
- A y) J* V5 z& j }
, B& ]$ U3 c( _& \; Y( Q4 Y6 b4 q$ Z& s} |
! V8 K: o( ?8 y. P8 b |
|