標(biāo)題: 怎么改 我的這個程序 怎么沒啥效果?? [打印本頁]

作者: fanfan12121    時間: 2013-6-18 21:08
標(biāo)題: 怎么改 我的這個程序 怎么沒啥效果??
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF};
sbit fmq=P3^6;
sbit P2_7=P2^7;
void beef1(void)
{
      
TMOD=0x10;            //使用定時器T1的模式1
TH1=(65536-500)/256;  //定時器T1的高8位賦初值
TL1=(65536-500)%256;  //定時器T1的高8位賦初值
TR1=1;                //啟動定時器T1
TF1=0;
while(1)//無限循環(huán)等待查詢
    {
    while(TF1==1)
         {
         
    TF1=0;
    fmq=~fmq;  //將P3.6引腳輸出電平取反
           TH1=(65536-500)/256;  //定時器T0的高8位賦初值
    TL1=(65536-500)%256;  //定時器T0的高8位賦初值
  }
  }
}

void beef2(void)
{
      
TMOD=0x10;            //使用定時器T1的模式1
TH1=(65536-250)/256;  //定時器T1的高8位賦初值
TL1=(65536-250)%256;  //定時器T1的高8位賦初值
TR1=1;                //啟動定時器T1
TF1=0;
while(1)//無限循環(huán)等待查詢
    {
    while(TF1==1)
         {
         
    TF1=0;
    fmq=~fmq;  //將P3.6引腳輸出電平取反
           TH1=(65536-250)/256;  //定時器T0的高8位賦初值
    TL1=(65536-250)%256;  //定時器T0的高8位賦初值
  }
  }
}

void beef3(void)
{
      
TMOD=0x10;            //使用定時器T1的模式1
TH1=(65536-167)/256;  //定時器T1的高8位賦初值
TL1=(65536-167)%256;  //定時器T1的高8位賦初值
TR1=1;                //啟動定時器T1
TF1=0;
while(1)//無限循環(huán)等待查詢
    {
    while(TF1==1)
         {
         
    TF1=0;
    fmq=~fmq;  //將P3.6引腳輸出電平取反
           TH1=(65536-167)/256;  //定時器T0的高8位賦初值
    TL1=(65536-167)%256;  //定時器T0的高8位賦初值
  }
  }
}

void beef4(void)
{
      
TMOD=0x10;            //使用定時器T1的模式1
TH1=(65536-125)/256;  //定時器T1的高8位賦初值
TL1=(65536-125)%256;  //定時器T1的高8位賦初值
TR1=1;                //啟動定時器T1
TF1=0;
while(1)//無限循環(huán)等待查詢
    {
    while(TF1==1)
         {
         
    TF1=0;
    fmq=~fmq;  //將P3.6引腳輸出電平取反
           TH1=(65536-125)/256;  //定時器T0的高8位賦初值
    TL1=(65536-125)%256;  //定時器T0的高8位賦初值
  }
  }
}

void beef5(void)
{
      
TMOD=0x10;            //使用定時器T1的模式1
TH1=(65536-100)/256;  //定時器T1的高8位賦初值
TL1=(65536-100)%256;  //定時器T1的高8位賦初值
TR1=1;                //啟動定時器T1
TF1=0;
while(1)//無限循環(huán)等待查詢
    {
    while(TF1==1)
         {
         
    TF1=0;
    fmq=~fmq;  //將P3.6引腳輸出電平取反
           TH1=(65536-100)/256;  //定時器T0的高8位賦初值
    TL1=(65536-100)%256;  //定時器T0的高8位賦初值
  }
  }
}

void beef6(void)
{
      
TMOD=0x10;            //使用定時器T1的模式1
TH1=(65536-83)/256;  //定時器T1的高8位賦初值
TL1=(65536-83)%256;  //定時器T1的高8位賦初值
TR1=1;                //啟動定時器T1
TF1=0;
while(1)//無限循環(huán)等待查詢
    {
    while(TF1==1)
         {
         
    TF1=0;
    fmq=~fmq;  //將P3.6引腳輸出電平取反
           TH1=(65536-83)/256;  //定時器T0的高8位賦初值
    TL1=(65536-83)%256;  //定時器T0的高8位賦初值
  }
  }
}

