基礎(chǔ)課程設(shè)計模擬電梯的設(shè)計與制作_第1頁
基礎(chǔ)課程設(shè)計模擬電梯的設(shè)計與制作_第2頁
基礎(chǔ)課程設(shè)計模擬電梯的設(shè)計與制作_第3頁
基礎(chǔ)課程設(shè)計模擬電梯的設(shè)計與制作_第4頁
基礎(chǔ)課程設(shè)計模擬電梯的設(shè)計與制作_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 電 子 課 程 設(shè) 計 報 告 設(shè)計課題:模擬電梯的設(shè)計與制作 專業(yè)班級:09級電子信息工程2班 設(shè)計時間: 2011年10月10日12月31日目錄一、 結(jié)構(gòu)設(shè)計方案選擇.3 方案一:模擬洗衣機電機控制部分.3 方案二:模擬電梯.4 方案比較與選擇 .7二、摘要6三、模擬電梯的設(shè)計思路與要求7四、單元電路設(shè)計、參數(shù)計算及元器件選擇84.1 ADC080984.2 顯示部分104.3 矩陣鍵盤模塊114.4單片機最小系統(tǒng) . . . 124.5 步進電機控制電路.124.6 電梯實體的設(shè)計. . . .15五、總原理圖及元器件清單165.1 電路總原理圖165.2 元件清單175.3 實驗器材

2、與工具175.4 程序部分18六、焊接電路及調(diào)試中遇到的問題226.1 單片機最小系統(tǒng)的調(diào)試236.2 顯示部分的調(diào)式236.3 矩陣鍵盤的調(diào)試236.4 電梯實體的調(diào)試236.5 整體的調(diào)試與電路與實題的耦合. .23七、參考文獻24八、心得與體會24一、結(jié)構(gòu)設(shè)計方案選擇:方案一: 模擬洗衣機1、設(shè)計任務與要求用一個簡單的時序邏輯電路來取代傳統(tǒng)洗衣機所用的機械開關(guān),實現(xiàn)對電流的控制,正轉(zhuǎn)一定時間,停止2秒左右,再反轉(zhuǎn)一定時間,再停止2s如此反復。2、設(shè)計框圖及說明整體框圖如圖1-1所示,電路的基本原理是利用十六進制計數(shù)器的輸出口Q3與(Q3)來提供高低電平的信號,實現(xiàn)控制功能。接通電源后,時

3、序電路不斷地產(chǎn)生周期為1s的脈沖,這個脈沖接入道十六進制計數(shù)器,計數(shù)器的低三位接入譯碼器,然后產(chǎn)生譯碼信號,同一時刻只有一個燈亮,而且現(xiàn)象是一個流水燈電路,實現(xiàn)對電動機狀態(tài)機監(jiān)控。 圖1-1 模擬洗衣機設(shè)計框圖3、總體設(shè)計電路圖 圖1-2 模擬洗衣機原理仿真圖說明:如圖1-2注釋所說的,Q2&Q1是控制信號的控制信號,由左下角的與非門實現(xiàn),當Q2&Q1=0時,電動機兩端的電平都變成0,電機停止轉(zhuǎn)動,由上圖注釋的時序可知,僅當計數(shù)器輸出值為0110,0111,1110,1111(即十進制的6,7,14,15)時滿足Q2&Q1=0,此時電機停止轉(zhuǎn)動,而停止轉(zhuǎn)動的時間恰好是2

