微機原理三級項目匯報_第1頁
微機原理三級項目匯報_第2頁
微機原理三級項目匯報_第3頁
微機原理三級項目匯報_第4頁
微機原理三級項目匯報_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機原理項目某生產(chǎn)線控制系統(tǒng)設(shè)計 題目要求l某生產(chǎn)線用于裝配某機械產(chǎn)品,總共有5個工位,分別為A、B、C、D、E要求使用微機控制,總計45秒完成一個產(chǎn)品的裝配。A、B、C、D各需要8秒,E工位需要13秒。其中E工位是關(guān)鍵控制工位,如果在E工位沒有按照要求的時間完成就要將A工位暫停,直到E工位完成后給A一個完成信號重新啟動A工位。要求記錄完成的工件數(shù)和生產(chǎn)線發(fā)生故障的次數(shù)并顯示。 對題目的分析l 生產(chǎn)線運行過程大致分為兩個階段:l 啟動階段l 連續(xù)工作階段在啟動階段,AE工位一次進入作。A-AB-ABC-ABCD-ABCDE-E8s5s8s8s8sl在連續(xù)工作階段,AD同時工作,工件在AD依次被

2、加工,最后到E工序。E工序與AD同時開始,工作13秒,13秒后檢查E工序是否完成。若完成則AE在次同時開始工作;若未完成則繼續(xù)E工序,直至E工序完成。為了避免死循環(huán),在E工序持續(xù)一定時間后停止所有工作,并發(fā)出警報。l由以上分析可知:1.E完成后A才可從新啟動 ;2.通過對工位E的考察來確定發(fā)生故障次數(shù)具體方案l 利用8088 ,8255, 燈,開關(guān)實現(xiàn)l 接線方法:8255A口C口片選A0A1L0L4(模擬AE)L7報警+5v(手動開關(guān),模擬傳感器,關(guān)閉代表完成)L0L4同時亮,并延時8sL0L3滅,L4亮,并延時5s完成工件數(shù)+1開關(guān)關(guān)閉?是故障數(shù)+1L0L3滅,L4亮,延時2sCX=CX+

3、1CX5 ?開關(guān)關(guān)閉?是跳出,并發(fā)出警報否是否否l 程序編寫如下:l stack1segment stackldb 1024 dup (0)l stack1endsldatasegmentlshuj dw ?ldataendsl code segment codelassume cs:code,ds:data,ss:stack1l start: mov ax,datalmov ds,axl;初始工作狀態(tài)lmov dx,0f003hlmov al,10001001blout dx,all;程序lmov dx,0f000hlmov al,11111110blout dx,allcall bdela

4、y;第一步l mov al,11111100blout dx,alllcall bdelay;第二步lmov al,11111000blout dx,allcall bdelay;第三步lmov al,11110000blout dx,alllcall bdelay;第四步l ;以后進入連續(xù)工作狀態(tài)l;對8255進行初始化,片選端接cs1,則有A口端口地址0F000H,B口端口地址0F001H,C口端口地址0F003H。;設(shè)置方式字要求,A,B,C口均工作在第0號工作方式,A輸出。C口輸入。l;程序l xor bx,bxl next: mov dx,0f000hlmov al,11100000

5、blout dx,alllcall bdelaylmov al,11101111blout dx,alllcall wdelaylinc bl;bl中存放完成工件數(shù)lmov dx,0f002hlin al,dxland al,10hljz nextlinc bh;bh中存放故障數(shù)l xor cx,cxl again:mov dx,0f000hlmov al,11101111blout dx,allcall edelayl inc cxlcmp cx,5;設(shè)置最高循環(huán)次數(shù)lja stoplmov dx,0f002hlin al,dxland al,10hljz nextljmp againl s

6、top: mov dx,0f000hlmov al,01111111blout dx,al;停止所有工位,并發(fā)出警報lmov shuj,bx;將數(shù)據(jù)保存至寄存器lmov ax,4c00hlint 21h ;子程序,程序名delay,需要延時的時間寫在timel wdelayproc lpush bxlpush cxlmov bx,20l wdelay1:mov cx,0l wdelay2:loop wdelay2ldec bxljnz wdelay2lpop cxl pop bxlretl wdelayendpl bdelayproc lpush bxlpush cxlmov bx,32l b

