久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

linking... *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS ...

[復制鏈接]
跳轉到指定樓層
樓主
ID:262 發表于 2016-3-11 20:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是我根據別人的代碼加以優化的,沒有錯誤只是有警告linking...
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?KAISHI_KEYSCAN?1
Program Size: data=34.0 xdata=0 code=701
creating hex file from "1"...
"1" - 0 Error(s), 1 Warning(s).,求大神指教怎么改
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
sbit start_stop = P3^6;
sbit reset = P3^7;
sbit key1 = P1^0;
sbit key2 = P1^1;
sbit key3 = P1^2;
sbit key4 = P1^3;
sbit key5 = P1^4;
sbit key6 = P1^5;
sbit key7 = P1^6;
sbit key8 = P1^7;
sbit state = P3^4;
sbit kaishi=P3^1;
uchar start_stop_flag = 0;
uchar key_flag = 0;
uchar reset_flag = 0;
uchar action = 0;
uchar kaishi_flag=0;//開始標志
uchar second = 20;//倒計時20秒
uchar timer0_count = 0;
uchar number = 0;
uchar number_display = 0;
/*延時函數*/
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
/*數碼管顯示驅動函數*/
void display(uchar number,uchar second)
{
        uchar second_first,second_second;
        second_first = second / 10;
        second_second = second % 10;
        P2 = 0xfe;
        P0 = table[number];
        delay(2);
        P2 = 0xfd;
        P0 = 0x40;
        delay(2);
        P2 = 0xfb;
        P0 = table[second_first];
        delay(2);
        P2 = 0xf7;
        P0 = table[second_second];
        delay(2);        
}
/*開始鍵掃描函數*/
void start_stop_keyscan()
{
        if(start_stop == 0)
        {
                delay(8);
                if((start_stop == 0)&&(!start_stop_flag))
                {
                        start_stop_flag = 1;
                        action  = 1;
                        TR0 = 1;
                        state = 0;
                }
        }
        else
        {
                start_stop_flag = 0;        
        }        
}
/*八位搶答鍵掃描函數*/
key_scan8()
{
        if(key1 == 0)
        {
                delay(8);
                if((key1 == 0)&&(!key_flag))
                {
                        key_flag = 1;
                        number  = 1;
                        number_display = number;
                }
        }
        else if(key2 == 0)
            {
                   delay(8);
                   if((key2 == 0)&&(!key_flag))
                   {
                             key_flag = 1;
                            number  = 2;
                            number_display = number;
                   }
            }
        else  if(key3 == 0)
           {
                  delay(8);
                  if((key3 == 0)&&(!key_flag))
                  {
                     key_flag = 1;
                         number  = 3;
                         number_display = number;
                  }
           }
        else if(key4 == 0)
          {
                 delay(8);
                 if((key4 == 0)&&(!key_flag))
                 {
                        key_flag = 1;
                        number  = 4;
                        number_display = number;
                 }
          }        
        else if(key5 == 0)
           {
              delay(8);
                  if((key5 == 0)&&(!key_flag))
                  {
                          key_flag = 1;
                          number  = 5;
                          number_display = number;
                  }
           }
        else if(key6 == 0)
           {
                  delay(8);
                  if((key6 == 0)&&(!key_flag))
                  {
                          key_flag = 1;
                          number  = 6;
                          number_display = number;
                  }
           }        
        else if(key7 == 0)
          {
                  delay(8);
                  if((key7 == 0)&&(!key_flag))
                  {
                          key_flag = 1;
                          number  = 7;
                          number_display = number;
                  }
           }
        else  if(key8 == 0)
          {
                  delay(8);
                  if((key8 == 0)&&(!key_flag))
                  {
                          key_flag = 1;
                          number  = 8;
                          number_display = number;
                  }
           }
        else
        {
            key_flag = 0;
                number  = 0;
        }
                                                        
        if(number_display != 0)        
        {
                return 1;
        }
        else
        {
                return 0;
        }               
}
/*復位鍵掃描函數*/
reset_keyscan()
{
        if(reset == 0)
        {
                delay(8);
                if((reset == 0)&&(!reset_flag))
                {        second=20;
                        reset_flag = 1;
                        number_display = 0;
                        state = 1;
                }
        }
        else
        {
                reset_flag = 0;
        }        
}
/*主持人開始函數*/
kaishi_keyscan()
{
        if(kaishi == 0)
        {
                delay(8);
                if((kaishi == 0)&&(!kaishi_flag))
                {
                        kaishi_flag = 1;
                        number_display = 0;
                        state = 1;
                }
        }
        else
        {
                kaishi_flag = 0;
        }        
}
/*主函數*/
void main()
{
    TMOD=0x01;
    TH0=0x3c;
        TL0=0xb0;
        EA=1;
        ET0=1;
        TR0=0;
        while(1)
        {        
           while((kaishi == 0)&&(!kaishi_flag))
          {        
              start_stop_keyscan();
                  reset_keyscan();
                  while(action)
                 {
                        while(!key_scan8())
                        {
                                display(number_display,second);
                                if(second == 0)
                                {
                                        second = 20;
                                        break;
                                }
                        }
                                TR0 = 0;
                                second = 0;
                                display(number_display,second);
                                action = 0;
                                break;
                }
                display(number_display,second);        
          }
        }
}
/*中斷服務函數*/
void timer0() interrupt 1
{
        TH0=0x3c;
        TL0=0xb0;
        timer0_count++;
        if(timer0_count == 20)
        {
                timer0_count = 0;
                second--;
                if(second == 0)
                {
                        TR0 = 0;
                        number_display = 0;
                        state = 1;
                        action = 0;
                }
        }               
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:262 發表于 2016-3-11 20:58 | 只看該作者
沒有錯誤,運行沒啥大問題的,這樣搶答器這樣已經不錯了,干嘛還要這么較真。
回復

使用道具 舉報

板凳
ID:262 發表于 2016-3-11 20:58 | 只看該作者
//void kaishi_keyscan()這個函數沒用到,不影響,注釋了就不會有警告了,還有一個帶返回值的函數沒寫返回值參數類型,不過也不影響,下面這個改好了,沒有警告了。你看一下可以用嗎,




#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
sbit start_stop = P3^6;
sbit reset = P3^7;
sbit key1 = P1^0;
sbit key2 = P1^1;
sbit key3 = P1^2;
sbit key4 = P1^3;
sbit key5 = P1^4;
sbit key6 = P1^5;
sbit key7 = P1^6;
sbit key8 = P1^7;
sbit state = P3^4;
sbit kaishi=P3^1;
uchar start_stop_flag = 0;
uchar key_flag = 0;
uchar reset_flag = 0;
uchar action = 0;
uchar kaishi_flag=0;//????
uchar second = 20;//???20?
uchar timer0_count = 0;
uchar number = 0;
uchar number_display = 0;
/*????*/
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
/*?????????*/
void display(uchar number,uchar second)
{
        uchar second_first,second_second;
        second_first = second / 10;
        second_second = second % 10;
        P2 = 0xfe;
        P0 = table[number];
        delay(2);
        P2 = 0xfd;
        P0 = 0x40;
        delay(2);
        P2 = 0xfb;
        P0 = table[second_first];
        delay(2);
        P2 = 0xf7;
        P0 = table[second_second];
        delay(2);        
}
/*???????*/
void start_stop_keyscan()
{
        if(start_stop == 0)
        {
                delay(8);
                if((start_stop == 0)&&(!start_stop_flag))
                {
                        start_stop_flag = 1;
                        action  = 1;
                        TR0 = 1;
                        state = 0;
                }
        }
        else
        {
                start_stop_flag = 0;        
        }        
}
/*?????????*/
uchar key_scan8()
{
        if(key1 == 0)
        {
                delay(8);
                if((key1 == 0)&&(!key_flag))
                {
                        key_flag = 1;
                        number  = 1;
                        number_display = number;
                }
        }
        else if(key2 == 0)
            {
                   delay(8);
                   if((key2 == 0)&&(!key_flag))
                   {
                             key_flag = 1;
                            number  = 2;
                            number_display = number;
                   }
            }
        else  if(key3 == 0)
           {
                  delay(8);
                  if((key3 == 0)&&(!key_flag))
                  {
                     key_flag = 1;
                         number  = 3;
                         number_display = number;
                  }
           }
        else if(key4 == 0)
          {
                 delay(8);
                 if((key4 == 0)&&(!key_flag))
                 {
                        key_flag = 1;
                        number  = 4;
                        number_display = number;
                 }
          }        
        else if(key5 == 0)
           {
              delay(8);
                  if((key5 == 0)&&(!key_flag))
                  {
                          key_flag = 1;
                          number  = 5;
                          number_display = number;
                  }
           }
        else if(key6 == 0)
           {
                  delay(8);
                  if((key6 == 0)&&(!key_flag))
                  {
                          key_flag = 1;
                          number  = 6;
                          number_display = number;
                  }
           }        
        else if(key7 == 0)
          {
                  delay(8);
                  if((key7 == 0)&&(!key_flag))
                  {
                          key_flag = 1;
                          number  = 7;
                          number_display = number;
                  }
           }
        else  if(key8 == 0)
          {
                  delay(8);
                  if((key8 == 0)&&(!key_flag))
                  {
                          key_flag = 1;
                          number  = 8;
                          number_display = number;
                  }
           }
        else
        {
            key_flag = 0;
                number  = 0;
        }
                                                        
        if(number_display != 0)        
        {
                return 1;
        }
        else
        {
                return 0;
        }               
}
/*???????*/
void reset_keyscan()
{
        if(reset == 0)
        {
                delay(8);
                if((reset == 0)&&(!reset_flag))
                {        second=20;
                        reset_flag = 1;
                        number_display = 0;
                        state = 1;
                }
        }
        else
        {
                reset_flag = 0;
        }        
}
/*???????*/
//void kaishi_keyscan()
//{
//        if(kaishi == 0)
//        {
//                delay(8);
//                if((kaishi == 0)&&(!kaishi_flag))
//                {
//                        kaishi_flag = 1;
//                        number_display = 0;
//                        state = 1;
//                }
//        }
//        else
//        {
//                kaishi_flag = 0;
//        }        
//}
/*???*/
void main()
{
    TMOD=0x01;
    TH0=0x3c;
        TL0=0xb0;
        EA=1;
        ET0=1;
        TR0=0;
        while(1)
        {        
           while((kaishi == 0)&&(!kaishi_flag))
          {        
              start_stop_keyscan();
                  reset_keyscan();
                  while(action)
                 {
                        while(!key_scan8())
                        {
                                display(number_display,second);
                                if(second == 0)
                                {
                                        second = 20;
                                        break;
                                }
                        }
                                TR0 = 0;
                                second = 0;
                                display(number_display,second);
                                action = 0;
                                break;
                }
                display(number_display,second);        
          }
        }
}
/*??????*/
void timer0() interrupt 1
{
        TH0=0x3c;
        TL0=0xb0;
        timer0_count++;
        if(timer0_count == 20)
        {
                timer0_count = 0;
                second--;
                if(second == 0)
                {
                        TR0 = 0;
                        number_display = 0;
                        state = 1;
                        action = 0;
                }
        }               
}
回復

使用道具 舉報

地板
ID:262 發表于 2016-3-11 20:58 | 只看該作者

非常感謝撒,因為是要做考試設計還要焊接電路板,老師要求比較嚴格,親,你給我改的我運行之后發現有個問題,就是我斷開開關我的數碼管依然還是倒計時
回復

使用道具 舉報

5#
ID:262 發表于 2016-3-11 20:58 | 只看該作者

不好意思啊,原來開始函數注掉了,沒看到
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 犬夜叉在线观看 | 中文字幕欧美在线观看 | 欧美激情久久久 | 视频在线一区二区 | 一区二区三区av夏目彩春 | 99久久久久久久 | 成人午夜网站 | 亚洲精品www | 91aiai| 欧美色专区 | 久久久久国产精品免费免费搜索 | 免费日韩av| 亚洲成人一区二区 | 亚洲欧美久久 | 国产日韩久久 | 精品视频一区二区三区在线观看 | 久久91| 久久婷婷麻豆国产91天堂 | 精品久久久久久久久久久久久久 | 午夜性视频| 亚洲bt 欧美bt 日本bt | 亚洲高清视频在线 | 亚洲午夜av | av免费网站在线观看 | 日韩av一区二区在线观看 | 成人精品一区二区三区中文字幕 | 久婷婷| www.蜜桃av| 成人性视频免费网站 | 亚洲男人天堂 | 91香蕉视频在线观看 | 综合国产第二页 | 黑人性hd| 中文字幕二区三区 | 国产探花在线精品一区二区 | 久久午夜视频 | 中文字幕亚洲精品在线观看 | 欧美99 | 香蕉视频在线播放 | 欧美一级特黄aaa大片在线观看 | 国产伦精品一区二区三区照片91 |