軟件思路和具體實(shí)現(xiàn)
發(fā)布時間:2012/6/12 19:35:22 訪問次數(shù):1087
說起單片機(jī)測速,最簡單也TMP68301AF16最容易實(shí)現(xiàn)的方法之一就是使用其內(nèi)部的定時器:一個定時器作計數(shù)功能,用來對測速探頭送來的脈>中信號計數(shù),另一個定時器則作定時功能,定時時間為1秒,每次將用作圖5里程表電路原理098無線電己Oll計數(shù)的定時器打開1秒,1秒到則關(guān)閉。但這種方式需要兩個定時器,而前文已提到用于測速的定時器只剩一個,另一個已用作串口通信的波特率發(fā)生器,要測速就必須要給單片機(jī)提供一個秒信號,而這個矛盾剛好可由PCF8563來解決,其第7腳為可編程時鐘輸出,所輸出的頻率范圍剛好就有秒信號,因此單片機(jī)復(fù)位后,程序開始運(yùn)行時第一件事就是對PCF8563作相應(yīng)設(shè)置,使其輸出秒信號作為單片機(jī)的外中斷1的中斷信號,用來測量速度。而里程的計量則在外中斷O中進(jìn)行,這里將利用PCF8563的第3腳,輸出1024kHz的脈>中,讓2051的外中斷o每秒中斷1024次,用于計量行駛里程,這樣一來就解決了里程表基本功能實(shí)觀的問題,從而實(shí)現(xiàn)了對它的充分利用。至于額外的時間顯示功能,PCF8563本身就是用作實(shí)時時鐘的,所以問題自然也就迎刃而解了。
行駛里程數(shù)存儲于AT24C01中,要注意一點(diǎn)的就是,AT24C01的讀寫次數(shù)一般是大干1萬次,因而程序中就要注意向其寫入數(shù)據(jù)的次數(shù)問題。假如我們每天上班騎行一個來回是40公里,每行駛一公里寫一次里程數(shù),則每天要寫40次,一年下來就要擦寫14600次,這個頻率肯定會讓AT24C01提早報廢。解決辦法是在按鍵程序中用按鍵來定義存儲功能,到達(dá)目的地后,用按鍵來存儲數(shù)據(jù),這樣一來,每天的擦寫次數(shù)就變?yōu)閮纱瘟耍珹T24C01的使用年限將達(dá)十年的樣子。
本文所提供的程序相對較大,有九百多行,全部使用匯編語言,采用模塊化編程,因而源碼雖然較多,但還是很容易理解,里面包括軟件模擬I2C通信的子程序和雙字節(jié)的乘法子程序,都很實(shí)用,大家可以將之移植到自己其他的程序中去。當(dāng)然所提供的程序仍有很多能改進(jìn)的地方,讀者可以在源碼基礎(chǔ)上作更多的優(yōu)化,使之更合理,效率更高。
行駛里程數(shù)存儲于AT24C01中,要注意一點(diǎn)的就是,AT24C01的讀寫次數(shù)一般是大干1萬次,因而程序中就要注意向其寫入數(shù)據(jù)的次數(shù)問題。假如我們每天上班騎行一個來回是40公里,每行駛一公里寫一次里程數(shù),則每天要寫40次,一年下來就要擦寫14600次,這個頻率肯定會讓AT24C01提早報廢。解決辦法是在按鍵程序中用按鍵來定義存儲功能,到達(dá)目的地后,用按鍵來存儲數(shù)據(jù),這樣一來,每天的擦寫次數(shù)就變?yōu)閮纱瘟耍珹T24C01的使用年限將達(dá)十年的樣子。
本文所提供的程序相對較大,有九百多行,全部使用匯編語言,采用模塊化編程,因而源碼雖然較多,但還是很容易理解,里面包括軟件模擬I2C通信的子程序和雙字節(jié)的乘法子程序,都很實(shí)用,大家可以將之移植到自己其他的程序中去。當(dāng)然所提供的程序仍有很多能改進(jìn)的地方,讀者可以在源碼基礎(chǔ)上作更多的優(yōu)化,使之更合理,效率更高。
說起單片機(jī)測速,最簡單也TMP68301AF16最容易實(shí)現(xiàn)的方法之一就是使用其內(nèi)部的定時器:一個定時器作計數(shù)功能,用來對測速探頭送來的脈>中信號計數(shù),另一個定時器則作定時功能,定時時間為1秒,每次將用作圖5里程表電路原理098無線電己Oll計數(shù)的定時器打開1秒,1秒到則關(guān)閉。但這種方式需要兩個定時器,而前文已提到用于測速的定時器只剩一個,另一個已用作串口通信的波特率發(fā)生器,要測速就必須要給單片機(jī)提供一個秒信號,而這個矛盾剛好可由PCF8563來解決,其第7腳為可編程時鐘輸出,所輸出的頻率范圍剛好就有秒信號,因此單片機(jī)復(fù)位后,程序開始運(yùn)行時第一件事就是對PCF8563作相應(yīng)設(shè)置,使其輸出秒信號作為單片機(jī)的外中斷1的中斷信號,用來測量速度。而里程的計量則在外中斷O中進(jìn)行,這里將利用PCF8563的第3腳,輸出1024kHz的脈>中,讓2051的外中斷o每秒中斷1024次,用于計量行駛里程,這樣一來就解決了里程表基本功能實(shí)觀的問題,從而實(shí)現(xiàn)了對它的充分利用。至于額外的時間顯示功能,PCF8563本身就是用作實(shí)時時鐘的,所以問題自然也就迎刃而解了。
行駛里程數(shù)存儲于AT24C01中,要注意一點(diǎn)的就是,AT24C01的讀寫次數(shù)一般是大干1萬次,因而程序中就要注意向其寫入數(shù)據(jù)的次數(shù)問題。假如我們每天上班騎行一個來回是40公里,每行駛一公里寫一次里程數(shù),則每天要寫40次,一年下來就要擦寫14600次,這個頻率肯定會讓AT24C01提早報廢。解決辦法是在按鍵程序中用按鍵來定義存儲功能,到達(dá)目的地后,用按鍵來存儲數(shù)據(jù),這樣一來,每天的擦寫次數(shù)就變?yōu)閮纱瘟耍珹T24C01的使用年限將達(dá)十年的樣子。
本文所提供的程序相對較大,有九百多行,全部使用匯編語言,采用模塊化編程,因而源碼雖然較多,但還是很容易理解,里面包括軟件模擬I2C通信的子程序和雙字節(jié)的乘法子程序,都很實(shí)用,大家可以將之移植到自己其他的程序中去。當(dāng)然所提供的程序仍有很多能改進(jìn)的地方,讀者可以在源碼基礎(chǔ)上作更多的優(yōu)化,使之更合理,效率更高。
行駛里程數(shù)存儲于AT24C01中,要注意一點(diǎn)的就是,AT24C01的讀寫次數(shù)一般是大干1萬次,因而程序中就要注意向其寫入數(shù)據(jù)的次數(shù)問題。假如我們每天上班騎行一個來回是40公里,每行駛一公里寫一次里程數(shù),則每天要寫40次,一年下來就要擦寫14600次,這個頻率肯定會讓AT24C01提早報廢。解決辦法是在按鍵程序中用按鍵來定義存儲功能,到達(dá)目的地后,用按鍵來存儲數(shù)據(jù),這樣一來,每天的擦寫次數(shù)就變?yōu)閮纱瘟耍珹T24C01的使用年限將達(dá)十年的樣子。
本文所提供的程序相對較大,有九百多行,全部使用匯編語言,采用模塊化編程,因而源碼雖然較多,但還是很容易理解,里面包括軟件模擬I2C通信的子程序和雙字節(jié)的乘法子程序,都很實(shí)用,大家可以將之移植到自己其他的程序中去。當(dāng)然所提供的程序仍有很多能改進(jìn)的地方,讀者可以在源碼基礎(chǔ)上作更多的優(yōu)化,使之更合理,效率更高。
上一篇:人機(jī)對話裝置
上一篇:單片機(jī)的選型
熱門點(diǎn)擊
- 機(jī)器人制作體驗(yàn)
- 軟件思路和具體實(shí)現(xiàn)
- 采用陶瓷振子的電路
- 開關(guān)電源的基本要素
- 驅(qū)動輸出的波形
- 程序講解
- 機(jī)器人
- 賣際的振蕩波形-Cl、C2的重要性
- 小牢的整體控制系統(tǒng)
- 制作與使用
推薦技術(shù)資料
- F28P65x C2000 實(shí)時微控制器
- ARM Cortex-M33 內(nèi)核̴
- 氮化鎵二極管和晶體管̴
- Richtek RT5716設(shè)
- 新一代旗艦芯片麒麟9020應(yīng)用
- 新品WTOLC-4X50H32
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究