新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AVR單片機的自行車行車記錄儀,包括軟硬件具體

        基于AVR單片機的自行車行車記錄儀,包括軟硬件具體

        作者: 時間:2016-09-12 來源:網絡 收藏

        電機驅動電路如下圖3.8所示

        圖3.8 打印機電機驅動

        圖3.8 打印機電機驅動

        打印機電機驅動如上圖3.8所示,信號由AVR_PRINT_ON腳輸入,高電平驅動,當產生高電平時,通過三極管Q1驅動打印機打印。

        打印針的驅動如下圖3.9所示

        圖3.9 打印針驅動

        圖3.9 打印針驅動

        AVR_PRINT_A為信號輸入腳,低電平驅動,當該腳為低電平時,通過三極管Q3和Q4驅動打印針PRINT_A打印。

        3.4 其它外圍電路

        除了以上涉及核心電路外,其它比如時間顯示,數據存儲,溫度顯示等,都分別需要不同的硬件模塊提供支持。

        3.4.1 時鐘模塊

        這里時鐘采用了達拉斯的DS1302時鐘芯片,時鐘模塊電路圖如圖3.10所示

        圖3.10 DS1302時鐘模塊

        圖3.10 DS1302時鐘模塊

        該模塊采用串行工作模式,通過SCLK(Signal Clock,信號時鐘), I/O(Input And Output,輸入輸出信號),RST(Reset 復位信號)三線控制芯片工作。

        3.4.2 數據儲存模塊

        數據存儲采用了ATMEL公司的24LC64 EEPROM(可編程電可擦除存儲芯片),模塊電路圖如圖3.11所示

        圖3.11 EEPROM存儲電路

        圖3.11 EEPROM存儲電路

        該模塊采用的是標準的I2C總線模式,操作簡單方便,總容量為64Kbit,8K字節,對于存儲記錄儀的參數是綽綽有余。

        3.4.3 溫度傳感模塊

        采用的是達拉斯的DS18B20,單總線模式,模塊電路圖如圖3.12所示

        圖 3.12 溫度傳感器模塊

        圖 3.12 模塊

        溫度傳感器模塊如上圖3.1所示,DS18B20采用的是單總線模式,該數字溫度傳感器最大的的特點是,只需一個IO管腳便可以控制其工作,并且該傳感器傳感溫度精確,最小可以精確到0.0625℃。

        3.4.4 獨立按鍵模塊

        獨立按鍵模塊是提供用戶來控制和使用UI界面,原理圖如下圖3.13所示

        圖3.13 獨立按鍵電路

        圖3.13 獨立按鍵電路

        獨立按鍵電路如上圖3.13所示,每個按鍵按下時都會產生一個中斷,在設計嵌入式軟件時可以通過在按鍵中斷內判斷按鍵值,并且可以通過定時器去除抖動,這種軟件設計可以避免軟件延時去抖,從而提高了整套軟件的運行效率。

        4. 軟件系統設計

        本套軟件主要實現自行車行車記錄的智能控制,其實現的功能主要有以下幾點:

        顯示平均行車速度,實時行車速度,時間和溫度

        記錄行車速度、行車總里程、單次行車里程

        記錄總行車時間,單次行車時間

        輪胎圓周設定,總里程初值設定

        自動關機,節電保護

        行車統計信息打印

        貪吃蛇小游戲

        時間顯示和時間設置

        4.1 軟件總體框架

        軟件總體流程圖如下圖4.1所示

        圖4.1 嵌入式軟件整體流程圖

        圖4.1 嵌入式軟件整體流程圖

        4.2 軟件說明

        該嵌入式軟件設計的思想主要是模塊化的程序設計思想,其中需要驅動的模塊主要有以下幾點:

        DS1302時鐘模塊驅動

        DS18B20數字溫度傳感器模塊驅動

        24LC64 EEPROM存儲模塊驅動

        12864液晶顯示模塊驅動

        計速模塊驅動

        EPSON M-150II微型打點打印機驅動

        軟件主要包含三層結構,分別為應用層,封裝層以及驅動層。其軟件層次結構如下圖4.2所示

        圖 4.2 嵌入式軟件層次結構

        圖 4.2 嵌入式軟件層次結構

        這種軟件設計的好處是便于移植,當更換某一芯片時,只需要改變相應芯片的驅動層,而不用修改封裝和應用層,便可以使軟件繼續正常運轉。

        而如果更換單片機這一核心元件,也只需更改所有的驅動層便可以把軟件移植到其它單片機平臺,在編寫涉及到硬件的代碼時,可以盡量使用宏定義或者編寫多層結構,使底層硬件操作的代碼達到最少,從而方便移植。

        4.3 各個模塊實現原理

        4.3.1 處理器模塊

        首先在選擇CPU(Central Processing Unit,計算機中央處理器)之前,必須先分析完成這個作品所選的CPU必須具備的功能,如果CPU選的功能太過簡單就不能達到預期的效果,很多東西不能實現,而如果選擇很先進的CPU或者32位的高級單片機,首先第一個是不能充分利用這個單片機,第二是在成本上也會大幅上升,所以在選擇單片機時必須對所需要的功能進行合理的分析。

        分析情況:

        在顯示方面使用的是12864液晶的帶字庫液晶,該液晶操作簡單,只需普通的IO端口操作便可以解決控制,所以它對單片機沒有特殊的要求。

        在存儲方面,使用的是ATMEL公司的AT24LC64 EEPROM存儲器,該存儲器走的是IIC(ATMEL公司開發的兩線串行總線)總線模式,雖然可以用一般的單片機模擬IIC總線,但是為了提高效率則必須選擇具有IIC總線接口的單片機,這個一般的51單片機已經不能滿足,所以需考慮其它單片機。

        時鐘模塊,用的是達拉斯的DS1302芯片,只需普通的端口操作就能完成。

        打印機模塊,有下面的打印機實現原理(圖4.5)可知,我們必須選擇具有雙邊沿觸發的單片機,有這個功能的單片機ATMEL的AVR系列的中高端單片機能滿足,比如Atmega64及以上的單片機都具有這一功能。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 彭水| 绩溪县| 宁乡县| 宝应县| 阜新| 宁德市| 南郑县| 奉化市| 甘孜县| 定安县| 若羌县| 南靖县| 太康县| 陆河县| 城口县| 永善县| 施秉县| 双峰县| 大冶市| 莒南县| 金寨县| 历史| 临安市| 江华| 清镇市| 青浦区| 方山县| 东乡| 来凤县| 沛县| 罗平县| 浙江省| 常熟市| 赤水市| 平陆县| 阳谷县| 县级市| 忻州市| 砀山县| 安化县| 张掖市|