void beef7(void)
{
      
TMOD=0x10;            //使用定時器T1的模式1
TH1=(65536-71)/256;  //定時器T1的高8位賦初值
TL1=(65536-71)%256;  //定時器T1的高8位賦初值
TR1=1;                //啟動定時器T1
TF1=0;
while(1)//無限循環(huán)等待查詢
    {
    while(TF1==1)
         {
         
    TF1=0;
    fmq=~fmq;  //將P3.6引腳輸出電平取反
           TH1=(65536-71)/256;  //定時器T0的高8位賦初值
    TL1=(65536-71)%256;  //定時器T0的高8位賦初值
  }
  }
}
void beef8(void)
{
      
TMOD=0x10;            //使用定時器T1的模式1
TH1=(65536-63)/256;  //定時器T1的高8位賦初值
TL1=(65536-63)%256;  //定時器T1的高8位賦初值
TR1=1;                //啟動定時器T1
TF1=0;
while(1)//無限循環(huán)等待查詢
    {
    while(TF1==1)
         {
         
    TF1=0;
    fmq=~fmq;  //將P3.6引腳輸出電平取反
           TH1=(65536-63)/256;  //定時器T0的高8位賦初值
    TL1=(65536-63)%256;  //定時器T0的高8位賦初值
  }
  }
}
void beef9(void)
{
      
TMOD=0x10;            //使用定時器T1的模式1
TH1=(65536-56)/256;  //定時器T1的高8位賦初值
TL1=(65536-56)%256;  //定時器T1的高8位賦初值
TR1=1;                //啟動定時器T1
TF1=0;
while(1)//無限循環(huán)等待查詢
    {
    while(TF1==1)
         {
         
    TF1=0;
    fmq=~fmq;  //將P3.6引腳輸出電平取反
           TH1=(65536-56)/256;  //定時器T0的高8位賦初值
    TL1=(65536-56)%256;  //定時器T0的高8位賦初值
  }
  }
}
void beef10(void)
{
      
TMOD=0x10;            //使用定時器T1的模式1
TH1=(65536-50)/256;  //定時器T1的高8位賦初值
TL1=(65536-50)%256;  //定時器T1的高8位賦初值
TR1=1;                //啟動定時器T1
TF1=0;
while(1)//無限循環(huán)等待查詢
    {
    while(TF1==1)
         {
         
    TF1=0;
    fmq=~fmq;  //將P3.6引腳輸出電平取反
           TH1=(65536-50)/256;  //定時器T0的高8位賦初值
    TL1=(65536-50)%256;  //定時器T0的高8位賦初值
  }
  }
}
void delay1ms(unsigned int i)
{
uchar j;
while(i--)
{for(j=0;j<115;j++){;}
  }
}
void display(unsigned char i)
{
P2=0xbf;;
                         //選通最右端的數(shù)碼管顯示
P0=tab[i/10];         //顯示i參數(shù)傳來的字型碼
delay1ms(5);
P2=0x7f;   
P0=tab[i%10];
delay1ms(5);
P2=0xff;
P0=0xff;
delay1ms(5);
}
void main(void)
{
  unsigned char temp; uint i,j;
  display(16);                  
  while(1)
{
   //P1=0xff; //先向P1口寫1;端口讀狀態(tài)
   P1=0xf0;
   temp=P1;
   if(temp!=0xf0)
  {
     delay1ms(15);                //消除按鍵抖動
     if(temp!=0xf0)
    {
P1=0xfe;                 //按行進(jìn)行按鍵掃描,先掃描第一行
  temp=P1;
        switch(temp)
       {
case(0xee):beef1();for(j=0;j<100;j++)display(1);break;
case(0xde):for(i=0;i<1000;i++)beef2();for(j=0;j<100;j++)display(2);break;
case(0xbe):for(i=0;i<1000;i++)beef3();for(j=0;j<100;j++)display(3);break;
case(0x7e):beef4();for(j=0;j<100;j++)display(4);break;
       }
              
        P1=0xfd;                 //按行進(jìn)行按鍵掃描,掃描第二行
        temp=P1;
        switch(temp)
       {
case(0xed):for(i=0;i<1000;i++)beef5();for(j=0;j<100;j++)display(5);break;
case(0xdd):for(i=0;i<1000;i++)beef6();for(j=0;j<100;j++)display(6);break;
case(0xbd):for(i=0;i<1000;i++)beef7();for(j=0;j<100;j++)display(7);break;
case(0x7d):beef8();display(8);break;
       }
      
       P1=0xfb;                 //按行進(jìn)行按鍵掃描,掃描第三行
       temp=P1;
       switch(temp)
      {
case(0xeb):for(i=0;i<1000;i++)beef9();for(j=0;j<100;j++)display(9);break;
case(0xdb):for(i=0;i<1000;i++)beef10();for(j=0;j<100;j++)display(10);break;
  }
      
      
      
      
     }
   }
}
}


作者: admin    時間: 2013-6-19 00:42
你這個程序是做什么用的?
作者: admin    時間: 2013-6-19 00:42
電路圖呢?
作者: fanfan12121    時間: 2013-6-19 01:00
頻率計系統(tǒng)設(shè)計
主要內(nèi)容: 設(shè)計一個頻率計,要求:
⑴利用單片機(jī)系統(tǒng)實現(xiàn)1~10kHz頻率的輸出,采用10個按鍵控制,并通過蜂鳴器發(fā)聲;
⑵并用LED數(shù)碼管將輸出頻率顯示出來。也可任意設(shè)置輸出頻率。

作者: fanfan12121    時間: 2013-6-19 01:02
這是效果圖

2013-06-18 10.16.52.jpg (410.75 KB, 下載次數(shù): 154)

2013-06-18 10.16.52.jpg

作者: fanfan12121    時間: 2013-6-19 01:10
這是原理圖

產(chǎn)品圖.pdf

90.71 KB, 下載次數(shù): 7, 下載積分: 黑幣 -5

RZ-51.AVR V2.0原理圖.pdf

41.49 KB, 下載次數(shù): 7, 下載積分: 黑幣 -5


作者: fanfan12121    時間: 2013-6-20 20:14
這個死循環(huán) 怎嗎跳出去??





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