文/楊海東 白書華 周康樂,南昌理工學(xué)院
在將近兩百年以前,世界上第一輛類似自行車的工具在法國誕生,被稱之為木馬輪。當(dāng)時(shí)的自行車和現(xiàn)在的在進(jìn)行車有很大的不同,因?yàn)闆]有鏈條所以需要人們用腳踩著地來前進(jìn)。而經(jīng)過兩百多年的發(fā)展,自行車除了被越來越多的人們所接受外,他的功能也從最早的代步工具發(fā)展成為現(xiàn)在集娛樂、競技、鍛煉等多功能為一體。隨著生活條件越來越好,人們對于生活品質(zhì)各方面的要求也都越來越高。一輛普普通通的自行車已經(jīng)不能滿足人們的需要了,人們希望自行車能和汽車一樣,能直觀的看到自己騎車的里程和速度,有過速報(bào)警功能,有些利用騎車來鍛煉的人想要它能夠計(jì)算出自己通過騎車所消耗的熱量,這種種需求導(dǎo)致了自行車?yán)锍瘫淼某霈F(xiàn)。
自行車速度里程表的主要構(gòu)造是以霍爾元件和單片機(jī)為核心,在 LED 數(shù)碼上管顯示出當(dāng)前的行車速度和里程。本文會詳細(xì)介紹自行車?yán)锍瘫淼脑O(shè)計(jì)方案,包含它的設(shè)計(jì)思路,電路原理以及各部件的選擇和功能,這些被分為軟件和硬件兩部分分別說明。硬件部分如上所述,而在軟件部分的設(shè)計(jì)過程中,我們采用模塊化構(gòu)建方法來設(shè)計(jì)相關(guān)軟件部分,單片機(jī)可以看做有多個(gè)功能模塊組成的一個(gè)半智能系統(tǒng),采用模塊化設(shè)計(jì)方便我們分類設(shè)計(jì),可以讓復(fù)雜的設(shè)計(jì)簡單化,而且在設(shè)計(jì)完成后的調(diào)試過程中也更加方便。我們通過編譯相應(yīng)的程序讓單片機(jī)具有計(jì)速和計(jì)算里程的功能,并通過 LED顯示出來。
Proteus是一款由英國公司開發(fā)的EDA工具軟件,它除了有一般EDA工具軟件的仿真功能之外,還能仿真單片機(jī)和外圍器件 [11]。它可以實(shí)現(xiàn)數(shù)字電路、模擬電路及為控制系統(tǒng)及為控制系統(tǒng)和外設(shè)的混合電路系統(tǒng)的短路仿真、系統(tǒng)協(xié)同仿真和PCB設(shè)計(jì)等全部功能,可以在還沒有目標(biāo)原型時(shí)對系統(tǒng)進(jìn)行調(diào)試和驗(yàn)證。我們利用proteus軟件來對我們的構(gòu)想進(jìn)行仿真。Proteus軟件能夠?qū)ξ覀兊脑聿季€我們可以根據(jù)系統(tǒng)提供的錯(cuò)誤檢查報(bào)告來修改原理圖,道通過電器檢查規(guī)則位置。除此之外,proteus將源代碼的編輯和編譯放到了同一個(gè)設(shè)計(jì)環(huán)境中,使用者可以在設(shè)計(jì)中同事編輯代碼,可以讓我們更加清晰直觀的觀察到源程序修改后對仿真結(jié)果的影響。我們可以在仿真的過程中不斷的完善硬件電路和軟件程序,而不必?fù)?dān)心損耗,以達(dá)到本次設(shè)計(jì)理想結(jié)果。
硬件調(diào)試是在 proteus 上進(jìn)行的,因?yàn)?proteus 的強(qiáng)大功能,所以很多錯(cuò)誤它都能主動發(fā)現(xiàn)并提示我們,而我們最需要注意問題是首先,硬件的整體設(shè)計(jì)是否有問題,再是各個(gè)元器件之間的連線是否正確,其次就是管腳電壓是否正常。不管是電壓過高還是過低都會導(dǎo)致芯片不能正常工作。如果是實(shí)物調(diào)試的話,需要注意的就是采樣問題,霍爾傳感器是在有穩(wěn)定磁場的情況下才會正常通導(dǎo),如果戶外調(diào)試的話則要注意不能讓信號齒間進(jìn)入鐵屑之類的東西,不然會影響磁場導(dǎo)致顯示出錯(cuò)。
自行車速度里程表的調(diào)試過程中軟件調(diào)試是一個(gè)很重要的部分,因?yàn)樗麤]有硬件故障那么易于發(fā)現(xiàn),甚至于出錯(cuò)了也不能立即發(fā)現(xiàn)。在軟件調(diào)試的過程中,我遇到的問題大概有以下幾點(diǎn):
(1)首先,在編寫單片機(jī)軟件的時(shí)候,給變量定義出現(xiàn)了問題。因?yàn)樵?C 語言里我們大多是使用 int 來定義變量。可是當(dāng)變量過多的話,使用 int 就會導(dǎo)致最后生成的 HEX 文件太大。單片機(jī)的內(nèi)部存儲空間是有限的,當(dāng)我發(fā)現(xiàn) int 型的問題之后,我改用 unsigned char 型來定義變量。然而使用的數(shù)據(jù)的值大于 256 的話,數(shù)據(jù)就會出,這樣在顯示的時(shí)候,如果數(shù)據(jù)過大就會導(dǎo)致數(shù)據(jù)顯示錯(cuò)誤,因此 unsigned 也不能使用。經(jīng)過查閱資料,我確定使用 unsigned int 型或者 short。
(2)我們想將一個(gè)數(shù)組的值一次性賦值給另一個(gè)數(shù)組進(jìn)行保存,但會發(fā)現(xiàn)編譯
報(bào)錯(cuò)。這是因?yàn)閿?shù)組名只是首地址,并不能整體賦值。如果我們要保存該數(shù)組,我們可以用 for 循環(huán)或指針給數(shù)組一一進(jìn)行賦值。
(3)程序的時(shí)序問題。
本系統(tǒng)操作簡單,易于實(shí)現(xiàn)。硬件部分采用的器件應(yīng)用較廣泛,且價(jià)格低廉,如AT89C52 單片機(jī)、D 觸發(fā)器 74LS74、存儲器24C02、驅(qū)動器 74LS244 等。這就意味著所有的器件功能比較強(qiáng)大、穩(wěn)定。尤其是本次設(shè)計(jì)的核心元件 AT89C52 單片機(jī),軟件技術(shù)成熟,并具有種類齊全的支持芯片。這類微處理器既可用作控制器又適合于做數(shù)據(jù)處理,而且成本也甚是低廉。軟件采用模塊化設(shè)計(jì),可讀性強(qiáng),方便二次開發(fā)。而本次設(shè)計(jì)的自行車速度里程表具有廣泛的應(yīng)用前景,基于如此簡單的電路設(shè)計(jì)和低廉的成本,便能夠滿足人們對于高性能、多功能自行車?yán)锍瘫淼男枨螅軌驊?yīng)用于家用和測試等各種場合。除此之外,這次設(shè)計(jì)的自行車速度里程表只是做了比較基本的功能,隨著社會的發(fā)展和人們需求的提高,自行車速度里程表還有大量的可拓展空間。市場上比較常見的功能有心律檢測功能、MP3 功能、卡路里消耗查詢等等,這些功能我們都能夠通過對單片機(jī)芯片的二次開發(fā)來實(shí)現(xiàn)。
[1] 張毅剛,劉杰. MCS-51 單片機(jī)原理及應(yīng)用[M].哈爾濱工業(yè)大學(xué)出版社,2004.
[2] 單祥茹.基礎(chǔ)元件介——紹傳感器(三)[J].中國電子商情:基礎(chǔ)電子,2011,(12).:P81—P82,84.
[3] 廖志凌. 基于 DSP 的混合有源電力濾波系統(tǒng)的研究與實(shí)現(xiàn)[D].江蘇大學(xué),2003.