音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

個位大哥幫忙看一下我的程序出什么問題了

作者:hziee30 欄目:單片機
個位大哥幫忙看一下我的程序出什么問題了
#include <REG51.h>
#include <intrins.h>
sbit ADJUST=P3^0;  //--------時間調(diào)整鍵----------
sbit IN=P3^1;     //----------時間增 ----------------
sbit DE=P3^7;    //-----------------時間減------------
sbit MIN_0=P3^2; //---------------分鐘底位---------
sbit MIN_1=P3^3;  //---------------分鐘高位-----
sbit HOUR_0=P3^4;  //-------------小時底位---------
sbit HOUR_1=P3^5;   //------------小時高位------------
unsigned CHAR cout_adjust=0; //--調(diào)整鍵記數(shù),確定是分鐘調(diào)整還是小時調(diào)整---
unsigned CHAR cout_T0=0;  //----記定時中斷次數(shù)------------
unsigned CHAR time_off=1; //--------------在時間調(diào)整是記時關(guān)閉標(biāo)志------
unsigned CHAR cout_sp=1;  //---------------小數(shù)點顯示標(biāo)標(biāo)志-----------
static unsigned int hour=0;   //------------小時記時-----------
static unsigned int min=0;  //------------分鐘記時-----------------
const unsigned CHAR SHOW[10]={0xc0,0xf9,0xa4,
0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //-----------顯示值----
#define KEY  P1
#define VELUE  P2
//*------延時,6M晶振延時為(24N+32)us------------*/
void delay(unsigned int N)
{
unsigned int i;
for (i=0;i<N;i++);
}

/*---------------時間調(diào)整--------------------*/
void time_adjust(void)
{
  if(min==59)
  {
     min=0;
     if(hour==23)
        hour=0;
     else
        hour=hour+1;
   }
   else
      min=min+1;
}
/*--------------顯示函數(shù)----------------------*/
void show(void)
{
   if(cout_adjust==0)    //------四個數(shù)碼管順序掃描顯示-------
   {
   MIN_0=1;
   VELUE=SHOW[min%10];
   _nop_();
   MIN_0=0;
   MIN_1=1;
   VELUE=SHOW[min/10];
   _nop_();
   MIN_1=0;
   if(cout_sp!=0)  //----------0.5s到顯示小數(shù)點---------
     {
       HOUR_0=1;
       VELUE=SHOW[hour%10]&0x7f;
       _nop_();
       HOUR_0=0;
       cout_sp=0;
       }
   else
      {
        HOUR_0=1;
        VELUE=SHOW[hour%10];
         _nop_();
        HOUR_0=0;
      }
   HOUR_1=1;
   VELUE=SHOW[hour/10];
   _nop_();
   HOUR_1=0;
   }
   else if(cout_adjust==1)  //--小時調(diào)整時,在小時位顯示調(diào)整的時間
          {
            HOUR_0=1;
            VELUE=SHOW[hour%10];
            _nop_();
            HOUR_0=0;
            HOUR_1=1;
            VELUE=SHOW[hour/10];
            _nop_();
            HOUR_1=0;
          }
         else if(cout_adjust==2)  //分鐘調(diào)整時,在分鐘位顯示調(diào)整的的時間
               {
                 
                 MIN_0=1;
                 VELUE=SHOW[min%10];
                  _nop_();
                  MIN_0=0;
                    MIN_1=1;
                 VELUE=SHOW[min/10];
                _nop_();
                 MIN_1=0;
               }
}
/*------------------判斷按鍵---------------*/
void judge_key(void)
{
  unsigned CHAR key_velue;
  key_velue=KEY&0x0f;
  while(key_velue!=0)  //-------------判斷是否有鍵按下-
       {
    delay(500);  //--------------延時10ms消抖動-
    if((key_velue&KEY)!=0) //--------------判斷是否真的是按鍵
           {
             while(key_velue&KEY!=0); //-等待按鍵釋放-
             delay(500); //--------------延時10ms消抖動
        SWITCH(key_velue) //-------------鍵值散轉(zhuǎn)--
       {
         case 0x01: //------------時間調(diào)整鍵--
        {
         cout_adjust++;
         if(cout_adjust==3) // --按了三下復(fù)位-
           cout_adjust=0;
         if(cout_adjust!=0)
            time_off=1;
        else  
           time_off=0;
        }; break;
                  case 0x02:   //-----------------時間值加--
          {
            if(cout_adjust==1)
               hour++;
            else if(cout_adjust==2)
              min++;
          };break;
2樓: >>參與討論
hziee30
接上面
我剛學(xué)這個,自己編了一個24小是的時鐘.
在編譯時出現(xiàn)了:
linking...
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
    SYMBOL:  SHOW
    MODULE:  time.obj (TIME)
我不知道是什么原因,請大哥們幫忙看看!!!謝謝!!!!

3樓: >>參與討論
stycx
不會是show不能同時做變量名和子函數(shù)名吧,改掉一個看看
 
4樓: >>參與討論
stycx
還真是這樣,將 show() 改為 show1() 就可以
#include <REG51.h>
#include <intrins.h>
sbit ADJUST=P3^0;  //--------時間調(diào)整鍵----------
sbit IN=P3^1;     //----------時間增 ----------------
sbit DE=P3^7;    //-----------------時間減------------
sbit MIN_0=P3^2; //---------------分鐘底位---------
sbit MIN_1=P3^3;  //---------------分鐘高位-----
sbit HOUR_0=P3^4;  //-------------小時底位---------
sbit HOUR_1=P3^5;   //------------小時高位------------
unsigned CHAR cout_adjust=0; //--調(diào)整鍵記數(shù),確定是分鐘調(diào)整還是小時調(diào)整---
unsigned CHAR cout_T0=0;  //----記定時中斷次數(shù)------------
unsigned CHAR time_off=1; //--------------在時間調(diào)整是記時關(guān)閉標(biāo)志------
unsigned CHAR cout_sp=1;  //---------------小數(shù)點顯示標(biāo)標(biāo)志-----------
static unsigned int hour=0;   //------------小時記時-----------
static unsigned int min=0;  //------------分鐘記時-----------------
const unsigned CHAR SHOW[10]={0xc0,0xf9,0xa4,
0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //-----------顯示值----
#define KEY  P1
#define VELUE  P2
//*------延時,6M晶振延時為(24N+32)us------------*/
void delay(unsigned int N)
{
unsigned int i;
for (i=0;i<N;i++);
}

/*---------------時間調(diào)整--------------------*/
void time_adjust(void)
{
  if(min==59)
  {
     min=0;
     if(hour==23)
        hour=0;
     else
        hour=hour+1;
   }
   else
      min=min+1;
}
/*--------------顯示函數(shù)----------------------*/
void show1(void)
{
   if(cout_adjust==0)    //------四個數(shù)碼管順序掃描顯示-------
   {
   MIN_0=1;
   VELUE=SHOW[min%10];
   _nop_();
   MIN_0=0;
   MIN_1=1;
   VELUE=SHOW[min/10];
   _nop_();
   MIN_1=0;
   if(cout_sp!=0)  //----------0.5s到顯示小數(shù)點---------
     {
       HOUR_0=1;
       VELUE=SHOW[hour%10]&0x7f;
       _nop_();
       HOUR_0=0;
       cout_sp=0;
       }
   else
      {
        HOUR_0=1;
        VELUE=SHOW[hour%10];
         _nop_();
        HOUR_0=0;
      }
   HOUR_1=1;
   VELUE=SHOW[hour/10];
   _nop_();
   HOUR_1=0;
   }
   else if(cout_adjust==1)  //--小時調(diào)整時,在小時位顯示調(diào)整的時間
          {
            HOUR_0=1;
            VELUE=SHOW[hour%10];
            _nop_();
            HOUR_0=0;
            HOUR_1=1;
            VELUE=SHOW[hour/10];
            _nop_();
            HOUR_1=0;
          }
         else if(cout_adjust==2)  //分鐘調(diào)整時,在分鐘位顯示調(diào)整的的時間
               {
                 
                 MIN_0=1;
                 VELUE=SHOW[min%10];
                  _nop_();
                  MIN_0=0;
                    MIN_1=1;
                 VELUE=SHOW[min/10];
                _nop_();
                 MIN_1=0;
               }
}
/*------------------判斷按鍵---------------*/
void judge_key(void)
{
  unsigned CHAR key_velue;
  key_velue=KEY&0x0f;
  while(key_velue!=0)  //-------------判斷是否有鍵按下-
       {
    delay(500);  //--------------延時10ms消抖動-
    if((key_velue&KEY)!=0) //--------------判斷是否真的是按鍵
           {
             while(key_velue&KEY!=0); //-等待按鍵釋放-
             delay(500); //--------------延時10ms消抖動
        SWITCH(key_velue) //-------------鍵值散轉(zhuǎn)--
       {
         case 0x01: //------------時間調(diào)整鍵--
        {
         cout_adjust++;
         if(cout_adjust==3) // --按了三下復(fù)位-
           cout_adjust=0;
         if(cout_adjust!=0)
            time_off=1;
        else  
           time_off=0;
        }; break;
                  case 0x02:   //-----------------時間值加--
          {
            if(cout_adjust==1)
               hour++;
            else if(cout_adjust==2)
              min++;
          };break;
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
比較器電路問題,高手來指導(dǎo)一下.
如何正確地選取變量的作用域
protel的自動布局有這么慢嗎?
ds1302讀數(shù)遇到的問題
請教怎樣判斷C8051F的好壞?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號