|
想写个定期器控制流水灯的程序,定时器0控制左移 速率较慢。
定时器1控制油移 速率较快。写这个程序,主要是想学习嵌套中断。但是我试着写了个,不管怎么变化,流水灯也就只朝一个方向流。定时器1没用上。
#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar i,tt,tt1;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
TR1=1;
TR0=1;
while(1);
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt1<20)
{ if(tt==4)
{
tt=0;
P0=0xfe;
for(i=0;i<8;i++)
P0=_crol_(P0,1);
}
}
else
{
if(tt1==20)
{
tt1=0;
P0=0xdf;
for(i=0;i<8;i++)
P0=_cror_(P0,1);
}
}
}
void timer1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
tt1++;
}
|
|