

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> ******</b></p><p> 單片機(jī)課程設(shè)計(jì)報(bào)告書(shū)</p><p> 2010年 12 月 30 日</p><p> 課題名稱(chēng)電子密碼鎖</p><p> 姓 名***</p><p> 學(xué) 號(hào)*********</p>&
2、lt;p> 院、系、部物理與電子科學(xué)系</p><p> 專(zhuān) 業(yè)電子信息科學(xué)與技術(shù)</p><p> 指導(dǎo)教師***</p><p><b> 目 錄</b></p><p> 一、緒言 …………………………………………………………………………… 3</p><p> ?。ㄒ?/p>
3、) 設(shè)計(jì)任務(wù)……………………………………………………………… 3</p><p> ?。ǘ?設(shè)計(jì)方案及分析……………………………………………………… 3</p><p> 二、系統(tǒng)設(shè)計(jì) ……………………………………………………………………… 4</p><p> (一) 硬件電路設(shè)計(jì)………………………………………………………… 4</p><
4、;p> ?。ǘ?程序流程圖…………………………………………………………… 6</p><p> ?。ㄈ?c語(yǔ)言程序設(shè)計(jì)………………………………………………………… 6</p><p> 三、電子密碼鎖仿真 ……………………………………………………………… 12</p><p> ?。ㄒ唬?系統(tǒng)仿真 ………………………………………………………………12&l
5、t;/p><p> ?。ǘ?工作原理分析………………………………………………………… 13</p><p> 結(jié) 束 語(yǔ) ……………………………………………………………………………13</p><p> 參考文獻(xiàn) ……………………………………………………………………………14</p><p><b> 一、緒 言</b&g
6、t;</p><p><b> (一)設(shè)計(jì)任務(wù)</b></p><p> 1、用4*3組成0~9數(shù)字鍵及確認(rèn)鍵、刪除鍵。</p><p> 2、用8位數(shù)碼管組成顯示電路提示信息,當(dāng)輸入密碼時(shí),只顯示“-”,當(dāng)密碼位輸入完畢按下確認(rèn)鍵時(shí),對(duì)輸入的密碼與設(shè)定的密碼進(jìn)行比較,若密碼正確,則開(kāi)鎖,此處用LED發(fā)光二極管亮一秒鐘做為提示。</
7、p><p> 3、當(dāng)密碼不正確時(shí),禁止按鍵輸入3秒,同時(shí)發(fā)出“嘀、嘀”報(bào)警聲。</p><p> (二)、設(shè)計(jì)方案及分析</p><p><b> 1、設(shè)計(jì)方案</b></p><p> 根據(jù)以上密碼鎖的設(shè)計(jì)任務(wù),我們擬定的方案可以簡(jiǎn)略的如以下框圖所示:</p><p> 密碼鎖的控制方案論
8、證</p><p> 根據(jù)設(shè)計(jì)任務(wù)書(shū)中的設(shè)計(jì)要求,可以設(shè)想幾種控制方案,可以是簡(jiǎn)單控制,也可以是較復(fù)雜的控制。本設(shè)計(jì)采用以下密碼鎖控制方案。</p><p> 1. 密碼的設(shè)定,在此程序中密碼是固定在程序存儲(chǔ)器ROM中,假設(shè)預(yù)設(shè)的密碼為“12345”共5位密碼。</p><p> 2. 密碼的輸入問(wèn)題:</p><p> 由于采用兩個(gè)
9、按鍵來(lái)完成密碼的輸入,那么其中一個(gè)按鍵為功能鍵,另一個(gè)按鍵為數(shù)字鍵。在輸入過(guò)程中,首先輸入密碼的長(zhǎng)度,接著根據(jù)密碼的長(zhǎng)度輸入密碼的位數(shù),直到所有長(zhǎng)度的密碼都已經(jīng)輸入完畢;或者輸入確認(rèn)功能鍵之后,才能完成密碼的輸入過(guò)程。進(jìn)入密碼的判斷比較處理狀態(tài)并給出相應(yīng)的處理過(guò)程。</p><p> P3.6是功能鍵,P3.7是數(shù)字鍵。循環(huán):先按P3.6進(jìn)入工作狀態(tài),之后按P3.7選擇密碼的長(zhǎng)度,為5,再按功能鍵表示確認(rèn)。之后
10、開(kāi)始輸入密碼,輸一位后就確認(rèn)一下,確認(rèn)為功能鍵,結(jié)束后可以聽(tīng)到聲音。之后就從新開(kāi)始循環(huán)。</p><p> 1.2、單片機(jī)的控制方案論證</p><p> 根據(jù)設(shè)計(jì)任務(wù)書(shū)中的設(shè)計(jì)要求,可選用Atmel公司的89系列單片機(jī)AT89C2051,但考慮到將來(lái)控制功能的擴(kuò)充,用AT89C51來(lái)完成本次設(shè)計(jì)??刂品桨溉缦拢?lt;/p><p> 密碼鎖進(jìn)行初始化操作,控制數(shù)
11、碼管顯示其初始狀態(tài)。</p><p> 初始化完畢后,單片機(jī)進(jìn)入等待掃描鍵盤(pán)狀態(tài)。</p><p> 當(dāng)有密碼輸入時(shí),保存輸入的數(shù)據(jù),并控制數(shù)碼管顯示其輸入狀態(tài)。</p><p><b> 二、系統(tǒng)設(shè)計(jì)</b></p><p><b> (一)硬件電路設(shè)計(jì)</b></p>&l
12、t;p> 1、密碼鎖控制電路圖</p><p> 采用AT89C51單片機(jī)控制密碼鎖并實(shí)現(xiàn)實(shí)時(shí)顯示輸入狀態(tài)。單片機(jī)控制密碼鎖的電路原理如圖2-1所示。</p><p><b> 圖2-1</b></p><p><b> 2、主要元器件選擇</b></p><p> 主要元器件選用型
13、號(hào)和數(shù)量如表2-1所示:</p><p> 表2-1 主要元器件清單</p><p><b> ?。ǘ?程序流程圖</b></p><p><b> C語(yǔ)言程序設(shè)計(jì)</b></p><p><b> 主程序設(shè)計(jì)</b></p><p> #i
14、nclude <AT89X52.H></p><p> unsigned char code ps[]={1,2,3,4,5};</p><p> unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,</p><p> 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}
15、;</p><p> unsigned char pslen=9;</p><p> unsigned char templen;</p><p> unsigned char digit;</p><p> unsigned char funcount;</p><p> unsigned char dig
16、itcount;</p><p> unsigned char psbuf[9];</p><p> bit cmpflag;</p><p> bit hibitflag;</p><p> bit errorflag;</p><p> bit rightflag;</p><p>
17、; unsigned int second3;</p><p> unsigned int aa;</p><p> unsigned int bb;</p><p> bit alarmflag;</p><p> bit exchangeflag;</p><p> unsigned int cc;&l
18、t;/p><p> unsigned int dd;</p><p> bit okflag;</p><p> unsigned char oka;</p><p> unsigned char okb;</p><p> void main(void)</p><p><b>
19、; {</b></p><p> unsigned char i,j;</p><p> P2=dispcode[digitcount];</p><p> TMOD=0x01;</p><p> TH0=(65536-500)/256;</p><p> TL0=(65536-500)%256
20、;</p><p><b> TR0=1;</b></p><p><b> ET0=1;</b></p><p><b> EA=1;</b></p><p><b> while(1)</b></p><p><b
21、> {</b></p><p> if(cmpflag==0)</p><p><b> { </b></p><p> if(P3_6==0) //function key</p><p><b> {</b></p><p> for(i=1
22、0;i>0;i--)</p><p> for(j=248;j>0;j--);</p><p> if(P3_6==0)</p><p><b> {</b></p><p> if(hibitflag==0)</p><p><b> {</b><
23、;/p><p> funcount++;</p><p> if(funcount==pslen+2)</p><p><b> {</b></p><p> funcount=0;</p><p> cmpflag=1;</p><p><b> }&l
24、t;/b></p><p> P1=dispcode[funcount];</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> second3=0;&l
25、t;/p><p><b> }</b></p><p> while(P3_6==0);</p><p><b> }</b></p><p><b> }</b></p><p> if(P3_7==0) //digit key</p>
26、;<p><b> {</b></p><p> for(i=10;i>0;i--)</p><p> for(j=248;j>0;j--);</p><p> if(P3_7==0)</p><p><b> {</b></p><p>
27、 if(hibitflag==0)</p><p><b> {</b></p><p> digitcount++; </p><p> if(digitcount==10)</p><p><b> {</b></p><p
28、> digitcount=0;</p><p><b> }</b></p><p> P2=dispcode[digitcount];</p><p> if(funcount==1)</p><p><b> {</b></p><p> pslen=d
29、igitcount;</p><p> templen=pslen;</p><p><b> }</b></p><p> else if(funcount>1)</p><p><b> {</b></p><p> psbuf[funcount-2]=d
30、igitcount;</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> second3=0;&l
31、t;/p><p><b> }</b></p><p> while(P3_7==0);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
32、<p><b> else</b></p><p><b> {</b></p><p> cmpflag=0;</p><p> for(i=0;i<pslen;i++)</p><p><b> {</b></p><p>
33、 if(ps[i]!=psbuf[i])</p><p><b> {</b></p><p> hibitflag=1;</p><p><b> i=pslen;</b></p><p> errorflag=1;</p><p> rightflag=0;&
34、lt;/p><p> cmpflag=0;</p><p> second3=0;</p><p><b> goto a;</b></p><p><b> }</b></p><p><b> }</b></p><p>
35、;<b> cc=0;</b></p><p> errorflag=0;</p><p> rightflag=1;</p><p> hibitflag=0;</p><p> cmpflag=0;</p><p><b> }</b></p>
36、<p><b> }</b></p><p><b> }</b></p><p> void t0(void) interrupt 1 using 0</p><p><b> {</b></p><p> TH0=(65536-500)/256;<
37、/p><p> TL0=(65536-500)%256;</p><p> if((errorflag==1) && (rightflag==0))</p><p><b> {</b></p><p><b> bb++;</b></p><p> i
38、f(bb==800)</p><p><b> {</b></p><p><b> bb=0;</b></p><p> alarmflag=~alarmflag;</p><p><b> }</b></p><p> if(alarmfl
39、ag==1)</p><p><b> {</b></p><p> P0_0=~P0_0;</p><p><b> }</b></p><p><b> aa++;</b></p><p> if(aa==800)</p>&
40、lt;p><b> {</b></p><p><b> aa=0;</b></p><p> P0_1=~P0_1;</p><p><b> }</b></p><p> second3++;</p><p> if(second3
41、==6400)</p><p><b> {</b></p><p> second3=0;</p><p> hibitflag=0;</p><p> errorflag=0;</p><p> rightflag=0;</p><p> cmpflag=0
42、;</p><p><b> P0_1=1;</b></p><p> alarmflag=0;</p><p><b> bb=0;</b></p><p><b> aa=0;</b></p><p><b> }</b&g
43、t;</p><p><b> }</b></p><p> if((errorflag==0) && (rightflag==1))</p><p><b> {</b></p><p><b> P0_1=0;</b></p><
44、p><b> cc++;</b></p><p> if(cc<1000)</p><p><b> {</b></p><p><b> okflag=1;</b></p><p><b> }</b></p><
45、;p> else if(cc<2000)</p><p><b> {</b></p><p><b> okflag=0;</b></p><p><b> }</b></p><p><b> else</b></p>
46、<p><b> {</b></p><p> errorflag=0;</p><p> rightflag=0;</p><p> hibitflag=0;</p><p> cmpflag=0;</p><p><b> P0_1=1;</b>
47、</p><p><b> cc=0;</b></p><p><b> oka=0;</b></p><p><b> okb=0;</b></p><p><b> okflag=0;</b></p><p><b
48、> P0_0=1;</b></p><p><b> }</b></p><p> if(okflag==1)</p><p><b> {</b></p><p><b> oka++;</b></p><p> if(o
49、ka==2)</p><p><b> {</b></p><p><b> oka=0;</b></p><p> P0_0=~P0_0;</p><p><b> }</b></p><p><b> }</b><
50、;/p><p><b> else</b></p><p><b> {</b></p><p><b> okb++;</b></p><p> if(okb==3)</p><p><b> {</b></p>
51、<p><b> okb=0;</b></p><p> P0_0=~P0_0;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p&g
52、t;<b> }</b></p><p> 三、密碼鎖控制器仿真</p><p><b> ?。ㄒ唬┫到y(tǒng)仿真</b></p><p> 在完成了密碼鎖硬件設(shè)計(jì)和軟件設(shè)計(jì)以后,便進(jìn)入系統(tǒng)的調(diào)試階段。系統(tǒng)的調(diào)試步驟和方法基本上是相同的,但具體細(xì)節(jié)和所采用的開(kāi)發(fā)系統(tǒng)以及用戶(hù)系統(tǒng)選用的單片機(jī)型號(hào)有關(guān),如可選用Keil軟件進(jìn)行
53、軟件調(diào)試,用Proteus軟件完成硬件調(diào)試。</p><p> 圖3-1 程序調(diào)試完成圖</p><p><b> ?。ǘ┕ぷ髟矸治?lt;/b></p><p> 電子密碼鎖由4*3組成0~9數(shù)字鍵及確認(rèn)鍵、刪除鍵等組成。用8位數(shù)碼管組成顯示電路提示信息,當(dāng)輸入密碼時(shí),只顯示“-”,當(dāng)密碼位輸入完畢按下確認(rèn)鍵時(shí),對(duì)輸入的密碼與設(shè)定的密碼進(jìn)行
54、比較,若密碼正確,則開(kāi)鎖。當(dāng)密碼不正確時(shí),禁止按鍵輸入3秒,同時(shí)發(fā)出“嘀、嘀”報(bào)警聲。</p><p><b> 結(jié) 束 語(yǔ)</b></p><p><b> 完成情況: </b></p><p> ?。?)、一開(kāi)始由于太急于求成,整個(gè)電路有的模塊比較小,所以我們就沒(méi)有去沒(méi)有去調(diào)試。但是等整個(gè)都基本設(shè)計(jì)完時(shí)才發(fā)現(xiàn)這
55、些看似簡(jiǎn)單的小模塊卻有很多需要改進(jìn)的地方。因此,我們明白了一個(gè)道理:不管做什么事情,都應(yīng)該有耐心,認(rèn)真打好基礎(chǔ),磨刀不誤砍柴工。</p><p> ?。?)、做什么事情并不是一直做就是好的,應(yīng)該時(shí)不時(shí)的跳出來(lái)觀看一下全局,把握好方向。當(dāng)出現(xiàn)問(wèn)題時(shí)不應(yīng)該心浮氣躁,可以適當(dāng)?shù)姆潘尚那?,調(diào)整好心態(tài)再繼續(xù)。</p><p> ?。?)在設(shè)計(jì)的過(guò)程中要敢想敢試,這樣才能找出比較好的解決方案。<
56、/p><p> ?。?)在設(shè)計(jì)的過(guò)程中,我們主動(dòng)地想去了解一些芯片的功能,以便我們的設(shè)計(jì)順利進(jìn)行。這樣一種積極的求知欲對(duì)于學(xué)習(xí)來(lái)講事半功倍。在以后的學(xué)習(xí)生活中應(yīng)該保持。</p><p> ?。?)當(dāng)我們?cè)O(shè)計(jì)出密碼鎖時(shí)感覺(jué)很有成就感,感覺(jué)到很欣慰。在知識(shí)的海洋里,在學(xué)習(xí)的道路上,雖然艱辛,但是努力了就會(huì)有所收獲,收獲時(shí)的喜悅是美妙的。</p><p><b>
57、 參考文獻(xiàn)</b></p><p> [1].C語(yǔ)言程序設(shè)計(jì)(第二版),譚浩強(qiáng)主編,清華大學(xué)出版社</p><p> [2].全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽訓(xùn)練教程,黃智偉主編,電子工業(yè)出版社</p><p> [3].凌陽(yáng)16位單片機(jī)應(yīng)用基礎(chǔ),羅亞非等編著,北京航空航天大學(xué)出版社</p><p> [4].MCU-DSP型單片機(jī)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 課程設(shè)計(jì)--電子密碼鎖
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)----電子密碼鎖設(shè)計(jì)
- 電子密碼鎖設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)電子密碼鎖設(shè)計(jì)
- 課程設(shè)計(jì)-電子密碼鎖設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)---電子密碼鎖
- eda課程設(shè)計(jì)—電子密碼鎖
- eda電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)3
- 電子密碼鎖課程設(shè)計(jì).doc
- 電子密碼鎖——eda課程設(shè)計(jì)
- eda電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論