基于單片機(jī)的病房呼叫系統(tǒng)設(shè)計(jì)_第1頁
基于單片機(jī)的病房呼叫系統(tǒng)設(shè)計(jì)_第2頁
基于單片機(jī)的病房呼叫系統(tǒng)設(shè)計(jì)_第3頁
基于單片機(jī)的病房呼叫系統(tǒng)設(shè)計(jì)_第4頁
基于單片機(jī)的病房呼叫系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

初始化并啟動(dòng)定時(shí)器初始化并啟動(dòng)定時(shí)器3.2程序說明1)判斷是否有鍵按下源程序:KS1:MOVDPTR,#0FFFCH;取A口地址MOVA,#00HMOVX@DPTR,A;A口送全0INCDPLINCDPL;取C口地址MOVXA,@DPTR;讀C口CPLA;C口值取反程序返回通過JNZLK2指令若有鍵按下則跳到LK2執(zhí)行鍵盤掃描程序,檢測(cè)哪一個(gè)鍵按下。2)鍵盤掃描源程序:LK2:MOVR2,#0FEH;從第0列掃描MOVR4,#00H;列值計(jì)數(shù)器清零LK4:MOVDPTR,#0FFFCH;取A口地址MOVA,R2MOVX@DPTR,A;開始掃描第0列INCDPLINCDPL;取C口地址MOVXA,@DPTR;讀C口JBACC.0,L1;第0行無鍵按下轉(zhuǎn)第1行MOVA,#00H;第0行有鍵按下取行首鍵值LJMPLKP;轉(zhuǎn)識(shí)別鍵值L1:JBACC.1,L2;第1行無鍵按下轉(zhuǎn)第2行MOVA,#08H;第1行有鍵按下取行首鍵值LJMPLKP;轉(zhuǎn)識(shí)別鍵值L2:JBACC.2,L3;第2行無鍵按下轉(zhuǎn)第3行MOVA,#16;第2行有鍵按下取行首鍵值LJMPLKP;轉(zhuǎn)識(shí)別鍵值L3:JBACC.3,L4;第3行無鍵按下轉(zhuǎn)第4行MOVA,#24;第3行有鍵按下取行首鍵值LJMPLKP;轉(zhuǎn)識(shí)別鍵值L4:JBACC.4,L5;第4行無鍵按下轉(zhuǎn)第5行MOVA,#32;第4行有鍵按下取行首鍵值LJMPLKP;轉(zhuǎn)識(shí)別鍵值L5:JBACC.5,L6;第5行無鍵按下轉(zhuǎn)第6行MOVA,#40;第5行有鍵按下取行首鍵值LJMPLKP;轉(zhuǎn)識(shí)別鍵值L6:JBACC.6,L7;第6行無鍵按下轉(zhuǎn)第7行MOVA,#48;第6行有鍵按下取行首鍵值LJMPLKP;轉(zhuǎn)識(shí)別鍵值L7:JBACC.7,NEXT;;第7行無鍵按下轉(zhuǎn)下一列MOVA,#56;第7行有鍵按下取行首鍵值LKP:ADDA,R4;行首鍵號(hào)+列值=鍵值PUSHACC;鍵值進(jìn)棧保存3)鍵值顯示源程序:L8:MOV40H,A;鍵值保存MOVB,#0AH;10送BDIVAB;鍵值拆分MOV50H,A;鍵值十位送內(nèi)存顯示緩沖區(qū)50HMOV51H,B;鍵值個(gè)位送內(nèi)存顯示緩沖區(qū)51HSETBRS0;保存第0組工作寄存器MOVR2,#02;顯示位數(shù)計(jì)數(shù)MOVR0,#51H;取個(gè)位顯示緩沖區(qū)地址DL0:MOVA,@R0;鍵值個(gè)位送AMOVDPTR,#TAB;取顯示數(shù)碼表首地址MOVCA,@A+DPTR;得顯示碼MOVSBUF,A;送顯個(gè)位DL1:JNBTI,DL1;等待發(fā)送完一幀CLRTI;清發(fā)送中斷標(biāo)志DECR0;指向下一顯示單元DJNZR2,DL0;2位未顯示完重復(fù)CLRRS0;顯示完后恢復(fù)第0組寄存器定時(shí)器1中斷源程序:INT1:MOVTH1,#0D8H;定時(shí)器1送初值10MS中斷一次MOVTL1,#0F0HDJNZ52H,TT1;1S到否?MOV52H,#100;1S到重新賦秒計(jì)數(shù)值DJNZ53H,TT1;3秒到否?LJMPTT2;3S到轉(zhuǎn)TT2TT1:CPLP1.0;輸出取反RETI;中斷返回TT2:CLRTR1;關(guān)定時(shí)器CLRP1.0;輸出低電平RETI;中斷返回外部中斷0源程序INT0:CLRTR1;關(guān)定時(shí)器CLRP1.0;輸出低電平MOVSCON,#00H;串口工作方式0MOVSBUF,#0FFH;滅LEDDL2:JNBTI,DL2CLRTIMOVSBUF,#0FFHDL3:JNBTI,DL3CLRTI;清發(fā)送中斷標(biāo)志RETI;中斷返回6)延時(shí)源程序DELAY:MOVR7,#3DL4:MOVR6,#20DL5:MOVR5,#250DL6:DJNZR5,DL6DJNZR6,DL5DJNZR7,DL4RET4.Proteus軟件仿真4.1仿真步驟及運(yùn)行效果圖:1)建立程序文件,保存程序文件,后綴名為ASM2)用WAVE軟件進(jìn)行編譯。具體步驟是先建立好程序文件項(xiàng)目,設(shè)定好仿真器。在仿真器語言欄選擇偉福匯編器,在目標(biāo)文件欄選擇生成BIN文件和生成HEX文件。在仿真器欄選擇仿真器G6W,仿真頭選擇POD-51,CPU選擇80C3)利用PROTEUS進(jìn)行仿真。將上一步生成的HEX文件下載到80C運(yùn)行效果見下圖:圖4-1病床62號(hào)呼叫圖4-2護(hù)士響應(yīng)呼叫圖4-3病床58號(hào)呼叫5課程設(shè)計(jì)體會(huì)通過此次設(shè)計(jì),我進(jìn)一步加深了對(duì)單片機(jī)的理解,使我的編程思想更趨于成熟,編程思路更加開闊,比如當(dāng)選定病房呼叫系統(tǒng)課題時(shí)我發(fā)現(xiàn)是64張床位,由于這么多的床位得占用大量的I/O線,這給我的第一直覺就是得采用靜態(tài)顯示因?yàn)樗恍栌玫絉XD和TXD兩個(gè)端口即可完成顯示任務(wù)。若采用動(dòng)態(tài)顯示光顯示就得占用16個(gè)口線,可見比靜態(tài)顯示多用14個(gè)口線。但又一想到若用8255擴(kuò)展I/O口,則口線已不成為問題于是我又思索怎樣用動(dòng)態(tài)顯示實(shí)現(xiàn)該任務(wù),最終我想出了完成該設(shè)計(jì)的兩套設(shè)計(jì)方案,該兩套方案已在2.2系統(tǒng)總體方案中給以論述。編完程序編譯時(shí)系統(tǒng)提示有一指令跳轉(zhuǎn)出范圍如JNZLK3此時(shí)我想到將以LK3為標(biāo)號(hào)的程序在不影響原程序的情況下向JNZLK3移近些,或在這兩者之間再設(shè)置一跳轉(zhuǎn)分兩次跳到以LK3為標(biāo)號(hào)的程序。畫完硬件電路圖后我將編譯好的程序載入單片機(jī)后我屏住呼吸懷著激動(dòng)的心情按下了運(yùn)行鍵,然而我并沒看到我期望看到的結(jié)果,心情很是失落。于是我開始認(rèn)真排查錯(cuò)誤,我發(fā)現(xiàn):1)后面幾行以行為單位的鍵值顯示有重復(fù)。2)兩個(gè)LED只有十位能顯示而個(gè)位剛上電時(shí)亮待有鍵按下時(shí)熄滅。3)有鍵按下時(shí)揚(yáng)聲器并不發(fā)聲。4)護(hù)士按鈕不能使外部中斷起作用。5)鍵盤有鍵按下時(shí)鍵盤掃描動(dòng)作遲緩。對(duì)第5個(gè)問題我首先想到可能是我的延時(shí)程序延時(shí)時(shí)間太長(zhǎng),于是我將延時(shí)時(shí)間變短些,果真不出所料單片機(jī)對(duì)鍵盤的掃描迅速了。但是其它四個(gè)問題還是老樣子。對(duì)第4個(gè)問題當(dāng)我反復(fù)按護(hù)士按鈕時(shí)發(fā)現(xiàn)單片機(jī)的INT0引腳始終是高電平不變。此時(shí)我頓然想到可能時(shí)上拉電阻阻值過大使開關(guān)失去了作用,于是我將電阻值改小點(diǎn),成功的給INT0引腳送入低電平,令我興奮的是外部中斷居然起作用了,它可以將亮的那個(gè)LED熄滅。對(duì)第1個(gè)問題我對(duì)照?qǐng)D2-1按鍵序號(hào)圖發(fā)現(xiàn)顯示重復(fù)原來是正?,F(xiàn)象因?yàn)殒I值的十位都有十個(gè)數(shù)是一樣的。對(duì)第2個(gè)問題,顯示床號(hào)個(gè)位的74LS164移位寄存器的輸入由顯示床號(hào)十位的74LS164移位寄存器的最低位數(shù)據(jù)線提供,我將該最低位數(shù)據(jù)線不通向LED時(shí),居然發(fā)現(xiàn)顯示床號(hào)個(gè)位的LED也能正常工作,但是顯示床號(hào)十位的LED顯示就出現(xiàn)了殘缺。此問題我最終通過給顯示床號(hào)十位的74LS164移位寄存器的最低位數(shù)據(jù)線接上電阻后再輸入到顯示床號(hào)個(gè)位的74LS164移位寄存器得以解決。對(duì)第3個(gè)問題是揚(yáng)聲器驅(qū)動(dòng)電路沒有起作用,我用一個(gè)三極管加一個(gè)電阻將此問題解決。當(dāng)聽到我做的系統(tǒng)發(fā)出定時(shí)3S的聲音時(shí),我激動(dòng)不已,心想我成功的將該課題完成了。然而好事多磨,又一個(gè)攔路虎出現(xiàn)了,我發(fā)現(xiàn)我做的鍵盤第1、3、5、列按鍵待第二次有鍵按下時(shí)自動(dòng)鎖死不起作用了,我知道我的主程序有問題,最后經(jīng)過認(rèn)真排查我發(fā)現(xiàn)我將MOVA,#00H寫成了MOVA,00H,MOVA,00H可能將00H單元的不確定數(shù)送給A顯然會(huì)引起錯(cuò)誤。將MOVA,00H改為MOVA,#00H后至此我的課程設(shè)計(jì)已完滿完成。在我解決以上問題的過程中,我提高了理論分析水平,更提高了我的心理承受能力,這是我受益非淺,更堅(jiān)定了我學(xué)好后續(xù)課程的信心。參考文獻(xiàn):[1]余發(fā)山主編.單片機(jī)原理及其應(yīng)用技術(shù).徐州:中國礦業(yè)大學(xué)出版社,2003[2]楊凌霄主編.微型計(jì)算機(jī)原理及應(yīng)用.徐州:中國礦業(yè)大學(xué)出版社,2004附1:源程序代碼ORG0000HLJMPMAINORG0003HLJMPINT0ORG001BHLJMPINT1ORG0100HMAIN:SETBEASETBEX0SETBET1MOVSCON,#00HMOVDPTR,#0FFFFFHMOVA,#89HMOVX@DPTR,AKEY:ACALLKS1JNZLK1NI:ACALLDELAYAJMPKEYLK1:ACALLDELAYACALLDELAYACALLKS1JNZLK2AJMPNILK2:MOVR2,#0FEHMOVR4,#00HLK4:MOVDPTR,#0FFFCHMOVA,R2MOVX@DPTR,AINCDPLINCDPLMOVXA,@DPTRJBACC.0,L1MOVA,#00HLJMPLKPL1:JBACC.1,L2MOVA,#08HLJMPLKPL2:JBACC.2,L3MOVA,#16LJMPLKPL3:JBACC.3,L4MOVA,#24LJMPLKPL4:JBACC.4,L5MOVA,#32LJMPLKPL5:JBACC.5,L6MOVA,#40LJMPLKPL6:JBACC.6,L7MOVA,#48LJMPLKPL7:JBACC.7,NEXTMOVA,#56LKP:ADDA,R4PUSHACCLK3:ACALLDELAYACALLKS1JNZLK3POPACCLJMPL8NEXT:INCR4MOVA,R2JNBACC.7,KNDRLAMOVR2,AAJMPLK4KND:AJMPKEYKS1:MOVDPTR,#0FFFCHMOVA,#00HMOVX@DPTR,AINCDPLINCDPLMOVXA,@DPTRCPLARETL8:MOV40H,AMOVB,#0AHDIVABMOV50H,AMOV51H,BSETBRS0MOVR2,#02MOVR0,#51HDL0:MOVA,@R0MOVDPTR,#TABMOVCA,@A+DPTRMOVSBUF,ADL1:JNBTI,DL1CLRTIDECR0DJNZR2,DL0CLRRS0MOVTMOD,#10HMOVTH1,#0D8HMOVTL1,#0F0HSETBEASETBET1SETBTR1MOV52H,#100MOV53H,#3LJMPMAININT1:MOVTH1,#0D8HMOVTL1,#0F0HDJNZ52H,TT1MOV52H,#100DJNZ53H,TT1LJMPTT2TT1:CPLP1.0RETITT2:CLRTR1CLRP1.0RETIINT0:CLRTR1CLRP1.0MOVSCON,#00HMOVSBUF,#0FFHDL2:JNBTI,DL2CLRTIMOVSBUF,#0FFHDL3:JNBTI,DL3CLRTIRETITAB:DB0C0H,0F9H,0A4H,0B0H,99H;DB92H,82H,0F8H,80H,90H;DELAY:MOVR7,#3DL4:MOVR6,#20DL5:MOVR5,#250DL6:DJNZR5,DL6DJNZR6,DL5DJNZR7,DL4RETEND附2:系統(tǒng)原理圖圖附2-1系統(tǒng)原理圖

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論