51单片机f=12MHz,用定时器T0,工作方式1,中断方式工作,从P1.0输出周期为1s的方波,让发光二极管以1Hz闪烁
答案:2 悬赏:60 手机版
解决时间 2021-03-20 12:56
- 提问者网友:爱唱彩虹
- 2021-03-20 01:19
51单片机f=12MHz,用定时器T0,工作方式1,中断方式工作,从P1.0输出周期为1s的方波,让发光二极管以1Hz闪烁
最佳答案
- 五星知识达人网友:像个废品
- 2021-03-20 02:49
程序最后 一段
else
{
LED1=1;
t = 0;
}
这部分中的t = 0 ;多余了。每次定时器中断进来的时候t不等20就会执行else ,然后t被清零,这样t就一直不可能等于20了。
else
{
LED1=1;
t = 0;
}
这部分中的t = 0 ;多余了。每次定时器中断进来的时候t不等20就会执行else ,然后t被清零,这样t就一直不可能等于20了。
全部回答
- 1楼网友:神的生死簿
- 2021-03-20 03:54
#include
sbit LED1=P1^0;
unsigned int t=0;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
TR0=1;
EA=1;
while (1)
{
}
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
if(t==20)
{
t=0;
LED1=~LED1;
}
}
改下就行了,我给你改好了。
sbit LED1=P1^0;
unsigned int t=0;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
TR0=1;
EA=1;
while (1)
{
}
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
if(t==20)
{
t=0;
LED1=~LED1;
}
}
改下就行了,我给你改好了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