找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3111|回復: 6
打印 上一主題 下一主題
收起左側

怎么改 我的這個程序 怎么沒啥效果??

[復制鏈接]
跳轉到指定樓層
樓主
ID:51049 發(fā)表于 2013-6-18 21:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#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;;
                         //選通最右端的數碼管顯示
P0=tab[i/10];         //顯示i參數傳來的字型碼
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;                 //按行進行按鍵掃描,先掃描第一行
  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;                 //按行進行按鍵掃描,掃描第二行
        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;                 //按行進行按鍵掃描,掃描第三行
       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;
  }
      
      
      
      
     }
   }
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2013-6-19 00:42 | 只看該作者
你這個程序是做什么用的?
回復

使用道具 舉報

板凳
ID:1 發(fā)表于 2013-6-19 00:42 | 只看該作者
電路圖呢?
回復

使用道具 舉報

地板
ID:51049 發(fā)表于 2013-6-19 01:00 | 只看該作者
頻率計系統(tǒng)設計
主要內容: 設計一個頻率計,要求:
⑴利用單片機系統(tǒng)實現(xiàn)1~10kHz頻率的輸出,采用10個按鍵控制,并通過蜂鳴器發(fā)聲;
⑵并用LED數碼管將輸出頻率顯示出來。也可任意設置輸出頻率。
回復

使用道具 舉報

5#
ID:51049 發(fā)表于 2013-6-19 01:02 | 只看該作者
這是效果圖

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

2013-06-18 10.16.52.jpg
回復

使用道具 舉報

6#
ID:51049 發(fā)表于 2013-6-19 01:10 | 只看該作者
這是原理圖

產品圖.pdf

90.71 KB, 下載次數: 7, 下載積分: 黑幣 -5

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

41.49 KB, 下載次數: 7, 下載積分: 黑幣 -5

回復

使用道具 舉報

7#
ID:51049 發(fā)表于 2013-6-20 20:14 | 只看該作者
這個死循環(huán) 怎嗎跳出去??
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表