微機原理課程設(shè)計
微機原理課程設(shè)計,微機,原理,課程設(shè)計
※※※※※※※※※
※※
※※
※※
※※※※※※※※※
2008級學(xué)生微機原理
課程設(shè)計
微機原理課程設(shè)計報告書
課題名稱
簡易數(shù)碼鎖設(shè)計
姓 名
楊耀國
學(xué) 號
08
院、系、部
物理與電信工程系
專 業(yè)
通信工程
指導(dǎo)教師
譚躍
2010年 06 月 28日
一、 設(shè)計任務(wù)及要求:
指導(dǎo)教師簽名:
年 月 日
二、指導(dǎo)教師評語:
指導(dǎo)教師簽名:
年 月 日
三、成績
驗收蓋章
年 月 日
簡易數(shù)碼鎖設(shè)計
0812401*08 楊耀國
一、設(shè)計目的
隨著電子技術(shù)的發(fā)展,單片機因其具有體積小、集程度高、可靠性好、性價比高等突出優(yōu)點已在工業(yè)控制、智能儀表、數(shù)控擁未、數(shù)據(jù)采集處理、通訊及各種智能家電和玩具等方面得到了廣泛應(yīng)用。
二、設(shè)計要求
基本功能:設(shè)置初始密碼,隨機輸入密碼并按確認鍵檢驗,若密碼正確則綠燈亮;若密碼錯誤則紅燈亮,峰鳴器峰鳴一瞬間。
擴展功能:在運行過程中隨時修改密碼,并按相關(guān)鍵確認,之后再重新隨機輸入密碼,若密碼正確則綠燈亮,若密碼錯誤則紅燈亮,峰鳴器峰鳴一瞬間。
三、電路及連線設(shè)計
圖2.1.1 數(shù)碼鎖硬件框圖
圖2.1.2 密碼輸入端
圖2.1.3 結(jié)果顯示
圖2.1.4
四、使用說明
本課程設(shè)計是基于8255單片機的簡單應(yīng)用,具有設(shè)置初始密碼,隨機輸入密碼并按確認鍵檢驗,若密碼正確則綠燈亮,若錯誤則紅燈亮,并伴隨有短暫的峰鳴聲。在運行過程中隨時修改密碼,并按相關(guān)鍵確認,之后重新隨機輸入密碼,并按確認鍵檢驗,若密碼正確則綠燈亮,若錯誤則紅燈亮,并伴隨有短暫的峰鳴聲。
五、流程圖設(shè)計
比較
是
是
否
否
是
否
是
任意輸入密碼
KK1是否被按下?
K6.K7是否都為高電平?
KK2是否被按下?
輸入新密碼
輸入的密碼
綠燈亮
正確的密碼
(初始為000000)
兩者是否相同
紅燈亮
峰鳴
否
六、程序設(shè)計如下:
porta equ 60h
portb equ 61h
portc equ 62h
ctrl equ 63h
data segment
buff db 64 dup(?)
data ends
code segment
assume ds:data,cs:code
start:mov ax,data
mov ds,ax
mov dx,ctrl
mov al,10011001b
out dx,al ;對8255初始化,A口為輸入,B口為輸出,C口高入低入
mov dx,portb
mov al,00h ;使開始時所有的燈亮
out dx,al
a7: mov dx,portc
in al,dx ;設(shè)置原始密碼為000000
mov buff,al
jmp a3
a10: mov dx,portb ;使所有的燈亮
mov al,00h
out dx,al
mov dx,portc
in al,dx
test al,11000000b
jz a10 ;如果KK2被按下,則修改密碼
change:mov dx,porta
in al,dx
mov buff,al
jmp a3
a1: mov dx,portb ;使蜂鳴熄滅
mov al,0ch
out dx,al
a3: mov dx,portc
in al,dx
test al,00110000b
jz a3
a2: mov dx,portc
in al,dx
test al,11000000b
jnz a10
mov dx,porta
in al,dx
mov bl,buff
xor al,bl
jz right
jnz error ;讀取A口狀態(tài),若與密碼相同則跳至wright,否則跳至error.
right:mov dx,portb
mov al,0f0h
out dx,al
jmp a3
error:mov dx,portb
mov al,0fh
out dx,al
call delay
jmp a1
delay proc near
mov cx,0005h ;延時子程序
a5:mov ax,0560h
a6:dec ax
jnz a6
loop a5
ret
endp
code ends
end start
七、設(shè)計總結(jié):
在本次課程設(shè)計中,設(shè)計的結(jié)果基本符合設(shè)計的要求,唯一一點缺陷就是設(shè)計的數(shù)碼鎖在密碼輸入錯誤的情況下卻仍能修改密碼,這是不符合常理的。雖然最終的結(jié)果不是非常的理想,但還是在這次的設(shè)計的過程當中學(xué)到了很多,對很多相關(guān)的知識有了更深一層的理解,對匯編程序語言也有了更深一步的了解。雖然在調(diào)試過程中也遇到了很多問題,但通過查找相應(yīng)資料,找老師,問同學(xué),很多問題多得以解決。這個過程中自我獨立思考能力得到了很好的鍛煉。在對匯編程序進行編譯連接時,經(jīng)常會出現(xiàn)錯誤和警告,對程序反復(fù)的修改和認證,最終得到正確而且可行的程序。在對程序的反復(fù)的修改過程中,我了解到匯編語言是一個比較嚴謹而且較復(fù)雜的一門語言,要學(xué)好匯編語言必須得認真學(xué)好每一條語法指令,了解各種寄存器的用法,這樣設(shè)計出來的程序才不容易出錯誤。
八、參考文獻:
[1] 李燕, 宋芳.多路搶答器設(shè)計[J] ·湘潭師范學(xué)院學(xué)報(自然科學(xué)版) , 2004
[2] 舒貞權(quán),任偉利·微機計算機原理[M]·西安:西安交通大學(xué)出版社,1997
[3] 顧元剛,韓燕·匯編語言與微機原理教程[M]·北京:電子工業(yè)出版社,2000 [4] 周佩玲,傅忠謙·微機原理與接口技術(shù)[M]·北京:電子工業(yè)出版社,2004
[5] 唐瑞庭·匯編語言與接口技術(shù)[M]·北京:中國水利水電出版社,2003
7
收藏