azv777
一般會員
發表:2 回覆:4 積分:1 註冊:2014-05-15
發送簡訊給我
|
各位大大日安:小優日前寫8051 c多重按鈕開關出現 Build target 'Target 1' assembling STARTUP.A51... compiling 0507.c... MYIO.H(67): warning C280: 'x': unreferenced local variable linking... Program Size: data=21.0 xdata=0 code=705 creating hex file from "0507"... "0507" - 0 Error(s), 1 Warning(s). 老師要我們自己找出問題 但是找了好久都無法排除 希望各位大大能幫幫我 告訴我問題在哪裡 讓我有學習的機會(造成各位大大困擾 小優先跟各位大大抱歉) 以下為程式:/* 多重按鈕開關 */ //==宣告區================================ #include // 定義8051暫存器之標頭檔,P2-17~19 #include "myio.h" // 自己寫的I/O程式庫 sbit PB1=P2^0; // 宣告PB1=P2.0 sbit PB2=P2^1; // 宣告PB2=P2.1 sbit PB3=P2^2; // 宣告PB3=P2.2 sbit PB4=P2^3; // 宣告PB4=P2.3 //==主程式================================ main() // 主程式開始 { LED=0xff; // 初始狀態(LED全滅) P2=0xff; // 規劃P2輸入埠 while(1) // 無窮迴圈,程式一直跑 { if (PB1==0) // 如果按下PB1 { debouncer();// 防彈跳 alter(3); // 高低位元交互閃爍三次 flash(3);} // 全燈閃爍三次 else if (PB2==0)// 如果按下PB2 { debouncer();// 防彈跳 left(3); // 單燈左移三圈 flash(3);} // 全燈閃爍三次 else if (PB3==0)// 如果按下PB3 { debouncer();// 防彈跳 right(3); // 單燈右移三圈 flash(3);} // 全燈閃爍三次 else if (PB4==0)// 如果按下PB4 { debouncer();// 防彈跳 SEG(3); // 霹靂燈三圈 flash(3);} // 全燈閃爍三次 } // while迴圈結束 } // 主程式結束
/* myio.h - 自己寫的程式庫 */ //==宣告區============================== #define LED P1 // 定義LED接至Port 1 void debouncer(void); // 宣告防彈跳函數 void delay10ms(int); // 宣告10毫秒延遲函數 void alter(int); // 宣告交互閃爍函數 void left(int); // 宣告單燈左移函數 void right(int); // 宣告單燈右移函數 void pili(int); // 宣告霹靂燈函數 void SEG(int); // 宣告7 //==自己寫的副程式======================== /* 防彈跳函數函數,延遲約20ms */ void debouncer(void) // 防彈跳函數開始 { delay10ms(2); // 延遲約20ms } // 防彈跳函數結束 /* 延遲函數開始,延遲約x 10ms */ void delay10ms(int x) // 延遲函數開始 { int i,j; // 宣告整數變數i,j for (i=0;i for (j=0;j<1200;j ); // 計數1200次,延遲約10ms } // 延遲函數結束 /* 高低位元交互閃爍函數,執行x次 */ void alter(int x) // 高低位元交互閃爍函數開始 { int i; // 宣告變數i LED=0x0f; // 初始狀態(高位元亮,低位元滅) for(i=0;i<2*x-1;i )// i變數for迴圈執行2x-1次 { delay10ms(50); // 延遲50*10m=0.5s LED=~LED; // LED反相輸出 } // i變數for迴圈結束 delay10ms(50); // 延遲50 10m=0.5s } // 高低位元交互閃爍函數結束 /* 全燈閃爍函數,執行x次 */ void flash(int x) // 全燈閃爍函數開始 { int i; // 宣告變數i LED=0x00; // 初始狀態(全亮) for(i=0;i<2*x-1;i )// i變數for迴圈執行2x-1次 { delay10ms(50); // 延遲50 10m=0.5s LED=~LED; // P0反相輸出 } // i變數for迴圈結束 delay10ms(50); // 延遲50 10m=0.5s } // 全燈閃爍函數結束 /* 單燈左移函數,執行x圈 */ void left(int x) // 單燈左移函數開始 { int i, j; // 宣告變數i,j for(i=0;i { LED=0xfe; // 初始狀態=1111 1110 for(j=0;j<7;j )// j迴圈,左移7次 { delay10ms(25); // 延遲25 10m=0.25s LED=(LED<<1)|0x01; // 左移1位後,LSB設為1 } // j迴圈結束 delay10ms(25); // 延遲25 10m=0.25s } // i迴圈結束*/ } // 單燈左移函數結束 /* 單燈右移函數,執行x圈 */ void right(int x) // 單燈右移函數開始 { int i, j; // 宣告變數i,j for(i=0;i { LED=0X7f; // 初始狀態=0111 1111 for(j=0;j<7;j )// j迴圈,右移7次 { delay10ms(25); // 延遲25 10m=0.25s LED=(LED>>1)|0x80; // 左移1位後,MSB設為1 } // j迴圈結束 delay10ms(25); // 延遲25 10m=0.25s } // i迴圈結束 } // 單燈左移函數結束 /* 霹靂燈函數,執行x圈 */ void SEG(int x) // 7函數開始 {int i; /* 七段顯示器資料區*/ unsigned char table[10]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90}; { for(i=0;i<10;i ) //重複執行10次 { P0=table[i]; //將table值取出後送至P2 delay10ms(25); //延遲500ms } } }
------ 黃小優
編輯記錄
azv777 重新編輯於 2014-05-17 14:55:28, 註解 無‧
|
ScottWang
版主
發表:32 回覆:486 積分:688 註冊:2009-04-27
發送簡訊給我
|
compiler已經有指出錯誤所在,你再去看那個錯誤與其它正常使用的有何不同之處,這樣就可以找出問題點了.
------ 高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流,
中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓,
標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器.
接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備,
另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A.
http://hvpower.myweb.hinet.net/
|
azv777
一般會員
發表:2 回覆:4 積分:1 註冊:2014-05-15
發送簡訊給我
|
感謝大大的提點..小妹無才能..悟不出 C280: 'x'(找很多次 找不到在哪兒)sorry!!可以正確的告訴我嗎??謝謝大大的幫忙!!
------ 黃小優
|
ScottWang
版主
發表:32 回覆:486 積分:688 註冊:2009-04-27
發送簡訊給我
|
MYIO.H(67): 你自己寫的I/O程式庫第67行. warning C280: 錯誤代號 'x': 有問題的變數名稱 unreferenced local variable : 沒有被引用的本地變數. ===================引 用 azv777 文 章=================== 感謝大大的提點..小妹無才能..悟不出 C280: 'x'(找很多次 找不到在哪兒)sorry!!可以正確的告訴我嗎??謝謝大大的幫忙!!
------ 高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流,
中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓,
標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器.
接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備,
另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A.
http://hvpower.myweb.hinet.net/
|
azv777
一般會員
發表:2 回覆:4 積分:1 註冊:2014-05-15
發送簡訊給我
|
感謝 ScottWang版主大大....把10改成x既可.. ( for(i=0;i ScottWang版主大大.....
------ 黃小優
|