4、秒,時序由上往下循環(huán),從而實現(xiàn)了正轉(zhuǎn)6秒,停2秒,反轉(zhuǎn)6秒,停2秒依次循環(huán)的功能。方案二: 模擬電梯設(shè)計方案 1、設(shè)計任務要求設(shè)計一個電路,實現(xiàn)電梯的自動化控制和樓層顯示的功能具體如下:(1)能夠識別當前樓層。(2)顯示當前樓層和目的地樓層。(3)能夠用鍵盤輸入樓層呼叫信息和目的樓層。(4)通過電梯控制系統(tǒng)來實現(xiàn)電梯的邏輯控制。2、總體框圖及工作原理說明矩陣鍵盤單片機AD轉(zhuǎn)換控制電路步進電機動態(tài)數(shù)碼管 圖1-3 模擬電梯總體方框圖 工作原理:接通電源后,單片機最小系統(tǒng)開始起振,然后單片機開始工作,執(zhí)行預先寫入的程序,初始話所有變量,重復執(zhí)行:鍵盤的鍵碼識別函數(shù),數(shù)碼管顯示函數(shù),電機控制函數(shù),A

5、D控制及賦值函數(shù),電梯開始正常工作,細節(jié)細化到具體的模塊講解。控制通過AD轉(zhuǎn)換得到樓層測量點的電壓值,通過函數(shù)把電壓值轉(zhuǎn)換成樓層數(shù)賦給樓層變量,若在第一層電機不動,若不在,單片機計算所需運行的距離,提供響應數(shù)量脈沖信號使電機運動到1樓,至此初始化完成。當有呼叫信號和運動信號時,單片機會作出相應的反應,框圖的左半部分是一個典型的測控系統(tǒng),構(gòu)成一個閉環(huán),來實現(xiàn)運載客人的功能。3、電路圖的設(shè)計及說明 圖1-4 模擬電梯原理圖原理圖如圖1-4所示,說明:1、顯示部分:在下圖中部有一個調(diào)試按鍵:“按鍵1”,如圖所示,當 “鍵按1”按下時顯示樓層,動態(tài)數(shù)碼管第一位顯示電梯所在樓層,第四位顯示所要到的樓層;

6、當“按鍵1”彈起時顯示電壓測試點的電壓,下面有倆個LED指示燈,當電梯運行時會顯示,向上運行時上面那個紅色的LED亮,當電梯向下運行時,下面那個綠色的LED燈會亮,當電梯停止運行時倆個LED燈都熄滅。2、AD轉(zhuǎn)換器的脈沖源:要求脈沖源要小于600khz,脈沖源的頻率越高,轉(zhuǎn)換速度越快,這個脈沖源來自來之單片機的“ALE”引腳,當單片機正常工作時其“ALE”它會產(chǎn)生fOSC/6即12Mhz/6=2Mhz的脈沖,經(jīng)D觸發(fā)器兩次分頻后得到500khz的脈沖。3、控制電路:單片機(提供脈沖和加減信號)、可加減計數(shù)器(產(chǎn)生000、001、010、011四個二進制數(shù))、3-8譯碼器和非門(把計數(shù)器產(chǎn)生的二

7、進制代碼譯成流水燈一般的控制信號,因為譯碼器為低電平有效通過非門后變?yōu)檎壿媯鹘o步進電機)。方案比較與選擇:從原理及結(jié)構(gòu)方面來說,第一種電路采用基本的數(shù)字電路芯片,其具有成本低原理簡單的特點;第二個方案主要由程序來實現(xiàn)測控,可優(yōu)化性高,發(fā)展前景好,隨著單片機技術(shù)的廣泛應用,一個8位的單片機成本也不高,但考慮到電梯安全性要求比較高,這只是個雛形,還需要外加保護電路,而且控制信號的脈沖速度要可控,電梯從運行到停止的過程要有多個由高到低得頻率的脈沖作為緩沖,方案二較方案一更復雜,但可以運用到我們學的單片機的課程,讓我們對單片機強大的功能和廣泛的應用有個感性的認識。綜上,我們選擇用方案二,模擬電梯。二

