淺談汽車測距系統的設計
P0口:P0 口是一組I/O 口,是8 位漏極開路并行口,也就是地址/數據總線復用的I/O 口,字節地址為80H,位地址為80H-87H。在編程flash 時,指令數據發送到P0口,在校檢程序的時候,指令數據從P0口輸出,此時,P0口外部要接上拉電阻以提高驅動能力。
P1口:是單功能的I/O 口,字節地址為90H,位地址為90H-97H,P1口只能作為通用的I/O 口使用,P1口由于有內部上拉電阻,沒有高阻抗輸入狀態,故為準雙向口。作為輸出口時,不需要在外接上拉電阻,P1口讀鎖存器時必須向鎖存器寫1。
P2口:P2是一個8位雙向單功能I/O 口,字節地址為A0H,位地址為A0H-A7H,內部帶有上拉電阻,P2口可以以灌入或輸出電流的方式驅動4個邏輯門(TTL)電路。在訪問8 位地址的外部數據存儲器時,特殊功能寄存器(SFR)區中R2寄存器的內容也就是P2口內容不會改變。在編程flash 和校檢程序時,P2接收高位地址和其它控制信號。
P3口:P3是一個8位雙功能I/O 口,位地址為B0H-B7H,內部帶有上拉電阻。P3口可以以灌入或輸出電流的方式驅動4個邏輯門(TTL)電路。
RST:復位端口。當振動器正常運作的時候,可以給引腳RST高于兩個周期時間以上的高電平將會讓單片機進行復位操作。
第四章系統硬件設計
4.1 硬件設計方案
如圖所示,我設計的這個系統硬件部分是由AT89S52控制器、超聲波發射電路、接收電路、聲音報警電路,溫度測量電路和LCD顯示電路幾部分組成。汽車行進時LCD會顯示環境溫度,當汽車進行倒車的時候,發射電路和接收電路就會開始工作,通過AT89S52單片機的數據處理將距離也會顯示到LCD顯示屏上,如果在距離小于設定值的時候,報警電路就會發出鳴叫聲,這時候司機就要引起注意了。AT89S52是主控芯片,能夠支持在線下載程序,多以方便調試,資源豐富,不僅滿足了本系統的各項設計要求,還滿足了日后擴展的各項需求。
復位電路溫度補償電路AT89S52
接收電路報警電路
發射電路顯示電路
圖4.1 設計方案圖
4.2 系統電路
單片機的系統電路是單片機的基本組成部分,包括有時鐘、電源、復位、電源電路等。
4.2.1 單片機最小系統
本文使用AT89S52 單片機的意義:在單片機的大家族中,51 系列單片機擁有著卓越的性能、成熟的技術、成本低和應用的廣泛迅速占的領了大的市場,在各個領域單片機都應用的十分廣泛,已經變成了國內外單片機領域主流的單片機應用。因此世界上大量集成電路生產廠家各自推出了許多種類型的單片機。
AT89S52 單片機內部裝有8KB存儲器,其本身就是一個數字量輸入和輸出的最小應用,在構建AT89S52單片機最小系統的時候,AT89S52單片機僅僅只需要外接時鐘電路、復位電路和5V的電源電路即可。單片機的最小電路如圖4.2 所示。
圖4.2 單片機最小電路
AT89S52最小系統主要包括復位電路與外部晶振。其晶振電路如圖所示。
圖4.3 單片機時鐘電路
AT89S52單片機每個部件的運行都是以時鐘信號作為基準的,使得單片機能夠有條不絮的進行工作,時鐘的頻率是相當重要的,時鐘頻率會直接影響到單片機的穩定性和單片機的運行速度,所以時鐘電路是單片機工時作所必須存在的控制信號電路。AT89S52單片機的內部含有一個用于構成振蕩器的高增益反相放大器,并且有著兩個輸入引腳,分別是XTAL1和XTAL2。
如圖4.3所示的電路中電容C1和C2通常的選擇為30pF,該電容的大小會直接影響到振蕩器頻率的高低,振蕩器的起振快速性和穩定性。晶體震蕩的頻率一般選擇在1.2MHZ-12MHZ,如果時鐘的頻率越高,單片機的運行速度相對就會越快,反之則亦然。但是如果時鐘頻率越高則對存儲器速度的要求就會越高,所以為了保證單片機系統運行,可靠的工作電容的大小起著至關重要的作用。時鐘電路由兩個30pF的電容保證振蕩器的穩定、可靠的工作;石英晶體的頻率越高,單片機運行速度越快,所以選擇12MHZ的石英晶體。復位電路如圖5所示。
圖4.4 單片機復位電路
單片機進行復位操作的時候,單片機會初始化,是單片機從存儲器的0000H 單元執行的。當程序運行出錯、程序跑飛或者錯誤操作的時候都會讓系統處于死鎖的狀態,這時候需要通過使系統初始化來重新啟動程序,所以復位鍵的功能是用來防止系統跑飛或死鎖的。VCC通電時,電容就開始充電,充電過程中會產生有充電電流,并且在最一開始時電流會最大,隨著充電時間的減少電流逐漸減小直到電容充滿電后充電電流就會變為0,此時電路中無充電電流輸給電容,電容器相當于開路,這個時候的隔直才是真正意義上的,所以在接通電源的一瞬間,是會有通交這個過程的,在電容充電這個過程中,RST端的電壓卻剛好相反是從VCC逐漸減少到0,電容上的電壓是會有個從無到有的過程的,這是個交流變化過程,因為充電電流是從大到小一直到0,在此過程中的RST引腳會一直保持VCC 高電平狀態的,導致單片機的復位,(電容充放電時間常數,由R 和C 決定)。當電容不再充電時,沒有電流通過,RST一直為0,單片機正常的工作。電容的放電過程是通過手動按鍵閉合后,通過按鍵一側聯接RST引腳的電阻組成回路的,放電過程是電流從電容的正極板出發通過閉合按鍵之后經過該電阻回到電容的負極板,完成放電過程的。
復位操作也就是單片機的初始化,重新啟動程序,也就是在RST引腳加上大于2個機器周期的高電平即可以完成單片機復位。手動復位是通過在RST上電阻與Vcc 連接來達到目的,具體得電路如圖所示,當時鐘頻率為12MHZ時,電阻選取為2K歐。在我將按鈕按下去的時間比兩微秒多的情況下,RST就能夠發出高電平,單片機復位,然后重新啟動系統。
4.2.2 電源電路
汽車用電器供電來源主要是由汽車蓄電瓶供電,汽車蓄電瓶電壓為12V。由于車用蓄電瓶電壓為12V 電源高于系統單片機的需求電壓,同時蓄電瓶由于大電流放電,電壓穩定性較差,必須使用電路將蓄電瓶12V 的電壓DC-DC 變化為5V 穩定的電壓,然后直流5V 電壓供給超聲波測距系統工作。系統采用線性穩壓芯片LM7805 將12V 的電源(汽車蓄電池的輸出電壓)轉換為5V 的直流穩壓。5V 電源電路如下圖所示。由CZ1 電源接口輸入為12V車載蓄電瓶直流電源,二極管D1 是為了防止電源接反,經過C7 和C8 濾波,通過LM7805 將電源穩壓至5V。穩壓電源5V 輸出給AT89S52 單片機、測量電路、顯示系統、控制電路、報警電路供電。