微处理机应用

上传人:F****n 文档编号:88017136 上传时间:2019-04-16 格式:PPT 页数:14 大小:116KB
返回 下载 相关 举报
微处理机应用_第1页
第1页 / 共14页
微处理机应用_第2页
第2页 / 共14页
微处理机应用_第3页
第3页 / 共14页
微处理机应用_第4页
第4页 / 共14页
微处理机应用_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《微处理机应用》由会员分享,可在线阅读,更多相关《微处理机应用(14页珍藏版)》请在金锄头文库上搜索。

1、微處理機應用,定時炸彈 組員:姚力瑋 江鴻錡 林永泓 黃朝昇,定時炸彈,讓同學自由設定炸彈密碼,讓同學們破解出正確的數字;且在限定時間內,配合緊張刺激的音樂來完成任務,否則就. !Game Over! 定時炸彈理念可分為兩部分: 1:猜數字 2:倒數計時器,猜數字,在中猜出一正確數字,並將結果輸出如下: 其中: 、:代表以及的數量多寡 :代表數字以及位置都猜對 :代表數字猜對但位置放錯 例:假設正確數字為 但猜成則顯示(不為) 亦顯示(不為) 則顯示 亦顯示 則顯示 亦顯示 則顯示 而則表示完全沒猜中數字,倒數計時器,若將時間限定為3分鐘,也就是180秒,於遊戲啟動時,逐一遞減秒數直至0為止,

2、如:180 179 178 177 . 0,但是不顯示於七段顯示器上,設定為內建的時間,音樂隨著時間的減少而逐漸緊湊,在規定的時間內尚未能解出密碼時,會聽見失敗的音效;反之,解出密碼能聽到光榮的音樂。倘若重新啟動遊戲時,則時間也就會從3分鐘開始計數,直到0或是結束遊戲而終止。,目前進度,結合上次的猜數字,這次我們加入了音效,在輸入每個按 鍵時會發出聲響並讓使用者確認目前的輸入值。在輸入四 位錯誤之數字後會發出類似mi的頻率並顯示出 ,而在輸入正確之四位數字後會發出類似do的頻率並顯示 出。,#include “At898252.h“ #define KEYPAD P1 #define SPK

3、P2_7 #define DO 65536-500000/523 #define MI 65536-500000/659 #define SI 65536-500000/988 unsigned int T; char table17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71,0x80; char digit4=0x0e,0x0d,0x0b,0x07; char pswd4=“5678“; /設定密碼 void delay_ms(unsigned int DT) /cryst

4、al=12MHz delay DT ms unsigned int i,j; for(i=0;iDT;i+) for(j=0;j120;j+); ,char check_key() / Q : no keyin, if keyin :16key = 0-F /code char k_code16=“0123456789ABCDEF“; code char k_code16=“D#0*C987B654A321“; KEYPAD=0x7f; if (KEYPAD=0x77) return k_code0; if (KEYPAD=0x7b) return k_code1; if (KEYPAD=0x

5、7d) return k_code2; if (KEYPAD=0x7e) return k_code3; KEYPAD=0xbf; if (KEYPAD=0xb7) return k_code4; if (KEYPAD=0xbb) return k_code5; if (KEYPAD=0xbd) return k_code6; if (KEYPAD=0xbe) return k_code7; KEYPAD=0xdf; if (KEYPAD=0xd7) return k_code8; if (KEYPAD=0xdb) return k_code9; if (KEYPAD=0xdd) return

6、 k_code10; if (KEYPAD=0xde) return k_code11; KEYPAD=0xef; if (KEYPAD=0xe7) return k_code12; if (KEYPAD=0xeb) return k_code13; if (KEYPAD=0xed) return k_code14; if (KEYPAD=0xee) return k_code15; return Q; ,char wait_a_key() char k; /* keyin = 0-15 */ while(1) k = check_key(); if( k != Q ) break; retu

