基于AT89S52單片機(jī)設(shè)計(jì)定時(shí)炸彈的畢業(yè)設(shè)計(jì)

上傳人:仙*** 文檔編號:29210685 上傳時(shí)間:2021-10-01 格式:DOC 頁數(shù):19 大?。?79.57KB
收藏 版權(quán)申訴 舉報(bào) 下載
基于AT89S52單片機(jī)設(shè)計(jì)定時(shí)炸彈的畢業(yè)設(shè)計(jì)_第1頁
第1頁 / 共19頁
基于AT89S52單片機(jī)設(shè)計(jì)定時(shí)炸彈的畢業(yè)設(shè)計(jì)_第2頁
第2頁 / 共19頁
基于AT89S52單片機(jī)設(shè)計(jì)定時(shí)炸彈的畢業(yè)設(shè)計(jì)_第3頁
第3頁 / 共19頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于AT89S52單片機(jī)設(shè)計(jì)定時(shí)炸彈的畢業(yè)設(shè)計(jì)》由會員分享,可在線閱讀,更多相關(guān)《基于AT89S52單片機(jī)設(shè)計(jì)定時(shí)炸彈的畢業(yè)設(shè)計(jì)(19頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、 單片機(jī)技術(shù) 定時(shí)炸彈的設(shè)計(jì)說明書 題目 定時(shí)炸彈 院系 電氣工程系________ 班級 車輛電子111_______ 姓名 袁湘華 ___________ 目錄 1設(shè)計(jì)目的 2作品意義 3功能簡介 4電路原理圖 5程序 6心得體會 7不足與改進(jìn) 8元器件清單 摘要:在一次看電影的時(shí)候,我看到了一個(gè)爆炸場面。雖然電影中是恐怖分子的不法行為引起的爆炸,但是我卻想到了定時(shí)炸彈在控制和實(shí)現(xiàn)等各方面的優(yōu)點(diǎn),因而突發(fā)靈感,想要利用51單片機(jī)自

2、己制作一個(gè)模仿的定時(shí)炸彈,一來是想要鍛煉自己的實(shí)際動(dòng)手能和創(chuàng)新思維,而來是想要提高自己的視野和團(tuán)隊(duì)合作精神。 1設(shè)計(jì)目的: 鍛煉自己的各方面的綜合能力,包括創(chuàng)新、設(shè)計(jì)、焊接、調(diào)試、編程等知識水平和溝通、交流、團(tuán)結(jié)協(xié)作等一些綜合素質(zhì),深入了解52單片機(jī)的實(shí)際應(yīng)用。 2作品意義: 定時(shí)炸彈是一個(gè)危險(xiǎn)的物品,但我們不能因?yàn)槲kU(xiǎn)而遠(yuǎn)離它,恰恰相反我要去深入了解它,了解它的原理這樣才不會懼怕它并用它造福。在一些人工開鑿方面,光靠人力是很難實(shí)現(xiàn)的,而且也存在這安全性問題,用定時(shí)炸彈來實(shí)現(xiàn)卻要方便得多,不僅速度快、效率高、風(fēng)險(xiǎn)小,而且也便于實(shí)時(shí)性地操作,控制起來極為方便,可以滿足很多方面的要求。

3、 3功能簡介 3.1、開機(jī)輸入密碼才可使用,此密碼作為拆彈密碼(初始密碼為0123) 3.2、可以隨意輸入1小時(shí)以內(nèi)的定時(shí)時(shí)間,并顯示。 3.3、倒計(jì)時(shí)時(shí)間能夠顯示直至結(jié)束為止。 3.4、時(shí)間少于10秒進(jìn)行聲光提示。 3.5、每次按鍵時(shí)都有聲光提示。 3.6、允許在指定時(shí)間內(nèi)輸入密碼進(jìn)行拆彈。密碼錯(cuò)誤會導(dǎo)致提前爆炸。 3.7、按下解鎖密碼鍵后不論解除危險(xiǎn)都將剩最后10秒。解鎖失敗馬上爆炸。 3.8、也可以剪斷紅線或藍(lán)線進(jìn)行拆彈,剪錯(cuò)線都有引發(fā)爆炸的可能。 3.9、倒計(jì)時(shí)結(jié)束時(shí)進(jìn)行模仿爆炸,同時(shí)有聲光提示。 4電路原理圖 PCB

4、圖 單片機(jī)——STC89C52 按 鍵 部 分 指示電 路 電源模 塊 顯示電路 爆炸部分 定時(shí)炸彈總體電路框圖 5程序 #include sbit beep=P3^6; sbit red=P3^0; sbit green=P3^1; sbit end=P3^7; unsigned char a,K; unsigned char D=10; unsigned char C=11; unsigned char E=12; unsigned char F=13; unsigned char temp,i;

