求单片机一秒延时程序(12M晶振),要用C语言且用定时和中断
发布网友
发布时间:2022-05-05 03:32
我来回答
共1个回答
热心网友
时间:2022-06-28 23:15
我以前写的控制跑马灯的程序,有1s定时,也有中断,
根据需要修改修改就可以了。
#include<reg51.h>
#define
uchar
unsigned
char
#define
uint
unsigned
int
void
delay(uchar
uu);
main()
{
EA=1;
EX0=1;//开总中断和外部中断0;
EX1=1;//开中断1?
ET0=1;
PX0=1;
PX1=1;
IT0=1;
IT1=1;
while(1)
{
P2=0;
delay(20);
P2=0xff;
delay(20);
}
}
void
int1()
interrupt
0
using
2
{
uchar
aa,i,j,k;
i=0xfe;
for(aa=0;aa<4;aa++)
{
P2=i;
j=i>>7;
k=i<<1;
i=k|j;
delay(20);
}
}
void
int2()
interrupt
2
using
3
{
uchar
bb,ii,jj,kk;
ii=0x7f;
for(bb=0;bb<4;bb++)
{
P2=ii;
jj=ii<<7;
kk=ii>>1;
ii=kk|jj;
delay(20);
}
}
void
delay(uchar
uu)
//uu*5ms定时;
{
uchar
aaa;
for(aaa=0;aaa<uu;aaa++)
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(!TF0);
TF0=0;
}
}