九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > DOC文檔下載  

宿舍安全系統(tǒng)單片機課程設計說明書

  • 資源ID:116556256       資源大?。?span id="24d9guoke414" class="font-tahoma">125.79KB        全文頁數(shù):15頁
  • 資源格式: DOC        下載積分:10積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

宿舍安全系統(tǒng)單片機課程設計說明書

接口課程設計實驗報告 宿舍安全系統(tǒng)設計報告 一 .實驗目的及要求 目的:結合一個實際的接口技術問題在實驗臺上編程模擬實現(xiàn)。 要求: 結合實際應用,設計一微機應用系統(tǒng),要求該系統(tǒng)綜合應用并行接口、串行接口、其它接口(定時器接口、中斷接口、模擬接口可選)、編制對應的程序,實現(xiàn)主控中心微機與下位機遠距離傳送以及遠程控制或監(jiān)測功能。 二 .系統(tǒng)功能 本系統(tǒng)是用來驗證進入宿舍人員的身份的。用戶從下位機刷卡,并錄入用戶名和密碼。下位機分別將用戶名和密碼發(fā)送給主控機,主控機驗證之后,發(fā)送相應的反饋信息給下位機。只有 當用戶名和密碼都被確認,用戶身份才合法。合法時下位機控制發(fā)光部件逐個亮燈提示,不合法時則下位機控制發(fā)聲部件鳴聲警報。 三 .系統(tǒng)設計 1. 系統(tǒng)硬件由主控機(其中一臺微機)、下位機(另一臺位微機)和執(zhí)行部件組成。主控機與下位機通過串行通信線連接。 2. 執(zhí)行部件:由接口電路等組成,將接收的數(shù)據(jù)送入到下位機或將下位機輸出的數(shù)據(jù)送到執(zhí)行部件。 3. 下位機:與主控機通信,控制執(zhí)行部件。 4主控機:與所有下位機進行數(shù)據(jù)交換,必要時需建數(shù)據(jù)庫,進行數(shù)據(jù)處理等。 5主控機程序:串行( RS232/RS485)通信程 序,數(shù)據(jù)處理程序等。 6下位機程序:串行( RS232/RS485)通信程序,執(zhí)行部件控制程序。 系統(tǒng)接口框圖見下頁所示: 下圖中, 8255 是用來進行下位機控制部件的接口單元。 A 口的 8 個引腳和控制板上的 8個顯示燈相連,其輸出決定燈的狀態(tài); B 口 8 個引腳和控制板上的撥碼開關的 8 位相連,編碼開關的狀態(tài)可由 B 口讀入下位機; C 口的 PC0,PC1,PC3 分別和控制板上的 SW1,SW2,S24 相連,可由下位機讀入各開關的狀態(tài), PC6 則和喇叭相連,由 PC6 輸出方波控制喇叭發(fā)聲。 四程序設計 本次課程設計的過程中,我主要負責下位機的程序的編寫,以及導線在實驗臺上的連接這兩部分的程序設計工作。 系統(tǒng)的模塊框圖由系統(tǒng)設計的內容可知,即 8255 芯片以上的部分是本系統(tǒng)的通訊模塊框圖,以下的部分為本程序的功能模塊框圖。 系統(tǒng)的程序設計是緊密圍繞系統(tǒng)功能進行的,程序要實現(xiàn)的功能就是系統(tǒng)的功能。 流程框圖如下: 1主控機程序流程圖 程序設計過程中,為了模擬用戶的刷卡進入,讓下位機去測試控制板上的開關 sw4,其按下表示有用戶刷卡進入,這時就可以發(fā)送插卡信號給主控機, 下圖中“接收用戶插卡信號”就是指這個信號。 主控機 8251 RS232 RS232 8251 下位機 8255 A 口 B 口 C 口 顯示燈 sw1,sw2,sw4 和 喇叭 開關 總線 總線 2下位機程序流程圖 下位機部分需要操作控制板,這里要用到控制板上的 8 位編碼開關,以及開關 sw1, sw2,sw4。按下 sw4 表示用戶插卡進入,然后撥動控制板上的編碼開關,設置用戶名編碼,按下sw1 發(fā)送給主控機,若被主控機確認無誤,則撥動控制板上的編碼開關設置密碼,再按下 sw2發(fā)送給主控機,等待主控機確認。 正確情況下的燈亮很好控制,只要 A 口輸出數(shù)據(jù)到燈的引腳,再設計一段程序控制燈的閃爍方式即可。喇叭的發(fā)聲 要說明的是,此處并不是用 8253 的 out 端輸出方波來使之發(fā)聲,而是將 C 口的 PC6 交替置位和復位產生方波,使之發(fā)聲的。 開始 按鍵? 結束 接收用戶插卡信號 合法? 發(fā)確認信號 接收用戶密碼信息 發(fā)確認信號 接收用戶名信息 正確? 合法? 發(fā)確認信號 提示用戶可以進入 初始化 提示用戶名錯誤 發(fā)否認信號 提示密碼錯誤 發(fā)否認信號 提示卡非法 Y Y Y Y N N N N 3.主控機源程序 ;每次驗證用戶名和密碼之前,都有退出提示,即 3 秒鐘內按任意鍵退出,此時 ;按任意鍵方可退出 data segment data51 equ 308h ;8251A 數(shù)據(jù)口 ctr151 equ 309h ;8251A 命令 /狀態(tài)口 defuser db 65h,81h,24h,37h,02ah,54h ;依次為各用戶名 defpwd db 20h,17h,34h,25h,04ch,44h ;依次為各用戶對應的密碼 userno dw 6 ;用戶數(shù)目 YN db 0 ;發(fā)送緩存 user db 0 ;存放接收的用戶名 開始 按鍵? 結束 發(fā)送用戶插卡信號 接收 確認信號 合法? 發(fā)用戶密碼信息 接收確認信號 發(fā)送用戶名信息 接收確認信號 正確? 合法? 提示用戶可以進入 燈亮 初始化 聲音報警 提示用戶名錯誤 接收否認信號 聲音報警 提示密碼錯誤 接收否認信號 提示卡非法 Y Y Y Y N N N N pwd db 0 ;存放接收的密碼 t dw 0 ;延時初值 bufb db 0ah,0dh,The domitory system is running.!$ bufu db 0ah,0dh,username(4 characters):$ ;接收用戶名提示 bufp db 0ah,0dh,password(6 characters):$ ;接收密碼提示 bufr db 0ah,0dh,You can get in!$ ;正確提示 bufus db 0ah,0dh,Error username!$ ;用戶名錯誤提示 bufpd db 0ah,0dh,Error password!$ ;密碼錯誤提示 buferr db 0ah,0dh,Can not identify the card!$ ;不可識別的卡 bufexit db 0ah,0dh,Press any key within 3 seconds to exit!$ data ends stack segment stack db 200 dup(0) stack ends code segment assume cs:code,ds:data,ss:stack hh macro ;回車換行的宏 mov dl,0ah mov ah,2 int 21h mov dl,0dh mov ah,2 int 21h endm int51 proc near ;8251A 初始化子程 mov dx,ctr151 ;8251A 命令口 mov al,0 ;空操作 out dx,al mov al,40h ;內部復位 out dx,al mov al,4Eh ;8251A 方式命令 out dx,al mov al,27h ;8251A 工作命令 out dx,al ret int51 endp delay1 proc ;延時子程 1 push bx mov bx,t dl1: dec bx jnz dl1 pop bx ret delay1 endp quit proc ;3 秒鐘之內按任意鍵退出程序 push cx lea dx,bufexit mov ah,9 int 21h mov cx,05fffh qxx: cmp cx,0 je qx mov ah,1 ;檢測是否有鍵按下,有則退出 int 16h jnz qnext mov t,0ffffh call delay1 dec cx jmp qxx qnext: mov ah,4ch int 21h qx: pop cx ret quit endp send macro a;發(fā)送一個字符的宏,首先必須將要發(fā)送的字符送入變量 YN mov dx,ctr151 a: in al,dx test al,01 ;發(fā)送準備好? TXRDY=1? jz a ;未準備好,則等待 mov dx,data51 ;已準備好,則發(fā)送 Y 給下位機 mov al,YN out dx,al endm receive macro b ;接收一個字符的宏 ,接收到 al b: mov dx,ctr151 ;檢測接收準備好沒 in al,dx test al,02 ;接收數(shù)據(jù)準備好? RXRDY=1? jz b ;未準備好則繼續(xù)檢測 mov dx,data51;已準備好,即有數(shù)據(jù)傳送過來,則接收 1 個字符 in al,dx endm begin: mov ax,data mov ds,ax call int51 ;調用 8251A 子程序,初始化 8251A k: call quit ;延時 3 秒退出 hh lea dx,bufb ;系統(tǒng)提示 mov ah,9 int 21h receive o ;接收插卡信號 cmp al,O jne error mov YN,Y ;發(fā)送卡確認信息 send yyy lea dx,bufu ;用戶名提示信息 mov ah,9 int 21h mov al,0 receive a ;接收一個字符,用戶信息 mov user,al ;保存接收的用戶信息 mov dl,user ;顯示接收的字符 mov ah,02h int 21h jmp cmpuser error: lea dx,buferr ;無法識別的卡 mov ah,9 int 21h hh jmp k over: mov ax,4c00h int 21h cmpuser: mov al,user lea si,defuser ;取用戶名數(shù)組的首地址 mov cx,userno ;取用戶數(shù)目 cu: cmp cx,0 je sendnu cmp al,si je sy ;和某一個用戶名相等則發(fā)送 Y 確認信號 inc si dec cx jmp cu sy: push si ;保存該用戶名的地址 mov YN,Y send y lea dx,bufp ;密碼提示信息 mov ah,9 int 21h ;接收密碼 receive pp mov pwd,al ;保存接收的密碼 pop si mov ax,si add ax,userno ;得到該用戶名對應的密碼在密碼數(shù)組中的地址 mov si,ax mov bl,si cmp pwd,bl ;和密碼比較 jne sendnp ;不相等則發(fā)送 N,相等則發(fā)送 Y mov YN,Y send yy lea dx,bufr ;顯示正確 mov ah,9 int 21h hh jmp k ;重新開始 sendnp: mov YN,N send n lea dx,bufpd ;顯示密碼錯誤 mov ah,9 int 21h hh jmp k ;重新開始 sendnu: mov YN,N send n lea dx,bufus ;顯示用戶名錯誤 mov ah,9 int 21h hh jmp k ;重新開始 code ends end begin 4.下位機源程序 ;程序開始時,提示在 3 秒鐘內按任意鍵退出,否則繼續(xù)執(zhí)行。若繼續(xù)執(zhí)行,首 ;先按 sw4 表示插卡,再由開 ;關狀態(tài)設置用戶名,按 sw1 發(fā)送之,顯示提示信息 ;仍然用開關狀態(tài)設置密碼,按 sw2 發(fā)送之,顯示提示 ;信息,回程序開始 . data segment data51 equ 308h ;8251A 數(shù)據(jù)口 ctr151 equ 309h ;8251A 命令 /狀態(tài)口 ctr155 equ 303h ;8255 命令口 ctr155a equ 300h ;8255 數(shù)據(jù)口 a ctr155b equ 301h ;8255 數(shù)據(jù)口 b un db 0 ;存放讀入的用戶名 pd db 0 ;存放讀入的密碼 hh db 0ah,0dh,$ ;回車換行 light db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,07fh ;閃爍燈狀態(tài) t dw 0 ;延時初值 f db 0 ;計數(shù)初始值 j db 0 ;計數(shù)初始值 YN db 0 bufexit db 0ah,0dh,Press any key within 3 seconds to exit!$ buf1 db 0ah,0dh,Press sw4 instand of inserting the card!$ buf2 db 0ah,0dh,Change the state of the switch to set username! Press sw1 to send it!$ ;提示錄入和發(fā)送用戶名 buf3 db 0ah,0dh,Change the state of the switch to set password! Press sw2 to send it!$ ;提示錄入和發(fā)送密碼 buf4 db 0ah,0dh,The user is not existed or you have the wrong password!$ ;錯誤提示信息 buf5 db 0ah,0dh,You can get in!$ ;成功登錄信息 data ends stack segment stack DB 200 DUP(0) stack ends code segment assume cs:code,ds:data,ss:stack int51 proc near ;8251A 初始化子程 mov dx,ctr151 ;8251A 命令口 mov al,0 ;空操作 out dx,al mov al,40h ;內部復位 out dx,al mov al,4Eh ;8251A 方式命令 out dx,al mov al,27h ;8251A 工作命令 out dx,al ret int51 endp send macro a;發(fā)送一個字符的宏,首先必須將要發(fā)送的字符送入變量 YN mov dx,ctr151 a: in al,dx test al,01 ;發(fā)送準備好? TXRDY=1? jz a ;未準備好,則等待 mov dx,data51 ;已準備好,則發(fā)送一個字符給下位機 mov al,YN out dx,al endm clear macro c ;置口 c 某一位 ,c 為置位控制字 mov dx,303h mov al,c out dx,al endm receive macro b ;接收一個字符的宏 ,接收到 al b: mov dx,ctr151 ;檢測接收準備好沒 in al,dx test al,02 ;接收數(shù)據(jù)準 備好? RXRDY=1? jz b ;未準備好則繼續(xù)檢測 mov dx,data51 ;已準備好,即有數(shù)據(jù)傳送過來,則接收 1 個字符 in al,dx endm delay1 proc ;延時子程 1 push bx mov bx,t dl1: dec bx jnz dl1 pop bx ret delay1 endp delay2 proc ;延時子程 2 push cx mov cx,00fffh xx: cmp cx,0 je x mov t,0ffffh call delay1 dec cx jmp xx x: pop cx ret delay2 endp quit proc ;3 秒鐘之內按任意鍵退出程序 push cx lea dx,bufexit mov ah,9 int 21h mov cx,07fffh qxx: cmp cx,0 je qx mov ah,1 ;檢測是否有鍵按下,有則退出 int 16h jnz qnext mov t,0ffffh call delay1 dec cx jmp qxx qnext: mov ah,4ch int 21h qx: pop cx ret quit endp flutter proc ;燈閃爍函數(shù), 8 個燈依次亮,循環(huán) 3 次 lea di,light mov f,3 wyyy: cmp f,0 je wy mov cx,8 l: cmp cx,0 je wyy mov al,di ;燈亮 mov dx,ctr155a out dx,al call delay2 ;延時 2 mov al,0ffh ;燈滅 mov dx,ctr155a out dx,al inc di dec cx jmp l wyy: lea di,light dec f jmp wyyy wy: ret flutter endp noise proc ;聲音報警子函數(shù), 3 次長鳴 push cx mov f,3 jj: cmp f,0 je ejj ;產生一定頻率的方波,使喇叭發(fā)聲 mov cx,00dffh xxkk1: cmp cx,0 je xkk mov dx,ctr155 ;pc6 置 1 mov al,0dh out dx,al mov t,0ffffh call delay1 ;延時 mov dx,ctr155 ;pc6 置 0 mov al,0ch out dx,al mov t,0ffffh call delay1 ;延時 dec cx jmp xxkk1 xkk: call delay2 ;不產生方波,停止發(fā)聲 dec f jmp jj ejj: pop cx ret noise endp begin: mov ax,data mov ds,ax call int51 ;調用 8251A 子程序,初始化 8251A mov dx,ctr155 ;初始化 8255A mov al,10000011b out dx,al ww: lea dx,hh ;回車換行 mov ah,9 int 21h call quit ;延時退出程 序 lea dx,hh ;回車換行 mov ah,9 int 21h lea dx,buf1 ;提示按 sw4 表示插卡 mov ah,9 int 21h ;檢測 sw4 是否按下 clear 07h ;清 sw4 狀態(tài) wait4: mov dx,302 in al,dx ;sw4 按下 ? pc3=0? test al,08h ;否,則繼續(xù)檢測 jnz wait4 ;是則發(fā)送卡插入信號 mov YN,O send o mov al,0 ;接收主控機反饋信息 receive i cmp al,Y ;確認則繼續(xù),否則重新開始 jne ww lea dx,buf2 ;提示設置用戶名并發(fā)送之 mov ah,9 int 21h ;檢測 sw1 狀態(tài) clear 01h ;清 sw1 狀態(tài) wait1: mov dx,302h ;檢測 sw1 是否按下 in al,dx test al,01h ;sw1 按下 ? pc0=0? jnz wait1 ;否則繼續(xù)檢測 ;按下則讀開關狀態(tài)(口 b),得到用戶名 mov dx,ctr155b ;讀 b 口 in al,dx mov un,al ;保存用戶名 mov YN,al ;發(fā)送用戶名 send us jmp receiv over: mov ax,4c00h ;程序退出 int 21h ;接收主控機反饋信息 receiv: receive y cmp al,Y ;接收的字符和 Y比較 jne wrong ;不合法就提示錯誤信息 lea dx,buf3 ;合法則提示設置密碼并發(fā)送之 mov ah,09h int 21h clear 02h ;清 sw2 狀態(tài) wait2: mov dx,302h ;檢測 sw2 是否按下 in al,dx test al,02h ;sw2 按下 ? pc1=0? jnz wait2 ;否則繼續(xù)檢測 ;按下則讀開關狀態(tài)(口 b),得到密碼 mov dx,ctr155b ;讀口 b in al,dx mov pd,al ;保存密碼 mov YN,al ;發(fā)送密碼 send pd ;接收主控機反饋回來的信息 receive yy cmp al,Y ;接收的字符和 Y比較 jne wrong ;不相等就提示錯誤信息,相等則提示登錄成功 lea dx,buf5 ;提示登錄成功 mov ah,9 int 21h ;此處亮燈提示 call flutter jmp ww ;準備第二次刷卡 wrong: lea dx,buf4 ;顯示錯誤提示信息 mov ah,9 int 21h ;此處聲音報警 call noise jmp ww ;準備第二次刷卡 code ends end begin 五心得體會 此次程序設計我們小組同心協(xié)力,通過三天多的時間,終于完成了接口的課程設計。通過這個課程設計,我真正掌握了 8255, 8251 等芯片的功能和使用方法,以前在課堂上一知半解的知識通過這次課程設計都徹底弄清楚了。通過寫 8255, 8251 等芯片的命令口,可以使得各種芯片工作在不同的狀態(tài),這可以發(fā)揮這些芯片的使用范圍,特別是撥碼開關的地方,通過撥碼開關可以設置 8255 的 PB 口的值,而這些值可以通過 8251 發(fā)送出去,這就是卡號和車費輸入的地方。通過這次課程設計,我認識到了匯編語言的強大功能,匯編語言是計算機能夠提供給用戶使用的最快而又最有效的語言,也是能夠利用計算機所有硬件特性并能直接控制硬件 的唯一語言。但是,匯編語言作為一種低級語言,有他自身無法克服的缺點,他的圖形用戶界面效果,遠遠不能和 C 語言或者 C語言相提并論,最好的方法是匯編語言和 C/C混合編程,高級語言編程方便簡潔,匯編語言能充分發(fā)揮計算機硬件特性并且程序運行效率高,二者相結合,效果勝過單獨一門語言體現(xiàn)出來的效果。 我還想提一個建議,那就是實驗室最好為我們的控制板提供一本使用說明或指南,這樣我們就可以徹底拋棄控制板的束縛,靈活地從單個接口芯片的功能特性出發(fā),設計出更好更精彩的程序。

注意事項

本文(宿舍安全系統(tǒng)單片機課程設計說明書)為本站會員(good****022)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!