




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
年4月19日微型計(jì)算機(jī)技術(shù)課程設(shè)計(jì)報(bào)告長(zhǎng)江大學(xué)文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。微型計(jì)算機(jī)技術(shù)課程設(shè)計(jì)指導(dǎo)教師:李鵬蔡明文班級(jí):計(jì)科11205班姓名:?!瓕W(xué)號(hào):……………班內(nèi)序號(hào):35課設(shè)日期:12月22日~1月4日課設(shè)題目:電梯控制系統(tǒng)電路及程序設(shè)計(jì)一、課設(shè)目的1.經(jīng)過(guò)本設(shè)計(jì),使學(xué)生綜合運(yùn)用《匯編語(yǔ)言與微型計(jì)算機(jī)技術(shù)》、《數(shù)字電子技術(shù)》等課程的內(nèi)容,為今后從事計(jì)算機(jī)檢測(cè)與控制工作奠定一定的基礎(chǔ)。2.掌握接口芯片8253、8255A、8259等可編程器件、譯碼器74LS138、8路同相三態(tài)雙向總線收發(fā)器74LS245、六緩沖器/驅(qū)動(dòng)器/反相器74LS06、點(diǎn)陣顯示器件和七段數(shù)碼管的使用。3.學(xué)會(huì)用匯編語(yǔ)言編寫(xiě)一個(gè)較完整的實(shí)用程序。4.掌握微型計(jì)算機(jī)技術(shù)應(yīng)用開(kāi)發(fā)的全過(guò)程,包括需求分析、原理圖設(shè)計(jì)、元器件選用、布線、編程、調(diào)試、撰寫(xiě)報(bào)告等步驟。二、課設(shè)內(nèi)容1.電梯程序啟動(dòng)后的初始狀態(tài)點(diǎn)陣顯示器件能夠顯示的三種狀態(tài)分別為:“↑““↓”、“-”。含義分別為電梯“向上運(yùn)行中”、“向下運(yùn)行中”、“停止,乘客上下”。這三種狀態(tài)的點(diǎn)陣數(shù)據(jù)需要自己生成或經(jīng)過(guò)點(diǎn)陣軟件生成。其初始狀態(tài)為“-”。當(dāng)電梯在某層停止時(shí),黃色發(fā)光二極管每秒閃爍一次,15秒用于乘客上下(這個(gè)時(shí)間在調(diào)試時(shí)為了節(jié)省時(shí)間能夠減少為5秒。也可用“←”控制乘客上下時(shí)間小于15秒時(shí)關(guān)門(mén)啟動(dòng),用“→”控制乘客上下時(shí)間大于15秒時(shí)開(kāi)門(mén)等待,選作);15秒后黃色發(fā)光二極管滅,觸發(fā)綠色發(fā)光二極管每秒閃爍一次,表示電梯正在運(yùn)行中;相鄰的兩層之間運(yùn)行3秒,綠色發(fā)光二極管滅,觸發(fā)七段數(shù)碼管顯示的樓層數(shù)加1或減1。兩個(gè)發(fā)光二極管的初始狀態(tài)都為“滅”,七段數(shù)碼管能夠顯示的樓層為“0~9”,其初始狀態(tài)為“0”,表示地下室或地下停車場(chǎng)。2.電梯程序運(yùn)行狀態(tài)電梯程序啟動(dòng)后,接收來(lái)自鍵盤(pán)的數(shù)據(jù)進(jìn)入運(yùn)行狀態(tài)。來(lái)自鍵盤(pán)的合法數(shù)據(jù)只有“0~9”、“↑”、“↓”、“←”、“→”、“空格”和Esc,程序應(yīng)該檢查來(lái)自鍵盤(pán)數(shù)據(jù)的合法性。除Esc是結(jié)束程序運(yùn)行外,來(lái)自鍵盤(pán)的數(shù)據(jù)應(yīng)為“數(shù)字+方向+數(shù)字”。來(lái)自鍵盤(pán)的數(shù)據(jù)能夠是連續(xù)的,也能夠是間斷的。輸入的數(shù)據(jù)要盡可能測(cè)試到各種情況,至少完成電梯一次完整的升降,如“3↑55↑75↑75↑31↑39↓49↓6Esc”的一種可能的處理過(guò)程為0→3→5→7→9→6→4→0→1→3→9→0。另一種可能的處理過(guò)程為0→1→3→5→7→9→6→4→0。3.結(jié)束電梯程序運(yùn)行狀態(tài)按下Esc鍵結(jié)束程序。點(diǎn)陣顯示器件顯示“-”,兩個(gè)發(fā)光二極管的狀態(tài)都為“滅”,七段數(shù)碼管顯示的樓層為“0”。三、設(shè)計(jì)所需器材及工具1.一塊實(shí)驗(yàn)面包板(內(nèi)含時(shí)鐘信號(hào)1MHz或2MHz)。2.可編程芯片8253、8255、74LS245、74LS06各一片,74LS138兩片;發(fā)光二極管2個(gè)(綠色、黃色各1個(gè));排電阻1個(gè);七段數(shù)碼管1個(gè);200歐母電阻16個(gè);8×8點(diǎn)陣顯示器件一片。3.導(dǎo)線若干。4.示波器、萬(wàn)用表、常見(jiàn)工具等共用(從實(shí)驗(yàn)室現(xiàn)借現(xiàn)還)。四、設(shè)計(jì)思路1.利用一個(gè)74LS138設(shè)計(jì)地址譯碼電路,8255端口地址:300H~303H,8253端口地址:304H~307H。2.74LS245用于總線和8253、8255之間的雙向傳輸和隔離。3.利用面包板上時(shí)鐘(1MHz或2MHz)和8253設(shè)計(jì)一個(gè)1秒定時(shí)電路,將定時(shí)信號(hào)(1秒方波)接到總線的IRQ2或IRQ10送給8259。4.8255的PA口控制點(diǎn)陣顯示器件行變化,200歐母電阻接在PA口和點(diǎn)陣顯示器件之間。PB口經(jīng)過(guò)另一個(gè)74LS138控制點(diǎn)陣顯示器件列變化,PB口經(jīng)過(guò)還需經(jīng)過(guò)74LS06控制發(fā)光二極管的的變化。5.PC口控制七段數(shù)碼管變化,200歐母電阻接在PC口和七段數(shù)碼管之間。6.每個(gè)74LS06中包含了6個(gè)非門(mén),它的輸入來(lái)自PB口的某一位,輸出接到發(fā)光二極管的負(fù)極。7.每個(gè)發(fā)光二極管的正極接排電阻的從2到9的一個(gè)引腳,排電阻的1腳接VCC(+5V)。五、設(shè)計(jì)步驟1.設(shè)計(jì)電路原理圖,用protues畫(huà)出電路圖如下2.用所給器件布線,按照protues里面的仿真圖搭建好硬件電路。3.選用匯編語(yǔ)言編寫(xiě)電梯運(yùn)行的主程序以及各芯片調(diào)試子程序。4.調(diào)試并排除括硬件電路設(shè)計(jì)錯(cuò)誤和軟件設(shè)計(jì)錯(cuò)誤,使系統(tǒng)達(dá)到設(shè)計(jì)要求。六、設(shè)計(jì)原理圖七、芯片介紹(1)74LS245數(shù)據(jù)總線緩沖器74LS245功能表(2)74LS06(3)74LS138(4)8253定時(shí)╱計(jì)數(shù)器(5)8255A(6)七段數(shù)碼管(7)發(fā)光二極管(8)排電阻(9)點(diǎn)陣顯示器788BS八、電梯流程圖初始化初始化等待等待確認(rèn)本層與目標(biāo)層確認(rèn)本層與目標(biāo)層目標(biāo)層與本層是否同層目標(biāo)層與本層是否同層是否目標(biāo)層是否目標(biāo)層樓層檢測(cè)樓層檢測(cè)電梯運(yùn)行電梯選向電梯運(yùn)行電梯選向停止停止九、程序設(shè)計(jì)SSEGSEGMENTSTACK DW200DUP(?)SSEGENDSDATASEGMENTMESG2DB'Pleaseinputthedirectionandthenumberoftheelevator',0ah,0dhDB'asdir("UP"or"DOWN")+num(0--9)',0ah,0dhDB'ExitwithEsc',0ah,0dh,'$' NOW_FLOOR DB(1) ;電梯現(xiàn)在樓層 NEXT_FLOOR DB(1) ;電梯目標(biāo)樓層 STATE DB(0) ;電梯運(yùn)行的狀態(tài)0表示暫停1表示向上2表示向下 TIMECOUNT DB(0) ;時(shí)鐘計(jì)數(shù) SIGN DB(1) UP DB18H,0CH,06H,0FFH,0FFH,06H,0CH,18H DOWN DB18H,30H,60H,0FFH,0FFH,60H,30H,18H STOP DB00H,18H,18H,18H,18H,18H,18H,00H SEVLED DB40H,79H,24H,30H,19H,12H,02H,78H,00H,10H SIGN_BUFDB(0) UP_BUF DB10DUP(0) DOWN_BUFDB10DUP(0) MESG1DB'THENUMBERISERROR',0DH,0AH,'$' INTOA_OFFDW(?) INTOA_SEGDW(?)DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART: MOVDX,DATA MOVDS,DX MOVDX,SSEG MOVSS,DXMOVAH,09HMOVDX,OFFSETMESG2INT21H;顯示提示信息 ;初始化8255 MOVDX,303H MOVAL,10000000B OUTDX,AL MOVDX,300H MOVAL,00H OUTDX,AL MOVDX,301H MOVAL,00H OUTDX,AL MOVDX,302H MOVAL,0FFH OUTDX,AL ;中斷的設(shè)置 MOVAX,3572H INT21H MOVINTOA_OFF,BX MOVBX,ES MOVINTOA_SEG,BX CLI MOVAX,2572H MOVDX,SEGLEDLIGHT PUSHDS MOVDS,DX MOVDX,OFFSETLEDLIGHT INT21H POPDS STI ;打開(kāi)IRQ10和IRQ2 INAL,0A1H ANDAL,0FBH OUT0A1H,AL INAL,21H ANDAL,0FBH OUT21H,AL ;8253初始化產(chǎn)生1S的計(jì)時(shí) MOVDX,307H MOVAL,01110110B OUTDX,AL MOVDX,305H MOVAL,0E8H OUTDX,AL MOVAL,03H OUTDX,AL MOVDX,307H MOVAL,10110110B OUTDX,AL MOVDX,306H MOVAL,0E8H OUTDX,AL MOVAL,03H OUTDX,ALINPUT: CALLFARPTRMATRIX_SHOW CALLFARPTRDIGITRON_SHOW MOVAH,0BH INT21H CMPAL,00H JZINPUT MOVAH,00H INT16H CMPAL,0DH JZNEXT0 ;若沒(méi)有輸入為回車,進(jìn)入運(yùn)行狀態(tài) CMPAL,1BH JNZNEXT ;若輸入ESC則退出程序 JMPEXITNEXT: CMPAH,48H JZM_UP CMPAH,50H JZM_DOWN JMPINPUTERROR M_UP: MOVAH,01H INT21H CMPAL,'0' JBINPUTERROR CMPAL,'9' JAINPUTERROR SUBAL,30H MOVAH,00H MOVSI,AX MOVUP_BUF[SI],01H JMPINPUTM_DOWN: MOVAH,01H INT21H CMPAL,'0' JBINPUTERROR CMPAL,'9' JAINPUTERROR SUBAL,30H MOVAH,00H MOVSI,AX MOVAX,0009H SUBAX,SI MOVSI,AX MOVDOWN_BUF[SI],01H JMPINPUTNEXT0: CALLFARPTRMATRIX_SHOW CALLFARPTRDIGITRON_SHOW CMPSIGN_BUF,14H JZREPEAT CMPTIMECOUNT,02H JBENEXT0 MOVTIMECOUNT,00H CALLFARPTRRUN JMPNEXT0REPEAT: MOVSIGN_BUF,00H MOVAL,NEXT_FLOOR MOVNOW_FLOOR,AL MOVSTATE,00H JMPINPUTINPUTERROR: MOVAH,09H MOVDX,OFFSETMESG1 INT21H JMPINPUTEXIT: MOVAX,2572H MOVDX,INTOA_SEG PUSHDS MOVDS,DX MOVDX,INTOA_OFF INT21H POPDS INAL,0A1H ORAL,04H OUT0A1H,AL INAL,21H ORAL,04H OUT21H,AL MOVAH,4CH INT21H;電梯狀態(tài)與運(yùn)行程序RUNPROCFAR PUSHAX PUSHBX PUSHSI MOVAL,NEXT_FLOOR CMPAL,NOW_FLOOR JARUP CMPAL,NOW_FLOOR JBRDOWN MOVAL,SIGN MOVSTATE,AL MOVAH,00H MOVBX,OFFSETUP_BUFR0: MOVAL,SIGN_BUF MOVSI,AX CMPBYTEPTR[BX+SI],01H JZR1 INCSIGN_BUF CMPSIGN_BUF,14H JNZR0 JMPRBACKR1: MOVBYTEPTR[BX+SI],00H CMPSIGN_BUF,09H JAR2 MOVAL,SIGN_BUF MOVNEXT_FLOOR,AL JMPRBACKR2: MOVSTATE,02H MOVAL,SIGN_BUF SUBAL,0AH MOVAH,09H SUBAH,AL MOVNEXT_FLOOR,AH JMPRBACK RUP: ADDNOW_FLOOR,01H MOVSTATE,01H MOVSIGN,01H MOVAL,NOW_FLOOR CMPAL,NEXT_FLOOR JZR3 JMPRBACKRDOWN: SUBNOW_FLOOR,01H MOVSTATE,02H MOVSIGN,02H MOVAL,NOW_FLOOR CMPAL,NEXT_FLOOR JZR3 JMPRBACKR3: MOVSTATE,00H JMPRBACKRBACK: POPSI POPBX POPAX RETRUNENDP;點(diǎn)陣顯示程序MATRIX_SHOWPROCFAR PUSHAX PUSHBX PUSHCX PUSHDX PUSHSI CMPSTATE,00H JZMSTOP CMPSTATE,02H JZMDOWN MOVBX,OFFSETUP MOVCL,00001000B JMPMRUNMSTOP: MOVBX,OFFSETSTOP MOVCL,00010000B JMPMRUNMDOWN: MOVBX,OFFSETDOWN MOVCL,00001000BMRUN: MOVSI,0000HMLP: MOVDX,300H MOVAL,[BX+SI] OUTDX,AL MOVDX,301H MOVAL,CL OUTDX,AL INCSI INCCL CALLFARPTRDELAY CMPSI,0008H JNZMLP POPSI POPDX POPCX POPBX POPAX RETMATRIX_SHOWENDP;7數(shù)碼管顯示程序DIGITRON_SHOWPROCFAR PUSHAX PUSHDX PUSHSI MOVDX,302H MOVAH,0000H MOVAL,NOW_FLOOR MOVSI,AX MOVAL,SEVLED[SI] OUTDX,AL POPSI POPDX POPAX RETENDP;延遲程序DELAYPROCFAR PUSHCX PUSHBX MOVBX,0FFHDLP2: MOVCX,0FFFHDLP1: LOOPDLP1 DECBX JNZDLP2 POPBX POPCX RETDELAYENDP;中斷服務(wù)程序LEDLIGHTPROCFAR PUSHAX PUSHDX CLI ADDTIMECOUNT,01HIBACK: ;發(fā)出EOI命令 MOVAL,62H MOVDX,0A0H OUTDX,AL OUT020H,AL STI POPDX POPAX IRETLEDLIGHTENDPCODEENDS ENDSTART十課設(shè)截圖十一課設(shè)總結(jié)首先剛剛拿到這個(gè)課設(shè)題目時(shí)我一下子懵了,不知道程序怎么寫(xiě)。我的小伙伴桂蓉也是,我們兩就在網(wǎng)上搜集了一些資料,然后相互討論。我主要負(fù)責(zé)寫(xiě)程序,她主要負(fù)責(zé)連線。當(dāng)我們拿到實(shí)驗(yàn)箱之后我們就開(kāi)始積極分工互助合作。連線比較麻煩特別是要仔細(xì),不能出錯(cuò)。很快我們摸清了連線的套路,實(shí)驗(yàn)箱上的帶有綠線的一豎條是聯(lián)通的,接地。帶有紅線的一條是聯(lián)通,接VCC(+5v)。每一個(gè)塊的一橫條是聯(lián)通的,芯片跨越在兩個(gè)橫塊之間。我們開(kāi)始布局芯片的位置,布局完了就開(kāi)始連線。我們兩一起對(duì)照著每個(gè)芯片的引腳圖開(kāi)始連線,經(jīng)過(guò)兩個(gè)多小時(shí)的奮斗,線終于連好了。于是我們開(kāi)始調(diào)試程序,當(dāng)我們開(kāi)始測(cè)8255時(shí),沒(méi)有任何反應(yīng),于是我們又仔細(xì)檢查連線,果然reset接口沒(méi)有接。當(dāng)我們接好之后再次測(cè)量終于成功接好了。關(guān)于硬件調(diào)試我們弄了好幾天,我的小伙伴桂蓉主要負(fù)責(zé)連線。我主要寫(xiě)程序和調(diào)試,說(shuō)到寫(xiě)程序,開(kāi)始的時(shí)候我糾結(jié)了好久,不知道到底用c語(yǔ)言編還是用匯編語(yǔ)言編,畢竟c語(yǔ)言我熟一些,匯編只是剛剛接觸。可是畢竟我們學(xué)微機(jī)原理真門(mén)課主要講的還是匯編,因此我想鍛煉一下自己,果斷用匯編語(yǔ)言寫(xiě)。當(dāng)然開(kāi)始存在很多問(wèn)題,比如說(shuō)不知道中斷如何使用,不知道如何輸出3秒和5秒的時(shí)間間隔,另外我也對(duì)匯編里面的語(yǔ)法不是很熟,上課老師講的很清楚,可是現(xiàn)在我忘記了一些。面對(duì)如此多的問(wèn)題,這時(shí)候,我翻開(kāi)書(shū)本上的匯編語(yǔ)言程序設(shè)計(jì)那一章。我看了書(shū)上很多例子,我漸漸明白了軟中斷的各個(gè)用法,現(xiàn)在擺在我面前的是如何用這些軟中斷,以及8253輸出的一秒中斷怎么使用。大致思路我都懂,就是不知道如何調(diào)用這些中斷。我又翻開(kāi)中斷那一章以及我們做的實(shí)驗(yàn)9(8259),我明白了中斷的具體用法,現(xiàn)在我開(kāi)始我的編程了!,首先有一個(gè)數(shù)據(jù)段,里面要放很多東西,定義一個(gè)變量存放當(dāng)前的樓層,定義一個(gè)數(shù)組存放
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB31/T 1234-2020城市森林碳匯計(jì)量監(jiān)測(cè)技術(shù)規(guī)程
- DB31/T 1018-2016基層司法行政機(jī)構(gòu)運(yùn)行管理與工作規(guī)范
- 電子專業(yè)音響設(shè)備市場(chǎng)趨勢(shì)考核試卷
- 2024年醫(yī)用縫合材料項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024年電子測(cè)量?jī)x器資金籌措計(jì)劃書(shū)代可行性研究報(bào)告
- 2024年鐵道建筑資金需求報(bào)告代可行性研究報(bào)告
- 環(huán)保型固態(tài)電池生產(chǎn)線綜合運(yùn)維管理服務(wù)協(xié)議
- 海鮮水產(chǎn)品牌授權(quán)合作協(xié)議
- 2025年中國(guó)保濕面霜行業(yè)市場(chǎng)前景預(yù)測(cè)及投資價(jià)值評(píng)估分析報(bào)告
- 高鐵站區(qū)交通運(yùn)營(yíng)管理及旅客服務(wù)合作協(xié)議
- 汽車保養(yǎng)與維護(hù)實(shí)操考核
- JJG 475-2008 電子式萬(wàn)能試驗(yàn)機(jī)-(高清現(xiàn)行)
- 小麥胚芽知識(shí)問(wèn)答
- 戰(zhàn)略方法論三層面法和財(cái)務(wù)模型課件
- 裝表接電課件(PPT 86頁(yè))
- 病例報(bào)告表(CRF)模板
- Q∕GDW 12158-2021 國(guó)家電網(wǎng)有限公司重大活動(dòng)電力安全保障工作規(guī)范
- 鏈斗技術(shù)規(guī)范書(shū)
- 船舶應(yīng)急部署表及船員應(yīng)變卡
- 爾雅《尊重學(xué)術(shù)道德遵守學(xué)術(shù)規(guī)范》期末考試答案0001
- 關(guān)聯(lián)交易模板詳解
評(píng)論
0/150
提交評(píng)論