基于AVR單片機(jī)的自行車行車記錄儀,包括軟硬件具體
電機(jī)驅(qū)動(dòng)電路如下圖3.8所示
圖3.8 打印機(jī)電機(jī)驅(qū)動(dòng)
打印機(jī)電機(jī)驅(qū)動(dòng)如上圖3.8所示,信號(hào)由AVR_PRINT_ON腳輸入,高電平驅(qū)動(dòng),當(dāng)產(chǎn)生高電平時(shí),通過(guò)三極管Q1驅(qū)動(dòng)打印機(jī)打印。
打印針的驅(qū)動(dòng)如下圖3.9所示
圖3.9 打印針驅(qū)動(dòng)
AVR_PRINT_A為信號(hào)輸入腳,低電平驅(qū)動(dòng),當(dāng)該腳為低電平時(shí),通過(guò)三極管Q3和Q4驅(qū)動(dòng)打印針PRINT_A打印。
3.4 其它外圍電路
除了以上涉及核心電路外,其它比如時(shí)間顯示,數(shù)據(jù)存儲(chǔ),溫度顯示等,都分別需要不同的硬件模塊提供支持。
3.4.1 時(shí)鐘模塊
這里時(shí)鐘采用了達(dá)拉斯的DS1302時(shí)鐘芯片,時(shí)鐘模塊電路圖如圖3.10所示
圖3.10 DS1302時(shí)鐘模塊
該模塊采用串行工作模式,通過(guò)SCLK(Signal Clock,信號(hào)時(shí)鐘), I/O(Input And Output,輸入輸出信號(hào)),RST(Reset 復(fù)位信號(hào))三線控制芯片工作。
3.4.2 數(shù)據(jù)儲(chǔ)存模塊
數(shù)據(jù)存儲(chǔ)采用了ATMEL公司的24LC64 EEPROM(可編程電可擦除存儲(chǔ)芯片),模塊電路圖如圖3.11所示
圖3.11 EEPROM存儲(chǔ)電路
該模塊采用的是標(biāo)準(zhǔn)的I2C總線模式,操作簡(jiǎn)單方便,總?cè)萘繛?4Kbit,8K字節(jié),對(duì)于存儲(chǔ)記錄儀的參數(shù)是綽綽有余。
3.4.3 溫度傳感模塊
溫度傳感器采用的是達(dá)拉斯的DS18B20,單總線模式,溫度傳感器模塊電路圖如圖3.12所示
圖 3.12 溫度傳感器模塊
溫度傳感器模塊如上圖3.1所示,DS18B20采用的是單總線模式,該數(shù)字溫度傳感器最大的的特點(diǎn)是,只需一個(gè)IO管腳便可以控制其工作,并且該傳感器傳感溫度精確,最小可以精確到0.0625℃。
3.4.4 獨(dú)立按鍵模塊
獨(dú)立按鍵模塊是提供用戶來(lái)控制和使用UI界面,原理圖如下圖3.13所示
圖3.13 獨(dú)立按鍵電路
獨(dú)立按鍵電路如上圖3.13所示,每個(gè)按鍵按下時(shí)都會(huì)產(chǎn)生一個(gè)中斷,在設(shè)計(jì)嵌入式軟件時(shí)可以通過(guò)在按鍵中斷內(nèi)判斷按鍵值,并且可以通過(guò)定時(shí)器去除抖動(dòng),這種軟件設(shè)計(jì)可以避免軟件延時(shí)去抖,從而提高了整套軟件的運(yùn)行效率。
4. 軟件系統(tǒng)設(shè)計(jì)
本套軟件主要實(shí)現(xiàn)自行車行車記錄的智能控制,其實(shí)現(xiàn)的功能主要有以下幾點(diǎn):
顯示平均行車速度,實(shí)時(shí)行車速度,時(shí)間和溫度
記錄行車速度、行車總里程、單次行車?yán)锍?p>記錄總行車時(shí)間,單次行車時(shí)間
輪胎圓周設(shè)定,總里程初值設(shè)定
自動(dòng)關(guān)機(jī),節(jié)電保護(hù)
行車統(tǒng)計(jì)信息打印
貪吃蛇小游戲
時(shí)間顯示和時(shí)間設(shè)置
4.1 軟件總體框架
軟件總體流程圖如下圖4.1所示
圖4.1 嵌入式軟件整體流程圖
4.2 軟件說(shuō)明
該嵌入式軟件設(shè)計(jì)的思想主要是模塊化的程序設(shè)計(jì)思想,其中需要驅(qū)動(dòng)的模塊主要有以下幾點(diǎn):
DS1302時(shí)鐘模塊驅(qū)動(dòng)
DS18B20數(shù)字溫度傳感器模塊驅(qū)動(dòng)
24LC64 EEPROM存儲(chǔ)模塊驅(qū)動(dòng)
12864液晶顯示模塊驅(qū)動(dòng)
霍爾傳感器計(jì)速模塊驅(qū)動(dòng)
EPSON M-150II微型打點(diǎn)打印機(jī)驅(qū)動(dòng)
軟件主要包含三層結(jié)構(gòu),分別為應(yīng)用層,封裝層以及驅(qū)動(dòng)層。其軟件層次結(jié)構(gòu)如下圖4.2所示
圖 4.2 嵌入式軟件層次結(jié)構(gòu)
這種軟件設(shè)計(jì)的好處是便于移植,當(dāng)更換某一芯片時(shí),只需要改變相應(yīng)芯片的驅(qū)動(dòng)層,而不用修改封裝和應(yīng)用層,便可以使軟件繼續(xù)正常運(yùn)轉(zhuǎn)。
而如果更換單片機(jī)這一核心元件,也只需更改所有的驅(qū)動(dòng)層便可以把軟件移植到其它單片機(jī)平臺(tái),在編寫涉及到硬件的代碼時(shí),可以盡量使用宏定義或者編寫多層結(jié)構(gòu),使底層硬件操作的代碼達(dá)到最少,從而方便移植。
4.3 各個(gè)模塊實(shí)現(xiàn)原理
4.3.1 處理器模塊
首先在選擇CPU(Central Processing Unit,計(jì)算機(jī)中央處理器)之前,必須先分析完成這個(gè)作品所選的CPU必須具備的功能,如果CPU選的功能太過(guò)簡(jiǎn)單就不能達(dá)到預(yù)期的效果,很多東西不能實(shí)現(xiàn),而如果選擇很先進(jìn)的CPU或者32位的高級(jí)單片機(jī),首先第一個(gè)是不能充分利用這個(gè)單片機(jī),第二是在成本上也會(huì)大幅上升,所以在選擇單片機(jī)時(shí)必須對(duì)所需要的功能進(jìn)行合理的分析。
分析情況:
在顯示方面使用的是12864液晶的帶字庫(kù)液晶,該液晶操作簡(jiǎn)單,只需普通的IO端口操作便可以解決控制,所以它對(duì)單片機(jī)沒(méi)有特殊的要求。
在存儲(chǔ)方面,使用的是ATMEL公司的AT24LC64 EEPROM存儲(chǔ)器,該存儲(chǔ)器走的是IIC(ATMEL公司開發(fā)的兩線串行總線)總線模式,雖然可以用一般的單片機(jī)模擬IIC總線,但是為了提高效率則必須選擇具有IIC總線接口的單片機(jī),這個(gè)一般的51單片機(jī)已經(jīng)不能滿足,所以需考慮其它單片機(jī)。
時(shí)鐘模塊,用的是達(dá)拉斯的DS1302芯片,只需普通的端口操作就能完成。
打印機(jī)模塊,有下面的打印機(jī)實(shí)現(xiàn)原理(圖4.5)可知,我們必須選擇具有雙邊沿觸發(fā)的單片機(jī),有這個(gè)功能的單片機(jī)ATMEL的AVR系列的中高端單片機(jī)能滿足,比如Atmega64及以上的單片機(jī)都具有這一功能。
評(píng)論