#include<reg52.h>
#define uchar unsigned char
sbit p1_1=P1^0 ;
sbit p2_1=P1^1;
uchar a ;
void main()
{ while(1)
{ TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
a=0;
p1_1=0;
p2_1=0;
if(a==20)
{ p1_1=1;
p2_1=1;
a=0;
}
}
}
void timer0() interrupt 1
{ TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
} 本來想讓p1_1和P2_1每秒閃一次但是就是不能閃
你掉到while死胡同里去了!我寫一段你直接燒進(jìn)去你看看閃不閃啊
#include<reg52.h>
#define uchar unsigned char
sbit p1_1=P1^0 ;
sbit p2_1=P1^1;
uchar a ;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
a=0;
while(1)
{
if(a==20)
{
p1_1=~p1_1;
p2_1=~p2_1;
a=0;
}
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}
你的我沒改,直接把while的位置調(diào)整了一下,我沒試,你下下來試試看。你這個活著直接把LED的判斷語句直接放在中斷里面也可以,main放初始化活著干脆空著。還有就是干脆把while刪掉也可以試試看
/*話說這個代碼測試后也可以用*/
#include<reg52.h>
#define uchar unsigned char
sbit p1_1=P1^0 ;
sbit p2_1=P1^1;
uchar a ;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(a==20)
{
p1_1=~p1_1;
p2_1=~p2_1;
a=0;
}
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |