基于單片機的電梯顯示屏控制系統設計
摘 要:對采用單片機的電梯顯示屏控制系統進行了設計。所設計的電梯顯示屏系統,可通過按鍵的選擇,顯示不同的樓層。
單片機即單片微型計算機(Single-Chip Microcomputer),是集CPU ,RAM ,ROM ,定時,計數和多種接口于一體的微控制器。其中52單片機是各種單片機中最為典型和最有代表性的一種,廣泛應用于各個領域.電梯是集機械原理應用、電氣控制技術、微處理器技術、系統工程學等多學科和技術分支于一體的機電設備,它是建筑中的永久垂直交通工具。
本設計是利用STC89C52單片機控制的多層電梯模擬控制系統,主要包括硬件系統的設計、軟件系統的設計及模擬電路的仿真調試。本設計主要是利用中斷電路控制電梯的響應和電機的驅動,是專門為樓層快速通行控制設計的智能系統。此外,利用單片機控制電梯有成本低、通用性強、靈活性大及易于實現復雜控制等優點。
Basedon SCM elevator control system of design
Abstract: It is designed on the base of the SCM elevator displaycontrol system. The elevator display system designed could through the buttonschoice, show different floor.
Microcontroller thatmicrocomputer (Single-Chip Microcomputer) gathering CPU, RAM, ROM, the timing,number and variety of interface integrated microcontrollers. 51 various SCM SCMis the most typical and most representative of a widely used in various fields.Elevator is the application of the principle set machinery, electrical controltechnology, microprocessor technology, systems engineering and other technicaldisciplines and branches of the integration of mechanical and electrical equipment,which is building a permanent vertical transport.
In this paper, the design isabout the use of multi-storey elevator controlled by STC89C52 MCU simulationcontrol system,which includes the design of hardware system, the design ofsoftware system and the circuit simulation test.This design mainly uses theinterrupt circuit to control elevator response and motor driver, whichspecially designed for quick acess intelligent system.In addition to this, there are advantages of low cost,strong commonality,flexibilityand easily to realize complex control and so on to the single-chipmicrocomputer control of elevator.
目 錄
1.概 述---------------------------------------------------------------------------------------5
1.1 課題研究背景與意義---------------------------------------------------------------------5
1.2 課題設計內容------------------------------------------------------------------------------5
2 系統設計--------------------------------------------------------------------------------------6
2.1 設計方案論證------------------------------------------------------------------------------6
2.2 系統硬件設計------------------------------------------------------------------------------8
2.2.1 主控模塊----------------------------------------------------------------------------------9
2.2.2單片機最小系統-------------------------------------------------------------------------11
2.2.3復位電路----------------------------------------------------------------------------------12
2.2.4顯示電路----------------------------------------------------------------------------------12
2.2.5按鍵電路----------------------------------------------------------------------------------13
2.3 軟件設計------------------------------------------------------------------------------------13
2.3.1 主程序模塊-------------------------------------------------------------------------------13
2.3.2 定時器中斷程序-------------------------------------------------------------------------14
3. 系統調試--------------------------------------------------------------------------------------15
3.1 硬件調試 ------------------------------------------------------------------------------------15
3.1.1 靜態檢查-----------------------------------------------------------------------------------15
3.1.2 通電檢查-----------------------------------------------------------------------------------15
3.2軟件調試及軟硬件聯調--------------------------------------------------------------------15
3.2.1仿真調試------------------------------------------------------------------------------------15
3.2.2實物調試-------------------------------------------------------------------------------------16
3.2.3 實驗結果------------------------------------------------------------------------------------17
4. 結束語-------------------------------------------------------------------------------------------19
附錄1:基于單片機的電梯顯示屏控制系統設電路原理圖------------------------------23
附錄2:基于單片機的電梯顯示屏控制系統元器件目錄表------------------------------24
附錄3:基于單片機的電梯顯示屏控制系統程序清單------------------------------------25
基于單片機的電梯顯示屏控制系統設計
1.概 述1.1 課題研究背景與意義
隨著現代高科技的發展,住房和辦公用樓都已經逐漸向高層發展。電梯是高層賓館、商店、住宅、多層倉庫等高層建筑不可缺少的垂直方向的交通運輸工具。1889年美國奧梯斯升降機公司推出的世界上第一部以電動機為動力的升降機,同年在紐約市馬累特大廈安裝成功。隨著建筑物規模越來越大,樓層也越來越高,對電梯的調速精度、調速范圍等靜態和動態特性都提出了更高的要求。由于傳統的電梯運行邏輯控制系統采用的是繼電器邏輯控制線路。采用這種控制線路,存在易出故障、維護不便、運行壽命較短、占用空間大等缺點。
目前,由可編程控制器(PLC)或微型計算機組成的電梯運行邏輯控制系統,正以很快的速度發展著。可編程控制器,是微機技術與繼電器常規控制技術相結合的產物,是在順序控制器和微機控制器的基礎上發展起來的新型控制器,是一種以微處理器為核心用作數字控制的專用計算機,它有良好的抗干擾性能,適應很多工業控制現場的惡劣環境,所以現在的電梯控制系統主要還是由可編程控制器控制。但是由于PLC的針對性較強,每一臺PLC都是根據一個設備而設計的,所以價格較昂貴。而單片機價格相當便宜,如果在抗干擾功能上有所提高的話完全可以代替PLC實現對工控設備的控制。當然單片機并不象PLC那么有針對性,所以由單片機設計的控制系統可以隨著設備的更新而不斷修改完善,更完美的實現設備的升級。
電梯控制系統是比較復雜的一個大型系統,在計算機誕生的幾十年里,繼電器控制系統為電梯控制的發展做了巨大的貢獻,但在性能上和PLC還是有本質上的差距。在科技的不斷發展下,單片機控制系統很快可以解決抗擾性,成為方便有效的電梯控制系統。
1.2 課題設計內容
本課題內容是設計并制作一個電梯顯示屏控制系統,根據每個樓層不同顧客的按鍵要求,顯示不同的樓層,正確高效的指導電梯完成各項載客任務。
設計電梯顯示屏控制系統的硬件電路與軟件控制程序,對硬件電路與軟件程序分別進行調試,并進行軟硬件聯調,要求獲得調試成功的實物。
本電路主要由4大部分組成:鍵盤模塊、單片機最小系統控制電路、顯示模塊電路、電源模塊電路。其中單片機最小系統主要復位電路,電路復位后樓層顯示數字1 表示電梯此時在一樓,而電梯樓層位置是由延時電路控制的,延時電路是2秒延時,每層之間通過2秒延時控制即每延時2秒表示電梯走了一層,同時顯示相應的上下箭頭指示。本設計的延時部分主要是軟件控制的。電梯的狀態是通過點陣組成的上下箭頭和數字顯示的。
2 系統設計2.1 設計方案論證
1.單片機的選擇
方案一:AT51系列單片機
采用AT89C52芯片作為系統核心,采用Flash ROM,能以3V的超低壓工作;同時比89C51具有更多的存儲空間,AT89C52芯片內部存儲器為8KB ROM存儲空間,同樣具有89C51的功能。但燒寫程序需要專業工具。
方案二:STC51系列單片機
用STC89C52芯片作為系統核心,采用閃爍可編程可擦除只讀存儲器(FPEROM-Flash Programable and Erasable Read Only Memory)的低電壓,內部具有8KB ROM存儲空間,是51系列單片機內存的兩倍,而且還比51單片機多定時計數器和中斷,并且比 AT89C52芯片經濟,實惠。所以本設計采用STC89C52芯片。
本設計采用的是STC89C52單片機,STC89C52是一個低電壓,高性能CMOS 8位單片機,高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元,功能強大的STC89C52單片機可為您提供許多較復雜系統控制應用場合。
2.顯示模塊的選擇
方案一:1602液晶模塊
1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數字、符號等顯示模塊它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因為如此所以他不能顯示圖形它的優點是微功耗、體積小、顯示內容豐富、超薄輕巧。
方案二:數碼管顯示
數碼管是一種半導體發光器件,其基本單元是發光二極管。數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發光二極管單元(多一個小數點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數碼管:按發光二極管單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極管的陽極接到一起形成公共陽極(COM)的數碼管,共陽數碼管在應用時應將公共極COM接到+5V,當某一字段發光二極管的陰極為低電平時,相應字段就點亮,當某一字段的陰極為高電平時,相應字段就不亮。共陰數碼管是指將所有發光二極管的陰極接到一起形成公共陰極(COM)的數碼管,共陰數碼管在應用時應將公共極COM接到地線GND上,當某一字段發光二極管的陽極為高電平時,相應字段就點亮,當某一字段的陽極為低電平時,相應字段就不亮。由于它的價格便宜使用簡單在電器特別是家電領域應用極為廣泛。
方案三:點陣顯示
點陣是由小LED組成,LED顯示屏可以顯示變化的數字、文字、圖形圖像;不僅可以用于室內環境還可以用于室外環境,具有投影儀、電視墻、液晶顯示屏無法比擬的優點。LED之所以受到廣泛重視而得到迅速發展,是與它本身所具有的優點分不開的。這些優點概括起來是:亮度高、工作電壓低、功耗小、小型化、壽命長、耐沖擊和性能穩定。LED的發展前景極為廣闊,目前正朝著更高亮度、更高耐氣候性、更高的發光密度、更高的發光均勻性,可靠性、全色化方向發展。
綜上所訴:LCD1602顯示不了圖形,當電梯升降時顯示不了相應的指示;數碼管雖簡單方便能顯示數字,但同樣是顯示不了圖形;只有點陣既能顯示數字又能顯示圖形,適合本設計,固本設計用點陣作為顯示模塊。
3.按鍵的選擇
方案一:采用矩陣鍵盤
因為單片機的I/O口有限,顯然,在按鍵數量過多時,矩陣鍵盤較之獨立式按鍵鍵盤要節省很多I/O口線,但必須將行線,列線信號配合起來做適當處理,才能確定閉合鍵的位置。
方案二:采用獨立式鍵盤
獨立式鍵盤是直接用I/O口線構成的單元按鍵開關電路,其特點是每個按鍵獨立占用一根I/O口線,每個按鍵的工作不會影響其他I/O口線的狀態。但是當所需按鍵數量多時,會占用過多的I/O口。
基于以上分析,此次設計采用方案二獨立式按鍵,因為本次設計中僅使用到6個按鍵。常用的按鍵有三種:機械觸點式按鍵、導電橡膠式和柔性按鍵(又稱觸摸式鍵盤)。
機械觸點式按鍵是利用機械彈性使鍵復位,手感明顯,連線清晰,工藝簡單,適合單件制造。但是觸點處易侵入灰塵而導致接觸不良,體積相對較大。
導電橡膠按鍵是利用橡膠的彈性來復位,通過壓制的方法把面板上所有的按鍵制成一塊,體積小,裝配方便,適合批量生產。但是時間長了,橡膠老化而使彈力下降,同時易侵入灰塵。
柔性按鍵是近年來迅速發展的一種新型按鍵,可以分為凸球型和平面型兩種。柔性按鍵最大特點是防塵、防潮、耐蝕,外形美觀,裝嵌方便。而且外形和面板的布局、色彩、鍵距可按照整機的要求來設計。
但是由于客觀條件與經濟能力有限,本系統采用機械觸點式按鍵。
總體框圖
2.2 系統硬件設計
基于單片機的電梯顯示屏系統的電路原理圖如圖所示。系統由主控模塊、LED顯示模塊、電梯按鈕電路三部分組成。
基于單片機的電梯顯示屏控制系統電路原理圖
2.2.1 主控模塊
本系統采用STC89C52為主控芯片。
STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得STC89C52在眾多嵌入式控制應用系統中得到廣泛應用。
1.主要功能列舉
1、擁有靈巧的8位CPU和在系統可編程Flash
2、晶片內部具時鐘振蕩器(傳統最高工作頻率可至 12MHz)
3、內部程序存儲器(ROM)為 8KB
4、內部數據存儲器(RAM)為 256字節
5、32 個可編程I/O 口線
6、8 個中斷向量源
7、三個 16 位定時器/計數器
8、三級加密程序存儲器
9、全雙工UART串行通道
10、低功耗空閑和掉電模式;
11、掉電后中斷可喚醒;
12、看門狗定時器;
13、雙數據指針;
14、掉電標識符 。
2.各引腳功能
VCC:STC89C52電源正端輸入,接+5V。
GND:電源地端。
XTAL1: 單芯片系統時鐘的反相放大器輸入端。
XTAL2: 系統時鐘的反相放大器輸出端,一般在設計上只要在 XTAL1 和 XTAL2 上接上一只石英振蕩晶體系統就可以動作了,此外可以在兩引腳與地之間加入一20PF 的小電容,可以使系統更穩定,避免噪聲干擾而死機。
RESET:STC89C52的重置引腳,高電平動作,當要對晶片重置時,只要對此引腳電平提升至高電平并保持兩個機器周期以上的時間,AT89S51便能完成系統重置的各項動作,使得內部特殊功能寄存器之內容均被設成已知狀態,并且至地址0000H處開始讀入程序代碼而執行程序。
EA/Vpp:"EA"為英文"External Access"的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當此引腳接低電平后,系統會取用外部的程序代碼(存于外部EPROM中)來執行程序。因此在8031及8032中,EA引腳必須接低電平,因為其內部無程序存儲器空間。如果是使用 8751 內部程序空間時,此引腳要接成高電平。此外,在將程序代碼燒錄至8751內部EPROM時,可以利用此引腳來輸入21V的燒錄高壓(Vpp)。
ALE/PROG:ALE是英文"AddressLatch Enable"的縮寫,表示地址鎖存器啟用信號。STC89C52可以利用這支引腳來觸發外部的8位鎖存器(如74LS373),將端口0的地址總線(A0~A7)鎖進鎖存器中,因為STC89C52是以多工的方式送出地址及數據。平時在程序執行時ALE引腳的輸出頻率約是系統工作頻率的1/6,因此可以用來驅動其他周邊晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當成程序規劃的特殊功能來使用。
PSEN:此為"Program Store Enable"的縮寫,其意為程序儲存啟用,當8051被設成為讀取外部程序代碼工作模式時(EA=0),會送出此信號以便取得程序代碼,通常這支腳是接到EPROM的OE腳。STC89C52可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數據存儲器與程序存儲器可以合并在一起而共用64K的定址范圍。
PORT0(P0.0~P0.7):端口0是一個8位寬的開路汲極(OpenDrain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態,而是內部有一提升電路,P0在當做I/O用時可以推動8個LS的TTL負載。如果當EA引腳為低電平時(即取用外部程序代碼或數據存儲器),P0就以多工方式提供地址總線(A0~A7)及數據總線(D0~D7)。設計者必須外加一鎖存器將端口0送出的地址栓鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址總線,而定址到64K的外部存儲器空間。
PORT2(P2.0~P2.7):端口2是具有內部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負載,若將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。P2除了當做一般I/O端口使用外,若是在STC89C52擴充外接程序存儲器或數據存儲器時,也提供地址總線的高字節A8~A15,這個時候P2便不能當做I/O來使用了。
PORT1(P1.0~P1.7):端口1也是具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LS TTL負載,同樣地若將端口1的輸出設為高電平,便是由此端口來輸入數據。如果是使用8052或是8032的話,P1.0又當做定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發腳位。
PORT3(P3.0~P3.7):端口3也具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數控制及外部數據存儲器內容的讀取或寫入控制等功能。
其引腳分配如下:
P3.0:RXD,串行通信輸入。
P3.1:TXD,串行通信輸出。
P3.2:INT0,外部中斷0輸入。
P3.3:INT1,外部中斷1輸入。
P3.4:T0,計時計數器0輸入。
P3.5:T1,計時計數器1輸入。
P3.6:WR:外部數據存儲器的寫入信號。
P3.7:RD,外部數據存儲器的讀取信號。
RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)
單片機引腳圖如下:
單片機引腳圖
2.2.2單片機最小系統
單片機加上適當的外圍器件和應用程序,構成的應用系統稱為最小系統。最小系統包括時鐘電路和復位電路。
時鐘電路:
單片機內部具有一個高增益反相放大器,用于構成振蕩器。通常在引腳XTALl和XTAL2跨接石英晶體和兩個補償電容構成自激振蕩器,結構圖2 中X1、C1、C2。可以根據情況選擇6MHz、12MHz或24MHz等頻率的石英晶體,補償電容通常選擇30pF左右的瓷片電容。
時鐘電路
2.2.3復位電路:
單片機小系統常采用上電自動復位和手動按鍵復位兩種方式實現系統的復位操作。上電復位要求接通電源后,自動實現復位操作。手動復位要求在電源接通的條件下,在單片機運行期間,用按鈕開關操作使單片機復位。其結構如下圖。上電自動復位通過電容C3充電來實現。手動按鍵復位是通過按鍵將電阻R1與VCC接通來實現。
復位電路
2.2.4顯示電路:
點陣是由64個小燈組成,點陣LED一般采用掃描式顯示,實際運用分為三種方式:點掃描、行掃描、列掃描。
若使用第一種方式,其掃描頻率必須大于16×64=1024Hz,周期小于1ms即可。若使用第二和第三種方式,則頻率必須大于16×8=128Hz,周期小于7.8ms即可符合視覺暫留要求。此外一次驅動一列或一行(8顆LED)時需外加驅動電路提高電流,否則LED亮度會不足。原理圖如下:
點陣電路
點陣與單片機的引腳相連,通過單片機的IO口的高低電平可以控制點陣的顯示,與單片機的接口電路如圖:
點陣連接電路
2.2.5按鍵電路
如圖所示,按鍵電路模塊包括每層樓的按鈕,這些按鈕一端與地相接,一端又與單片機IO口相接,外部0中斷低電平有效,這樣可以實現模擬按鍵的自如操作。
按鍵電路
2.3 軟件設計
基于單片機的電梯顯示屏控制系統程序清單如附錄3所示,程序分主程序和定時器中斷程序兩大部分。
2.3.1 主程序模塊
系統主程序主要用于變量及其他部件的初始化,如定時器T0的初始化,以便能夠準確的進行相應的操作,同時進行相應的功能鍵判斷,從而實現特殊功能。主程序的流程圖所示。
2.3.2 定時器中斷程序
定時器中斷程序的相應流程圖所示。
在定時器中斷程序中,首先讀取鍵值,在定時器重置初始值以后,滾動顯示樓層,最后中斷返回。
電梯顯示屏控制系統主程序流程圖
定時器中斷程序
3.系統調試
根據前述第2大節中硬件和軟件設計,制作了基于單片機的電梯顯示屏控制系統樣機實物。對樣機的硬件和軟件分別進行了調試,最后進行了軟件、硬件聯調。
3.1 硬件調試3.1.1 靜態檢查
根據硬件電路圖核對了元器件的型號、極性,安裝是否正確,檢查硬件電路連線是否與電路原理圖一致,檢查電路元器件是否都已經連接好,用萬用表一一測試。
3.1.2 通電檢查
先調試電源部分,整個電路只需要+5V的電壓,用USB線從電腦USB口取電。
再用示波器檢測單片機的復位和晶振電路是否有復位信號和振蕩信號。
3.2軟件調試及軟硬件聯調
對軟件先用仿真器進行了調試。用仿真器運行正常后,再用燒寫器將程序燒到STC89C52單片機中,進行了脫機調試。
3.2.1仿真調試
A. proteus仿真電路
基于單片機的電梯顯示屏控制系統proteus仿真電路如圖所示。
基于單片機的電梯顯示屏控制系統proteus仿真電路
B.仿真結果
用proteus軟件對基于單片機的電梯顯示屏控制系統進行了仿真,按樓層按鍵1~6時顯示屏分別顯示1~6,按下3樓時的仿真結果如圖所示,說明此電梯顯示屏系統可以模仿真實的電梯顯示系統。
按下3樓按鍵時的仿真結果
3.2.2實物調試
用Proteus仿真成功后,制作了基于單片機的電梯顯示屏控制系統多孔板實物,將附錄3的程序燒寫到STC89C52中去,通電后發現系統都沒有任何現象,不能工作,只有電源燈輸出正常,經過長時間的檢查,把問題鎖定在LED顯示部分,用萬用表測量,找到了問題的原因,是將LED點陣內部的二極管陰陽極搞錯,導致高低電平接反,也就不會出現任何的現象,重新對管腳布線,電路更改之后系統運行一切正常,至此多孔板調試工作完成。
3.2.3 實驗結果
1.最小系統點亮一個發光二極管
2.制作了基于單片機的電梯顯示屏控制系統多孔板實物,通電后按1、2、3、4、5、6鍵,顯示屏上可以顯示相應的數字。下圖是寫入電梯程序并按下按4層鍵以后的顯示結果
。
3、通上外接5V電源 按下樓層3如下圖所示
4. 結束語
本系統就是充分利用了STC89C52芯片的各引腳。來設計實現模擬簡單電梯控制系統,系統設計簡便、實用性強、操作簡單,完成了模擬電梯的基本功能。單片機在接口性能和計算速度等方面均有資源不足的問題,仍然不能適應較復雜的控制算法和故障診斷等要求,但單片機控制電梯有成本低,通用性強,靈活性大及易于實現復雜控制等優點。
總體來說,該單片機系統設計很好的完成了簡單電梯控制系統,但是不論是在硬件還是軟件,都可以通過后續的努力加以改進,主要為以下幾個方面:1.在硬件上,通過設計更為復雜的外圍電路來實現電梯控制的智能化處理,考慮加入控制器來完成電梯的多信息采集處理功能。2.在軟件上,目前軟件運行的效率不是很高,可以考慮通過對算法的分析,簡化程序,提高單片機調試的速度。3.在總體設計上,考慮到更為智能的電梯系統,可以通過調研了解電梯的智能化發展方向,提出更為全面復雜的電梯控制方案及多電梯協同運行策略分析等功能。
參考文獻
[1] 張蘭紅,鄒華,劉純利,等. 單片機原理及應用[M].北京:機械工業出版社,2017.
[2] 樓然苗,胡佳文,李光飛,等. 單片機實驗與課程設計指導[M].浙江大學出版社,2013.
[3] 郭天祥. 新概念51單片機C語言教程 ——入門、提高、開發、拓展全攻略[M].北京:電子工業出版社,2010.
[4] 楊欣,張延強,張鎧麟.實例解讀51單片機完全學習與應用[M].北京:電子工業出版社,2012.
ATMEL AT89S52.Atmel Corporation 2001
[5] 王田苗.嵌入式系統設計與實例開發.北京:清華大學出版社,2005
[6] ATMEL技術資料,ATMEL官方網站
[7] 張友德.單片微型機原理應用與實驗.上海:復旦大學出版社,1996
[8] 萬長建.用單片機實現高層電梯運行自動控制.實驗技術與管理.2007,5
[9] Intel. Microcontroller Handbook.1988
[10] 張婭莉.單片機在電梯自動控制中的應用.工業控制計算機.2003,2
[11] AT89C52DATA SHEEP Philips Semiconductors 1999.dec
[12] Yang.Y., Yi. J., Woo, Y.Y., and Kim. B.: ‘Optimum design for linearityand efficiencyof microwave Doherty amplifier using a new loadmatching technique’, Microw. J.,2001, 44, (12), pp. 20–36
[13] Vizimuller, P.: ‘RF design guide-systems, circuits, and equations’(ArtechHouse, Boston, MA, 1995)[6]R. Dye, “Visual Object-Orientated Programming,” Dr. DobbsMacintoshJournal, Sept. 1st ( 1991).
致 謝
從開始進入課題到課設的順利完成,一直都離不開老師、同學給我熱情的幫助,在這里請接受我誠摯的謝意!感謝他們在學習和生活上給我的幫助。.
本課題在選題及研究過程中得到吳老師和張老師的悉心指導。吳老師多次詢問研究進程,并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵。對吳老師和張老師的感激之情是無法用言語表達的。通過本次課程設計,我獲得了更豐富的理論知識,極大地提高了實踐能力,并對當前電子領域的研究狀況和發展方向有了一定的了解,單片機領域這對我今后進一步學習計算機方面的知識有極大的幫助。在設計中遇到了很多編程問題,最后在老師的辛勤指導和同學的熱情幫助下,終于迎刃而解。最后,對給過我幫助的所有同學和各位指導老師由衷的表示感謝!
附 錄
附錄1:基于單片機的電梯顯示屏控制系統的設計圖紙
附錄2:基于單片機的電梯顯示屏控制系統的元器件目錄表
附錄3:基于單片機的電梯顯示屏控制系統的程序清單
附錄1:基于單片機的電梯顯示屏控制系統設計圖紙基于單片機的電梯顯示屏控制系統電路原理圖
附錄2:基于單片機的電梯顯示屏控制系統元器件目錄表
1、萬用板
2、STC 89c52單片機
3、40腳IC座
4、1K排阻
5、8X8小點陣
6、DC電源座
7、自鎖開關
8、按鍵*7
9、10uf電容
10、30pf電容*2
11、10k電阻
12、12m晶振
13、導線若干
14、焊錫若干
15、Usb電源線
附錄3:基于單片機的電梯顯示屏控制系統程序清單
#include <reg52.h> //52系列單片機頭文件
#define uchar unsigned char //宏定義
#define uint unsigned int //宏定義
/******************************************************
基礎定義
*******************************************************/
uchar m=0,n=0;
uchar o,p,d;
uchar time=0;
/******************************************************
數碼顯示數據定義
*******************************************************/
uchar code taba[]={
0xff,0xef,0xef,0xef,0xab,0xc7,0xef,0xff}; //編碼定義箭頭
uchar code tab1[]={
0xff,0xef,0xcf,0xef,0xef,0xef,0xef,0xc7}; //編碼定義 1
uchar code tab2[]={
0xff,0xc7,0xbb,0xfb,0xf7,0xcf,0xbf,0x83}; //編碼定義 2
uchar code tab3[]={
0xff,0xc7,0xbb,0xfb,0xe7,0xfb,0xbb,0xc7}; //編碼定義 3
uchar code tab4[]={
0xff,0xf7,0xe7,0xd7,0xb7,0xb7,0x83,0xf7}; //編碼定義 4
uchar code tab5[]={
0xff,0x83,0xbf,0x87,0xfb,0xfb,0xbb,0xc7}; //編碼定義 5
uchar code tab6[]={
0xff,0xe7,0xdf,0xbf,0x87,0xbb,0xbb,0xc7}; //編碼定義 6
/******************************************************
延時
*******************************************************/
void delay(uchar n) //延時子函數
{
uchari,j;
for(i=n;i>0;i--)
{
for(j=255;j>0;j--);
}
}
/******************************************************
T/C0中斷服務程序入口
*******************************************************/
timer0() interrupt 1 using 1 //定時器0工作方式1
{
TH0= (65536-50000)/256; //賦初值
TL0= (65536-50000)%256; //賦初值
if(o>p)//如果o大于p 樓層在上面
{
d=1; //d置1
}
elseif(o<p) //如果o小于p 樓層在下面
{
d=2; //d等于2
}
else //o=p時 正在樓層
{
d=0; //d=0
}
time++; //計時變量加
if(time==1) //計時變量等于1時
{
n=~(1<<(p+1)); //切換顯示數字 和箭頭
}
elseif(time==5) //time等于5 時
{
if(d==0) //如果d等于0
{
n=~(1<<(p+1)); //切換顯示數字和箭頭
}
elseif(d==1) //d等于1時
{
p++; //p加
n=0xfe; //n賦值0xfe
}
elseif(d==2) //如果d等于2
{
p--; //p減
n=0xfd; //n賦值0xfd
}
}
elseif(time==20) //當time加到20時
{
time= 0; //清零
}
}
/******************************************************
定時器T/C0初始化
*******************************************************/
void com_initialize(void) //定時器初始化
{
TMOD= 0x01;//設定定時器0為工作方式1
TH0= (65536-50000)/256; //裝初值
TL0= (65536-50000)%256; //裝初值
EA= 1; //開總中斷
ET0= 1; //開定時器0中斷
TR0= 1; //啟動定時器0
}
/******************************************************
主函數
*******************************************************/
void main() //主函數
{
uchari=0,j=0,k=0;
uchartmp=0;
ucharom=0; //按鍵釋放操作變量,初始化時為0,當有按鍵按下時,判斷鍵值和om是否相同,不同則執行
d=0;
m=0;
o=1;
p=1; //開機初始化各變量
n=0xff; //n初始化
com_initialize(); //調用定時器初始化
while(1) //主循環
{
for(i=0;i<8;i++) //循環8次
{
P1=0xff;
P0=0x80>>i; //循環一次掃描一個列
if(++k==50) //加到50清零
{
k=0;
}
m=P1; //記錄按鍵
if(m!= 0xff && d==0 && m!=om) //當按鍵按下時,并且電梯在當前樓層時,m!=om的作用就是類似按鍵釋放的作用,進入這個if后,就會執行om=m,這樣只要按鍵不松開,就不會重復進入
{
om=m; //反向賦值,防止按鍵重復觸發
switch(m) //開關語句
{
case0xfb: //判斷是哪一個樓層按下,下同
tmp=1;break;
case0xf7:
tmp=2;break;
case0xef:
tmp=3;break;
case0xdf:
tmp=4;break;
case0xbf:
tmp=5;break;
case0x7f:
tmp=6;break;
default: //其他情況
tmp=o;break; //賦值
}
if(o!=tmp)//有樓層按鍵按下時,o就不會等于tmp,則執行此if
{
p=o; //進入后將o賦值給p
o=tmp; //將tmp賦值給o
time=0; //定時器time清零
}
n=m; //只要有按鍵按下 將m賦值給n
}
if(n==0xfe) //n移到0xfe時,顯示向上箭頭
{
if(k==0) //k為0時,顯示一下箭頭,其他時間顯示樓層數
j=++j%8; //j加1后取余8再賦值給j
P2=taba[7-(i+j)%8]; //顯示箭頭
}
elseif(n==0xfd) //n移到0xfd時,顯示向下箭頭
{
if(k==0) //k為0時,顯示一下箭頭,其他時間顯示樓層數
{
if(j>0) //j大于0時
j--; //j減
else //等于0時
j=7; //j賦值7
}
P2=taba[(i+j)%8]; //顯示箭頭
}
elseif(n==0xfb) //顯示數字1
{
P2=tab1;
}
elseif(n==0xf7) //顯示數字2,下同
{
P2=tab2;
}
elseif(n==0xef)
{
P2=tab3;
}
elseif(n==0xdf)
{
P2=tab4;
}
else if(n==0xbf)
{
P2=tab5;
}
elseif(n==0x7f)
{
P2=tab6;
}
delay(5); //延時
}
}
}
|