5、 unsigned char code init[4]={0,1,2,3}; unsigned char show[4]={0}; unsigned char min=0; //分 unsigned char sec=0; //秒 unsigned char n,m; //最后倒計(jì)時(shí)10計(jì)時(shí)次數(shù) bit flag=0;//標(biāo)示確認(rèn)鍵是否按下 bit flag0=0;//密碼錯(cuò)誤標(biāo)示位 bit flag1=0;//密碼輸入足夠 bit time1=0;//時(shí)間設(shè)置完標(biāo)志位 unsigned char number=0; void Dela

6、y(int t) { unsigned int i,j; for(i=0;i

7、=~(key|hey); while(P1!=0xf0); switch(key) { case 0x11: K=1; break; case 0x12: K=2; break; case 0x14: K=3; break; case 0x18: K=C; break; case 0x21: K=4; break; case 0x22: K=5; break; case 0x24: K=6; break; case 0x28: K=D; break; case 0x41: K=7; break; case 0x42:

8、 K=8; break; case 0x44: K=9; break; case 0x48: K=E; break; case 0x82: K=0; break; default : K=F; break; } return(K); } void disp(unsigned char post,unsigned char past) { switch(post) { case 0:P0=P0&0XF0;P0=P0|past;break; //p0=PAST case 1:P0&=0X0f;P0|=past<<4;break;

9、 case 3:P2&=0XF0;P2|=past;break; case 2:P2&=0X0f;P2|=past<<4;break; } Delay(10); } void led_init() //數(shù)碼管初始化 { disp(0,0); disp(1,0); disp(2,0); disp(3,0); } void led_ok() //解鎖成功 { disp(0,8); disp(1,8); disp(2,8); disp(3,8); green=0; } void clean() //清除函數(shù) {

10、 number=0; flag1=0; flag0=0; led_init(); flag=0; flag0=0; } void int1() //定時(shí)中斷初始化 { TMOD=0x11; TH0=0x4c; TL0=0xf7; TH1=0x4c; TL1=0xf7; IT0=1; EX0=1; IT1=1; EX1=1; ET0=1; TR0=0; TR1=0; ET1=1; EA=1; } void main() { unsigned char num,i=0; in

11、t1(); led_init(); red=1; green=1; end=1; beep=1; while(1) { num=ScanKey44(); if(num!=F) //有鍵按下 { if(!flag0) { if(num==D) //按下確認(rèn)鍵 { flag=1; if(flag1) //密碼輸入完畢 { for(i=0;i<4;i++) { flag0

12、=1; if(show[i]!=init[i]) //校驗(yàn)錯(cuò)誤 { clean(); flag=1; red=0; beep=0; Delay(500); beep=1; red=1; break; } } if(flag0)//密碼輸入正確 { min=0; sec=0;

13、 P0=0xff; P2=0XFF; number=0; green=0; TR1=0; } } } else if(num==C)//按下clean鍵 { clean(); } else if(flag==1) //之前按下確認(rèn)鍵 { if(num<=9) //按下數(shù)字鍵 { number++;

14、 beep=0; Delay(100); beep=1; show[number-1]=num; disp(number-1,num); if(number==4) { flag1=1; number=0; } } } } else //密碼對時(shí) 設(shè)置時(shí)間 { if(!time1)//沒設(shè)置時(shí)間 { if

15、(num<=9) { switch(number) { case 0:min=min+num*10;disp(number,num);number++; break; case 1:min=min+num;disp(number,num); number++; break; case 2:if(num<=5) {sec=sec+num*10;disp(number,num);number++;} break; case 3:se

16、c=sec+num;disp(number,num);number++; break; } if(number>3) { time1=1; } } } else { if(num==D) { TR0=1; } } } } if((TR0==1)&&(min==0)&&(sec<1)) { EA=0; end=0; beep=0;

17、 green=1; red=0; while(1); } ///////////////////解鎖///////////////////// if((TR0==1)&&(num==E)) { clean(); TR0=0; TR1=1; flag=1; if(flag==1) //之前按下確認(rèn)鍵 { if(num<=9) //按下數(shù)字鍵 { number++; show[number-1]=nu

18、m; disp(number-1,num); if(number==4) { flag1=1; } } } if(flag1==1) //密碼輸入完畢 { for(i=0;i<4;i++) { flag0=1; if(show[i]!=init[i]) { num=0; led_init(); flag0=0; B

19、reak; } } } } } } void timer0(void) interrupt 1 //倒計(jì)時(shí) { static char time=0; TH0=0x4c; //4c TL0=0xf7; time++; if(time>=10) { time=0; m++; if((min==0)&(sec<=10)) beep=~beep; if(m>=2) { m=0; if(sec>0) { sec--; } else if(

