c语言中灯亮1分钟后灭,单片机中断C编程問題,在中断按键按下后,要求P1^1管脚接的灯亮1分钟,之后熄灭。...

你的定时器中断间隔是50ms,20次中断就是1秒所以把while(time<20);改为while(time<20*3600*2)就可以了,也可以定义宏

#include

#define TIMES (20*3600*2L) //1小时3600秒,这个数字超出65536了,所以强制转换为长整型常量,修改这个宏就可以修改定时时间

unsigned char time;

sbit bb1=P1^0;

void int0(void) interrupt 0 using 1

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

ET0=1;

time = 0; //计数器清零

TR0=1;

while(time

ET0=0;

bb1 = !bb1;

}

void timer0(void) interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

time++;

}

void main()

{

EX0 = 1; //外部中断初始化

IT0 = 0; //低电平中断

PT0 = 1; //关键,让定时器中断优先级高于外部中断

EA=1; //开总中断

while(1);

}

取消

评论

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值