8、、摘要:電梯的發(fā)展歷史隨著科學技術(shù)的發(fā)展,電梯也一代一代革新,應用最先進的技術(shù),以使其功能更完善,可靠性及安全性更高。按時間順序依次為:1、手柄開關(guān)操縱,電梯司機在轎廂內(nèi)控制操縱盤手柄開關(guān),實現(xiàn)電梯的起動、上升、下降、平層、停止的運行狀態(tài)。2、按鈕控制電梯:是一種簡單的自動控制電梯,具有自動平層功能,常見有轎外按鈕控制、轎內(nèi)按鈕控制兩種控制方式。3、信號控制電梯,這是一種自動控制程度較高的有司機電梯。除具有自動平層,自動開門功能外,尚具有轎廂命令登記,層站召喚登記,自動停層,順向截停和自動換向等功能。4、集選控制電梯,是一種在信號控制基礎(chǔ)上發(fā)展起來的全自動控制的電梯,與信號控制的主要區(qū)別在于能

9、實現(xiàn)無司機操縱。5、并聯(lián)控制電梯,23臺電梯的控制線路并聯(lián)起來進行邏輯控制,共用層站外召喚按鈕,電梯本身都具有集選功能。6、群控電梯,是用微機控制和統(tǒng)一調(diào)度多臺集中并列的電梯。群控有梯群的程序控制、梯群智能控制等形式。我們的模擬電梯應屬于第2種。三、模擬電梯的設(shè)計思路與要求1、電梯作用與功能 (1)在乘梯樓層電梯入口處,根據(jù)自己上行或下行的需要,按上方向或下方向箭頭按鈕,只要按鈕上的燈亮,就說明你的呼叫已被記錄,只要等待電梯到來即可。(2)電梯到達開門后,先讓轎廂內(nèi)人員走出電梯,然后呼梯者再進入電梯轎廂。進入轎廂后,根據(jù)你需要到達的樓層,按下轎廂內(nèi)操縱盤上相應的數(shù)字按鈕。同樣,只要該按鈕燈亮,

10、則說明你的選層已被記錄;此時不用進行其他任何操作,只要等電梯到達你的目的層??考纯伞#?)電梯行駛到你的目的層后會自動開門,此時按順序走出電梯即結(jié)束了一個乘梯過程。2、電梯功能的實現(xiàn)方法及程序設(shè)計思路實現(xiàn)方法:由單片機作為控制核心,整合數(shù)碼管顯示,矩陣鍵盤,AD轉(zhuǎn)換測電壓,通過電壓與樓層的對應關(guān)系來實現(xiàn)樓層識別,經(jīng)單片機處理后給出控制信號對步進電機的控制。程序設(shè)計思路:電梯及程序有兩個狀態(tài):待命狀態(tài)(啟動電梯前),和運行狀態(tài)(啟動電梯后)。下面是詳細介紹:1、接通電源后程序的初始化:定義一個標志位flag表示,它的值為“0”和“1”分別代表電梯的待命狀態(tài)和啟動狀態(tài),這兩個狀態(tài)運行的程序不是完全

11、一樣的;2、定義一個位變量dir,它的值表示電梯運行的方向,dir=1表示向上運行,給計數(shù)器加法信號,dir=0表示向下運行,給計數(shù)器減法信號;3、定義一個函數(shù)step()來處理數(shù)據(jù),處理所在樓層與需要到的樓層這些變量的計算與賦值;4、定義兩個數(shù)組ufloor7 和dfloor7,并賦初值0,分別記錄向上和向下的呼叫信號,當有人呼叫的時候通過賦值函數(shù)給相應的數(shù)組元素賦值“1”;5、定義一個函數(shù)select_next()來定時地掃描這兩個數(shù)組,掃描到有元素為“1”時就執(zhí)行step()函數(shù),計算并產(chǎn)生固定的脈沖。待命狀態(tài):這個狀態(tài)標志位flag=0表示沒有運行。select_next( )定時掃描