20、(sec==0)&&(min>0)) { sec=59; min--; } } disp(0,min/10%10); disp(1,min%10); disp(2,sec/10%10); disp(3,sec%10); } } void timer1(void) interrupt 3 //按下解鎖鍵最后10秒 { static char tim=0; TH1=0x4c; TL1=0xf7; tim++; if(tim>=10) { tim=0; beep=~beep;

21、 red=~red; n++; if(n==20) { led_init(); EA=0; red=0; green=1; beep=0; end=0; } } } void int0(void) interrupt 0 //解鎖失敗爆炸 { led_init(); TR0=0; EA=0; end=0; red=0; beep=0; } void int3(void) interrupt 2 //解鎖成功 { led

22、_ok(); TR0=0; green=0; red=1; EA=0; end=1; } 6心得體會 首先在設(shè)計(jì)這個(gè)項(xiàng)目的時(shí)候我開始考慮的是用到定時(shí)器作為倒計(jì)時(shí)的裝置,然后聲光模擬爆炸情形。后面發(fā)現(xiàn)過于簡單,而后加了矩陣按鍵,以及密碼鎖的原理應(yīng)用,和爆炸電路。由于加了這么多的部分,故課程設(shè)計(jì)的過程中,我感觸最深的當(dāng)屬查閱大量的設(shè)計(jì)資料了,數(shù)字電路部分有AT89S52單片機(jī)、CD4511譯碼器、數(shù)碼管等等,模擬電路部分有三端穩(wěn)壓器、三極管、發(fā)光二極管、蜂鳴器、繼電器以及電阻電容等等。為了讓自己的設(shè)計(jì)更加完善,查閱這方面的設(shè)計(jì)資料是十

23、分必要的,同時(shí)也是必不可少的,花費(fèi)了我一天的時(shí)間。由于原理圖的設(shè)計(jì)出現(xiàn)了不少的問題對后面的調(diào)試造成了許多困難,比如在原理圖里面的三極管與封裝的引腳不同,使之連線出錯(cuò),單片機(jī)的IO口用高低平難以驅(qū)動(dòng)蜂鳴器及LED燈。而后我用低電平驅(qū)動(dòng)得以實(shí)現(xiàn)功能;對于爆炸電路的P3,7口驅(qū)動(dòng)繼電器與參數(shù)不符驅(qū)動(dòng)不了,而后百度資料才改好。硬件電路的調(diào)試成功對于軟件的編程起到了有利的局面。由于思路不夠嚴(yán)謹(jǐn),一直未能調(diào)試成功,不得已的情況下請教了大三的學(xué)長后,順著他提供的思路下去,我也一步步走向了成功。 通過這次的制作設(shè)計(jì)我深刻的體會到一個(gè)人想要完成一個(gè)項(xiàng)目是十分有難度的,做電子制作設(shè)計(jì)需要有嚴(yán)謹(jǐn)?shù)乃枷?,正確的思路

24、以及堅(jiān)持不懈、永不放棄的決心。帶著這樣的態(tài)度,我的項(xiàng)目才得以成功。 7不足與改進(jìn) 首先數(shù)碼管經(jīng)過CD4511譯碼出來后“6”和“9”的顯示有一橫沒有。其次在顯示的時(shí)候第一位數(shù)碼管的顯示會有點(diǎn)混亂。最后在進(jìn)行模擬爆炸的時(shí)候,我采用的是用一個(gè)極性電容反接加上正電壓讓它過壓爆炸。但是實(shí)際上在倒計(jì)時(shí)完后10才爆炸。 改進(jìn): 將模擬爆炸的電容采用較小容量的電容可延短電源爆炸響應(yīng)時(shí)間。 <——————經(jīng)過多次測試可行————————> 8元器件清單 元件清單 材料 數(shù)目 材料 數(shù)目 單片機(jī)AT89S52 1 三極管S9012 2 12M晶振 1 蜂鳴器 1 30pF瓷片電容 2 綠發(fā)光二極管 1 電解電容22uF/25V 1 紅發(fā)光二極管 1 電解電容47uF/16V 1 40P鎖警 1 1k排阻(一排8個(gè)) 1 液晶插槽40P 2 三端穩(wěn)壓器KA7815 1 金屬膜電阻100歐 2 三端穩(wěn)壓器KA7805 1 200歐 1 繼電器 1 330歐 30 獨(dú)立共陰數(shù)碼管 4 1k歐 3 譯碼器CD4511 4 22k歐 1 帶鎖開關(guān) 1 33k歐 1 小按鈕 12 62K 4 電源插座 1 16P底座 5

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!