(一)系統功能設計
51單片機汽車駕駛防疲勞防瞌睡報警器自動熄火15
本系統由STC89C52單片機、蜂鳴器、ADXL345重力加速度傳感器、繼電器控制、按鍵、指示燈及電源組成。
1、通過按鍵點亮led燈,代表車輛啟動和熄火。
2、車輛啟動后,ADXL345采集方向變化,如果3s左右方向無任何變化,表示司機疲憊沒有動方向盤,此時報警并繼電器動作。
3、報警后除非系統復位取消報警,否則持續報警,強制司機需要休息。
4、如果車輛沒有啟動,則不進行檢測不會報警。
(二)系統硬件系統分析設計
1、STC89C52單片機核心系統電路設計
STC89C52RC是STC公司生產的一種低功耗、高性能CMOS8位微控制器,具有8K字節系統可編程Flash存儲器。STC89C52使用經典的MCS-51內核,但是做了很多的改進使得芯片具有傳統51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得STC89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。具有以下標準功能:8k字節Flash,512字節RAM, 32 位I/O 口線,看門狗定時器,內置4KB EEPROM,MAX810復位電路,3個16 位定時器/計數器,4個外部中斷,一個7向量4級中斷結構(兼容傳統51的5向量2級中斷結構),全雙工串行口。另外 STC89C52 可降至0Hz 靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。
一、STC89C52主要特性如下:
(1)8K字節程序存儲空間;
(2)512字節數據存儲空間;
(3)內帶4K字節EEPROM存儲空間;
(4)可直接使用串口下載。
二、STC89C52主要參數如下:
(1)增強型8051單片機,6時鐘/機器周期和12 時鐘/機器周期可以任意選擇,指令代碼完全兼容傳統8051;
(2)工作電壓:5.5V~3.3V(5V單片機)/3.8V~2.0V(3V 單片機);
(3)工作頻率范圍:0~40MHz,相當于普通8051的0~80MHz,實際工作 頻率可達48MHz;
(4)用戶應用程序空間為8K字節;
(5)片上集成512 字節RAM;
(6)通用I/O 口(32個),復位后為:P1/P2/P3 是準雙向口/弱上拉,P0口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為 I/O口用時,需加上拉電阻;
(7)ISP(在系統可編程)/IAP(在應用可編程),無需專用編程器,無需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程序,數秒即可完成一片;
(8)具有EEPROM功能;
(9)共3個16 位定時器/計數器。即定時器T0、T1、T2;
(10)外部中斷4路,下降沿中斷或低電平觸發電路,Power Down 模式可 由外部中斷低電平觸發中斷方式喚醒;
(11)通用異步串行口(UART),還可用定時器軟件實現多個UART;
(12)工作溫度范圍:-40~+85℃(工業級)/0~75℃(商業級);
(13)PDIP封裝。
三、STC89C52單片機相關引腳說明:
(1)VCC:供電電壓。
(2)GND:接地。
(3)P3.0 RXD(串行輸入口)
(4)P3.1 TXD(串行輸出口)
(5)P3.2 /INT0(外部中斷0)
(6)P3.3 /INT1(外部中斷1)
(7)P3.4 T0(記時器0外部輸入)
(8)P3.5 T1(記時器1外部輸入)
(9)P3.6 /WR(外部數據存儲器寫選通)
(10)P3.7 /RD(外部數據存儲器讀選通)
(11)RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
(12)ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
(13)/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
(14)/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
(15)XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。
(16)XTAL2:來自反向振蕩器的輸出。
單片機引腳圖如下圖所示:
STC89C52單片機引腳圖
四、STC89C52單片機最小系統說明:
STC89C52單片機最小系統電路由復位電路、時鐘電路和電源電路。擁有這三部分電路后,單片機即可正常工作。單片機最小系統原理圖如下圖所示。
單片機最小系統原理圖
2、5V電源電路設計
本系統選擇5V直流電源作為系統總電源,為整個系統供電,電路簡單、穩定。DC為電源的DC插座,可以直接接USB電源線,一端插在DC插座上,另外一端可以插在5V電源上,如電腦USB、充電寶、手機充電器等等。LED為紅色LED燈,作為系統是否有點的指示燈,電阻為1K電阻,起到限流作用,保護LED燈,以防電流過大燒壞LED燈。SW為自鎖開關,開關按下后,紅燈亮,此時系統電源5V直流輸出。開關再次按下后,紅燈滅,此時系統電源無5V電源輸出。
5V電源電路原理圖
3、ADXL345傾角傳感器模塊電路設計
本設計選擇傾角傳感器ADXL345模塊實時檢測相關的狀態信息。ADXL345是一款小而薄的超低功耗3軸加速度計,分辨率高(13位),測量范圍達± 16g。數字輸出數據為16位二進制補碼格式,可通過SPI(3線或4線)或I2C數字接口訪問。ADXL345非常適合移動設備應用。它可以在傾斜檢測應用中測量靜態重力加速度,還可以測量運動或沖擊導致的動態加速度。其高分辨率(3.9mg/LSB),能夠測量不到1.0°的傾斜角度變化。該器件提供多種特殊檢測功能。活動和非活動檢測功能通過比較任意軸上的加速度與用戶設置的閾值來檢測有無運動發生。敲擊檢測功能可以檢測任意方向的單振和雙振動作。自由落體檢測功能可以檢測器件是否正在掉落。這些功能可以獨立映射到兩個中斷輸出引腳中的一個。正在申請專利的集成式存儲器管理系統采用一個32級先進先出(FIFO)緩沖器,可用于存儲數據,從而將主機處理器負荷降至最低,并降低整體系統功耗。低功耗模式支持基于運動的智能電源管理,從而以極低的功耗進行閾值感測和運動加速度測量。ADXL345模塊接口圖如下圖所示。
ADXL345模塊接口圖
ADXL345模塊實物圖如下圖所示。
ADXL345模塊實物圖
(三)51單片機系統軟件設計
完整的控制系統由硬件系統和軟件系統組成,若要充分發揮系統的設計功能,則需要支持硬件平臺的軟件程序,即燒寫到單片機內部的程序。
1、編程語言選擇
由于整個程序比較復雜,且計算量較大,用到了較多的浮點數計算,所以程序的編寫采用了C語言。
對于大多數51系列的單片機,使用C語言這樣的高級語言與使用匯編語言相比具有如下優點:
(1)不需要了解處理器的指令集,也不必了解存儲器結構。
(2)寄存器分配和尋址方式由編譯器進行管理,編程時不需要考慮存儲器的地址和數據類型等細節。
(3)指定操作的變量選擇組合提高了程序的可讀性。
(4)可使用與人的思維更相近的關鍵字和操作函數。
(5)與使用匯編語言相比,程序的開發和調試時間大大縮短。
(6)C語言的庫文件提供了許多標準的例程。
(7)通過C語言可實現模塊化編程技術,從而可將已編制好的程序加到 新程序中。
(8)C語言可移植性好且非常普及,C語言編譯器幾乎適用于所有的目標系統,己完成的項目可以很容易的轉換到其它的處理器或環境中與匯編語言相比,C語言在功能上、結構性、可讀性、可移植性、可維護性上有明顯的優勢,易學易用。
2、Keil程序開發環境
本設計中單片機開發環境是Keil,Keil是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟件仿真調試工具也會令你事半功倍。其中Keil有以下特點:
(1)Keil軟件同時支持WINXP和WIN7等多種操作系統,提供了豐富的庫函數和功能強大的開發工具。
(2)Keil可以完成從編輯、編譯、到連接、調試的一套開發流程。
Keil軟件界面如下圖所示。
Keil開發界面圖
3、STC-ISP程序燒錄軟件介紹
STC-ISP 是一款單片機下載編程燒錄軟件,是針對STC系列單片機而設計的,它是一款集成了代碼下載,在線仿真和串口查看于一起軟件備,在51系列智能產品研發過程中得到了廣泛使用,性能高,是目前51系列單片機控制系統研發中不可缺少的一部分。
可以通過下載器(即CH340等串口燒寫模塊)下載單片機程序。單片機開發板和下載器以及PC連接好后,首先需要在軟件中選擇單片機型號和串口號,以及設置波特率。然后選在項目程序“hex”文件所在的地址,最后就可以點擊程序下載按鈕了。具體下載界面如下圖所示。
燒錄軟件對話框
4、CH340串口程序燒寫模塊介紹
本設計通過CH340串口燒寫模塊實現對單片機程序的燒寫。CH340串口燒寫模塊使用USB接口,十分方便的解決了筆記本電腦用戶對STC系列單片機的程序燒寫問題,本下載器低價格、高性能,是開發 STC 系列單片機的首選優秀工具。
一、CH340串口燒寫模塊特點:
(1)支持 USB1.1 或 USB2.0 通信;
(2)全面支持 WIN98、 WINME、 WIN2000、 WINXP、 VISTA、 WIN7 等操作系統;
(3)采用 USB 口供電;
(4)在對芯片編程時可以使用目標系統本身電源,也可以使用編程器從 USB 口取電供給目標板,但應保證目標板電流不大于500mA,以免不能正常編程;
(5)編程完成不影響目標板的程序運行;
(6)支持 STC 全系列芯片燒錄;
(7)編程器提供 3.3V 與 5V 的電壓輸出接口;
(8)速度比并口編程更快更穩定,更方便筆記本電腦用戶使用;
(9)采用進口原裝芯片, 能進行高速穩定編程;
模塊如下圖所示。
CH340串口燒寫模塊
文章底部可以獲取博主的聯系方式,獲取源碼、查看詳細的視頻演示,或者了解其他版本的信息。
所有項目都經過了嚴格的測試和完善。對于本系統,我們提供全方位的支持,包括修改時間和標題,以及完整的安裝、部署、運行和調試服務,確保系統能在你的電腦上順利運行。