单片机C延时程序
答案:1 悬赏:30
解决时间 2021-01-25 03:08
- 提问者网友:兔牙战士
- 2021-01-24 16:30
单片机C延时程序
最佳答案
- 二级知识专家网友:渊鱼
- 2021-01-24 17:38
阁下的程序不合规范,问题多多。在下逐一指出,再给你个修改的,你试试看。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit chu=P0^0;
uint a;
void main()
{
a=0;
while(1)
{ TMOD=0x01;
TL0=0x3c;
TH0=0xb0;
EA=1;
EX0=1;//应该是ET0=1,你定时器就没开中断,开的是外部中断0.
TR0=1;
//上面这些不要在循环里写。
if(a==20)
a=0;
一旦A=20就成了0,所以A不可能是40.
if(a==40)
{
chu=1;
a=0;
}
}//chu成了1要及时变成0,不然一直亮着。
}
void yanshi() interrupt 1
{
TL0=0x3c;
TH0=0xb0;
a++;
}
修改后的是这个:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit chu=P0^0;
uint a;
void main()
{ TMOD=0x01;
TL0=0x3c;
TH0=0xb0;
EA=1;
ET0=1;//应该是ET0=1,你定时器就没开中断,开的是外部中断0.
TR0=1;
a=0;
while(1)
{
if(a==20)
chu=0;
if(a==40)
{
chu=1;
a=0;
}
}
}
void yanshi() interrupt 1
{
TL0=0x3c;
TH0=0xb0;
a++;
}
还有问题给我发信息。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit chu=P0^0;
uint a;
void main()
{
a=0;
while(1)
{ TMOD=0x01;
TL0=0x3c;
TH0=0xb0;
EA=1;
EX0=1;//应该是ET0=1,你定时器就没开中断,开的是外部中断0.
TR0=1;
//上面这些不要在循环里写。
if(a==20)
a=0;
一旦A=20就成了0,所以A不可能是40.
if(a==40)
{
chu=1;
a=0;
}
}//chu成了1要及时变成0,不然一直亮着。
}
void yanshi() interrupt 1
{
TL0=0x3c;
TH0=0xb0;
a++;
}
修改后的是这个:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit chu=P0^0;
uint a;
void main()
{ TMOD=0x01;
TL0=0x3c;
TH0=0xb0;
EA=1;
ET0=1;//应该是ET0=1,你定时器就没开中断,开的是外部中断0.
TR0=1;
a=0;
while(1)
{
if(a==20)
chu=0;
if(a==40)
{
chu=1;
a=0;
}
}
}
void yanshi() interrupt 1
{
TL0=0x3c;
TH0=0xb0;
a++;
}
还有问题给我发信息。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