是新手,看了半天也不知道问题出在哪里?
令LED1以0.2s周期闪烁,LED2以1.2s周期闪烁,高五位以0.5s的周期做走马灯闪烁。#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar t=0,tt=0,a=0,b=0xf7,c=0x07,temp,p;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
/*定时器0的初始化*/
void initi_timer0(void)
{
TMOD=0x11;
TH0=0x4c;
TL0=0x00;
TR0=1;
EA=1;
ET0=1;
}
/*定时器1的初始化*/
void initi_timer1(void)
{
TMOD=0x11;
TH1=0x4c;
TL1=0x00;
TR1=1;
EA=1;
ET1=1;
}
/*两个单闪烁的中断*/
void timer0() interrupt 1
{
t++;
tt++;
if(t==2)
{
t=0;
TH0=0x4c;
P1_1=~P1_1;
}
if(tt==12)
{
tt=0;
TH0=0x4c;
P1_2=~P1_2;
}
}
/*五个灯闪烁的中断*/
void timer1() interrupt 3
{
temp=P1||b;
b=_crol_(b,1);
P1=temp;
a++;
if(a==5)
{
b=0xf7;
p=P1;
P1=p&&c;
a=0;
TH1=0x4c;
}
}
void main()
{
initi_timer0();
initi_timer1();
while(1)
{}
}