12、呼叫信息,電機出于關(guān)閉狀態(tài),當呼叫信息為“1”時,置flag=1;電梯進入運行階段。運行階段:計算好樓層后,給dir賦值,然后開電機,產(chǎn)生固定頻率和數(shù)量的脈沖,每到一個樓層執(zhí)行一次select_next(),掃描呼叫數(shù)組,當以對應樓層數(shù)為腳標的對應方向的數(shù)組元素值為1時(即當先樓層有人上或下電梯),電梯暫停5秒,并給相應呼叫信號置“0”,若原方向還有其他樓層的呼叫信息,電梯繼續(xù)運行,重復上面步驟,若,沒有呼叫信號,則置狀態(tài)標志位flag=0,電梯恢復待命狀態(tài)。 四、 單元電路設(shè)計,參數(shù)計算及元器件選擇4.1ADC08091、芯片ADC0809介紹:ADC0809是美國國家半導體公司生產(chǎn)的CMO

13、S工藝8通道,8位逐次逼近式A/D模數(shù)轉(zhuǎn)換器。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換。是目前國內(nèi)應用最廣泛的8位通用A/D芯片,在方案中得應用如圖3-1所示。矩陣鍵盤單片機AD轉(zhuǎn)換控制電路步進電機動態(tài)數(shù)碼管 圖4-1 模擬電梯的框圖2、ADC0809外部特性(引腳功能):圖4-2 ADC0809內(nèi)部結(jié)構(gòu)及管腳圖ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖4-2所示。下面說明各引腳功能。IN0IN7:8路模擬量輸入端。2-12-8:8位數(shù)字量輸出端。ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中

14、的一路ALE:地址鎖存允許信號,輸入,高電平有效。START: A/D轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復位,下降沿啟動A/D轉(zhuǎn)換)。EOC: A/D轉(zhuǎn)換結(jié)束信號,輸出,當A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。REF(+)、REF(-):基準電壓。Vcc:電源,單一+5V。GND:地。3、ADC0809工作過程:首先輸入3位地址,并使ALE=1,將地址存

15、入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。轉(zhuǎn)換數(shù)據(jù)的傳送 A/D轉(zhuǎn)換后得到的數(shù)據(jù)應及時傳送給單片機進行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認A/D轉(zhuǎn)換的完成,因為只有確認完成后,才能進行傳送。為此可采用下述三種方式。(1)定時傳送方式對于一種A/D轉(zhuǎn)換器來說,轉(zhuǎn)換時間作為一項技術(shù)指標是已知的和固定的。例如A

16、DC0809轉(zhuǎn)換時間為128s,相當于6MHz的MCS-51單片機共64個機器周期??蓳?jù)此設(shè)計一個延時子程序,A/D轉(zhuǎn)換啟動后即調(diào)用此子程序,延遲時間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著就可進行數(shù)據(jù)傳送。(2)查詢方式A/D轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0809的EOC端。因此可以用查詢方式,測試EOC的狀態(tài),即可確認轉(zhuǎn)換是否完成,并接著進行數(shù)據(jù)傳送。(3)中斷方式把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進行數(shù)據(jù)傳送。不管使用上述哪種方式,只要一旦確定轉(zhuǎn)換完成,即可通過指令進行數(shù)據(jù)傳送。首先送出口地址并以信號有效時,即OE信號有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機

