版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 微機(jī)課程設(shè)計(jì)</b></p><p> 指導(dǎo)教師_ </p><p> 姓名________</p><p> 學(xué)號(hào)_____(dá)___</p><p> 班級(jí)___10通信(1)班__</p><p> 設(shè)計(jì)內(nèi)容___密碼鎖___</p&
2、gt;<p> 微機(jī)原理及接口技術(shù)課程設(shè)計(jì)任務(wù)書</p><p><b> 一.設(shè)計(jì)總則</b></p><p> 本課程設(shè)計(jì)在任課教師給出六個(gè)設(shè)計(jì)題目前提下,每個(gè)學(xué)生根據(jù)自己的興趣選擇其中一個(gè)設(shè)計(jì)題目。</p><p> 選用89C51或89C52和適當(dāng)?shù)拇鎯?chǔ)器及接口芯片完成相應(yīng)的功能。</p><p
3、> 在20周完成并提交設(shè)計(jì),通過演示和非抄襲確認(rèn)后所取得的成績(jī)?yōu)橛行С煽?jī)。該成績(jī)可作為實(shí)驗(yàn)課的考試成績(jī)。</p><p> 設(shè)計(jì)過程中嚴(yán)禁抄襲,否則將根據(jù)情節(jié)扣減成績(jī)直至取消成績(jī)。</p><p> 設(shè)計(jì)調(diào)試在計(jì)算機(jī)實(shí)驗(yàn)室10-406 10-408進(jìn)行。</p><p><b> 二.設(shè)計(jì)內(nèi)容及要求</b></p>
4、<p> 1.微型計(jì)算機(jī)退火爐溫度控制系統(tǒng)</p><p> 退火爐使用電熱絲加熱,溫度范圍為0~1000℃,爐內(nèi)溫度值經(jīng)熱電偶檢測(cè)后,經(jīng)變送器變成0~5V范圍內(nèi)的電壓信號(hào)送A/D轉(zhuǎn)換器轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字量。數(shù)字量經(jīng)數(shù)字濾波后送入CPU作為本次采樣值。把測(cè)量到的溫度值與設(shè)定值進(jìn)行比較來決定是否啟動(dòng)電熱絲加熱,若低于600℃則啟動(dòng)電熱絲加熱,若高于900℃則停止加熱以達(dá)到控制溫度的目的。</p&g
5、t;<p><b> 2.多功能密碼鎖</b></p><p> 密碼鎖在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時(shí)顯示OPEN字樣。當(dāng)輸入密碼錯(cuò)誤時(shí),發(fā)出錯(cuò)誤警告聲音,同時(shí)顯示CLOSE字樣。當(dāng)六次誤碼輸入的條件下,產(chǎn)生報(bào)警電平報(bào)警。還可以實(shí)現(xiàn)對(duì)密碼的修改,修改成功后,蜂鳴器發(fā)出確認(rèn)音。要求選用8088和適當(dāng)?shù)拇鎯?chǔ)器及接口芯片完成相應(yīng)的功能并用LED顯示器顯示
6、電子鎖的當(dāng)前狀態(tài)。</p><p> 3.步進(jìn)電機(jī)控制系統(tǒng)</p><p> 在PC系統(tǒng)機(jī)里,設(shè)計(jì)總線接口電路以及功率驅(qū)動(dòng)電路控制X、Y兩臺(tái)三相反應(yīng)式步進(jìn)電機(jī)55BF004,用軟件完成脈沖分配任務(wù),由LED顯示X、Y兩臺(tái)步進(jìn)電機(jī)的實(shí)際轉(zhuǎn)數(shù)。要求使步進(jìn)電機(jī)X和Y以每分鐘6轉(zhuǎn)的速率正向旋轉(zhuǎn)10min、停3S;然后,使步進(jìn)電機(jī)X以每分鐘30轉(zhuǎn)的速率反向旋轉(zhuǎn)10min,同時(shí)使Y以每分鐘50轉(zhuǎn)的
7、速率反向旋轉(zhuǎn)。</p><p> 4.公共場(chǎng)所安全報(bào)警系統(tǒng)</p><p> 設(shè)計(jì)一個(gè)微機(jī)控制的公共場(chǎng)所(辦公室、商場(chǎng)等)實(shí)用報(bào)警系統(tǒng)。要求:每個(gè)被檢測(cè)點(diǎn)均有一個(gè)火警檢測(cè)頭(傳感器),此檢測(cè)頭可檢測(cè)火光、溫度及煙霧等信號(hào);火光、溫度及煙霧數(shù)據(jù)傳送至管理中心,任何一種超過閾值即產(chǎn)生報(bào)警信號(hào);管理中心可對(duì)各被檢測(cè)點(diǎn)進(jìn)行巡回檢測(cè),并可顯示報(bào)警房間號(hào),同時(shí)由蜂鳴器發(fā)出鳴叫,報(bào)警一分鐘后繼續(xù)進(jìn)行
8、巡回檢測(cè)。管理中心最多可控制20個(gè)點(diǎn)。</p><p> 5.家用電熱淋浴器控制器的設(shè)計(jì)</p><p> 要求:打開電源后,先設(shè)定水溫,水溫分為八檔(30oC-100oC,每10oC為一檔);按下啟動(dòng)鍵后,開始測(cè)量水溫并顯示,控制電熱管加熱;上下限水位報(bào)警(聲光報(bào)警)。</p><p> 6.機(jī)械手專用控制器的設(shè)計(jì)</p><p>
9、 本機(jī)械手為一水平/垂直位移的機(jī)械設(shè)備,用來將工件由左工作臺(tái)搬到右工作臺(tái)。其動(dòng)作過程共有8個(gè),完成一個(gè)工作周期。機(jī)械手有手動(dòng)、單步、單周期、連續(xù)工作、可緊急方式。</p><p><b> 三.設(shè)計(jì)報(bào)告要求</b></p><p> 1.設(shè)計(jì)內(nèi)容及要求;</p><p> 2、設(shè)計(jì)原理,說明系統(tǒng)方案并畫出系統(tǒng)框圖;</p>
10、<p> 3、畫出完整的硬件電路圖,并說明電路的工作原理及主要芯片的性能</p><p> 4、畫出軟件流程框圖,寫出程序清單并加必要注釋,說明調(diào)試結(jié)果;</p><p> 5、總結(jié)所設(shè)計(jì)電路的特點(diǎn)和方案的優(yōu)缺點(diǎn);</p><p><b> 6、收獲、體會(huì);</b></p><p><b>
11、 7、列出參考文獻(xiàn)。</b></p><p><b> 四.評(píng)分辦法</b></p><p> 1)自行完成全部設(shè)計(jì)內(nèi)容,仿真成功并制成印刷電路板——優(yōu);</p><p> 2)自行完成全部設(shè)計(jì)內(nèi)容,畫出硬件電路圖,仿真存在小故障——良;</p><p> 3)自行完成全部設(shè)計(jì)內(nèi)容,系統(tǒng)局部連接正確,
12、整體連接有部分故障——中;</p><p> 4)對(duì)ATMEL芯片熟悉掌握,與其他人共同完成設(shè)計(jì)內(nèi)容,掌握各種接口芯片功能,但沒有連成系統(tǒng)——及格;</p><p> 5)沒有掌握ATMEL芯片,沒有完成設(shè)計(jì)內(nèi)容,不掌握接口芯片功能,……——不及格。</p><p> 指導(dǎo)教師簽名: 年 月 日<
13、;/p><p> 系主任簽名: 年 月 日</p><p><b> 設(shè)計(jì)內(nèi)容及要求</b></p><p> 1.1設(shè)計(jì)內(nèi)容:多功能密碼鎖</p><p><b> 1.2設(shè)計(jì)要求</b></p><p>
14、 密碼鎖在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時(shí)顯示OPEN字樣。當(dāng)輸入密碼錯(cuò)誤時(shí),發(fā)出錯(cuò)誤警告聲音,同時(shí)顯示CLOSE字樣。當(dāng)六次誤碼輸入的條件下,產(chǎn)生報(bào)警電平報(bào)警。還可以實(shí)現(xiàn)對(duì)密碼的修改,修改成功后,蜂鳴器發(fā)出確認(rèn)音。要求選用8088和適當(dāng)?shù)拇鎯?chǔ)器及接口芯片完成相應(yīng)的功能并用LED顯示器顯示電子鎖的當(dāng)前狀態(tài)。</p><p><b> 設(shè)計(jì)原理</b></p&g
15、t;<p><b> 2.1設(shè)計(jì)方案</b></p><p> 本次設(shè)計(jì)以51單片機(jī)為核心,由矩陣鍵盤、LCD液晶顯示器、時(shí)鐘電路、復(fù)位電路等部分組成,矩陣鍵盤和LCD液晶顯示器是主要的2個(gè)功能模塊。用戶通過矩陣鍵盤輸入密碼,單片機(jī)獲取密碼并檢驗(yàn)正確后,可進(jìn)行密碼修改、密碼顯示操作。</p><p><b> 2.2系統(tǒng)框圖</b&
16、gt;</p><p><b> 硬件電路圖</b></p><p><b> 3.1時(shí)鐘電路</b></p><p> 時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)序脈沖,單片機(jī)所有運(yùn)算與控制過程都是在統(tǒng)一的時(shí)序脈沖的驅(qū)動(dòng)下的進(jìn)行的,如果單片機(jī)的時(shí)鐘電路停止工作(晶振停振),那么單片機(jī)也就停止運(yùn)行了。當(dāng)采用內(nèi)部時(shí)鐘時(shí),連接方法如下圖所示
17、,在晶振引腳XTAL1(19腳)和XTAL2(18腳)引腳之間接入一個(gè)12MHZ晶振,兩個(gè)引腳對(duì)地分別再接入一個(gè)電容即可產(chǎn)生所需的時(shí)鐘信號(hào),電容的容量一般在幾十皮法,如33PF。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)序脈沖,單片機(jī)所有運(yùn)算與控制過程都是在統(tǒng)一的時(shí)序脈沖的驅(qū)動(dòng)下的進(jìn)行的,如果單片機(jī)的時(shí)鐘電路停止工作(晶振停振),那么單片機(jī)也就停止運(yùn)行了。當(dāng)采用內(nèi)部時(shí)鐘時(shí),連接方法如下圖所示,在晶振引腳XTAL1(19腳)和XTAL2(18腳)引腳之間接入
18、一個(gè)12MHZ晶振,兩個(gè)引腳對(duì)地分別再接入一個(gè)電容即可產(chǎn)生所需的時(shí)鐘信號(hào),電容的容量一般在幾十皮法,如33PF。</p><p><b> 3.2復(fù)位電路</b></p><p> 復(fù)位是單片機(jī)的初始化操作。單片機(jī)啟運(yùn)運(yùn)行時(shí),都需要先復(fù)位,其作用是使CPU和系統(tǒng)中其他部件處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。因而,復(fù)位是一個(gè)很重要的操作方式。但單片機(jī)本身是
19、不能自動(dòng)進(jìn)行復(fù)位的,必須配合相應(yīng)的外部電路才能實(shí)現(xiàn)。該復(fù)位電路采用按鍵電平復(fù)位式復(fù)位電路。當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時(shí),按下復(fù)位鍵后松開,在復(fù)位引腳RET(9腳)腳持續(xù)出現(xiàn)24個(gè)振蕩器脈沖周期(即2個(gè)機(jī)器周期)的高電平信號(hào)將使單片機(jī)復(fù)位。也能使RST為一段時(shí)間的高電平,從而實(shí)現(xiàn)上電或開關(guān)復(fù)位的操作。</p><p><b> 3.3矩陣鍵盤</b></p><p> 在
20、鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來做鍵盤是合理的。</p><
21、p> 矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些.本次方案中,列線通過電阻接正電源,行線與列線接在P1口上,首先進(jìn)行行掃描,P1口置F0H,可找出按下的鍵的行值;再進(jìn)行列掃描,P1口置0FH,可找出按下的鍵的列值,行列值相加便是鍵值,從鍵碼表中可找到相應(yīng)按鍵。</p><p><b> 按鍵功能表:</b></p><p><b>
22、 3.4報(bào)警電路</b></p><p> 報(bào)警電路是由一個(gè)蜂鳴器和一個(gè)LED組成的,外接一高電平。當(dāng)蜂鳴器不工作時(shí),P3.4端電平置1;當(dāng)需要蜂鳴器工作時(shí),P3.4端置0,此時(shí)蜂鳴器工作并且LED發(fā)光以表示電路通。</p><p><b> 3.5按鍵有效電路</b></p><p> 該電路用于判斷按鍵是否有效,有效則LE
23、D閃爍一下。按鍵有效時(shí),P3.2端置0,調(diào)用延時(shí),再置1.</p><p> 3.6 LCD液晶顯示器</p><p> 本次實(shí)驗(yàn)采用的顯示部分是LM016L,能顯示豐富多樣的數(shù)據(jù),提供了更好的人機(jī)交互界面。開機(jī)時(shí),LCD顯示歡迎主界面,輸入密碼時(shí),每輸入一位密碼顯示一個(gè)“*”,同時(shí)可以回刪;密碼輸入正確能轉(zhuǎn)換到一個(gè)選擇界面,可以進(jìn)行查看密碼,和修改密碼操作;輸入錯(cuò)誤能提示ERROR。
24、通過LCD的顯示情況,可以很清楚的知道密碼輸入情況,與當(dāng)前程序運(yùn)行情況。</p><p><b> 程序部分</b></p><p><b> 4.1流程框圖</b></p><p><b> 4.2程序清單</b></p><p> PASS_OK BIT 20
25、H.3 </p><p> POS EQU 49H</p><p> NUM EQU 70H</p><p> BUSY BIT P0.7</p><p> LCD_RS BIT P2.0 ;LCD 控制管腳定義</p><p> LCD_RW BIT P2.1&
26、lt;/p><p> LCD_EN BIT P2.2</p><p> DATAPORT EQU P0 ;定義LCD的數(shù)據(jù)端口</p><p> LCD_X EQU 29H</p><p> TIMES EQU 2AH</p><p> BUSY_CHECK BIT 20H.0<
27、/p><p><b> ORG00H</b></p><p> SJMP START</p><p><b> ORG0BH</b></p><p><b> START:</b></p><p><b> ;設(shè)
28、置初始密碼</b></p><p><b> PASSWORD:</b></p><p> ACALL LCD_INIT ;LCD初始化</p><p> ACALL MENU9</p><p> ACALL NUMBER ;初始密碼位數(shù)</p><p&g
29、t; ACALL GETPW0 ;獲取初始密碼</p><p><b> ;主循環(huán)</b></p><p><b> MLOOP1:</b></p><p><b> SETB P3.5</b></p><p> MOV A,#01H ;清除
30、 LCD 顯示屏</p><p> ACALL WCOM </p><p> SETB P3.2;鍵有效</p><p> SETB P3.4;報(bào)警</p><p> ACALL MENU1 ;調(diào)用顯示菜單1</p><p> ACALL START_
31、IN ; 啟動(dòng)鍵判斷是否按下 </p><p> MOV R3,#03H ;3次輸入密碼機(jī)會(huì) </p><p><b> MLOOP2: </b></p><p> ACALL GETPW ;輸入密碼</p><p> ACALL COMP ;密碼比較<
32、;/p><p> ACALL DELAY </p><p> JB PASS_OK,MLOOP3 ;PASS_OK為1跳轉(zhuǎn)</p><p> DJNZ R3,MLOOP2 </p><p> MOV A,#01H ;清除 LCD 顯示屏</p><p> ACALL WCO
33、M</p><p> ACALL MENU8</p><p> LOCKED: ;錯(cuò)誤3次,鎖定1分鐘</p><p><b> CLR P3.5</b></p><p> ACALL DELAY2</p><p> ACALL DELAY2</p>
34、<p> AJMP MLOOP1</p><p><b> MLOOP3: </b></p><p> CLR PASS_OK ;PASS_OK置0</p><p> ACALL CHANGE_PW ;修改密碼</p><p> ACALL PASS_LOOK ;查看密碼<
35、/p><p> CJNE A,#0DH,MLOOP3 ;判是否"D"按下?</p><p><b> MLOOP4:</b></p><p> AJMP MLOOP1</p><p> ;設(shè)置初始密碼子程序 </p><
36、p><b> GETPW0:</b></p><p> MOV A,#01H ;清除 LCD 顯示屏</p><p> ACALL WCOM</p><p> ACALL MENU10 </p><p> MOV R4,NUM;密碼個(gè)數(shù)</p><
37、p> MOV R0,#40H;輸入密碼暫存區(qū)</p><p> MOV POS,#08H</p><p> CONTIUE01:</p><p><b> ACALL KEY</b></p><p><b> MOV R5,A</b></p><p&g
38、t; CJNE A,#0AH,CONTIUE03 ;數(shù)字鍵0-9有效</p><p> AJMP CONTIUE01 </p><p> CONTIUE03:</p><p> JNC CONTIUE04 ;CF=0跳轉(zhuǎn)到回刪塊</p><p> MOV LCD_X,POS ;第PO
39、S列</p><p> ACALL SET_X2 ;第二行</p><p><b> MOV A,R5</b></p><p> MOV@R0,A</p><p> ACALL DISPLED;按鍵有效顯示</p><p> MOV A,#2AH
40、 ;顯示"*"</p><p> ACALL WDATA ;顯示輸入密碼的位數(shù)</p><p><b> INC R0</b></p><p><b> INC POS</b></p><p> DJNZ R4,CONTIUE01&l
41、t;/p><p> AJMP CONTIUE06</p><p> CONTIUE04:</p><p> CJNE A,#0CH,CONTIUE01 ;"C"修改鍵</p><p> MOV A,POS</p><p> CJNE A,#08H,CONTIUE05 ;檢測(cè)
42、POS是否到最小值</p><p> AJMP CONTIUE01</p><p> CONTIUE05:</p><p><b> DEC POS</b></p><p><b> DEC R0</b></p><p><b> INC R4</
43、b></p><p> MOV LCD_X,POS</p><p> ACALL SET_X2</p><p> MOV A,#2DH ;顯示"-"</p><p> ACALL WDATA</p><p> AJMP CONTIUE01</p>
44、<p> CONTIUE06:</p><p><b> ACALL KEY</b></p><p> CJNE A,#0EH,CONTIUE07 ;"E"鍵確定退出</p><p> MOV A,#01H ;清除 LCD 顯示屏</p><p> ACA
45、LL WCOM</p><p> AJMP P_END</p><p> CONTIUE07:</p><p> CJNE A,#0CH,CONTIUE06 ;"C"鍵返回修改</p><p> AJMP CONTIUE05 </p><p><b>
46、P_END:</b></p><p><b> RET </b></p><p><b> ;輸入密碼子程序</b></p><p><b> GETPW:</b></p><p> ACALL MENU2 </p>
47、<p> MOV R4,NUM;密碼個(gè)數(shù)</p><p> MOV R0,#30H;輸入密碼暫存區(qū)</p><p> MOV POS,#08H</p><p><b> CONTIUE1:</b></p><p><b> ACALL KEY</b></
48、p><p><b> MOV R5,A</b></p><p> CJNE A,#0AH,CONTIUE3 ;數(shù)字鍵0-9有效</p><p> AJMP CONTIUE1 </p><p><b> CONTIUE3:</b></p><p> JNC
49、CONTIUE4 ;CF=0跳轉(zhuǎn)到回刪塊</p><p> MOV LCD_X,POS ;第POS列</p><p> ACALL SET_X2 ;第二行</p><p><b> MOV A,R5</b></p><p> MOV@R0,A</p
50、><p> ACALL DISPLED;按鍵有效顯示</p><p> MOV A,#2AH ;顯示"*"</p><p> ACALL WDATA ;顯示輸入密碼的位數(shù)</p><p><b> INC R0</b></p>
51、<p><b> INC POS</b></p><p> DJNZ R4,CONTIUE1</p><p> AJMP CONTIUE6</p><p><b> CONTIUE4:</b></p><p> CJNE A,#0CH,CONTIUE1 ;"C&
52、quot;修改鍵</p><p> MOV A,POS</p><p> CJNE A,#08H,CONTIUE5 ;檢測(cè)POS是否到最小值</p><p> AJMP CONTIUE1</p><p><b> CONTIUE5:</b></p><p><b>
53、 DEC POS</b></p><p><b> DEC R0</b></p><p><b> INC R4</b></p><p> MOV LCD_X,POS</p><p> ACALL SET_X2</p><p> MOV A,#2D
54、H ;顯示"-"</p><p> ACALL WDATA</p><p> AJMP CONTIUE1</p><p><b> CONTIUE6:</b></p><p><b> ACALL KEY</b></p><p&g
55、t; CJNE A,#0EH,CONTIUE7 ;"E"鍵確定退出</p><p> MOV A,#01H ;清除 LCD 顯示屏</p><p> ACALL WCOM</p><p> AJMP P0_END</p><p><b> CONTIUE7:</b>
56、</p><p> CJNE A,#0CH,CONTIUE6 ;"C"鍵返回修改</p><p> AJMP CONTIUE5 </p><p><b> P0_END:</b></p><p><b> RET </b></p>
57、;<p><b> ;比較密碼子程序</b></p><p> COMP: MOVR4,NUM</p><p> MOVR0,#30H</p><p> AGAI:MOV50H,@R0;取輸入密碼到50H</p><p><b> MOVA,R0</b&g
58、t;</p><p> ADDA,#010H;40H</p><p><b> MOVR0,A</b></p><p> MOVA,@R0;取密碼</p><p><b> MOVB,A</b></p><p><b> MOV
59、A,R0</b></p><p> SUBB A,#010H;30H</p><p><b> MOVR0,A</b></p><p><b> MOVA,B</b></p><p> CJNE A,50H,ERROR;比較</
60、p><p><b> INCR0</b></p><p> DJNZ R4,AGAI</p><p> SETB PASS_OK</p><p> ACALL MENU5</p><p> RET;正確返回</p><p><b&g
61、t; ERROR: </b></p><p> ACALL VOICE ;蜂鳴器響一聲</p><p> MOV A,#01H ;清除 LCD 顯示屏</p><p> ACALL WCOM </p><p> ACALL MENU6</p><p> ACALL D
62、ELAY</p><p> ACALL DELAY</p><p> ACALL DELAY</p><p> ACALL DELAY</p><p> ACALL DELAY</p><p><b> RET</b></p><p><b> ;修改
63、密碼子程序</b></p><p> CHANGE_PW:</p><p><b> ACALL KEY</b></p><p> CJNE A,#0BH,CH_END ;判"B"鍵是否按下?</p><p> MOV A,#01H ;清除 LCD 顯示屏&
64、lt;/p><p> ACALL WCOM</p><p> ACALL MENU9</p><p> ACALL NUMBER</p><p> MOV A,#01H ;清除 LCD 顯示屏</p><p> ACALL WCOM </p><p> ACALL M
65、ENU4</p><p> MOV R0,#40H ;存放輸入密碼單元首地址</p><p> MOV R4,NUM ;8位密碼</p><p> MOV POS,#08H ;確定顯示首位置</p><p><b> CH_IN1:</b></p>
66、<p><b> ACALL KEY</b></p><p><b> MOV R5,A</b></p><p> CJNE A,#0AH,CH_IN3 ;數(shù)字鍵0-9有效</p><p><b> CH_IN3:</b></p><p> JNC
67、 CH_IN4 ;為0跳轉(zhuǎn)到回刪塊</p><p> MOV LCD_X,POS ;確定顯示位置</p><p> ACALL SET_X2</p><p> MOV A,R5 ;取鍵值</p><p> MOV @R0,A ;保存輸入密
68、碼值</p><p> ACALL DISPLED;按鍵有效顯示</p><p> MOV A,#2AH ;轉(zhuǎn)換為ASCII碼</p><p> ACALL WDATA ;顯示 “*”</p><p><b> INC POS</b></p>
69、<p><b> INC R0</b></p><p> DJNZ R4,CH_IN1 ;8位密碼是否輸入完?</p><p> AJMP CH_IN6</p><p><b> CH_IN4:</b></p><p> CJNE A,#0CH,CH_IN1
70、 ;"C"修改鍵</p><p> MOV A,POS</p><p> CJNE A,#08H,CH_IN5 ;檢測(cè)POS是否到最小值</p><p> AJMP CH_IN1</p><p><b> CH_IN5:</b></p><p>&
71、lt;b> DEC POS</b></p><p><b> DEC R0</b></p><p><b> INC R4</b></p><p> MOV LCD_X,POS</p><p> ACALL SET_X2</p><p>
72、 MOV A,#2DH ;顯示"-"</p><p> ACALL WDATA</p><p> AJMP CH_IN1</p><p><b> CH_IN6:</b></p><p><b> ACALL KEY</b></p>
73、<p> ACALL VOICE ;蜂鳴器響一聲</p><p> CJNE A,#0EH,CH_IN7 ;"E"鍵確定退出</p><p> MOV A,#01H ;清除 LCD 顯示屏</p><p> ACALL WCOM</p><p> ACALL MENU7&
74、lt;/p><p> AJMP CH_END</p><p><b> CH_IN7:</b></p><p> CJNE A,#0CH,CH_IN6 ;"C"鍵返回修改</p><p> AJMP CH_IN5</p><p><b> CH_END
75、:</b></p><p><b> RET</b></p><p><b> ;查看密碼子程序</b></p><p> PASS_LOOK:</p><p> CJNE A,#0AH,LOOK_END ;"A"鍵查看</p><p&
76、gt; MOV A,#01H ;清除 LCD 顯示屏</p><p> ACALL WCOM </p><p> ACALL MENU3</p><p> ACALL PASS_PLAY</p><p><b> LOOK_1:</b></p><p><b&g
77、t; ACALL KEY</b></p><p> CJNE A,#0EH,LOOK_1 ;"E"鍵退出</p><p> MOV A,#01H ;清除 LCD 顯示屏</p><p> ACALL WCOM </p><p> ACALL MENU5</p>
78、<p><b> LOOK_END:</b></p><p><b> RET </b></p><p><b> ; 密碼顯示子程序</b></p><p> PASS_PLAY:</p><p> MOV R0,#40H ;存放數(shù)據(jù)首
79、地址</p><p> MOV R4,NUM ;顯示8組數(shù)據(jù)</p><p> MOV LCD_X,#00H ;第4列</p><p> ACALL SET_X2 ;第二行</p><p><b> P_PLAY:</b></p><p&
80、gt; MOV A,@R0 ;取顯示數(shù)據(jù)</p><p> ADD A,#30H ;轉(zhuǎn)換為ASCII碼</p><p> ACALL WDATA ;寫數(shù)據(jù),顯示</p><p> INC R0 ;修改存放數(shù)據(jù)地址</p><p>
81、 DJNZ R4,P_PLAY</p><p><b> RET</b></p><p> ;按鍵有效顯示子程序</p><p><b> DISPLED:</b></p><p> CLRP3.2;按鍵有效顯示</p><p> MOVR6,#80H&
82、lt;/p><p> ACALL DELAY</p><p> SETB P3.2</p><p><b> RET</b></p><p> ;蜂鳴器響一聲子程序</p><p><b> VOICE:</b></p>&
83、lt;p><b> CLR P3.4</b></p><p> MOV R6,#80H</p><p> ACALL DELAY</p><p> ACALL DELAY </p><p> ACALL DELAY</p><p> ACALL DELAY</p&g
84、t;<p> ACALL DELAY</p><p><b> SETB P3.4</b></p><p><b> RET</b></p><p><b> ;密碼位數(shù)獲取</b></p><p><b> NUMBER:</b>
85、;</p><p><b> ACALL KEY</b></p><p><b> MOV NUM,A</b></p><p><b> RET</b></p><p> ; 菜單1顯示子程序 (----WELCOME----)</p><p>
86、; ; (----F:START----)</p><p><b> MENU1:</b></p><p> MOV B,#00H</p><p> MOV DPTR,#INFO4 ;指針指到信息4</p><p> ACALL W_STRING1</p&
87、gt;<p> MOV B,#00H</p><p> MOV DPTR,#INFO0 ;指針指到信息0</p><p> ACALL W_STRING2</p><p><b> RET</b></p><p> ; 菜單2顯示子程序 (INPUT PASSWORD)</p
88、><p> ; (PASSWORD ------)</p><p><b> MENU2:</b></p><p> MOV B,#00H</p><p> MOV DPTR,#INFO3 ;指針指到信息3</p><p> ACALL W_
89、STRING1</p><p> MOV B,#00H</p><p> MOV DPTR,#INFO2 ;指針指到信息2</p><p> ACALL W_STRING2</p><p><b> RET</b></p><p> ; 菜單3顯示子程序 (LOOK P
90、ASSWORD)</p><p> ; (-------E:BACK)</p><p><b> MENU3:</b></p><p> MOV B,#00H</p><p> MOV DPTR,#INFO7 ;指針指到信息7</p><p&g
91、t; ACALL W_STRING1</p><p> MOV B,#00H</p><p> MOV DPTR,#INFOB ;指針指到信息B</p><p> ACALL W_STRING2</p><p><b> RET</b></p><p> ; 菜單4顯示
92、子程序 (RESET PASSWORD)</p><p> ; (PASSWORD------)</p><p><b> MENU4:</b></p><p> MOV B,#00H</p><p> MOV DPTR,#INFO8 ;指針指到信息8</
93、p><p> ACALL W_STRING1</p><p> MOV B,#00H</p><p> MOV DPTR,#INFO2 ;指針指到信息2</p><p> ACALL W_STRING2</p><p><b> RET</b></p><
94、p> ; 菜單5顯示子程序 (INPUT RIGHT)</p><p> ; (A:LOOK B:RESET)</p><p><b> MENU5:</b></p><p> MOV B,#00H</p><p> MOV DPTR,#INFO5 ;指
95、針指到信息5</p><p> ACALL W_STRING1</p><p> MOV B,#00H</p><p> MOV DPTR,#INFOA ;指針指到信息A</p><p> ACALL W_STRING2</p><p><b> RET </b></
96、p><p> ; 菜單6顯示子程序 (PASSWORD CONTROL)</p><p> ; (INPUT ERROR)</p><p><b> MENU6:</b></p><p> MOV B,#00H</p><p> MOV DPTR,#I
97、NFO1 ;指針指到信息1</p><p> ACALL W_STRING1</p><p> MOV B,#00H</p><p> MOV DPTR,#INFO6 ;指針指到信息6</p><p> ACALL W_STRING2</p><p><b> RET &
98、lt;/b></p><p> ; 菜單7顯示子程序 (RESET SUCCESS)</p><p> ; (D:TO MAIN MENU)</p><p><b> MENU7:</b></p><p> MOV B,#00H</p><p>
99、 MOV DPTR,#INFO9 ;指針指到信息9</p><p> ACALL W_STRING1</p><p> MOV B,#00H</p><p> MOV DPTR,#INFOC ;指針指到信息C</p><p> ACALL W_STRING2</p><p><b
100、> RET </b></p><p> ; 菜單8顯示子程序 (----WARING!----)</p><p> ; (----LOCKED!----)</p><p><b> MENU8:</b></p><p> MOV B,#00H</p
101、><p> MOV DPTR,#INFOD ;指針指到信息D</p><p> ACALL W_STRING1</p><p> MOV B,#00H</p><p> MOV DPTR,#INFOE ;指針指到信息E</p><p> ACALL W_STRING2</p>
102、<p><b> RET </b></p><p> ; 菜單9顯示子程序 (SET THE NUMBERS)</p><p> ; (OF PASSWORD)</p><p><b> MENU9:</b></p><p> MOV
103、B,#00H</p><p> MOV DPTR,#INFOF ;指針指到信息F</p><p> ACALL W_STRING1</p><p> MOV B,#00H</p><p> MOV DPTR,#INFOG ;指針指到信息G</p><p> ACALL W_STRING
104、2</p><p><b> RET </b></p><p> ; 菜單10顯示子程序 ( SET THE FIRST )</p><p> ; (PASSWORD--------)</p><p><b> MENU10:</b></p>
105、<p> MOV B,#00H</p><p> MOV DPTR,#INFOH ;指針指到信息F</p><p> ACALL W_STRING1</p><p> MOV B,#00H</p><p> MOV DPTR,#INFO2 ;指針指到信息2</p><p&g
106、t; ACALL W_STRING2</p><p> RET </p><p><b> ; 信息字符串表</b></p><p> INFO1: DB "PASSWORD CONTROL",0</p><p> INFO2: DB &q
107、uot;PASSWORD--------",0</p><p> INFO3: DB " INPUT PASSWORD ",0</p><p> INFO4: DB "----WELCOME----",0</p><p> INFO5: DB " IUPUT RIGHT "
108、,0</p><p> INFO6: DB " IUPUT ERROR ",0</p><p> INFO7: DB " LOOK PASSWORD ",0</p><p> INFO8: DB " RESET PASSWORD ",0</p><p> I
109、NFO9: DB " RESET SUCCESS ",0</p><p> INFO0: DB "----F:START---- ",0</p><p> INFOA: DB "A:LOOK B:RESET",0</p><p> INFOB: DB "
110、E:BACK",0</p><p> INFOC: DB "D:TO MAIN MENU",0 </p><p> INFOD: DB "----WARING!----",0 </p><p> INFOE: DB "----LOCKED!----",0 </p>
111、<p> INFOF: DB "SET THE NUMBERS",0 </p><p> INFOG: DB "OF PASSWORD",0 </p><p> INFOH: DB "SET THE FIRST ",0 </p><p><b> ; 啟動(dòng)輸入子程序&
112、lt;/b></p><p><b> START_IN:</b></p><p><b> IN1: </b></p><p><b> ACALL KEY</b></p><p> CJNE A,#0FH,IN1 ;"F"鍵
113、 </p><p><b> IN2:</b></p><p> CJNE A,#0FH,IN3 ;"F"鍵</p><p> ACALL MENU2</p><p><b> AJMP IN4</b></p><p><b
114、> IN3:</b></p><p><b> AJMP IN1</b></p><p><b> IN4:</b></p><p><b> RET</b></p><p> ;取鍵值子程序,陣列式鍵盤</p><p>
115、 KEY: MOVP1,#0F0H ;讀P1口前先寫F0</p><p> MOVA,P1 ;讀取鍵狀態(tài)</p><p> CJNE A,#0F0H,K12 ;判斷是否有鍵按下</p><p> AJMP KEY</p><p> K12:
116、 </p><p> MOV B,A ;存行值</p><p> MOVP1,#0FH </p><p> MOVA,P1 ;存列值 </p><p> CJNE A,#0FH,K13 </p>
117、<p> AJMP KEY</p><p><b> K13:</b></p><p><b> ANLA,B</b></p><p> MOVB,A ;存鍵碼</p><p> MOVR1,#16</p>&
118、lt;p> MOVR2,#0</p><p> MOVDPTR,#K1TAB ;鍵碼表首地址</p><p><b> K14: </b></p><p><b> MOVA,R2</b></p><p> MOVC A,@A+DPTR<
119、/p><p> CJNE A,B,K16 ;比較,計(jì)算鍵值</p><p> MOVP1,#0FH</p><p><b> K15:</b></p><p><b> MOVA,P1</b></p><p> CJNE
120、 A,#0FH,K15 ;等待按鍵釋放h</p><p> ACALL DELAY</p><p><b> MOVA,R2</b></p><p><b> RET</b></p><p><b> K16:</b><
121、/p><p><b> INCR2</b></p><p> DJNZ R1,K14</p><p> AJMP KEY</p><p><b> ;鍵碼表</b></p><p> K1TAB:DB81H,41H,21H,11
122、H</p><p> DB82H,42H,22H,12H</p><p> DB84H,44H,24H,14H</p><p> DB 88H,48H,28H,18H</p><p><b> ;延時(shí)子程序</b></p><p> DELAY: MOV
123、 R6,#80H</p><p> AA1: MOV R5,#0F8H</p><p><b> AA:NOP</b></p><p><b> NOP</b></p><p> DJNZ R5,AA</p&g
124、t;<p> DJNZ R6,AA1</p><p><b> RET</b></p><p><b> ;延時(shí)子程序2</b></p><p> DELAY2: MOV R6,248</p><p> BB1:
125、 MOV R5,248</p><p><b> BB:</b></p><p> MOV R7,248</p><p><b> NOP</b></p><p><b> NOP</b></p><p><
126、b> DJNZ R7,$</b></p><p> DJNZ R5,BB</p><p> DJNZ R6,BB1</p><p><b> RET</b></p><p> ; 延時(shí)5MS子程序</p><p> DELAY1:
127、 </p><p> MOV R6,#25</p><p><b> DEL3: </b></p><p> MOV R7,#93</p><p><b> DEL4:</b></p><p> DJNZ R7,DEL4</
128、p><p> DJNZ R6,DEL3</p><p><b> RET </b></p><p> ;檢查L(zhǎng)CD忙狀態(tài) </p><p> ;busy為1時(shí),忙,等待。busy為0時(shí),閑,可寫指令與數(shù)據(jù) </p
129、><p><b> LCD_BUSY:</b></p><p> MOV DATAPORT,#0FFH</p><p><b> BUSY_1:</b></p><p> CLR LCD_RS </p><p> SETB LCD_RW</p><
130、;p> CLR LCD_EN</p><p><b> NOP</b></p><p> SETB LCD_EN</p><p> JB BUSY,BUSY_1 </p><p> CLR LCD_EN </p><p><b> RET</b>
131、;</p><p> ;LCD寫命令子程序</p><p> ;LCD_RS=L,LCD_RW=L,D0-D7=指令碼,E=高脈沖</p><p><b> WCOM:</b></p><p> JNB BUSY_CHECK,WCOM_1</p><p> ACALL LCD_BUS
132、Y</p><p><b> WCOM_1:</b></p><p> MOV DATAPORT,A ;寫入指令與地址</p><p> CLR LCD_RS </p><p> CLR LCD_RW</p><p><b> NOP</
133、b></p><p> SETB LCD_EN</p><p><b> NOP</b></p><p> CLR LCD_EN</p><p><b> RET</b></p><p> ;LCD寫數(shù)據(jù)子程序</p><p>
134、 ;LCD_RS=H,LCD_RW=L,D0-D7=數(shù)據(jù)碼,E=高脈沖</p><p><b> WDATA:</b></p><p> ACALL LCD_BUSY</p><p> MOV DATAPORT,A ;寫入數(shù)據(jù)</p><p> SETB LCD_RS </p>
135、<p> CLR LCD_RW</p><p><b> NOP</b></p><p> SETB LCD_EN</p><p><b> NOP</b></p><p> CLR LCD_EN</p><p><b> RET
136、</b></p><p> ; 在 LCD 第一行的指定顯示位置</p><p><b> SET_X1:</b></p><p> MOV A,LCD_X</p><p> ADD A,#80H</p><p> ACALL WCOM</p><p
137、><b> RET</b></p><p> ; 在 LCD 第二行的指定顯示位置</p><p><b> SET_X2:</b></p><p> MOV A,LCD_X</p><p> ADD A,#0C0H</p><p> ACALL WC
138、OM</p><p><b> RET</b></p><p> ; 清除LCD的第一行</p><p> CLR_LINE1: </p><p> MOV A,#80H ;設(shè)置 LCD 的第一行地址</p><p> ACALL W
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理課程設(shè)計(jì)(電子密碼鎖)
- 微機(jī)課程設(shè)計(jì)--多功能密碼鎖
- 密碼鎖課程設(shè)計(jì)
- 密碼鎖課程設(shè)計(jì)
- 課程設(shè)計(jì)--密碼鎖
- 密碼鎖課程設(shè)計(jì)
- 密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 數(shù)字密碼鎖課程設(shè)計(jì)
- 課程設(shè)計(jì)--電子密碼鎖
- 課程設(shè)計(jì)--數(shù)字密碼鎖
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 密碼鎖課程設(shè)計(jì)7
- 密碼鎖課程設(shè)計(jì) (2)
- 數(shù)字密碼鎖課程設(shè)計(jì)
- eda密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論