版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p> 題目 ………………………………………………………...3</p><p> 內(nèi)容和要求………………………………………………….3</p><p> 目的和意義………………………………………………….4</p><p> 總體方案和設(shè)計(jì)思路…………………
2、…………………….6</p><p> 軟件設(shè)計(jì)(包括系統(tǒng)資源分配,軟件流程,源程序設(shè)計(jì)及關(guān)鍵模塊程序說明)……………………………………………….16</p><p> 課程設(shè)計(jì)總結(jié)心得體會……………………………………17</p><p> 參考文獻(xiàn)…………………………………………………….18</p><p> 一,題目:單片機(jī)電子
3、密碼鎖</p><p><b> 二,內(nèi)容和要求:</b></p><p> 以AT89C52單片機(jī)為核心設(shè)計(jì)單片機(jī)電子密碼鎖,其人機(jī)接口包括字符型液晶顯示器,鍵盤,喇叭,由繼電器控制模擬開鎖關(guān)鎖的指示燈。鍵盤包括下列鍵:0, 1, 2, 3, 4, 5, 6, 7, 8, 9,修改,確認(rèn)。密碼鎖首次加電會自動設(shè)置一個(gè)初始密碼8888. 密碼鎖平常處于待機(jī)關(guān)鎖狀態(tài)
4、。</p><p> 在待機(jī)關(guān)鎖狀態(tài)下,用戶在鍵盤上按數(shù)字鍵,密碼鎖認(rèn)為用戶開始輸入開鎖密碼,并自動記錄所按鍵值,待用戶在鍵盤上按“確認(rèn)”鍵后,密碼鎖開始比較用戶密碼是否正確。如果密碼正確,給繼電器線圈加電,指示燈亮,表示開鎖,如果密碼錯(cuò)誤,聲光報(bào)警器并提示用戶重新輸入正確的開鎖密碼,如果連續(xù)3次開鎖密碼錯(cuò)誤,系統(tǒng)自鎖10分鐘,10分鐘后,用戶可再次輸入開鎖密碼。</p><p> 在
5、待機(jī)關(guān)鎖狀態(tài)下,用戶在鍵盤上按“修改”按鈕,在顯示器提示輸入舊的密碼,輸入舊額的密碼后,在按“確認(rèn)”按鈕,如果舊密碼錯(cuò)誤。蜂鳴器報(bào)警,返回待機(jī)狀態(tài)。如舊密碼正確,在顯示器提示輸入新的密碼,輸入密碼后按“確定”按鈕,在顯示器提示再次輸入新的密碼,再次輸入新的密碼后按“確定”按鈕,如果兩次輸入的新密碼一致,在顯示器提示修改密碼成功,否則蜂鳴器報(bào)警,之后均返回待機(jī)關(guān)鎖狀態(tài)。</p><p> 除開鎖密碼錯(cuò)誤系統(tǒng)自鎖外
6、,密碼鎖在一分鐘內(nèi)如果沒有接收到任何按鍵的情況下,均自動返回待機(jī)關(guān)鎖狀態(tài)。</p><p><b> 目的和意義</b></p><p> 隨著電子技術(shù)和計(jì)算機(jī)技術(shù)的飛速發(fā)展,單片機(jī)性能不斷完善,性能價(jià)格比顯著提高,技術(shù)日趨完善。由于單片機(jī)具有體積小、重量輕、價(jià)格便宜、功耗低、控制功能強(qiáng)及運(yùn)算速度快等特點(diǎn),因而在國民經(jīng)濟(jì)建設(shè)、軍事及家用電器等各個(gè)領(lǐng)域均得到了廣泛的
7、應(yīng)用。本設(shè)計(jì)利用單片機(jī)及附加電子元器件實(shí)現(xiàn)數(shù)據(jù)采集和控制算法,來完成某一實(shí)際功能,檢驗(yàn)并提高同學(xué)對整體電路設(shè)計(jì)和把握能力,了解單片機(jī)系統(tǒng)設(shè)計(jì)流程,以及電路板的實(shí)際制作和調(diào)試能力。同時(shí)也加強(qiáng)對數(shù)字電路、單片機(jī)和微機(jī)原理等課程知識的實(shí)際應(yīng)用能力,也為同類產(chǎn)品的進(jìn)一步發(fā)展奠定理論和實(shí)踐基礎(chǔ)。</p><p> 隨著人們生活水平的提高和安全意識的加強(qiáng),對安全的要求也就越來越高。鎖自古以來就是把守護(hù)門的鐵將軍,人們對它要
8、求甚高,既要安全可靠的防盜,又要使用方便,這也是制鎖者長期以來研制的主題。隨著電子技術(shù)的發(fā)展,各類電子產(chǎn)品應(yīng)運(yùn)而生,電子密碼鎖就是其中之一。據(jù)有關(guān)資料介紹,電子密碼鎖的研究從20世紀(jì)30年代就開始了,在一些特殊場所早就有所應(yīng)用。這種鎖是通過鍵盤輸入一組密碼完成開鎖過程。研究這種鎖的初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼量)極大,可以與機(jī)械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無需攜帶金
9、屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來越多的人所欣賞。電子鎖的種類繁多,例如數(shù)碼鎖,指紋鎖,磁卡鎖,IC卡鎖,生物鎖等。但較實(shí)用的還是按鍵式電子密碼鎖。</p><p> 20世紀(jì)80年代后,隨著電子鎖專用集成電路的出現(xiàn),電子鎖的體積縮小,可靠性提高,成本較高,是適合使用在安全性要求較高的場合,且需要有電源提供能量,使用還局限在一定范圍,難以普及,所以對它的研究一直沒有明顯 進(jìn)展。</p>
10、<p> 在我國電子鎖整體水平尚處于國際七十年代左右,電子密碼鎖的成本還很高,市場上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進(jìn)國際先進(jìn)水平,現(xiàn)國內(nèi)有幾個(gè)廠生產(chǎn)供應(yīng)市場。但國內(nèi)自行研制開發(fā)的電子鎖,其市場結(jié)構(gòu)尚未形成,應(yīng)用還不廣泛。國內(nèi)的不少企業(yè)也引進(jìn)了世界上先進(jìn)的技術(shù),發(fā)展前景非??捎^。希望通過不斷的努力,使電子密碼鎖在我國也能得到廣泛應(yīng)用。</p><p> 四,總體方案和設(shè)計(jì)思路<
11、;/p><p> 1,總體方案:此次設(shè)計(jì)采用一種是用以AT89C52單片機(jī)為核 心的單片機(jī)控制方案。</p><p> 選用單片機(jī)AT89C52 作為本設(shè)計(jì)的核心元件,利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的I/O端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接字符型液晶顯示器用于顯示。</p><p>
12、 2,設(shè)計(jì)思路:根據(jù)上述功能介紹,密碼鎖系統(tǒng)可以分為用戶密碼輸入、顯示和控制報(bào)警3大功能,因此可以鍵盤模塊、顯示模塊、報(bào)警模塊、電子鎖控制模塊和單片機(jī)模塊。系統(tǒng)模塊圖如圖1所示。</p><p><b> 鍵盤電路設(shè)計(jì)</b></p><p> 功能鍵有確認(rèn)和復(fù)位,計(jì)數(shù)鍵。 </p><p><b> 顯示電路設(shè)計(jì)</b&
13、gt;</p><p> 顯示電路由4個(gè)共陽極數(shù)碼管構(gòu)成。軟件編程時(shí)采用動態(tài)顯示方法。</p><p> 軟件編程時(shí),按照下面的步驟顯示字符:</p><p> ?。?)、首先從P0口輸出共陽極字符的段碼;</p><p> ?。?)、然后從LCONi輸出低電平。</p><p><b> 報(bào)警電路設(shè)計(jì)
14、</b></p><p> 報(bào)警電路主要由PNP三極管和蜂鳴器構(gòu)成。</p><p> LS1為一個(gè)5V的壓電蜂鳴器,當(dāng)對其1、2號引腳施加5V電壓時(shí),便會鳴叫。 當(dāng)ALARMCON輸出低電平時(shí),三極管飽和導(dǎo)通,蜂鳴器鳴叫;當(dāng)ALARMCON輸出高電平時(shí),三極管飽截止,蜂鳴器停止鳴叫。通過控制ALARMCON輸出低電平的時(shí)間長短來控制蜂鳴器長叫或短叫。</p>
15、<p><b> 電子鎖控制電路</b></p><p> 電子鎖控制電路主要由繼電器、三極管和發(fā)光二極管構(gòu)成。</p><p> 繼電器線圈的一個(gè)引腳接電源正極,另一端接NPN三極管的集電極。三極管的基極通過一個(gè)電阻接單片機(jī)的引腳。當(dāng)LOCKCON輸出高電平時(shí),三極管導(dǎo)通,繼電器線圈得電,觸點(diǎn)閉合,發(fā)光二極管發(fā)光,相當(dāng)于電子鎖閉鎖;當(dāng)LOCKCO
16、N輸出低電平時(shí),三極管截止,繼電器線圈失電,觸點(diǎn)釋放,發(fā)光二極管熄滅,相當(dāng)于電子鎖開鎖。圖中普通二極管是繼電器線圈的續(xù)流二極管,為感應(yīng)電動勢提供回路,以免損壞三極管。</p><p><b> 單片機(jī)電路</b></p><p> 單片機(jī)電路主要由單片機(jī)、振蕩電路和復(fù)位電路構(gòu)成。由于AT89C52內(nèi)部集成了12MHz的振蕩電路,所以系統(tǒng)外部未加。</p>
17、;<p><b> 五,軟件設(shè)計(jì)</b></p><p><b> 1,系統(tǒng)資源分配</b></p><p> 電子密碼鎖全部采用片內(nèi)程序寄存器。默認(rèn)寄存器組為00,在子寄存器中可切換為01,10.預(yù)定義R0為地址指針,R4為存儲計(jì)數(shù)值,R3用來做暫存器,R5、R6、R7用于延時(shí)子程序。系統(tǒng)的初始密碼沒有采用外接ROM設(shè)計(jì),直
18、接存于程序寄存器中,加電時(shí)傳輸,用于比較。故需要密碼緩存區(qū)用于存儲當(dāng)前輸入的密碼,密碼存儲區(qū)用于存儲當(dāng)前的正確密碼(復(fù)位后密碼存儲區(qū)應(yīng)為初始密碼,修改后為新的修改密碼)。所以預(yù)先定義數(shù)據(jù)存儲器的30H—35H的6個(gè)單元作為密碼緩存區(qū),36H—3BH的6個(gè)單元作為密碼存儲區(qū)。作為顯示輸出,應(yīng)設(shè)顯示存儲區(qū),故預(yù)定義40H—45H的6個(gè)單元作為顯示緩存區(qū)。比較應(yīng)有標(biāo)志位表示正確與否,故預(yù)先定義采用程序狀態(tài)的第五位即PSW.5作為比較結(jié)果標(biāo)志位
19、,規(guī)定等于1為錯(cuò)誤,等于0為正確。</p><p><b> 2,軟件流程圖設(shè)計(jì)</b></p><p> 3,源程序設(shè)計(jì)及關(guān)鍵模塊程序說明</p><p> #include<reg52.h></p><p> #include<intrins.h></p><p&g
20、t; sbit input_code_but = P1^5; //輸入密碼鍵</p><p> sbit ensure_code_but = P1^4; //確定密碼及移到下一位輸入鍵</p><p> sbit reset_code_but = P1^3; //重置密碼鍵
21、</p><p> sbit code_right_light = P1^2;//密碼正確指示燈</p><p> sbit code_wrong_light = P1^1; //密碼錯(cuò)誤指示燈</p><p> sbit code_wrong_ring = P1^
22、0; //密碼錯(cuò)誤報(bào)警器</p><p> unsigned show[]={40,235,50,162,225,164,36,234,32,160};</p><p> unsigned char code_dat[4],f_code_dat[4];</p><p> unsigned char key,added,key1,added1,ch,ch1
23、,ch2;</p><p> void delay(unsigned int ms);</p><p> void show_code(unsigned char val,unsigned char val1,unsigned char val2,unsigned char val3);</p><p> void judge_reset_bu
24、t(void);</p><p> void judge_input(void);</p><p> void judge_input_but(void);</p><p> void judege_ensure_but(void);</p><p> void show_dat(unsigned int n);</p>
25、<p> void main()</p><p><b> {</b></p><p> unsigned int i,fault_pass3,ad1,ad2,ad3,ad4,val;</p><p> unsigned char fault;</p><p> f_code_dat[0]=f_co
26、de_dat[1]=f_code_dat[2]=f_code_dat[3]=8; //設(shè)置初始 密碼為8888</p><p> ch1=0; //以下程序?yàn)橛脩糨斎朊艽a</p><p><b> fault=0;</b></p><p><b> while(1)</b></p><
27、;p><b> {</b></p><p><b> i=0;</b></p><p> ad1=ad2=ad3=ad4=10;</p><p> judege_ensure_but();</p><p> if(key1==1)</p><p><
28、b> {</b></p><p><b> key1=0;</b></p><p><b> ch1+=1;</b></p><p> added1=1;</p><p><b> }</b></p><p> if(0=
29、=ch1)</p><p><b> {</b></p><p> while(ad1--)</p><p><b> {</b></p><p> judge_input();</p><p> code_dat[0]=ch;</p><p&
30、gt; show_code(code_dat[0],0,0,0);</p><p><b> }</b></p><p><b> }</b></p><p> if(1==ch1)</p><p><b> {</b></p><p> w
31、hile(ad2--)</p><p><b> {</b></p><p> judge_input();</p><p> code_dat[1]=ch;</p><p> show_code(code_dat[0],code_dat[1],0,0);</p><p><
32、b> }</b></p><p><b> }</b></p><p> if(2==ch1)</p><p><b> {</b></p><p> while(ad3--)</p><p><b> {</b>&
33、lt;/p><p> judge_input();</p><p> code_dat[2]=ch;</p><p> show_code(code_dat[0],code_dat[1],code_dat[2],0);</p><p><b> }</b></p><p><b>
34、 }</b></p><p> if(3==ch1)</p><p><b> {</b></p><p> while(ad4--)</p><p><b> {</b></p><p> judge_input();</p>&
35、lt;p> code_dat[3]=ch;</p><p> show_code(code_dat[0],code_dat[1],code_dat[2],code_dat[3]);</p><p><b> }</b></p><p><b> }</b></p><p> if(4
36、==ch1)</p><p><b> {</b></p><p> if((f_code_dat[0]==code_dat[0])&&(f_code_dat[1]==code_dat[1])&&(f_code_dat[2]==code_dat[2])&&(f_code_dat[3]==code_dat[3]))//
37、驗(yàn)證用戶所輸入的密碼是否正確</p><p><b> {</b></p><p><b> val=10;</b></p><p> while(val--)</p><p><b> {</b></p><p> code_right_li
38、ght=0; //用戶密碼輸入正確指示燈亮,表示密碼鎖已解開</p><p> delay(100); </p><p><b> }</b></p><p> code_right_light=1;</p><p> if(!reset_code_but)</p>&l
39、t;p><b> {</b></p><p><b> ch1=0;</b></p><p> judge_reset_but();</p><p><b> }</b></p><p><b> }</b></p><
40、p> else//以下實(shí)現(xiàn)當(dāng)用戶輸入的密碼3次錯(cuò)誤時(shí),聲光報(bào)警即指示燈閃爍的同時(shí)蜂鳴器報(bào)警</p><p><b> {</b></p><p><b> i=100;</b></p><p> while(i--)</p><p><b> {</b><
41、/p><p> code_wrong_light=!code_wrong_light;</p><p> delay(10);</p><p> code_wrong_ring=!code_wrong_ring;</p><p> delay(10);</p><p><b> }</b>
42、</p><p> fault+=1;</p><p><b> }</b></p><p><b> ch1=0;</b></p><p><b> }</b></p><p> if(!reset_code_but)</p>
43、<p> judge_reset_but();</p><p> if(3==fault) //判斷密碼是否輸錯(cuò)三次</p><p><b> {</b></p><p> fault_pass3=6000;</p><p> while(fault_pass3--)</p>
44、<p><b> {</b></p><p> show_dat(fault_pass3);</p><p><b> }</b></p><p><b> fault=0;</b></p><p><b> } </b&
45、gt;</p><p><b> }</b></p><p><b> }</b></p><p> void judge_reset_but(void) //重置密碼</p><p><b> {</b></p><p> unsign
46、ed int i,fault_pass3,val;</p><p> unsigned char ah1,ah2,ah3,ah4,fault;</p><p> while(!reset_code_but);</p><p> while(reset_code_but)</p><p><b> {</b>&l
47、t;/p><p> ah1=ah2=ah3=ah4=10;</p><p> f_code_dat[0]=f_code_dat[1]=f_code_dat[2]=f_code_dat[3]=8; //初始密碼為8888</p><p> judege_ensure_but();</p><p> if(key1==1)</p>
48、;<p><b> {</b></p><p><b> key1=0;</b></p><p><b> ch1+=1;</b></p><p> added1=1;</p><p><b> }</b></p>
49、<p> if(0==ch1)</p><p><b> {</b></p><p> while(ah1--)</p><p><b> {</b></p><p> judge_input();</p><p> code_dat[0]=ch;<
50、;/p><p> show_code(code_dat[0],0,0,0);</p><p><b> }</b></p><p><b> }</b></p><p> if(1==ch1)</p><p><b> {</b></p>
51、;<p> while(ah2--)</p><p><b> {</b></p><p> judge_input();</p><p> code_dat[1]=ch;</p><p> show_code(code_dat[0],code_dat[1],0,0);</p>&l
52、t;p><b> }</b></p><p><b> }</b></p><p> if(2==ch1)</p><p><b> {</b></p><p> while(ah3--)</p><p><b> {<
53、/b></p><p> judge_input();</p><p> code_dat[2]=ch;</p><p> show_code(code_dat[0],code_dat[1],code_dat[2],0);</p><p><b> }</b></p><p><
54、;b> }</b></p><p> if(3==ch1)</p><p><b> {</b></p><p> while(ah4--)</p><p><b> {</b></p><p> judge_input();</p>
55、<p> code_dat[3]=ch;</p><p> show_code(code_dat[0],code_dat[1],code_dat[2],code_dat[3]);</p><p><b> }</b></p><p><b> }</b></p><p> i
56、f(4==ch1)</p><p><b> {</b></p><p> if((f_code_dat[0]==code_dat[0])&&(f_code_dat[1]==code_dat[1])&&(f_code_dat[2]==code_dat[2])&&(f_code_dat[3]==code_dat[3])
57、) //判斷輸入的舊密碼是否正確</p><p><b> {</b></p><p><b> val=10;</b></p><p> while(val--)</p><p><b> {</b></p><p> code_right_
58、light=0; //舊密碼正確指示燈亮</p><p> delay(100); </p><p><b> }</b></p><p> code_right_light=1;</p><p> while(!reset_code_but); //以下為輸入重置密碼</p&
59、gt;<p> while(reset_code_but)</p><p><b> {</b></p><p> ah1=ah2=ah3=ah4=10;</p><p> judege_ensure_but();</p><p> if(key1==1)</p><p>
60、;<b> {</b></p><p><b> key1=0;</b></p><p><b> ch2+=1;</b></p><p> added1=1;</p><p><b> }</b></p><p>
61、if(0==ch2)</p><p><b> {</b></p><p> while(ah1--)</p><p><b> {</b></p><p> judge_input();</p><p> f_code_dat[0]=ch;</p>
62、<p> show_code(f_code_dat[0],0,0,0);</p><p><b> }</b></p><p><b> }</b></p><p> if(1==ch2)</p><p><b> {</b></p><
63、p> while(ah2--)</p><p><b> {</b></p><p> judge_input();</p><p> f_code_dat[1]=ch;</p><p> show_code(f_code_dat[0],f_code_dat[1],0,0);</p><
64、;p><b> }</b></p><p><b> }</b></p><p> if(2==ch2)</p><p><b> {</b></p><p> while(ah3--)</p><p><b> {</
65、b></p><p> judge_input();</p><p> f_code_dat[2]=ch;</p><p> show_code(f_code_dat[0],f_code_dat[1],f_code_dat[2],0);</p><p><b> }</b></p><p
66、><b> }</b></p><p> if(3==ch2)</p><p><b> {</b></p><p> while(ah4--)</p><p><b> {</b></p><p> judge_input();<
67、;/p><p> f_code_dat[3]=ch;</p><p> show_code(f_code_dat[0],f_code_dat[1],f_code_dat[2],f_code_dat[3]);</p><p><b> }</b></p><p><b> }</b></p&
68、gt;<p> if(4==ch2)</p><p><b> {</b></p><p><b> ch1=0;</b></p><p><b> break;</b></p><p><b> }</b></p>
69、<p><b> }</b></p><p> } else //以下為輸入舊密碼錯(cuò)誤時(shí)光聲報(bào)警器報(bào)警程序</p><p><b> {</b></p><p><b> i=100;</b></p><p> while(i--)</p
70、><p><b> {</b></p><p> code_wrong_light=!code_wrong_light; </p><p> delay(10);</p><p> code_wrong_ring=!code_wrong_ring;</p><p> delay(10);
71、</p><p><b> }</b></p><p> fault+=1;</p><p><b> }</b></p><p><b> ch1=0;</b></p><p><b> }</b></p
72、><p> if(3==fault)</p><p><b> {</b></p><p> fault_pass3=6000;//自鎖計(jì)時(shí)60s</p><p> while(fault_pass3--)</p><p><b> {</b></p>&
73、lt;p> show_dat(fault_pass3);</p><p><b> }</b></p><p><b> fault=0;</b></p><p><b> } </b></p><p><b> }</b>
74、</p><p><b> }</b></p><p> void delay(unsigned int ms)</p><p><b> {</b></p><p> unsigned int i;</p><p> while(ms--)</p>
75、<p><b> {</b></p><p><b> i=1000;</b></p><p> while(i--);</p><p><b> }</b></p><p><b> }</b></p><p
76、> void show_code(unsigned char val,unsigned char val1,unsigned char val2,unsigned char val3) //顯示用戶輸入的數(shù)字</p><p><b> {</b></p><p><b> P3=7;</b></p><p>
77、; P2=show[val];</p><p><b> delay(2);</b></p><p><b> P3=11;</b></p><p> P2=show[val1];</p><p><b> delay(2);</b></p><p
78、><b> P3=13;</b></p><p> P2=show[val2];</p><p><b> delay(2);</b></p><p><b> P3=14;</b></p><p> P2=show[val3];</p><
79、p><b> delay(2);</b></p><p><b> }</b></p><p> void judge_input(void)</p><p><b> {</b></p><p> judge_input_but();</p>&
80、lt;p> if(key==1)</p><p><b> {</b></p><p><b> added=1;</b></p><p><b> ch+=1;</b></p><p><b> key=0;</b></p>
81、<p><b> }</b></p><p> if(ch==10)</p><p><b> ch=0;</b></p><p><b> }</b></p><p> void judge_input_but(void)</p><
82、p><b> {</b></p><p> unsigned char i,j;</p><p><b> i=4,j=0;</b></p><p> if(0==input_code_but) //judge the press button </p><p><b&
83、gt; {</b></p><p> delay(10);</p><p> while(i--)</p><p><b> {</b></p><p> if(0==input_code_but) //really press the button </p><p&g
84、t;<b> j++;</b></p><p> if((j>2)&&(added==0)) </p><p><b> key=1;</b></p><p><b> }</b></p><p><b> }</b>
85、;</p><p><b> else </b></p><p><b> {</b></p><p><b> key=0;</b></p><p><b> added=0;</b></p><p><b>
86、 }</b></p><p><b> }</b></p><p> void judege_ensure_but(void)</p><p><b> {</b></p><p> unsigned char i,j;</p><p><b&g
87、t; i=4,j=0;</b></p><p> if(0==ensure_code_but) //judge the press button </p><p><b> {</b></p><p> delay(10);</p><p> while(i--)</p>&
88、lt;p><b> {</b></p><p> if(0==ensure_code_but) //really press the button </p><p><b> j++;</b></p><p> if((j>2)&&(added1==0)) </p&g
89、t;<p><b> key1=1;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else </b></p><p><b> {</b>&
90、lt;/p><p><b> key1=0;</b></p><p><b> added1=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> void show_
91、dat(unsigned int n) //連續(xù)3次開鎖密碼錯(cuò)誤,系統(tǒng)自鎖計(jì)時(shí)顯示程序</p><p><b> {</b></p><p> unsigned int qw,bw,sw,gw;</p><p> qw=n/1000; //千位</p><p> bw=(n/100)%10;//百位
92、</p><p> sw=(n/10)%10; // 十位</p><p> gw=n%10; // 個(gè)位</p><p><b> P3=14;</b></p><p> P2=show[gw];// 顯示個(gè)位</p><p><b> delay(2)
93、;</b></p><p><b> P3=13;</b></p><p> P2=show[sw]; // 顯示十位</p><p><b> delay(2);</b></p><p><b> P3=11;</b></p><
94、;p> P2=show[bw]; // 顯示百位</p><p><b> delay(2);</b></p><p><b> P3=7;</b></p><p> P2=show[qw]; //顯示千位</p><p> delay(2);</p><
95、;p><b> }</b></p><p><b> 六,心得體會</b></p><p> 這次的課程設(shè)計(jì),在老師的指導(dǎo)及要求下,我們開始了為期2周的單片機(jī)電子密碼鎖的課程設(shè)計(jì)。與以前相比,這次的課程設(shè)計(jì)可謂是要完全靠我們自己,在沒有老師的督促引導(dǎo)下要完成老師布置的課程設(shè)計(jì)內(nèi)容,這一點(diǎn)相對于我們而言是很難的。但是,我們知道在做課程設(shè)
96、計(jì)的過程中肯定會遇到很多的問題。特別是在程序編寫的過程中,我們可能會費(fèi)很大的力氣去編寫程序,我想再這個(gè)過程中是很困難的,但是,我們不怕這些?;貋砗螅紫龋铱戳艘幌聦?shí)驗(yàn)指導(dǎo)書的內(nèi)容和要求,對課程設(shè)計(jì)的要求做了一些了解。再者,我為了要能夠編寫出程序,對課程設(shè)計(jì)要求看了很多遍,熟練掌握了各種復(fù)雜的邏輯關(guān)系,還有怎樣通過程序去實(shí)現(xiàn)各種邏輯關(guān)系,還有編程的規(guī)范性,也是要我們小心的,學(xué)會利用標(biāo)準(zhǔn)去實(shí)現(xiàn)編程。</p><p>
97、; 而且,在此次課程設(shè)計(jì)中,我還對keil軟件進(jìn)行編程,進(jìn)行了進(jìn)一步的了解與應(yīng)用。在這個(gè)過程中讓我深刻的學(xué)習(xí)各種軟件的利用以及各種軟件對相應(yīng)程序的應(yīng)用,特別是在仿真軟件的應(yīng)用中,是我對各種軟件的應(yīng)用有了更大一步的提高,用仿真來實(shí)現(xiàn)程序的功能能否實(shí)現(xiàn)。</p><p> 另外,此次的課程設(shè)計(jì)也使我明白了平時(shí)要注重理論與實(shí)踐的統(tǒng)一,這是很重要的。只有把理論與實(shí)踐相結(jié)合,才能達(dá)到真正的理解效果。同時(shí),也培養(yǎng)我們在困
98、難中,怎樣去認(rèn)識自己的不足,與不懂的地方然后去慢慢學(xué)習(xí),去鞏固自己的不足,加強(qiáng)學(xué)習(xí),努力提升自己。</p><p> 在整個(gè)課程設(shè)計(jì)過程中,我懂得了很多東西,遇到問題不會的主動與他人討論,向他人請教,雖然是問別人的,但是還是能做到把它化為自己的東西,為自己培養(yǎng)了思考和設(shè)計(jì)的能力。雖然,這個(gè)課程設(shè)計(jì)只有短短的2周,但是,我還是學(xué)會了很多東西,很有意義。希望以后能再接再厲,爭取做得更好。</p>&l
99、t;p><b> 七,參考文獻(xiàn)</b></p><p> 《51單片機(jī)C語言應(yīng)用開發(fā)技術(shù)大全》龍脈工作室 劉坤、宋戈、趙紅波、張憲棟 編著,人民郵電出版社</p><p> 《51單片機(jī)應(yīng)用設(shè)計(jì)與仿真——基于Keil與Proteus》丁明亮、唐前輝 主編,北京航空航天大學(xué)出版社</p><p> 《單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)——基
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)電子密碼鎖課程設(shè)計(jì)
- 課程設(shè)計(jì)--單片機(jī)電子密碼鎖
- 單片機(jī)電子密碼鎖課程設(shè)計(jì)
- 基于單片機(jī)電子密碼鎖課程設(shè)計(jì)
- 基于單片機(jī)電子密碼鎖課程設(shè)計(jì)論文
- 單片機(jī)課程設(shè)計(jì)--電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)--電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)報(bào)告--電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)--電子密碼鎖報(bào)告
- 單片機(jī)課程設(shè)計(jì)---電子密碼鎖報(bào)告
- 單片機(jī)課程設(shè)計(jì)--門禁電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)----電子密碼鎖報(bào)告
- 51單片機(jī)電子密碼鎖設(shè)計(jì)設(shè)計(jì)
- 單片機(jī)-密碼鎖課程設(shè)計(jì)
- 單片機(jī)設(shè)計(jì)電子密碼鎖課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)-密碼鎖
- 單片機(jī)課程設(shè)計(jì)--密碼鎖
- 單片機(jī)課程設(shè)計(jì)-密碼鎖
- 單片機(jī)密碼鎖課程設(shè)計(jì)
評論
0/150
提交評論