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