定时器中断程序控制led闪烁

 1 #include <reg52.h>
 2 typedef unsigned char u8;
 3 typedef unsigned int u16;
 4 sbit led = P1^0;
 5 //中断配置
 6 void main(void)
 7 {
 8 TMOD =0x01; 
 9 TH0 = (65535-50000) /256;
10 TL0 = (65535-50000) %256;
11 EA = 1;
12 
13 ET0 = 114 TR0 = 1; 
15 while(1);
16 }
17 //intterupt handle
18 void timer0_service (void) interrupt 1
19 {
20 typedef unsigned char u8;
21 typedef unsigned int u16;
22 timer++;    
23 if(timer == 20)
24 {
25     timer = 0;                   //led flash program
26     led = ~led;    
27 }
28 }
View Code

TMOD 工作方式控制寄存器

TCOND7D6D5D4D3D2D1D088H
GATEC/T`M1M0GATEC/T`M1M0

 

 

(1)GATE门控。0 :TR0/1 控制。 1:INT0` INT1`与TRx共同控制。

(2)M1、M0  工作方式选择。00 13位CT,01 16位CT,10 8位自动重载CT,11 仅适用T0,此时T0分成2个8位计数器,T1停止计数 

TCON CT控制寄存器

TCON可位寻址

TCOND7D6D5D4D3D2D1D088H
TF1TR1TF0TR0IE1IT1IE0IT0

 

 

TF1、TF0 计数溢出标志位。溢出置1。

TR1、TR0 计数运行控制位。TR1(或TR0) = 1,启动CT的必要条件。TR1 = 0,停止CT计数。

转载于:https://www.cnblogs.com/rolingball-creation/p/10652329.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值