7、delay1:xor cx,cxl bdelay2:loop bdelay2ldec bxljnz bdelay2lpop cxlpop bxlretl bdelayendpl edelayproc l push bxlpush cxlmov bx,8l edelay1:xor cx,cxl edelay2:loop edelay2ldec bxljnz edelay2lpop cxlpop bxlretl edelayendpl codeendslend startl延時功能的實現(xiàn)l設(shè)計程序是考慮了3種方式,軟件延時,日時鐘調(diào)用,8253計數(shù)延時。后兩種方式計時精確,但實現(xiàn)較麻煩,在實驗中效

8、果不好。軟件演示實現(xiàn)容易,控制靈活,在機械范圍內(nèi)精度符合要求,故選用軟件延時。顯示功能的實現(xiàn)l 利用LED數(shù)碼管8255A口B口片選A0A1位選控制口段選控制口通過實驗我們發(fā)現(xiàn),針對試驗箱:必須先位選,再段選。我們改變了課本中的例題實現(xiàn)了八位顯示功能。l 顯示具體流程如下讀取工件數(shù)及故障數(shù)轉(zhuǎn)化為十進制寫入顯示數(shù)表顯示l 具體程序:l stack1 segment stackl db 1024 dup(0)l stack1 endsl data segmentl shuj dw ?l lhund db ?l lten db ?l ldat db ?l lnumber db ?l db ?l hh

9、und db ?l hten db ?l hdatdb ?l hnumber db ?l LEDdt db 8 dup(?)l data endsl code segment codel assume cs:code,ds:data,ss:stack1l start: mov ax, datalmov ds, axl;低四位lmov bx,shujlmov lnumber,bllmov ax,word ptr lnumberlmov lhund,100ldiv lhundlmov lhund,allmov al,ahlmov ah,0lmov lten,10ldiv ltenlmov lten

10、,allmov ldat,ahl;高四位l mov hnumber,bhlmov ax,word ptr hnumberlmov hhund,100ldiv hhundlmov hhund,allmov al,ahlmov ah,0lmov hten,10ldiv htenlmov hten,allmov hdat,ahl ;賦值l mov al,ldatl mov leddt,all mov al,ltenl mov leddt+1,all mov al,lhundl mov leddt+2,all mov al,hdatl mov leddt+4,all mov al,htenl mov

11、leddt+5,all mov al,hhundl mov leddt+6,all ;led顯示l mov dx,0f003hl mov al,80hl out dx,all again:mov si,offset LEDdtlsegport=0f001hlbitport=0f000hlcall LEDdispljmp again ;子程序 ,顯示一次數(shù)碼緩沖區(qū)的8個數(shù)碼,入口參數(shù):ds:si=緩沖區(qū)首地址l LEDdispprocl push axlpush bxlpush dxlmov bx,offset LEDtblmov ah,0fehl LED1:mov al,ahlmov dx,b

12、itport;bitport為位控制端口lout dx,alllodsblxlat cs:LEDtblmov dx,segport;segport為控制端口lout dx,allcall delaylrol ah,1;指向下一個數(shù)碼管lcmp ah,0fehljnz LED1lpop dxlpop bxlpop axlretl;顯示代碼表,按照0-9順序l LEDtbdb 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhl l LEDdisp endpl timer =1l delayproclpush bxlpush cxlmov bx,timerl ;dela

13、y1:xor cx,cxl delay1:mov cx,500l delay2:loop delay2ldec bxljnz delay2lpop cxlpop bxlretl delayendplmov ax,4c00hlint 21hl code endslend start方案評價l本方案基本完成了題目要求,接線簡單,便于實現(xiàn),但同時也存在計時不精確,中途需換線等不足。方案改進l 針對計時不精確的問題,考慮用8253計數(shù)器工作方式0.輸入某一頻率的方波,用8253進行計數(shù),計數(shù)完成后在OUT端輸出高電平。l 在具體實現(xiàn)上,可考慮用兩片8255同時控制,當(dāng)主程序停止工作時執(zhí)行顯示程序,但無論如何實現(xiàn)實時顯示才是最終目的。l 針對實時顯示的要求,我設(shè)想把顯示程序?qū)懗裳訒r程序。令其在延時的同時進行顯示,也許能夠?qū)崿F(xiàn)實時顯示的要求。主要參考文獻:16/32位微機原理、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論