基于A(yíng)VR單片機的自行車(chē)行車(chē)記錄儀,軟硬件協(xié)同
由以上工作原理可知,可以通過(guò)調節滑動(dòng)變阻器R3,從而來(lái)調節觸發(fā)電平。并且通過(guò)點(diǎn)亮燈LED1來(lái)指示信號的輸出。
改良后的霍爾傳感器信號輸出波形如圖3.5所示

圖3.5 霍爾傳感器輸出信號
霍爾傳感器信號輸出如上圖3.5可知,經(jīng)過(guò)改良后的霍爾傳感器能輸出一個(gè)單片機能識別的方波,并且可以通過(guò)調節滑動(dòng)變阻器R3來(lái)調節傳感器的觸發(fā)電平,同時(shí)通過(guò)指示燈LED1來(lái)指示信號的輸出,最主要達到了增強信號的可處理性的目的。
3.3 打印機
打印機在打印的時(shí)候需要大電流提供,而單片機的IO管腳最多只能提供20mA的電流,所以打印機在打印之前需要有額外的驅動(dòng)電路來(lái)提供打印需要的電流。打印機實(shí)物接口如下圖3.6所示

圖3.6 打印機實(shí)物接口
其中的信號接口如圖3.7所示

圖 3.7 打印機信號接口
打印機電機驅動(dòng)如下圖 3.8所示,打印機主要信號包括,電機驅動(dòng)信號:Motor(+),4個(gè)打印針驅動(dòng)信號:(6,7,8,9)。
電機驅動(dòng)電路如下圖3.8所示

圖3.8 打印機電機驅動(dòng)
打印機電機驅動(dòng)如上圖3.8所示,信號由AVR_PRINT_ON腳輸入,高電平驅動(dòng),當產(chǎn)生高電平時(shí),通過(guò)三極管Q1驅動(dòng)打印機打印。
打印針的驅動(dòng)如下圖3.9所示

圖3.9 打印針驅動(dòng)
AVR_PRINT_A為信號輸入腳,低電平驅動(dòng),當該腳為低電平時(shí),通過(guò)三極管Q3和Q4驅動(dòng)打印針PRINT_A打印。
3.4 其它外圍電路
除了以上涉及核心電路外,其它比如時(shí)間顯示,數據存儲,溫度顯示等,都分別需要不同的硬件模塊提供支持。
3.4.1 時(shí)鐘模塊
這里時(shí)鐘采用了達拉斯的DS1302時(shí)鐘芯片,時(shí)鐘模塊電路圖如圖3.10所示

圖3.10 DS1302時(shí)鐘模塊
該模塊采用串行工作模式,通過(guò)SCLK(Signal Clock,信號時(shí)鐘), I/O(Input And Output,輸入輸出信號),RST(Reset 復位信號)三線(xiàn)控制芯片工作。
3.4.2 數據儲存模塊
數據存儲采用了ATMEL公司的24LC64 EEPROM(可編程電可擦除存儲芯片),模塊電路圖如圖3.11所示

圖3.11 EEPROM存儲電路
該模塊采用的是標準的I2C總線(xiàn)模式,操作簡(jiǎn)單方便,總容量為64Kbit,8K字節,對于存儲記錄儀的參數是綽綽有余。
3.4.3 溫度傳感模塊
溫度傳感器采用的是達拉斯的DS18B20,單總線(xiàn)模式,溫度傳感器模塊電路圖如圖3.12所示

圖 3.12 溫度傳感器模塊
溫度傳感器模塊如上圖3.1所示,DS18B20采用的是單總線(xiàn)模式,該數字溫度傳感器最大的的特點(diǎn)是,只需一個(gè)IO管腳便可以控制其工作,并且該傳感器傳感溫度精確,最小可以精確到0.0625℃。
3.4.4 獨立按鍵模塊
獨立按鍵模塊是提供用戶(hù)來(lái)控制和使用UI界面,原理圖如下圖3.13所示

圖3.13 獨立按鍵電路
獨立按鍵電路如上圖3.13所示,每個(gè)按鍵按下時(shí)都會(huì )產(chǎn)生一個(gè)中斷,在設計嵌入式軟件時(shí)可以通過(guò)在按鍵中斷內判斷按鍵值,并且可以通過(guò)定時(shí)器去除抖動(dòng),這種軟件設計可以避免軟件延時(shí)去抖,從而提高了整套軟件的運行效率。
4. 軟件系統設計
本套軟件主要實(shí)現自行車(chē)行車(chē)記錄的智能控制,其實(shí)現的功能主要有以下幾點(diǎn):
顯示平均行車(chē)速度,實(shí)時(shí)行車(chē)速度,時(shí)間和溫度
記錄行車(chē)速度、行車(chē)總里程、單次行車(chē)里程
記錄總行車(chē)時(shí)間,單次行車(chē)時(shí)間
輪胎圓周設定,總里程初值設定
自動(dòng)關(guān)機,節電保護
行車(chē)統計信息打印
貪吃蛇小游戲
時(shí)間顯示和時(shí)間設置
4.1 軟件總體框架
軟件總體流程圖如下圖4.1所示


圖4.1 嵌入式軟件整體流程圖
4.2 軟件說(shuō)明
該嵌入式軟件設計的思想主要是模塊化的程序設計思想,其中需要驅動(dòng)的模塊主要有以下幾點(diǎn):
DS1302時(shí)鐘模塊驅動(dòng)
DS18B20數字溫度傳感器模塊驅動(dòng)
24LC64 EEPROM存儲模塊驅動(dòng)
12864液晶顯示模塊驅動(dòng)
霍爾傳感器計速模塊驅動(dòng)
EPSON M-150II微型打點(diǎn)打印機驅動(dòng)
軟件主要包含三層結構,分別為應用層,封裝層以及驅動(dòng)層。其軟件層次結構如下圖4.2所示

評論