17、接受。 考慮到對探測電壓的及時性要求不高,我們的采用的定時傳送的方式。4、ADC0809主要特性(1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位。(2)具有轉(zhuǎn)換起??刂贫?。(3)轉(zhuǎn)換時間為100s(時鐘為640kHz時),130s(時鐘為500kHz時)(4)單個+5V電源供電(5)模擬輸入電壓范圍0+5V,不需零點和滿刻度校準。(6)工作溫度范圍為-40+85攝氏度(7)低功耗,約15mW。4.2、顯示部分1、器件選擇:共陰極的四位動態(tài)數(shù)碼。2、動態(tài)數(shù)碼管原理:機構(gòu)上,它由幾個數(shù)碼管并起來,所有數(shù)碼管數(shù)據(jù)線對應相連,通過引腳連出,地線也通過引腳接出,所以它的顯示由兩個信號控制:(1)數(shù)據(jù)

18、線8根:用來傳輸顯示數(shù)據(jù)。(2)陰極線4根:數(shù)據(jù)線給出需要顯示的值,地線給對應需要顯示那個數(shù)值的數(shù)碼管以低電平,使其產(chǎn)生電流,點亮數(shù)碼管上對應的LED燈,在很短的時間里同時改變數(shù)據(jù)線的信號和地線的信號,使另外一個數(shù)碼管點亮,顯示對應的數(shù)值,不斷重復,當這個時間小于人眼睛能識別的極限時間時,我們看到的圖像就是連續(xù)的,這叫做視覺延遲,動態(tài)數(shù)碼管就是利用人們的視覺延遲來實現(xiàn)同一個數(shù)據(jù)線驅(qū)動多個數(shù)碼管,比靜態(tài)顯示相比,節(jié)約出很多I/O口,可以完成許多靜態(tài)顯示不能完成的任務,這個思想還應用在點陣顯示,和各種顯示屏上。3、實際運用:如圖4-3所示,數(shù)據(jù)信號由單片機P0口低四位輸出的二進制數(shù)通過7段數(shù)碼管譯

19、碼器給出,譯碼器同時起一個驅(qū)動數(shù)碼管的作用;地線通過P0口高四位直接給出,考慮到這個電流不大,小于C52單片機的灌電流20mA,就沒有外加陰極驅(qū)動電路。這個地方是自己的小設(shè)計,在單片機I/O比較緊張的情況下用一個I/O端子實現(xiàn)顯示功能,有創(chuàng)新的成分在里面,但是,顯示都是通過個兩個端口(數(shù)據(jù)信號和地線信號)賦值來實現(xiàn)的,這個想法遇到了不小的困難,最后C語言的位操作完美的解決了這個問題,把兩個信號分別賦值給不同字符變量的高四位和第四位,然后再把他們或起來賦給顯示端口P0,具體語句如下:void display()P2=(floordispbitdispcount|dispbufdispcount)

20、; dispcount+;if(dispcount=4)dispcount=0;dispswitch=1;注意:floordispbit 的高四位存放地線信號對應的二進制數(shù),第四位為0;dispbuf 的低四位存放數(shù)碼管要顯示數(shù)值對應的二進制數(shù),高四位為0;dispcount為要顯示的是第幾位,從它的值從03循環(huán),不同的值對應不同的運算及賦值,利用人的視覺延遲實現(xiàn)動態(tài)顯示的目的。4位共陰動態(tài)數(shù)碼管高四位共陰極單片機的P0口低四位4位二進制代碼7段數(shù)碼管譯碼器圖4-3 顯示部分的總體框圖圖4-4 顯示部分的實際電路連接4.3、矩陣鍵盤模塊圖4-5 矩陣鍵盤的原理圖表一 鍵碼值 表二 功能表EEE

21、DEBE7DEDDDBD7BEBDBBB77E7D7B7743215上6下655下2上3上4上12下3下4下圖4-6 矩陣鍵盤的實物如圖4-5圖4-6所矩陣鍵盤可以用8個I/O口接16個按鍵,在有需求的時候可以大大的提高I/O口的利用率,設(shè)計中有六個樓層,電梯內(nèi)按鍵6個,向上及向下的呼叫按鍵共1+4*2+1=10個,所有按鍵一共16個,4*4的矩陣鍵盤剛好符合設(shè)計要求。其鍵碼值如表一所示,每個鍵的功能如表二所示。4.4、單片機最小系統(tǒng)圖4-7單片機的最小系統(tǒng)如圖4-7所示,單片機最小系統(tǒng)由一個12M晶振,2個30pF電容,和一個復位電路組成,復位原理就是給RST端口0.1秒的高電平作為復位信號

22、。復位電路是必不可少的,沒有它單片機將很難起振。4.5、步進電機控制電路1、電路框圖及說明步進電機3-8線譯碼器74LS138十進制可加減計數(shù)器74LS192MCU提供脈沖和復位信號 圖4-8 步進電機及控制信號框圖如圖4-8所示,控制電路的作用是產(chǎn)生控制信號,傳道步進電機,該信號有點類似流水燈,課控制流動方向,由圖4-8可見,該信號是由十進制可加減計數(shù)器的譯碼所得,74LS192為控制電路的核心,下面對74LS192進行說明。2、74LS192的相關(guān)說明:74LS192是雙時鐘方式的十進制可逆計數(shù)器(bcd,二進制)。(1)74ls192引腳圖及引腳功能說明圖4-9 74LS192的引腳圖引

23、腳說明:CPU為加計數(shù)時鐘輸入端,CPD為減計數(shù)時鐘輸入端。LD為預置輸入控制端,異步預置。CR為復位輸入端,高電平有效,異步清除。CO為進位輸出:1001狀態(tài)后負脈沖輸出,BO為借位輸出:0000狀態(tài)后負脈沖輸出。圖 4-10 74LS192的狀態(tài)圖(2)電路的實際鏈接(如下圖4-11所示)及說明圖 4-11 74ls192的實際連接圖說明:異步置數(shù)所置的數(shù)為4,當輸出端Q2為高電平時置數(shù)異步置零端信號為(Q2Q3)其時序圖如圖3-12所示。圖4-12 74LS192時序圖4.6 電梯實體的設(shè)計1、樓層設(shè)計:用釘子代表樓層,如圖3-13所示。圖 4-13 樓層實物連接圖說明:每一顆釘子是一個

24、等勢體,接到如下電路的各引腳:圖4-14 樓層設(shè)計的仿真原理圖在箱體上放一個探測點來測量電壓,每一個電壓通過四舍五入對應響應的樓層,從而實現(xiàn)樓層的識別。2、樓房框架的設(shè)計:如圖3-15所示,用電腦主機箱蓋做成支架來代表樓房,固定紙板,并在上方固定一顆螺絲釘做傳動。圖4-15 樓房的支架五、總原理圖及元器件清單 5.1、總原理圖5.2、元件清單表1 元件清單元件序號元件名主要參數(shù)數(shù)量備注1AT89C52C52單片機12矩陣鍵盤4x413動態(tài)數(shù)碼管四位14CD45517段譯碼器15LED發(fā)光二極管56電位器100k17R147058R21k59C110F110C230pF211開關(guān)普通開關(guān)212步

25、進電機四相213可加減計數(shù)器74LS192114譯碼器3-8115四二與非門74LS04216雙D觸發(fā)器74LS74117八與非門74LS00118晶振體振蕩器12M15.3實驗儀器、工具表2 實驗儀器、工具儀器序號 儀器 工具名稱主要作用數(shù)量備注1數(shù)字萬用表測量導線的導通情況及各個元件的參數(shù),檢測引腳間是否連通或短路12雙蹤示波器檢測單片機是否起振13電烙鐵用來焊接各元器件15.4、程序#include <reg52.h> #define uchar unsigned char#define uint unsigned int#define N 2470 /2470uchar k

26、eytab16=0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77;uchar code dispcode=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09; /從鍵碼到數(shù)字uchar code voltdispbit=0xe0,0xd0,0xb0,0x70; /樓層數(shù)顯示低電平位 高四位uchar code floordispbit=0xe0,0xff,0xff,0x70; /電壓顯示的低電平位 高四位uchar voltmeter4=

27、0,0,0,0; /電壓數(shù)值存放低四位uchar dispbuf4=0,0,0,0; /樓層數(shù)值存放低四位uchar ufloor7=0,0,0,0,0,0,0;uchar dfloor7=0,0,0,0,0,0,0;uchar dispcount=0; uchar getdata; uchar desfloor; uchar floor;uchar key; uchar flag;uchar stop=0;uchar temp,desftemp,floortemp;long timer1,timer3;uint timer2;long i;sbit ST=P30; sbit OE=P31;

28、sbit EOC=P32; sbit CLK=P33;sbit LED=P34; sbit dispswitch=P35;sbit dir=P36; sbit ENG=P37; /*dlms() int delay; for(delay=0;delay<10000;delay-);*/ void write(uchar x)uchar m; if(x>=0xdd) for(m=0;m<6;m+) if(keytabm=x) floortemp=m+1; if(!flag) /待命狀態(tài) if(floortemp>floor)ufloorfloortemp=1; else

29、if(floortemp<floor)dfloorfloortemp=1; else if(dir)ufloorfloortemp=1;/運行狀態(tài) else dfloorfloortemp=1; else switch(key) case(0xdb):dfloor6=1;break; case(0xd7):ufloor5=1;break; case(0xbe):ufloor4=1;break; case(0xbd):ufloor3=1;break; case(0xbb):ufloor2=1;break; case(0xb7):dfloor5=1;break; case(0x7e):dfl

30、oor4=1;break; case(0x7d):dfloor3=1;break; case(0x7b):dfloor2=1;break; case(0x77):ufloor1=1;break; void kbscan(void)/鍵盤掃描和按鍵相應賦值 uchar sccode,recode;P0=0xf0;if(P0&0xf0)!=0xf0) if(P0&0xf0)!=0xf0) sccode=0xfe; while(sccode&0x10)!=0) P0=sccode;if(P0&0xf0)!=0xf0) recode=P0&0xf0; sccod

