基于單片機的停車場計數系統設計_第1頁
基于單片機的停車場計數系統設計_第2頁
基于單片機的停車場計數系統設計_第3頁
基于單片機的停車場計數系統設計_第4頁
基于單片機的停車場計數系統設計_第5頁
已閱讀5頁,還剩29頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

基于單片機的停車場計數系統設計TOC\o"1-2"\h\z\u前言2第1章理論分析及總體方案3第1.1節方案比擬3第1.2節總體設計方案4第2章系統的硬件設計6第2.1節控制電路設計6第2.2節對射紅外檢測電路設計11第2.3節液晶顯示電路設計13第2.4節繼電器開關電路與報警電路的設計15第2.5節按鍵電路設計17第3章系統的程序設計18第3.1節主程序設計18第3.2節數據采集模塊程序設計19第3.3節液晶顯示程序設計20第4章系統測試22第4.1節系統的硬件調試22第4.2節系統的軟件調試22第4.3節測試及結果22結論23參考文獻23致謝24附錄24附錄1:原理圖及實物照片說明25附錄2:局部源程序25基于單片機的停車場計數系統設計摘要以STC89C52單片機為核心,利用紅外對射式傳感器電路作為信號的輸入模塊,設計了一個基于單片機的停車場計數系統。對射式光電傳感器由發射器和接收器組成,當有物體經過發射器和接收器之間阻斷光線時,形成電平信號,經過放大、整流并送入單片機控制模塊進行控制計數。通過液晶顯示電路、繼電器電路和蜂鳴器電路構成系統的輸出模塊,實現了對停車場內汽車數量的計數、顯示、停車場進出門以及報警的控制。【關鍵詞】:單片機;紅外對射式傳感器;繼電器;液晶顯示AbstractInthispaper,theSTC89C52microcontrollerasthecoreofthecontrolcircuit,thesignaloutputmoduleisusedinfraredphotoelectriccouple,designedaparkinglotcountingsystemthatbasedonamicrocontroller.Infraredphotoelectriccouplebythetransmitterandthereceiveriscomposedoftwoparts.Whenanobjectthroughthetransmitterandthereceiverwillbreakthelightbeams,andproducelevelsignal,amplified,rectifiedandfinallyputintomicrocontrollertocontrolcounting.ViaLiquidCrystalDisplaycircuit,relaycircuitandbuzzercircuitformtheoutputmodule.Sothissystemachievescountingofcars,display,alarmandthecontrollerofpullingorpushingthedoorintheparkinglot.[Keywords]:microcontroller;infraredphotoelectriccouple;relay;LiquidCrystalDisplay;前言在當今社會經濟飛速開展的格局下,越來越多的廠家采用流水線技術進行產品生產作業,而怎樣對其線上的產品進行實時的、有效率的、精確的計數成為廣闊生產廠家十分關注的問題。而基于單片機為核心控制的計數器有著能夠實時,精確,可靠,穩定等計數優點已成為廣闊廠家的首選自動計數的裝置。當今,單片微型計算機技術迅速開展,基于單片機技術開發的計數設備和產品廣泛應用到各個領域,單片機技術產品和設備促進了生產技術水平的提高,企業迫切需要大量熟練掌握單片機技術并能開發、應用和維護管理這些智能化產品的高級工程技術人才。單片機以體積小、功能強、可靠性高、性能價格比高等特點,已成為實現工業生產技術進步和開發機電一體化和智能化測控產品的重要手段。電子計數器是一種多功能的電子測量儀器,它利用電子學的方法測出一定時間內輸入的脈沖數目,并將結果以數字形式顯示出來。而基于單片機的紅外線計數器能夠滿足廣闊廠家的要求,它擁有實時,精確,可靠,穩定等特點。對射式傳感器計數是一種多功能的電子測量儀器。它利用對射式傳感器發射紅外線,當有車輛阻擋紅外線,紅外線中斷并轉換為電脈沖,并由放大電路進行放大,通過單片機分析,計算出進出車輛的次數,通過液晶顯示方式顯示進出車輛數從而進行計數。隨著紅外技術的提高,用于存在狀態的傳感,位置編碼極限傳感,運動檢測和計數〔如風速儀、數控機床等〕。典型應用:光柵尺、編碼器、邦定機、壓焊機、火花機、醫療儀器、atm取款機、自動售貨機、收款機、復印機、打印機、磁帶驅動、轉球式鼠標、工業設備、膠片感測、郵件存在/分揀、料位監控、輸送帶控制、過程控制、物料的到位監控等。隨著傳感器的不斷改良,抗干擾能力增強,可以在許多惡劣的地方代替科研人員進行科學工作。本設計主要任務是以STC89C52單片機為核心,利用紅外對射式傳感器電路作為信號的輸入模塊進行車輛計數。基于單片機構成的車輛計數研究的主要內容包括:如對射式傳感器的應用以及開展、STC89C52單片機用何種方式對外部計數脈沖進行計數顯示控制、LCD顯示驅動模塊的選擇、STC89C52單片機的擴展、74LS245如何驅動繼電器與蜂鳴器工作的。主要技術指標:1.整個系統的抗干擾能力強2.計數范圍廣:0000~99993.車輛計數值精確理論分析及總體方案方案比擬三種不同設計方案:方案一:如圖1-1所示:電源監測、單片機保護專用芯片電源監測、單片機保護專用芯片X25045P專用檢測芯片MCS-51控制單元AT89C2051LED顯示驅動芯片PS7219LED顯示掉電數據保護芯片HT7044A圖1-1紅外線計數器硬件框圖原理闡述:專業檢測芯片形成計數脈沖后送給控制單元AT89C2051單片機。通過對它片內計數、顯示編程。PS7219是專用LED顯示驅動芯片可以同時驅動8個7段數碼管。X2504P是一塊有電源電壓監控、EEPROM和看門狗定時器電路三種功能于一體的芯片,它保證了在電源接通、關斷、瞬間電源電壓不穩時,不會造成系統死機、數據誤寫或誤動作,大大提高了系統的可靠性和抗干擾能力.HT7044A能夠保證系統突然掉電后保護數據。方案二:如圖1-2所示:紅外發射電路紅外發射電路NE555紅外接收電路LM567計數顯示專用芯片CL102圖1-2紅外線計數器硬件框圖原理闡述:通過紅外發射與接收對信號采集,使用了四合一芯片CL102計數控制顯示,它是集譯碼、驅動、鎖存、顯示一體。方案三:如圖1-3所示:紅外紅外對射式傳感器控制單元STC89C52按鍵電路繼電器電路驅動芯片74LS245液晶顯示電路蜂鳴器電路圖1-3對射式紅外傳感器計數硬件框圖原理闡述:當有通過發射器發出的光線直接進入接收器,當被檢測物體經過發射器和接收器之前阻斷光線時,并將其放大、整流形成高電平信號送入控制單元。方案一既可準確的實現車輛計數功能且能讓系統處于異常狀態和抗干擾時通過外圍專用芯片得到非常好的解決。外圍電路架設相對簡單、在市場上屬于高端計數產品,同時它也暴露出了一個重大問題:由于本錢太貴的原因此類產品并沒有得到普及,故雖然這個方案只有舍棄。方案二是一個簡易的產品自動計數器,價格低廉、計數精確。但在系統處于異常狀態時工作十分不穩定、也是屬于現在計數市場上的淘汰產品。僅用于在計數要求不高的場合中,這個方案太過于簡單故不選用。方案三便是這次畢業設計選用的方案。之所以選用主要是這個方案涉及面廣、輸出有效信號為低電平、可區分不透明的反光物體、有效距離大、不易受干擾、高靈敏度、高解析、高亮度、低功耗、響應時間快、使用壽命長、無鉛、應用廣泛等特點。總體設計方案以STC89C52單片機為核心,利用紅外對射式傳感器電路作為信號的輸入模塊。按照設計的根本要求,可分為三個模塊,即數據采集模塊、控制器模塊、數據顯示模塊。其中數據采集模塊由紅外對射式傳感器組成,光線中斷后將信號送給控制模塊,由單片機完成對該信號的處理,由數據顯示模塊完成信息交換。在擴展功能上,本設計增加了一個繼電器電路、按鍵電路和過載報警電路。系統設計框圖,如圖1-4所示:紅外紅外對射式傳感器控制單元STC89C52按鍵電路繼電器電路驅動芯片74LS245液晶顯示電路蜂鳴器電路圖1-4系統總體設計框圖系統的硬件設計控制電路設計單片機的開展及趨勢1.CPU的改良(1)增加CPU的數據總線寬度。例如,各種16位單片機和32位單片機,其數據處理能力要優于8位單片機。另外,8位單片機內部采用16位數據總線,其數據處理能力明顯優于一般8位單片機。(2)采用雙CPU結構,以提高數據處理能力。2.存儲器的開展(1)片內的程序存儲器現在普遍采用閃速(Flash)存儲器。Flash存儲器能在+5V下讀/寫,既有靜態RAM的讀/寫操作簡便,又有在掉電時數據不會喪失的優點。使用片內Flash存儲器,單片機可不用片外擴展程序存儲器,大大簡化了其應用系統結構。(2)加大存儲容量。目前有的單片機片內程序存儲器容量可達128KB甚至更多。3.片內I/O的改良(1)增加并行口的驅動能力,以減少外部驅動芯片。有的單片機可以直接輸出大電流和高電壓,以便能直接驅動LED和VFD(熒光顯示器)。(2)有些單片機設置了一些特殊的串行I/O功能,為構成分布式、網絡化系統提供了方便條件。4.低功耗化8位單片機產品已CMOS化,CMOS芯片的單片機具有功耗小的優點,而且為了充分發揮低功耗。特點,這類單片機普遍配置有等待狀態、睡眠狀態、關閉狀態等工作方式。在這些狀態下低電壓工作作的單片機,其消耗的電流僅在μA或nA量級,非常適合于電池供電的便攜式、手持式的儀器儀表以及其他消費類電子產品。5.外圍電路內裝化隨著集成電路技術及工藝的不斷開展,把所需的眾多外圍電路全部裝入單片機內,即系統的單片化是目前單片機開展趨勢之一。例如,美國Cygnal公司的C8051F0208位單片機,內部采用流水線結構,大局部指令的完成時間為1或2個時鐘周期,峰值處理能力為25MIPS。片上集成有8通道A/D、兩路D/A、兩路電壓比擬器,內置溫度傳感器、定時器、可編程數字交叉開關和64個通用I/O口、電源監測、看門狗、多種類型的串行接口〔兩個UART、SPI〕等。一片芯片就是一個“測控〞系統。綜上所述,單片機正在向多功能、高性能、高速度〔時鐘達40MHz〕、低電壓〔2.7V即可工作〕、低功耗、低價格〔幾元錢〕、外圍電路內裝化以及片內程序存儲器和數據存儲器容量不斷增大的方向開展。主控芯片簡介本設計上網主控芯片由單片機STC89C52控制完成。根本原理為當對射式紅外傳感器檢測局部檢測到有車輛經過時,紅外對射傳感器被中斷即產生一個低電平信號,這個信號將供應單片機進行計數控制。計數控制局部是將計數脈沖送入單片機STC89C52兩個中斷入口的INT0入口,經過單片機內部對這個中斷信號進行計數編程。單片機的引腳圖如圖2-1所示:圖2-1STC89C52RC引腳圖主要特性如下:1.時鐘電路STC89C52內部有一個用于構成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時鐘可以由內部方式產生或外部方式產生。內部方式的時鐘電路如圖2—2(a)所示,在RXD和TXD引腳上外接定時元件,內部振蕩器就產生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯諧振回路。晶體振蕩頻率可以在1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對頻率起微調的作用。外部方式的時鐘電路如圖2—2〔b〕所示,RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內時鐘發生器把振蕩頻率兩分頻,產生一個兩相時鐘P1和P2,供單片機使用。〔a〕內部方式時鐘電路〔b〕外部方式時鐘電路圖2—2時鐘電路2.復位及復位電路〔1〕復位操作復位是單片機的初始化操作。其主要功能是把PC初始化為0000H,使單片機從0000H單元開始執行程序。除了進入系統的正常初始化之外,當由于程序運行出錯或操作錯誤使系統處于死鎖狀態時,為擺脫困境,也需按復位鍵重新啟動。除PC之外,復位操作還對其他一些存放器有影響,它們的復位狀態如表2-1所示:表2-1一些存放器的復位狀態存放器復位狀態存放器復位狀態PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H〔2〕復位信號及其產生RST引腳是復位信號的輸入端。復位信號是高電平有效,其有效時間應持續24個振蕩周期(即二個機器周期)以上。假設使用頗率為6MHz的晶振,那么復位信號持續時間應超過4us才能完成復位操作。產生復位信號的電路邏輯如圖2—3所示:圖2—3復位信號的電路邏輯圖整個復位電路包括芯片內、外兩局部。外部電路產生的復位信號(RST)送至施密特觸發器,再由片內復位電路在每個機器周期的S5P2時刻對施密特觸發器的輸出進行采樣,然后才得到內部復位操作所需要的信號。復位操作有上電自動復位相按鍵手動復位兩種方式。上電自動復位是通過外部復位電路的電容充電來實現的,其電路如圖2—4〔a〕所示。這佯,只要電源Vcc的上升時間不超過1ms,就可以實現自動上電復位,即接通電源就成了系統的復位初始化。按鍵手動復位有電平方式和脈沖方式兩種。其中,按鍵電平復位是通過使復位端經電阻與Vcc電源接通而實現的,其電路如圖2—4〔b〕所示;而按鍵脈沖復位那么是利用RC微分電路產生的正脈沖來實現的。其電路如圖2—4〔c〕所示:〔a〕上電復位〔b〕按鍵電平復位〔c〕按鍵脈沖復位圖2—4復位電路上述電路圖中的電阻、電容參數適用于6MHz晶振,能保證復位信號高電平持續時間大于1個機器周期。STC89C52具體介紹如下:①主電源引腳〔2根〕VCC(Pin40):電源輸入,接+5V電源GND(Pin20):接地線②外接晶振引腳〔2根〕XTAL1(Pin19):片內振蕩電路的輸入端XTAL2(Pin20):片內振蕩電路的輸出端③控制引腳〔4根〕RST/VPP(Pin9):復位引腳,引腳上出現2個機器周期的高電平將使單片機復位。ALE/PROG(Pin30):地址鎖存允許信號PSEN(Pin29):外部存儲器讀選通信號EA/VPP(Pin31):程序存儲器的內外部選通,接低電平從外部程序存儲器讀指令,如果接高電平那么從內部程序存儲器讀指令。④可編程輸入/輸出引腳〔32根〕STC89C52單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位〔8根引腳〕,共32根。PO口〔Pin39~Pin32〕:8位雙向I/O口線,名稱為P0.0~P0.7P1口〔Pin1~Pin8〕:8位準雙向I/O口線,名稱為P1.0~P1.7P2口〔Pin21~Pin28〕:8位準雙向I/O口線,名稱為P2.0~P2.7P3口〔Pin10~Pin17〕:8位準雙向I/O口線,名稱為P3.0~P3.7STC89C52主要功能如表2-2所示:表2-2STC89C52主要功能主要功能特性兼容MCS51指令系統8K可反復擦寫FlashROM32個雙向I/O口256x8bit內部RAM3個16位可編程定時/計數器中斷時鐘頻率0-24MHz2個串行中斷可編程UART串行通道2個外部中斷源共6個中斷源2個讀寫中斷口線3級加密位低功耗空閑和掉電模式軟件設置睡眠和喚醒功能單片機最小系統的設計STC89C52單片機的最小系統設計如圖2-5所示:圖2-5單片機最小系統圖STC89C52單片機的最小系統由單片機、晶振電路、復位電路組成。其介紹如下:〔1〕晶振電路為單片機提供時序使單片機能夠正常工作,在圖2-5中采用單片機內部振蕩方式。此時,只要接上兩個電容和一個晶振即可。電容的大小影響著振蕩的穩定性和起振的快速性,通常選擇10~30pF的相等的兩個瓷片電容。〔2〕C3和R1構成了復位電路。剛開始上電時時,C3瞬間相當于短路,C3兩端保持0V電壓,VCC的電源電壓就都加在了R1上,因此在單片機9腳RST上變成了高電平,此后C3上逐漸充電,即在C3上出現電壓,R1上的電壓開始下降,最后單片機9腳RST上變成了低電平。在此過程中只要滿足單片機9腳RST上的高電平持續24個振蕩周期即可使單片機復位。對射紅外檢測電路設計對射紅外檢測電路由紅外對射式傳感器完成,對射式紅外傳感器由發射器和接收器組成,其工作原理是:通過發射器發出的光線直接進入接收器,當被檢測物體經過發射器和接收器之前阻斷光線時,產生電平信號,通過介質完成。對射式紅外傳感器的特點在于:可區分不透明的反光物體,有效距離大,不易受干擾,高靈敏度,高解析,高亮度,低功耗,響應時間快,使用壽命長,無鉛,應用廣泛。當接收器接通工作電壓后,發射端上的紅色電源指示二極管就會點亮。接收端上有一個紅色的輸出狀態指示LED,正常情況下接收器能持續收到發射器發出的紅外信號,此時接收端上的輸出狀態指示LED熄滅,接收器的耗電保持在5毫安的低水平。在門開啟或關閉的過程中,假設意外地有行人或車輛從門間通過,那么從發射器發出的紅外信號被遮擋,接收器在此瞬間無法接收到該紅外信號。此時,接收端上的輸出狀態指示LED立即被點亮,導致接收器的耗電因此而上升到15毫安,此電流變化促使接收板上的輸出繼電器吸合,通過接線柱輸出一個閉合信號,對開門機發出停止運轉的指令。圖2-6紅外對射電路如圖2-6所示,紅外線發射電路以時鐘定時集成芯片LM393AD為核心,可以將模擬量轉化為數字量。LM393是由兩個獨立的、高精度電壓比擬器組成的集成電路,失調電壓低,最大為2.0mV。它專為獲得寬電壓范圍、單電源供電而設計,也可以以雙電源供電;而且無論電源電壓大小,電源消耗的電流都很低。它還有一個特性:即使是單電源供電,比擬器的共模輸入電壓范圍接近地電平。主要應用于限幅器、簡單的模/數轉換器、脈沖發生器、延時發生器、寬頻壓控振蕩器、MOS時鐘計時器、多頻振蕩器和高電平數字邏輯門電路。393被設計成能直接連接TTL和CMOS;當用雙電源供電時,它能兼容MOS邏輯電路——這是低功耗的393相較于標準比擬器的獨特優勢。其管腳圖,如圖2-7所示:管腳排列圖解〔頂視〕管腳排列圖解〔俯視〕圖2-7LM393管腳圖表2-3管腳功能表引出端序號符號功能1OUTA輸出A2INA-反相輸入A3INA+同相輸入A4GND接地端5INB+同相輸入B6INB-反相輸入B7OUTB輸出B8Vcc電源電壓管腳功能,如表2-3:應用說明:LM393是高增益,寬頻帶器件,象大多數比擬器一樣,如果輸出端到輸入端有寄生電容而產生耦合,那么很容易產生振蕩。這種現象僅僅出現在當比擬器改變狀態時,輸出電壓過渡的間隙。電源加旁路濾波并不能解決這個問題,標準PC板的設計對減小輸入—輸出寄生電容耦合是有助的。減小輸入電阻至小于10K將減小反響信號,而且增加甚至很小的正反響量(滯回1.0~10mV)能導致快速轉換,使得不可能產生由于寄生電容引起的振蕩。除非利用滯后,否那么直接插入IC并在引腳上加上電阻將引起輸入—輸出在很短的轉換周期內振蕩,如果輸入信號是脈沖波形,并且上升和下降時間相當快,那么滯回將不需要。比擬器的所有沒有用的引腳必須接地。LM393偏置網絡確立了其靜態電流與電源電壓范圍2.0~30V無關。通常電源不需要加旁路電容。差分輸入電壓可以大于Vcc并不損壞器件.保護局部必須能阻止輸入電壓向負端超過-0.3V。LM393的輸出局部是集電極開路,發射極接地的NPN輸出晶體管,可以用多集電極輸出提供。功能:輸出負載電阻能銜接在可允許電源電壓范圍內的任何電源電壓上,不受Vcc端電壓值的限制.此輸出能作為一個簡單的對地SPS開路(當不用負載電阻沒被運用),輸出局部的陷電流被可能得到的驅動和器件的β值所限制,當到達極限電流(16mA)時,輸出晶體管將退出而且輸出電壓將很快上升,輸出飽和電壓被輸出晶體管大約60ohm的γSAT限制。當負載電流很小時,輸出晶體管的低失調電壓(約1.0mV)允許輸出箝位在零電平。液晶顯示電路設計液晶顯示屏的英文名稱是LiquidCrystalDisplay(Device),簡稱LCD。根據LCD所采用的材料構造,可把液晶分為TN、STN、TFT等三大類,而據目前的技術原理又可以將它們再次分為TN、STN、FSTN、DSTN、TFT等諸多類別:LCD的特點是體積小、形狀薄、重量輕、耗能少〔1~10微瓦/平方厘米〕、低發熱、工作電壓低〔1.5~6伏〕、無污染,無輻射、無靜電感應,尤其是視域寬、顯示信息量大、無閃爍,并能直接與CMOS集成電路相匹配,同時還是真正的“平板〞式顯示設備。這些特點正在使顯示領域從傳統CRT走向LCD。本設計選擇的是諾基亞5110液晶顯示器,其原理圖如圖2-8所示,各個引腳功能說明如表2-4所示:圖2-8諾基亞5110液晶顯示器原理圖表2-4各個引腳功能說明引腳號引腳名功能備注1VDD電源輸入腳3.3-5V(推薦使用3.3V),導電膠連接2CLK同步時鐘輸入最高可達4Mbps3DIN數據輸入時鐘上升沿采樣4D/C數據/命令切換0:命令1:數據5CS片選信號低電平有效6OSC外部時鐘輸入如果使用片內振蕩器該腳接VDD7GND接地8VOUTLCD供電電路使用需外接電容,試驗證明0.1uF-10uF均可,電容越大,掉電的時候屏幕上出現的黑線消失的就越慢。9RSTLCD復位信號輸入低電平有效10-13LEDX兩個背光LED需要選用高亮側面發光的LED,同時如果對背光要求較高可使用4個LED,背光板上留有位置。14-17FIXn4個金屬框固定孔推薦使用1mm厚的PCB18-19NCn2個定位孔對應背光板上2個定位柱該液晶具有以下特點:●84x48的點陣LCD,可以顯示4行漢字,●采用串行接口與主處理器進行通信,接口信號線數量大幅度減少,包括電源和地在內的信號線僅有9條。支持多種串行通信協議〔如AVR單片機的SPI、MCS51的串口模式0等〕,傳輸速率高達4Mbps,可全速寫入顯示數據,無等待時間。●可通過導電膠連接模塊與印制版,而不用連接電纜,用模塊上的金屬鉤可將模塊固定到印制板上,因而非常便于安裝和更換。●LCD控制器/驅動器芯片已綁定到LCD晶片上,模塊的體積很小。●采用低電壓供電,正常顯示時的工作電流在200μA以下,且具有掉電模式。連線圖如圖2-9所示:圖2-9諾基亞5110液晶顯示器連線圖繼電器開關電路與報警電路的設計74LS245芯片介紹74LS245是我們常用的芯片,本設計采用來驅動繼電器和蜂鳴器,它是8路同相三態雙向總線收發器,可雙向傳輸數據。74LS245還具有雙向三態功能,既可以輸出,也可以輸入數據。當單片機的P0口總線負載到達或超過P0最大負載能力時,必須接入74LS245等總線驅動器。圖2-1074LS245引腳圖如圖2-10所示,當片選端/CE低電平有效時,DIR=“0〞,信號由B向A傳輸;〔接收〕。DIR=“1〞,信號由A向B傳輸;〔發送〕當/CE為高電平時,A、B均為高阻態。由于P2口始終輸出地址的高8位,接口時74LS245的三態控制端/1G和/2G接地,P2口與驅動器輸入線對應相連。P0口與74LS245輸入端相連,/E端接地,保證數據現暢通。8051的/RD和/PSEN相與后接DIR,使得/RD或/PSEN有效時,74LS245輸入〔P0.i←Di〕,其它時間處于輸出〔P0.i→Di〕。繼電器開關電路設計為了驅動繼電器導通時線圈有足夠的磁力,在繼電器之前加了74LS245驅動。繼電器一般由鐵芯、線圈、銜鐵、觸點簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產生電磁效應,銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點〔常開觸點〕吸合。當線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點〔常閉觸點〕釋放。這樣吸合、釋放,從而到達了在電路中的導通、切斷的目的。對于繼電器的“常開、常閉〞觸點,可以這樣來區分:繼電器線圈未通電時處于斷開狀態的靜觸點,稱為“常開觸點〞;處于接通狀態的靜觸點稱為“常閉觸點〞。繼電器一般有兩股電路,為低壓控制電路和高壓工作電路,其原理圖如圖2-11所示,繼電器A1恒為高電平,當74LS245的relay為低電平時,繼電器的A2為低電平,繼電器處于通電狀態,開關閉合,B0、B1處于導通狀態,發光二級管點亮。圖2-11繼電器連線圖蜂鳴器報警電路設計為了保證蜂鳴器足夠的響亮,在蜂鳴器之前也加了74LS245驅動。本設計采用軟件處理報警,利用有源蜂鳴器進行報警輸出,采用直流供電。蜂鳴器的A0也恒為高電平,當74LS245的buzzer為低電平時,蜂鳴器的A1為低電平,此時蜂鳴器報警。報警電路硬件連接見下列圖2-12所示:圖2-12蜂鳴器電路連接圖按鍵電路設計為了使設計操作更加方便,設計了按鍵電路,這樣就可以人為設定車輛進出值。圖2-13為設計的按鍵電路圖。S1、S2按鍵按下,車輛加、減〞1”;S3按鍵按一次,S1、S2按鍵按下,車輛數加、減“10〞;S3按鍵按二次,S1、S2按鍵按下,車輛數加、減“100〞;S3按鍵按三次,系統復位。S3按鍵按四次,恢復到圖2-13按鍵電路圖系統的程序設計主程序設計STC89C52RC單片機可以用匯編語言和C語言進行編程。匯編語言與機器指令一一對應,所以用匯編語言編寫的程序在單片機里運行起來效率較高,而且對于對射式紅外計數器數據的讀寫上,所用到的語句比擬簡單易懂。而C語言程序可讀性高,更便于理解。本設計使用C語言編程。第一次開機,系統進行初始化,LCD顯示初始數字,對停車場內的車輛數進行設定一個初值N,并開始運行。如果有物體通過進入對射式紅外傳感器時,繼電器開關翻開,LED燈點亮,LCD的最后一位開始累加。如果這個時候有物體通過駛出紅外對射式傳感器時,另一繼電器開關翻開,LED點亮,LCD的最后一位開始累減。如果這個時候有兩個物體同時通過駛出和駛入對射式紅外傳感器時,兩個繼電器開關同時翻開,兩個發光二極管LED同時點亮,LCD的最后一位開始累加。當此停車場車輛數大于500時,蜂鳴器報警,等待復位命令重新進行計數。繼電器翻開、LED點亮繼電器翻開、LED點亮設定初始車輛數N開始初始化N>500?駛入?駛出?LCD顯示停車場車輛數NLCD顯示當前停車場車輛數N蜂鳴器報警復位駛入N=N+1駛出N=N-1NY圖3-1主程序流程圖數據采集模塊程序設計數據采集模塊主要是指在系統開始運行時,當有車輛經過紅外對射式傳感器時,紅外傳感器的發射器和接收器之間阻斷光線時,形成電平信號,經過放大、整流并送入單片機控制模塊進行控制計數。開始,首先是接通電源對設備初始化,啟動紅外對射式傳感器,判斷光線是否被阻斷,假設光線被阻斷將數據儲存轉化并送入單片機控制系統,最后返回到主程序,其流程圖如圖3-2:開始開始啟動對射式傳感器有車輛通過?返回送入控制系統數據存儲數據轉化NY圖3-2數據采集流程圖液晶顯示程序設計顯示程序設計主要顯示當前車輛數:首先,開始顯示初始化界面,顯示“停車場計數、韓年猛〞、“當前車輛數:100〞,完后判斷有無車輛通過紅外對射式傳感器,如果沒有返回到上一步,如果有車輛通過那么經單片機控制后顯示控制后的當前車輛數,超出500輛車,那么蜂鳴器報警,結束返回。其流程圖如圖3-3:對初始化對初始化開始LCD顯示“停車場計數〞“韓年猛〞有車輛通過?車輛數>500?繼電器翻開、LED點亮LCD顯示當前車輛數蜂鳴器報警YNNYLCD顯示“當前車輛數:100返回圖3-3液晶顯示流程圖系統測試調試工作可分硬件調試和軟件調試兩個局部,調試方法如下:系統的硬件調試首先,軟件調試之前主要是先制作硬件電路板,然后用萬用表等工具對電路檢查,最后應用程序進行功能調試。硬件調試比擬費時,需要細心和耐心,也需要熟練掌握電路原理。然后,用仿真軟件keil進行軟件調試,該軟件提供一個集成開發環境u-Vision,它包括C編輯器、宏編輯器、連接器、庫管理和一個功能強大的仿真調試器。通過編譯、運行,可以檢查程序錯誤。但應用此方法,仍需要十分了解所使用元器件的工作方式和管腳連接方式。系統的軟件調試本次設計那么是直接完成電路的硬件設計,出現的硬件問題根本解決,主要在軟件的程序上進行調試。在軟件調試過程中,曾遇到以下問題:當硬件初次開機的時候,發現LCD亮度不夠均勻。進行分析,是程序設里面對顯示程序的延時不夠造成的。對于本系統的硬件調試中,對于單個端口〔進口或者出口,另一個端口不接通〕進行仿真調試可以實現,然而兩個端口同時接通,系統卻不進行工作,經分析,是程序編輯問題。在調試按鍵的時候,當按下S1按鍵,系統顯示正常,再按下S2按鍵那么沒有任何反響。查詢程序,由于端口編寫有誤。測試及結果給電路供電后,LCD上顯示:“停車場計數〞,“韓年猛〞,“當前車輛數:100”。表示等待車輛進入,當有車輛進出時,繼電器翻開,LED點亮,車輛數超過500時,系統報警。S3按鈕按一次,S1、S2按下,車輛加減〞1”;S3按鈕按二次,S1、S2按下,車輛數加減“10〞;S3按鈕按三次,S1、S2按下,車輛數加減“結論經過幾個月的努力設計出基于單片機的停車場計數功能,根本符合設計要求。基于單片機構成的計數器能夠實現實時、穩定、精確的計數。對這個課題進行深入的研究。采用STC89C52為控制單元的車輛計數器就可以很好的提高整個系統的抗干擾能力。通過本次設計,對單片機的內部模塊更加熟悉,使用上也更加的清晰,對于今后用單片機設計產品提供了極大的幫助,并且培養了良好的編程習慣,對子程序命名的標準。對傳感器的選擇使用上,有了一定的良好意識。對液晶顯示屏與數碼管的區別有了一定的認識,理解兩者之間的差異。參考文獻王松德、朱小龍,對射式紅外線計數器的設計[J],農業機械學報,2005,36卷7期劉向宇、秦龍,PIC單片機C語言[M],電子工業出版社,2023金杰,單片機技術應用工程教程[M],電子工業出版社,2023來清民,傳感器與單片機接口及實例[M],北京航空航天大學出版社,2023王慶友,光電傳感器應用技術[M],機械工業出版社,2007林雪梅,熱釋電紅外傳感器及其應用[J],甘肅科技縱橫,2005艾紅、孫碩.,紅外測量在車流量監測中的應用,北京信息科技大學自動化學院控制工程系,北京100085肖興達、李繼方,基于熱釋電紅外傳感器的車流檢測裝置[J]激光與紅外2005張洪潤等,傳感器技術大全〔上冊〕[M],北京航空航天大學出版社,2007江曉軍,光電傳感與檢測技術[M],機械工業出版社,2023致謝感謝學院給我提供了一個展現自己的平臺,給了我一次煅煉時機,提高我的動手能力和并把知識付諸于實踐。本設計的完成是在彭靜玉老師的細心指導下進行的,每次設計遇到問題時彭老師不辭辛苦的講解才使得我的設計順利的進行。從設計的選題到資料的搜集直至最后設計的修改的整個過程中,花費了彭老師很多的珍貴時間和精力,在此向彭老師表示衷心地感謝!彭老師嚴謹的治學態度,開拓進取的精神和高度的責任心都將使我附錄附錄1:原理圖及實物照片說明附錄2:局部源程序主文件程序#include<reg51.h>sbitSCLK=P2^5; sbitSDIN=P2^4; sbitLCD_DC=P2^3; sbitLCD_CE=P2^2; sbitLCD_RST=P2^1;voidLCD_init(void);voidLCD_clear(void);voidLCD_move_chinese_string(unsignedcharX,unsignedcharY,unsignedcharT);voidLCD_write_english_string(unsignedcharX,unsignedcharY,char*s);voidLCD_write_chinese_string(unsignedcharX,unsignedcharY,unsignedcharch_with,unsignedcharnum,unsignedcharline,unsignedcharrow);voidchinese_string(unsignedcharX,unsignedcharY,unsignedcharT);voidLCD_write_char(unsignedcharc);voidLCD_draw_bmp_pixel(unsignedcharX,unsignedcharY,unsignedchar*map,unsignedcharPix_x,unsignedcharPix_y);voidLCD_write_byte(unsignedchardat,unsignedchardc);voidLCD_set_XY(unsignedcharX,unsignedcharY);voiddelay_1us(void);externvoiddelay_nms(unsignedintn);voidLCD_write_number(unsignedcharx);voidnumber_saved();unsignedintx;sbitcount_in=P1^0;sbitcount_out=P1^1;#define delay_time 25767voidmain(void){ LCD_init();//初始化液晶 LCD_clear(); LCD_write_chinese_string(6,2,12,5,6,4);//停車場計數 LCD_write_chinese_string(2,4,12,6,0,0);//哈年猛 delay_nms(380); LCD_clear(); LCD_write_chinese_string(0,1,12,6,11,0);//當前車輛數 x=100; number_saved(); while(1) { if(count_in)//如果有車輛,那么執行下面的 { delay_nms(2);//消斗 if(count_in) { x++; number_saved(); while(count_in);//松開有效 } } if(count_out) { delay_nms(2); if(count_out) { x--; number_saved(); while(count_out); } } }}voidLCD_write_number(unsignedcharx){ switch(x) { case0: LCD_write_char('0');break; case1: LCD_write_char('1');break; case2: LCD_write_char('2');break; case3: LCD_write_char('3');break; case4: LCD_write_char('4');break; case5: LCD_write_char('5');break; case6: LCD_write_char('6');break; case7: LCD_write_char('7');break; case8: LCD_write_char('8');break; case9: LCD_write_char('9');break; }}voidnumber_saved(){ LCD_set_XY(48,4); LCD_write_number(x/1000); LCD_set_XY(54,4); LCD_write_number(x%1000/100); LCD_set_XY(60,4); LCD_write_number(x%100/10); LCD_set_XY(66,4); LCD_write_number(x%10);}/****************以下是液晶驅動函數*****************/#include<reg51.h>sbitSCLK=P2^5; sbitSDIN=P2^4; sbitLCD_DC=P2^3; sbitLCD_CE=P2^2; sbitLCD_RST=P2^1;voidLCD_init(void);voidLCD_clear(void);voidLCD_move_chinese_string(unsignedcharX,unsignedcharY,unsignedcharT);voidLCD_write_english_string(unsignedcharX,unsignedcharY,char*s);voidLCD_write_chinese_string(unsignedcharX,unsignedcharY,unsignedcharch_with,unsignedcharnum,unsignedcharline,unsignedcharrow);voidchinese_string(unsignedcharX,unsignedcharY,unsignedcharT);voidLCD_write_char(unsignedcharc);voidLCD_draw_bmp_pixel(unsignedcharX,unsignedcharY,unsignedchar*map,unsignedcharPix_x,unsignedcharPix_y);voidLCD_write_byte(unsignedchardat,unsignedchardc);voidLCD_set_XY(unsignedcharX,unsignedcharY);voiddelay_1us(void);codeunsignedcharwrite_chinese[][24]={/*--文字:作--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x10,0x08,0xFC,0x13,0x08,0x04,0xFF,0x24,0x24,0x24,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x01,0x01,0x01,0x01,0x00,/*--文字:者--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x10,0x12,0x92,0xD2,0x7F,0x52,0x5A,0x56,0xD2,0x19,0x10,0x00,0x01,0x01,0x00,0x07,0x05,0x05,0x05,0x05,0x07,0x00,0x00,0x00,/*--文字::--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x00,0x00,0x00,0x00,0x8C,0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,/*--文字:韓--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x02,0xFA,0xAF,0xAA,0xFA,0x20,0x2A,0xFF,0x2A,0x2A,0xEA,0x00,0x02,0x02,0x07,0x02,0x02,0x02,0x00,0x07,0x01,0x02,0x01,0x00,/*--文字:年--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x88,0x84,0xF3,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,/*--文字:猛--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x8A,0x44,0xFA,0x01,0x88,0xA9,0xA9,0xBD,0x8B,0x89,0x88,0x00,0x04,0x04,0x03,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x00,/*--文字:停--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x10,0xFC,0x03,0x62,0xBA,0xAA,0xAB,0xAA,0xAA,0xBA,0x62,0x00,0x00,0x07,0x00,0x00,0x00,0x04,0x04,0x07,0x00,0x00,0x00,0x00,/*--文字:車--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x02,0x22,0x32,0x2E,0x23,0xFA,0x22,0x22,0x22,0x22,0x02,0x00,0x01,0x01,0x01,0x01,0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x00,/*--文字:場--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x08,0x08,0xFF,0x88,0x49,0x91,0x79,0x95,0x73,0x11,0xF0,0x00,0x03,0x01,0x00,0x00,0x05,0x02,0x01,0x04,0x04,0x06,0x01,0x00,/*--文字:計--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x10,0xF1,0x02,0x00,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,0x00,0x07,0x02,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,/*--文字:數--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0xA5,0x96,0xCC,0xBF,0x96,0xA5,0x18,0x67,0x84,0x7C,0x04,0x00,0x04,0x05,0x02,0x02,0x03,0x04,0x04,0x02,0x01,0x02,0x04,0x00,/*--文字:當--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x10,0x92,0x94,0x90,0x90,0x9F,0x90,0x98,0x94,0xF2,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x00,0x00,/*--文字:前--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x04,0xF4,0x54,0x55,0xF6,0x04,0x06,0xF5,0x04,0xF6,0x04,0x00,0x00,0x07,0x01,0x05,0x07,0x00,0x00,0x05,0x04,0x07,0x00,0x00,/*--文字:車--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x02,0x22,0x32,0x2E,0x23,0xFA,0x22,0x22,0x22,0x22,0x02,0x00,0x01,0x01,0x01,0x01,0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x00,/*--文字:輛--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x3A,0x27,0xFA,0xA2,0xFA,0x8A,0x7E,0x8A,0x7E,0x8B,0xFA,0x00,0x01,0x01,0x07,0x00,0x07,0x00,0x00,0x01,0x04,0x04,0x07,0x00,/*--文字:數--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0xA5,0x96,0xCC,0xBF,0x96,0xA5,0x18,0x67,0x84,0x7C,0x04,0x00,0x04,0x05,0x02,0x02,0x03,0x04,0x04,0x02,0x01,0x02,0x04,0x00,/*--文字::--*//*--宋體9;此字體下對應的點陣為:寬x高=12x12--*//*--高度不是8的倍數,現調整為:寬度x高度=12x16--*/0x00,0x00,0x00,0x00,0x8C,0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00, };codeunsignedcharfont6x8[][6]={{0x00,0x00,0x00,0x00,0x00,0x00},//sp{0x00,0x00,0x00,0x2f,0x00,0x00},//!{0x00,0x00,0x07,0x00,0x07,0x00},//"{0x00,0x14,0x7f,0x14,0x7f,0x14},//#{0x00,0x24,0x2a,0x7f,0x2a,0x12},//${0x00,0x62,0x64,0x08,0x13,0x23},//%{0x00,0x36,0x49,0x55,0x22,0x50},//&{0x00,0x00,0x05,0x03,0x00,0x00},//'{0x00,0x00,0x1c,0x22,0x41,0x00},//({0x00,0x00,0x41,0x22,0x1c,0x00},//){0x00,0x14,0x08,0x3E,0x08,0x14},//*{0x00,0x08,0x08,0x3E,0x08,0x08},//+{0x00,0x00,0x00,0xA0,0x60,0x00},//,{0x00,0x08,0x08,0x08,0x08,0x08},//-{0x00,0x00,0x60,0x60,0x00,0x00},//.{0x00,0x20,0x10,0x08,0x04,0x02},///{0x00,0x3E,0x51,0x49,0x45,0x3E},//0{0x00,0x00,0x42,0x7F,0x40,0x00},//1{0x00,0x42,0x61,0x51,0x49,0x46},//2{0x00,0x21,0x41,0x45,0x4B,0x31},//3{0x00,0x18,0x14,0x12,0x7F,0x10},//4{0x00,0x27,0x45,0x45,0x45,0x39},//5{0x00,0x3C,0x4A,0x49,0x49,0x30},//6{0x00,0x01,0x71,0x09,0x05,0x03},//7{0x00,0x36,0x49,0x49,0x49,0x36},//8{0x00,0x06,0x49,0x49,0x29,0x1E},//9{0x00,0x00,0x36,0x36,0x00,0x00},//:{0x00,0x00,0x56,0x36,0x00,0x00},//;{0x00,0x08,0x14,0x22,0x41,0x00},//<{0x00,0x14,0x14,0x14,0x14,0x14},//={0x00,0x00,0x41,0x22,0x14,0x08},//>{0x00,0x02,0x01,0x51,0x09,0x06},//?{0x00,0x32,0x49,0x59,0x51,0x3E},//@{0x00,0x7C,0x12,0x11,0x12,0x7C},//A{0x00,0x7F,0x49,0x49,0x49,0x36},//B{0x00,0x3E,0x41,0x41,0x41,0x22},//C{0x00,0x7F,0x41,0x41,0x22,0x1C},//D{0x00,0x7F,0x49,0x49,0x49,0x41},//E{0x00,0x7F,0x09,0x09,0x09,0x01},//F{0x00,0x3E,0x41,0x49,0x49,0x7A},//G{0x00,0x7F,0x08,0x08,0x08,0x7F},//H{0x00,0x00,0x41,0x7F,0x41,0x00},//I{0x00,0x20,0x40,0x41,0x3F,0x01},//J{0x00,0x7F,0x08,0x14,0x22,0x41},//K{0x00,0x7F,0x40,0x40,0x40,0x40},//L{0x00,0x7F,0x02,0x0C,0x02,0x7F},//M{0x00,0x7F,0x04,0x08,0x10,0x7F},//N{0x00,0x3E,0x41,0x41,0x41,0x3E},//O{0x00,0x7F,0x09,0x09,0x09,0x06},//P{0x00,0x3E,0x41,0x51,0x21,0x5E},//Q{0x00,0x7F,0x09,0x19,0x29,0x46},//R{0x00,0x46,0x49,0x49,0x49,0x31},//S{0x00,0x01,0x01,0x7F,0x01,0x01},//T{0x00,0x3F,0x40,0x40,0x40,0x3F},//U{0x00,0x1F,0x20,0x40,0x20,0x1F},//V{0x00,0x3F,0x40,0x38,0x40,0x3F},//W{0x00,0x63,0x14,0x08,0x14,0x63},//X{0x00,0x07,0x08,0x70,0x08,0x07},//Y{0x00,0x61,0x51,0x49,0x45,0x43},//Z{0x00,0x00,0x7F,0x41,0x41,0x00},//[{0x00,0x55,0x2A,0x55,0x2A,0x55},//55{0x00,0x00,0x41,0x41,0x7F,0x00},//]{0x00,0x04,0x02,0x01,0x02,0x04},//^{0x00,0x40,0x40,0x40,0x40,0x40},//_{0x00,0x00,0x01,0x02,0x04,0x00},//'{0x00,0x20,0x54,0x54,0x54,0x78},//a{0x00,0x7F,0x48,0x44,0x44,0x38},//b{0x00,0x38,0x44,0x44,0x44,0x20},//c{0x00,0x38,0x44,0x44,0x48,0x7F},//d{0x00,0x38,0x54,0x54,0x54,0x18},//e{0x00,0x08,0x7E,0x09,0x01,0x02},//f{0x00,0x18,0xA4,0xA4,0xA4,0x7C},//g{0x00,0x7F,0x08,0x04,0x04,0x78},//h{0x00,0x00,0x44,0x7D,0x40,0x00},//i{0x00,0x40,0x80,0x84,0x7D,0x00},//j{0x00,0x7F,0x10,0x28,0x44,0x00},//k{0x00,0x00,0x41,0x7F,0x40,0x00},//l{0x00,0x7C,0x04,0x18,0x04,0x78},//m{0x00,0x7C,0x08,0x04,0x04,0x78},//n{0x00,0x38,0x44,0x44,0x44,0x38},//o{0x00,0xFC,0x24,0x24,0x24,0x18},//p{0x00,0x18,0x24,0x24,0x18,0xFC},//q{0x00,0x7C,0x08,0x04,0x04,0x08},//r{0x00,0x48,0x54,0x54,0x54,0x20},//s{0x00,0x04,0x3F,0x44,0x40,0x20},//t{0x00,0x3C,0x40,0x40,0x20,0x7C},//u{0x00,0x1C,0x20,0x40,0x20,0x1C},//v{0x00,0x3C,0x40,0x30,0x40,0x3C},//w{0x00,0x44,0x28,0x10,0x28,0x44},//x{0x00,0x1C,0xA0,0xA0,0xA0,0x7C},//y{0x00,0x44,0x64,0x54,0x4C,0x44},//z{0x14,0x14,0x14,0x14,0x14,0x14}//horizlines};voiddelay_1us(void)//1us延時函數{unsignedinti;for(i=0;i<1000;i++);}voiddelay_1ms(void)//1ms延時函數{unsignedinti;for(i=0;i<1140;i++);}voiddelay_nms(unsignedintn)//Nms延時函數{unsignedinti=0;for(i=0;i<n;i++)delay_1ms();}voidLCD_init(void){//產生一個讓LCD復位的低電平脈沖LCD_RST=0;delay_1us();LCD_RST=1; //關閉LCDLCD_CE=0;delay_1us(); //使能LCDLCD_CE=1;delay_1us();LCD_write_byte(0x21,0); //使用擴展命令設置LCD模式LCD_write_byte(0xc8,0); //設置偏置電壓LCD_write_byte(0x06,0); //溫度校正LCD_write_byte(0x13,0); //1:48LCD_write_byte(0x20,0); //使用根本命令LCD_clear(); //清屏LCD_write_byte(0x0c,0); //設定顯示模式,正常顯示//關閉LCDLCD_CE=0;}voidLCD_clear(void){unsignedinti;LCD_write_byte(0x0c,0); LCD_write_byte(0x80,0); for(i=0;i<504;i++)

溫馨提示

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

評論

0/150

提交評論