注册 登录
编程论坛 单片机编程

是新手,看了半天也不知道问题出在哪里?

莫珞lili 发布于 2011-10-19 11:51, 1099 次点击
令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)
 {}
}
3 回复
#2
莫珞lili2011-10-19 14:41
木有人回答么?
#3
lcawen2012-04-12 09:02
void main()
{
initi_timer0();
initi_timer1();
while(1)
{}
} 是不用把initi_timer0();
initi_timer1();放进main函数的,当发生中断的时候,会自动调用
#4
lcawen2012-04-12 09:02
哦,看错了,你是初始化定时器的函数
1