31、e=sccode&0x0f; key=sccode+recode; else sccode=(sccode<<1)|0x01); write(key); void desfscan( ) /目的樓層賦值 uchar k; if(dir=1)for(k=1;k<=6;k+)if(ufloork)desftemp=k; else for(k=6;k>=1;k-)if(dfloork)desftemp=k; dispbuf3=desfloor=desftemp;void display()/顯示 if(flag) desfscan(); else dispbuf3=d

32、esfloor; if(dispswitch=0) P2=(floordispbitdispcount|dispbufdispcount); else P2=(voltdispbitdispcount|voltmeterdispcount); dispcount+; if(dispcount=4)dispcount=0;dispswitch=1;void volttest()/電壓測量 if(EOC=1) OE=1; getdata=P1; OE=0; P1=0xff; i=getdata*196;floor=(i+5000)/10000+1;dispbuf0=floor;voltmeter1

33、=i/10000; i=i%10000; voltmeter2=i/1000;i=i%1000; voltmeter3=i/100; ST=1; ST=0; void select_up() /每到一個樓層時執(zhí)行一次,若該方向還有呼叫繼續(xù)運動 uchar j; if(ufloorfloor)stop=1;ufloorfloor=0; for(j=floor;j<=6;j+) if(ufloorj)ENG=1;return; ENG=0;flag=0;void select_dnow() /每到一個樓層時執(zhí)行一次,若該方向還有呼叫繼續(xù)運動 uchar j; if(dfloorfloor)s

34、top=1;dfloorfloor=0; for(j=floor;j>=1;j-) if(dfloorj)ENG=1;return; ENG=0;flag=0;step(void)uchar g;if(!flag)/待命狀態(tài) for(g=1;g<=6;g+) if(dfloorg)desfloor=g; if(ufloorg)desfloor=g; / if(desfloor=floor)stop=1; if(desfloor>floor)dir=1;ENG=1;flag=1; else if(desfloor<floor)dir=0;ENG=1;flag=1; voi

35、d t0(void) interrupt 1 using 0 /定時器0 中斷服務 TH0=(65536-600)/256; TL0=(65536-600)%256; if (!stop&ENG) timer1+;CLK=CLK; if(timer1=N) timer1=0; if(dir)select_up(); else select_dnow(); void t1(void) interrupt 3 using 0 /定時器1 中斷服務 TH1=0xec; TL1=0x78; if(stop)timer2+; kbscan(); display(); volttest(); step(); void main(void) ST=0; OE=0; ET0=1; ET1=1;

溫馨提示

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

最新文檔

評論

0/150

提交評論