7、rn k; void timer0 (void) interrupt 1 /interrupt NO.1 TH0 = T/256; TL0 = T%256; SPK = SPK; /反相 delay(int n) int i; for(i=0;in*1000;i+); sound(int x, int y) T = x; TR0=1; delay(y); TR0=0; SPK = 1; delay(1); ,void main(void) char kk4; int DT=1000; while(1) kk0 = wait_a_key(); if(kk0=0) P0=table0;P2=dig

8、it0;sound(SI,5); if(kk0=1) P0=table1;P2=digit0;sound(SI,5); if(kk0=2) P0=table2;P2=digit0;sound(SI,5); if(kk0=3) P0=table3;P2=digit0;sound(SI,5); if(kk0=4) P0=table4;P2=digit0;sound(SI,5); if(kk0=5) P0=table5;P2=digit0;sound(SI,5); if(kk0=6) P0=table6;P2=digit0;sound(SI,5); if(kk0=7) P0=table7;P2=di

9、git0;sound(SI,5); if(kk0=8) P0=table8;P2=digit0;sound(SI,5); if(kk0=9) P0=table9;P2=digit0;sound(SI,5); if(kk0=A) P0=table10;P2=digit0;sound(SI,5); if(kk0=B) P0=table11;P2=digit0;sound(SI,5); if(kk0=C) P0=table12;P2=digit0;sound(SI,5); if(kk0=D) P0=table13;P2=digit0;sound(SI,5); if(kk0=#) P0=table14

10、;P2=digit0;sound(SI,5); if(kk0=*) P0=table15;P2=digit0;sound(SI,5); delay_ms(DT);,kk1 = wait_a_key(); if(kk1=0) P0=table0;P2=digit1;sound(SI,5); if(kk1=1) P0=table1;P2=digit1;sound(SI,5); if(kk1=2) P0=table2;P2=digit1;sound(SI,5); if(kk1=3) P0=table3;P2=digit1;sound(SI,5); if(kk1=4) P0=table4;P2=dig

11、it1;sound(SI,5); if(kk1=5) P0=table5;P2=digit1;sound(SI,5); if(kk1=6) P0=table6;P2=digit1;sound(SI,5); if(kk1=7) P0=table7;P2=digit1;sound(SI,5); if(kk1=8) P0=table8;P2=digit1;sound(SI,5); if(kk1=9) P0=table9;P2=digit1;sound(SI,5); if(kk1=A) P0=table10;P2=digit1;sound(SI,5); if(kk1=B) P0=table11;P2=

12、digit1;sound(SI,5); if(kk1=C) P0=table12;P2=digit1;sound(SI,5); if(kk1=D) P0=table13;P2=digit1;sound(SI,5); if(kk1=#) P0=table14;P2=digit1;sound(SI,5); if(kk1=*) P0=table15;P2=digit1;sound(SI,5); delay_ms(DT);,kk2 = wait_a_key(); if(kk2=0) P0=table0;P2=digit2;sound(SI,5); if(kk2=1) P0=table1;P2=digi

13、t2;sound(SI,5); if(kk2=2) P0=table2;P2=digit2;sound(SI,5); if(kk2=3) P0=table3;P2=digit2;sound(SI,5); if(kk2=4) P0=table4;P2=digit2;sound(SI,5); if(kk2=5) P0=table5;P2=digit2;sound(SI,5); if(kk2=6) P0=table6;P2=digit2;sound(SI,5); if(kk2=7) P0=table7;P2=digit2;sound(SI,5); if(kk2=8) P0=table8;P2=digit2;sound(SI,5); if(kk2=9) P0=table9;P2=digit2;sound(SI,5); if(kk2=A) P0=table10;P2=digit2;sound(SI,5); if(kk2=B) P0=table11;P2=digit2;sound(SI,5); if(kk2=C) P0=table12;P2=digit2;sound(SI,5);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号