微機課程設計2_第1頁
微機課程設計2_第2頁
微機課程設計2_第3頁
微機課程設計2_第4頁
微機課程設計2_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

接口課程設計

題目:電梯自動控制系統設計主要內容設計一個電梯自動控制系統,由電機驅動控制系統,1路A/D輸入,12個按鍵,4個8段的LED顯示器,8個LED指示燈,1路聲控報警系統組成。4個8段的LED顯示器,8個LED指示燈及12個鍵盤作為控制系統的控制臺設計,以提供人機交互,控制電機的停啟。1路模擬輸入主要對電梯中人員重量進行控制,若超重,電梯停止運行,并提示報警。電梯運行按電梯運行規(guī)則實現。

一、電梯自動控制系統結構示意圖CPU主機板8255(1)8255(2)8段LED顯示鍵盤控制步進電機控制LED控制0809重量檢測

二、操作步驟把整個電機運行軌跡分成8等分,模擬8個層面,由控制臺按鍵決定電機運行,鍵盤有12個鍵組成,其中8個為數字鍵定義1~8,4個為控制鍵定義為開門鍵,關門鍵,報警鍵,清除鍵。1.鍵盤控制數字鍵:當從鍵盤按下某個數字鍵,相應的LED指示燈點亮,并按電梯運行規(guī)則(在關門的情況下,按前進方向最接近當前位置的樓層??浚┩??,如在某個樓層停靠,相應的LED指示燈熄滅。

控制鍵:開門鍵:任何時候都可以按開門鍵,按過開門鍵,電梯在最近的樓層???,顯示器顯示OPEN,如不按關門鍵,電梯不會運行。關門鍵:當電梯處于開門狀態(tài)時,電梯不會運行,只有按關門鍵,電梯處于關門狀態(tài),此時如有其它層面要求??康恼埱?,電梯才會根據指令運行。報警鍵:該鍵模擬電梯故障,按下改鍵,表示電梯有故障,則提示告警,該狀態(tài)可通過清除鍵清除。清除鍵:清除告警信號及所有樓面的請求信號。

2.顯示控制本系統顯示包含2部分:一部分是由4個8段LEN顯示器,另一部分是8個LED指示燈4個8段LED顯示:按下開門鍵:顯示OPEN.按下報警鍵或檢測出超重顯示Err當電梯在運行過程中,則自動顯示到達樓層號,如在某個樓面停靠,電梯自動處于開門狀態(tài),顯示的內容不變。顯示樓層號的格式為noX,其中X為樓層號。8個LED指示當前樓層有否請求,亮表示有請求。

3.控制規(guī)則在無故障情況下,如果鍵盤有樓層停靠請求,則在按下關門鍵后,能按電梯運行規(guī)則選擇相應的樓面???,??亢箅娞葑詣犹幱陂_門狀態(tài)。顯示器實時顯示電梯走過的樓面,如要接受下一次請求,則需再按關門鍵。樓層請求要有記憶功能,??康拇涡蚝桶存I的次序無關,和電梯運行規(guī)則有關,如2次以上按同一層停靠,只做一次處理。每次按下關門鍵,需要檢測電梯是否在正常負荷下運行(A/D值檢測大于4.5V為超重),如超重或按報警鍵表示電梯有故障,電梯停止運行,并報警,通過減小A/D或按清除鍵清除故障狀態(tài)。

三、硬件設計電機驅動a.步進電機驅動接口步進電機驅動器步進電機負載方向步進電機驅動示意圖步進電機接受的脈沖信號,每個脈沖將電機轉動一個固定的步矩角度,步進電機一般不需要反饋位置信號。

步進電機分三相,四相,五相,六相四種,其旋轉方向與內部繞組的通電順序有關。下面以三相電機為例說明三相步進電機有三種工作方式:單三拍,通電順序:ABC雙三拍,通電順序:ABBCCA三相六拍,通電順序:AABBBCCCA

控制原理:如果用8255PA口的PA2~PA0來控制三相步進電機單三拍PA7PA6PA5PA4PA3PA2PA1PA0C相B相A相100101h201002h310004h正向0102040102…..反向0104020104…..

雙三拍PA7PA6PA5PA4PA3PA2PA1PA0C相B相A相101103H211006H310105H正向03H06H05H03H06H05H….反向03H05H06H03H05H06H….

三相六拍PA7PA6PA5PA4PA3PA2PA1PA0C相B相A相100101H201103H301002H411006H510004H610105H正向:01H03H02H06H04H05H01H03H02H….反向01H05H04H06H02H03H01H05H04H….

AEDK-DJ6機電實驗平臺可實現步進電機控制本裝置使用8255口PA0~PA3作為四相步進電機A,B,C,D相驅動步進電機走拍子程序功能:根據方向每調用一次,走一拍

DIREDB?;0表示正走,0FFH表示反正STEPDB0;表示4拍中的位置0~3STEPTABDB01H,02H,04H,08H;拍表PA255EQU208H;假設8255口地址208h~20BHSTEPMOTORPROCMOVAL,STEPMOVBX,OFFSETSTEPTABXTAL;讀拍表的值OUTPA255,AL

MOVAL,DIRECMPAL,00HJNZSTEP1INCSTEP;正走MOVAL,STEPCMPAL,04HJNZSTEPENDMOVSTEP,0;正走0-1-2-3-0JMPSTEPENDSTEP1:DECSTEP;反走0-3-2-1-0MOVAL,STEPCMPAL,0FFHJNZSTEPENDMOVSTEP,03HSTEPEND:CALLDEL;延時子程序,實際程序中可調用顯示子程序RETSTEPMOTORENDP

b.直流電機驅動占空比的設定寬度脈沖發(fā)生器驅動器電子開關電動機直流電機通過脈寬調制來控制電機的速度,即通過改變電機電樞電壓接通或斷開時間的比值(占空比)來控制馬達的速度,這種方法簡稱脈寬調制(PWM)脈沖寬度發(fā)生器:由計算機根據平均速度,計算占空比,由軟件實現驅動器:將計算機輸出的脈沖寬度調制信號加以放大,以便用來控制電機定子電壓接通或斷開的時間。通常由放大器或繼電器組成電子開關:用來接通或斷開電機定子電源,可用晶體管或場效應管開關組成,也可由繼電器或可控硅控制AEDK-DJ6機電實驗平臺可實現直流電機控制,由D/A輸出實現調速,直流電機每轉一圈,有一個位置反饋,可根據該信號測當前電機所在的位置。直流電機的啟停,方向由D/A0832輸出值來定從00H,7FH,FFH的D/A輸出值00表示正傳的最大速,該值增大,速度依次減小,到7FH電機停止運轉,在增加,電機反向運轉,此時速度較低,到0FFH,電機反向運轉最大速

2.鍵盤顯示驅動

七段顯示器24pb0pb1pb28255(1)abcdefg

pc0pc1pc2pc3pc4pc5pc674LS138Y0Y1Y3ABC

7段碼的顯示電路

鍵盤驅動電路4故障

5清除

6

7

08

19

2開

3關

+5V74LS138Y0Y1 Pa7Pa6Pa5Pa4Pa3Pa2Pa1Pa0ABCPb0Pb1Pb28255(1)本設計使用非編碼鍵盤,所以鍵盤操作的去抖動、防串鍵、按鍵識別和鍵碼產生4個基本功能都有軟件來完成,鍵盤程序分2部分,一個是鍵盤掃描程序,主要完成掃描鍵盤上是否有鍵按下,另一個是鍵處理程序,用于完成對各個按鍵的處理。

8255(2)+5vpb0pb1pb2pb3pb4pb5pb6pb7LED指示燈驅動電路電機Pa0pa1pa2pa33.重量檢測重量,溫度,流量,速度等是計算機常要控制的對象,而這些都是連續(xù)變化的量,且是非電量,首先通過傳感器把這些非電量的信息轉換成電量,而后經過A/D轉換輸入到計算機。重量檢測可以使用壓力傳感器,這些傳感器的輸出一般是電壓型或電流型2種,如果傳感器信號比較弱則可在A/D輸入端加運放。

四、軟件設計1.思路:根據要求,程序由幾個功能模塊(任務)組成模塊之間的協調關系,接口是怎樣(程序要編成卸掉一個模塊,程序照樣能走)實時系統需要強調實時性(忌用軟件延時,多用中斷代替查詢)

2.本系統可以劃分的任務:初始化程序初始化程序一般只走一次,在程序的最開始,初始化的工作主要是像電機歸0,8255初始化,變量設置等。鍵盤處理子程序鍵盤處理是對控制臺命令監(jiān)聽,所以是程序主要核心,該程序包含2部分,一個是鍵盤掃描子程序,主要完成掃描鍵盤上是否有鍵按下,另一個是鍵處理程序,用于完成對各個按鍵的處理,鍵盤分數字鍵和功能鍵。鍵處理程序僅記憶一個狀態(tài),真正執(zhí)行在相關的執(zhí)行程序里完成。顯示子程序顯示子程序的主要功能把顯示緩存的內容送顯示器由于使用動態(tài)掃描,所以顯示程序需要不斷刷新,如果軟件處理上有時延,會影響顯示,所以有延時的地方,都可以用顯示子程序來替代。按鍵處理中或者執(zhí)行需要更新顯示內容,只要更新顯示緩存就可以,本系統用到4個7段顯示器,所以只要開辟4個顯緩(顯示子程序中XH),顯示緩存的內容即為要顯示內容的序號。

LED指示子程序控制臺上有8個LED指示燈,用來指示當前那個樓層有請求的需要,在內存中開辟8個單元為NUM1~NUM8,每個單元表示對應的樓層的請求情況,當該單元的值為0,表示該樓層沒有請求,當該單元的值為0FFH,表示該樓層有請求,LED指示子程序僅僅根據NUM1~NUM8完成指示,而NUM1~NUM8的修改則是由鍵盤,或其他執(zhí)行程序完成。電機控制子程序電機控制子程序主要的功能是啟動一次電機運行。啟動電機運行的條件:電機未在走拍程序,電機未出現故障電機在關門狀態(tài),有樓層停靠的請求。電機每次啟動只走一個層面,啟動后,由電機走拍子程序完成控制電機運行。電機走拍子程序電機走拍程序控制電機運轉,步進電機的走步程序非常講究,特別是在停啟的時候,從停止到啟動,需要的扭矩非常大,往往要加大電流,增加走拍的時間,而從啟動到停止,也需要降低步進電機的速度,防止過沖。走拍子程序根據方向按拍表的內容走步,由既定的步數走到相應的樓層,根據請求表,做相關的處理。重量檢測子程序通過對ADC08090號通道的模擬量檢測,濾波(采集8次求平均值)判斷是否超重(模擬量的大于4.5V),如超重,則ALARM置成0FFH,顯示緩存送ERR,電機狀態(tài)STATUS置成開門狀態(tài)。該子程序不在主流程中,僅僅在按鍵處理若按關門鍵時,調用一次即可。

3.用到的內容變量Xh顯示緩存4個單元Dmdb3fh,06h,5bh,4fh,66h,6dhdb7dh,07h,7fh,6fh,77h,7ch,39hdb5eh,79h,71h,73h,00h,40h段碼表NUMI~NUM8樓層請求單元0無請求,1有請求STATUS電機開關門狀態(tài)0表示開門,0FFH表示關門,1表示走拍ALARM電機故障指示0無故障,0FFH有故障NUM電機當前運行的樓層DIRE電機運行方向0表示正走,0FFH表示反正STEP電機在走拍程序中4拍的位置STEPNUM(字單元)電機走拍次數

I/端口的定義8255(1)的端口的定義8255(2)的端口的定義0809的0通道的定義CSAD

pa55equ218hpb55equ219hpc55equ21ahp55ctlequ21bhPA255EQU208HPB255EQU209HPC255EQU20AHP255CTLEQU20BH

4.程序總流程初始化子程序調用顯示子程序調用LED指示子程序調用鍵盤子程序調用電機控制子程序調用電機走拍子程序

初始化子程序:STEP=0,STSTUS=0,XH1~4=0,ALARM=0NUM=0,DIRE=08255(1)初始化(B口,C口方式0,輸出,A口方式0輸入)8255(2)初始化(A口,B口方式0輸出)8255(2)A口,B口清0

顯示子程序:XH

顯示緩存DM0的段碼1的段碼2的段碼8的段碼9的段碼E的段碼r的段碼P的段碼n的段碼暗碼位置01289ABCDF3FH06H5BH7FH6FH79H若要顯示OPEn,則顯緩的內容分別是00H,0CH,0AH,0DH若要顯示Err,則顯示緩存的內容分別是0AH,0BH,0BH,0FH

顯示子程序流程:

設置顯緩指針設置當前掃描的位置把掃描燈位的控制信號送I/O端口根據顯緩指針查段碼表段碼送I/O端口延時1MS四個LED掃描結束修改掃描位置修改顯緩指針N返回xhdb01h,02h,03h,04hDmdb3fh,06h,5bh,4fh,66h,6dhdb7dh,07h,7fh,6fh,77h,7ch,39hdb5eh,79h,71h,73h,00h,40h

pa55equ218hpb55equ219hpc55equ21ahp55ctlequ21bh

dispprocnearpushbxmovsi,offsetxhmovcl,03hhh:moval,clmovdx,pb55outdx,almoval,[si]leabx,dmxlatmovdx,pc55outdx,alpushcx

movbx,0008hee:movcx,0cfffhcc:noploopccdecbxjnzee;延時popcxincsicmpcl,00hjebbdeccljmphhbb:popbxretdispendp

鍵盤子程序:鍵盤掃描

判是否有鍵按下?

數字鍵(鍵值1~8)開門鍵關門鍵報警鍵清除鍵NUM1~NUM8清0ALARM清0返回ALARM置FFHSTATUS置開門返回STATUS清0STATUS置0FFH返回返回根據鍵值置NUM1~8為0FFH返回YN返回鍵盤只是記憶一個狀態(tài),操作是在電機控制程序完成調用重量檢測程序更新顯緩Err

鍵盤掃描流程:

把0送行掃描單元行掃描值送I/O端口讀列值判列值是否是0FFHY該行無鍵按下,行掃描單元加1判行全部掃描完?Y返回NN(無鍵)延時,防鍵抖動(可調用顯示子程序)AB

A把行掃描信號送I/O端口讀列值并判該行有鍵按下?根據列信號確定鍵值判當前掃描是第0行?鍵值加8NY鍵值送內存單元轉鍵處理程序有鍵B(重新掃描)無鍵

pa55equ218hpb55equ219hpc55equ21ahp55ctlequ21bhR2db?R4db?keyprocnearwait3:movr2,00h;選擇行wait1:moval,r2movdx,pb55outdx,almovdx,pa55inal,dxcmpal,0ffhjnewait2;有鍵按下

incr2;選擇下一行cmpr2,02h;只掃描2行

jzkeyend;掃描結束jmpwait1;掃描下一行wait2:calldispcalldispcalldisp;延時,防鍵抖動moval,r2movdx,pb55outdx,almovdx,pa55inal,dxcmpal,0ffh;在判該行有鍵按下jewait3;無鍵按下,從新掃描

movr4,00;有鍵按下

lk3:

rcral,1jnclk4incr4jmplk3lk4:moval,r2cmpal,01hjnzlk5moval,08haddal,r4movr4,al;第2行有鍵按下lk5:calldispcalldispcalldisp

;鍵處理keyendretkeyendp

電機控制子程序:當前啟動走拍程序?判電梯是否開門狀態(tài)?關門NUM1~8是否全為0?N判前進方向?正前進方向有請求?Y當前層次加1拍數送STEPNUM反前進方向有請求?Y當前層次減1

返回NN開門返回

Y返回Y返回(沒有請求)啟動電機走拍程序(STATUS置為1)

N改變方向改變方向

電機走拍子程序:

判步進電機走步方向?正向拍數STEP加1拍數為04?拍數清0NY反向

根據拍數STEP查拍表并送端口拍數STEP減1拍數為0FFH?YN拍數置03H軟件延時總步數減1,判總步數為0?判該層NUM是否為0FFH?Y該單元清0,STATUS置成開門返回N把層號送顯示緩存,STATUS置0FFH(關門)YSTATUS是否是01H?YNYN

LED指示子程序:根據NUM1~8的值送8個LED指示燈

NUM10NUM2FFNUM30NUM40NUM50NUM6FFNUM70NUM8011011101L7L6L5L4L3L2L1L0硬件連接上采用共陽,所以低電平點亮,使用靜態(tài)掃描,不需要刷新。

DISPLEDPROCMOVAL,0MOVCX,8MOVBX,OFFSETNUM1DISPLED3:MOVAH,[BX]CMPAH,0JZDISPLED1CLC;進位位清0JMPDISPLED2DISPLED1:STC;進位位置1DISPLED2:RCRAL,1INCBXDECCXJNZDISPLED3MOVDX,PB255;8255B口的地址OUTDX,ALRETDISPLEDENDP

重量檢測子程序:A/D總和單元清0設置采集次數啟動A/D調用延時子程序讀A/D值加到總和單元采集次數到?求平均值判超重?ALARM送0FFH,STATUS送0,更新顯緩返回YNYN

A_DPROCMOVAX,BXMOVBX,0RCRAX,1MOVCL,8RCRAX,1BB:MOVDX,CSADRCRAX,1;/8OUTDX,AL;啟動A/D超重檢測PUSHDXRETPUSHCXA_DENDPCALLDISP;調用顯示POPCXPOPDXINAL,DXMOVAH,0ADDBX,AXLOOPBB

程序可按子程序編寫,最后把他們穿起來,匯編語言的格式DATASEGMENT;此處輸入數據段代碼DATAENDSSTACK

SEGMENTSTACK‘STACK’;此處輸入堆棧段代碼STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AX;此處輸入代碼段代碼

MOVAH,4CHINT21H;放子程序CODEENDSENDSTART程序要有正常退出功能,可通過PC機上按某個鍵來退出

5.程序調試和檢查程序按模塊(子程序)一個一個加首先是鍵盤顯示----單項檢查鍵盤程序是否能掃描到鍵,按鍵后顯示內容是否更新。加上重量檢測程序----單項檢查按下關門鍵,如在ADC0809加載大于4.5V電壓(用電位器模擬),顯示應該報出錯。加上LED指示子程序----單項檢查按下數字鍵1~8,對應的指示燈亮,按下清除鍵,所有LED暗。加上電機控制子程序----單項檢查按下數字鍵是否能啟動電機運行,此時由于沒加電機走拍程序,電機運行時看不到,改程序運行是否正確,看相關的內存單元(STATUS,STEPNUM,STEP,NUM)這些單元的值是保證電機走拍程序正常運轉的關鍵

加上步進走拍程序----步進電機走拍程序可以單獨檢查,只要給出前面的變量的設置,加入該子程序,就應該能啟動電機運轉,這樣就可以和電機控制子程序分開。聯調----注意事項注意子程序之間的接口,如果子程序中調用其他子程序,則要注意寄存器使用上是否有沖突,如有沖突可通過堆棧保護。

6.方案改進實時系統中盡量少軟件延時,本系統中鍵處理中防抖動,步進電機拍與拍之間間隔都用了軟件延時,用此方法因為系統實時性并不高,只有控制臺鍵盤輸入,但軟件延時會影響顯示,所以延時的地方用調用顯示來完成,這樣延時的精度會受影響,改進的方法就是用定時中斷,可使用8253,8259來完成,特別是步進電機的走步程序,如按此方案,走步程序就在中斷服務程序里完成,同時

溫馨提示

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

評論

0/150

提交評論