微處理機-期末專題報告 骰骰子 四電通一A 4990D027 劉志彥 四電通一A 4990D033 王俊龍
報告內容 製作動機 功能介紹 程式內容
製作動機 許多好賭的人會使用骰骰子來比大小進而決定贏方以及輸方,為了能快速的比出大小,所以在這次的專題我們決定製作這『骰骰子』來讓他們更方便,好讓結果清晰又明瞭。同時,也讓有時候不服氣的人能夠心服口服的看出比後的結果。
初始 從零開始
按下第一鍵,開始從1~6循環跑
循環跑開始後,按下第二鍵停止 就可看出您所骰出的數字
最後再按下rest鍵就回到初始了
程式內容 #include "SPCE061A.H" void delay(unsigned int n); void Init_A_Port(); void Init_B_Port(); int main() { int i, a=0; const table[6]={ 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D};
//規劃 A/B Port Init_A_Port(); Init_B_Port(); //IO初始化完成 while(1){ if ((*P_IOA_Data&0x01)==0) while (1) { //無窮迥圈 if (a==0){ for (i=0; i<6; i++) { *P_IOB_Data = table[i] | 0x2000; //顯示數字i
delay(4000); if ((*P_IOA_Data&0x02)==0) { delay(500); while ((*P_IOA_Data&0x02)==0){ delay(100);} while(1){ delay(1); *P_IOB_Data = table[i] | 0x2000; }
} } // for(i) } // while(1) void delay(unsigned int n) { int i; for (i=0; i<n; i++) ; *P_Watchdog_Clear = 0x0001; //清除看門狗計數器
void Init_B_Port() { *P_IOB_Dir = 0xffff; //規劃IOB0~7為同相的低電位輸出 *P_IOB_Attrib = 0xffff; //規劃IOB8~15為反相的低電位輸出 *P_IOB_Data = 0xffff; }
void Init_A_Port() { *P_IOA_Dir = 0x0000; //規劃IOA0~7上拉電阻輸入, IOA8~15沒用到 *P_IOA_Attrib = 0x0000; *P_IOA_Data = 0x0fff; }
THE END 最後,謝謝大家的聆聽,第一次做專題真的不知道該怎麼去做,但也經過老師和同學的指導,做出了這一次的專題! 謝謝大家 BYE