標(biāo)題: 求救:編程過了,為什么達(dá)不到效果 [打印本頁]

作者: xuqinghua    時間: 2012-3-13 11:22
標(biāo)題: 求救:編程過了,為什么達(dá)不到效果

急救,請高手協(xié)助

要求:

      1、上電燈開始循環(huán)流水燈,

      2、當(dāng)按下按鍵K后燈全亮,且蜂鳴器開始唱生日快樂歌,放開按鍵后燈開始流水且蜂鳴器停止。

      程序如下:

      說明:P2.0接蜂鳴器,P2.1接按鍵K,P1口接8個燈

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit beep=P2^0;
sbit down=P2^1;
uchar code table[]={400,400,650,650,650,1200,
     400,400,650,650,650,1200,
     400,400,650,650,650,650,1200,
     400,400,650,650,650,1200} ;
uchar code table1[]={0xfd,0x79,0xfd,0x79,0xfd,0xc7,0xfd,0x79,0xfe,0x21,0xfe,0x05,
        0xfd,0x79,0xfd,0x79,0xfd,0xc7,0xfd,0x79,0xfe,0x51,0xfe,0x21, 
     0xfd,0x79,0xfd,0x79,0xfe,0xc0,0xfe,0x84,0xfe,0x21,0xfe,0x05,0xfd,0xc7,
     0xfe,0x99,0xfe,0x99,0xfe,0x90,0xfe,0x21,0xfe,0x51,0xfe,0x21
     };
uchar temp,i,j,time1,time2;
void delay(uint z)
{
 uint t,y;
 for(t=z;t>0;t--)
  for(y=125;y>0;y--);
}
void main()
{   
 TMOD=0x01;
 TH0=0;
 TL0=0;
 EA=1;
 ET0=1;
 TR0=1;
 temp=0xfe;
 P1=temp;
 while(1)
 {
   temp=_crol_(temp,1);
   delay(500);
   P1=temp;
   if(down==0)
   {
     P1=~P1;
     beep=~beep;
     time1=table[i++];
     time2=table[i++];
     if(i==50)
        i=0;
     delay(table1[j++]);
     if(j==25)
        j=0;
    }  
  }
}  

void timer0() interrupt 1
{
  TR0=0;
 TH0=time1;
 TL0=time2;
 TR0=1;
}

 


作者: xuqinghua    時間: 2012-3-13 14:14
PCB板我是用萬用板,只給了單片機(jī)基本的工作條件,外圍元器件基本沒加




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1