版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于STC89C52單片機(jī)的自行車簡(jiǎn)易數(shù)字里程表項(xiàng)目設(shè)計(jì)方案</p><p><b> 1引言</b></p><p> 在幾百年的不斷發(fā)展、不斷設(shè)計(jì)的過程中,自行車經(jīng)歷了一個(gè)漫長(zhǎng)的發(fā)展歷程,并有了較為成熟的制造技術(shù)。與此同時(shí),騎自行車也從一個(gè)單純交通使用的角色轉(zhuǎn)變成現(xiàn)在受很多人們愛好的日常休閑活動(dòng)的方式。</p><p&
2、gt; 作為使人們能夠用于鍛煉身體、日常休閑使用的重要方式,很多現(xiàn)有的功能已經(jīng)無法滿足人們的需求。社會(huì)的需求推動(dòng)著技術(shù)產(chǎn)業(yè)的發(fā)展,于自行車行業(yè)也同樣如此。人們生活質(zhì)量的提升,要求其必須具有著較為便利的輔助功能,如在騎行的過程中需要了解到行車速度,為了方便地點(diǎn)距離的測(cè)量,還要求其有著可以測(cè)量行程的功能。</p><p> 除此之外,出于上述種種理由,本設(shè)計(jì)本著在能夠滿足人們平常生活中鍛煉身體、休閑娛樂的目的,在
3、這種形勢(shì)之下,一臺(tái)方便、實(shí)用的簡(jiǎn)單數(shù)字式自行車?yán)锍瘫砭捅辉O(shè)計(jì)出來了。本設(shè)計(jì)的速度里程具有速度、里程的檢測(cè)功能,還可以顯示時(shí)間并有著清楚、明了的顯示界面。該里程表可以將當(dāng)前的自行車速度及行走的路程直接在液晶屏幕上顯示出來,在自行車上安裝也特別方便。</p><p> 為實(shí)現(xiàn)所需功能,單片機(jī)、霍爾感應(yīng)器等其它組件組合并可用液晶顯示器顯示出騎車時(shí)的速度及騎行路程是本設(shè)計(jì)的主要目標(biāo)。整個(gè)設(shè)計(jì)分為硬件部分的設(shè)計(jì)和軟件部分
4、的設(shè)計(jì)。除此之外,自行車速度里程表的設(shè)計(jì)想法、電路和器件的原理及選擇都在本文當(dāng)中有提及。</p><p> 課題目標(biāo)對(duì)計(jì)劃、軟硬件設(shè)計(jì)方案的理論驗(yàn)證,是整個(gè)設(shè)計(jì)工作開始的重要一步。接下來需要提及的便是自行車速度里程表在符合科學(xué)設(shè)計(jì)的基礎(chǔ)上,對(duì)于如何挑選芯片等元件的選擇和怎樣設(shè)計(jì)電路鋪設(shè)的走向。其中,速度里程表在軟件設(shè)計(jì)層面的設(shè)計(jì)思路及計(jì)劃也得到了很好的闡述。對(duì)于整個(gè)設(shè)計(jì)過程而言,分析討論模擬過程、找出存在的問題
5、、進(jìn)行系統(tǒng)的檢查并得出結(jié)論是作為最后的關(guān)鍵一步。</p><p> 除了STC89C52單片機(jī)外部電路以及顯示電路等具體的硬件電路和初始化、定時(shí)、中斷等子程序的軟件設(shè)計(jì)外,整個(gè)軟件設(shè)計(jì)過程中,用C語言來編寫軟件。</p><p><b> 2 設(shè)計(jì)分析要求</b></p><p><b> 2.1 設(shè)計(jì)要求</b>&
6、lt;/p><p> (1)設(shè)計(jì)一個(gè)基于單片機(jī)制作的簡(jiǎn)易自行車?yán)锍瘫怼?lt;/p><p> ?。?)顯示速度、路程等的預(yù)期目標(biāo)可以在該該設(shè)計(jì)中得以實(shí)現(xiàn)。</p><p> ?。?)騎行環(huán)境達(dá)到一定的溫度時(shí),系統(tǒng)會(huì)提示減速休息。</p><p> ?。?)當(dāng)警報(bào)響起時(shí),會(huì)反饋一條指令給電動(dòng)機(jī),拉緊剎車,使車緩慢減速。</p><
7、p> ?。?)自行車?yán)锍逃?jì)的基本工作原理能夠完全了解。</p><p><b> 2.2 方案分析</b></p><p> 構(gòu)件簡(jiǎn)單、并有著較強(qiáng)實(shí)用性的本系統(tǒng)可以通過信號(hào)采集即由計(jì)數(shù)器計(jì)算短時(shí)間內(nèi)的路程來求出平均速度,該平均速度近相似于該時(shí)刻的瞬時(shí)速度。光電對(duì)管來完成采集數(shù)據(jù)的任務(wù),并以矩形脈沖的形式輸出。</p><p> 在本
8、設(shè)計(jì)當(dāng)中有若干個(gè)按鍵,可以用來滿足自行車不同車型輪子直徑大小的設(shè)置、對(duì)數(shù)據(jù)進(jìn)行清0、調(diào)整時(shí)間等,整個(gè)設(shè)計(jì)的計(jì)數(shù)由單片機(jī)的P3.0引腳來完成。我們?cè)谠O(shè)計(jì)過程當(dāng)中,為實(shí)現(xiàn)較好的產(chǎn)品體驗(yàn),應(yīng)該全面考慮準(zhǔn)確的測(cè)量和縮短系統(tǒng)反映過程中的時(shí)間。</p><p> 采用通過脈沖頻率來得到速度這種方法雖然能夠獲得較為精確的精度,我們?cè)谟?jì)算時(shí)卻采用的理想狀態(tài)下的數(shù)據(jù),從而會(huì)有一定的誤差產(chǎn)生。誤差不可避免,我們要盡量的把不可避免的
9、誤差控制在一定的合理范圍之內(nèi)。除上述外,在編寫程序代碼時(shí),確保實(shí)現(xiàn)功能所需程序的合理編寫在整個(gè)過程當(dāng)中也是非常重要的。</p><p> 在本設(shè)計(jì)過程當(dāng)中,自行車輪胎產(chǎn)生的數(shù)字脈沖數(shù)據(jù)經(jīng)過霍爾感應(yīng)器發(fā)送給作為控制核心的單片機(jī),單片機(jī)經(jīng)過計(jì)算單位時(shí)間的數(shù)據(jù)把最終的結(jié)果顯示在顯示屏上即為單片方式的電路集成。</p><p> 容易得出結(jié)論,本設(shè)計(jì)的精確程度與霍爾元件計(jì)數(shù)的準(zhǔn)確性有著不可分割
10、的關(guān)系。也就是說,在自行車騎行這個(gè)復(fù)雜的環(huán)境中怎樣得到正確的脈沖數(shù)是完美實(shí)現(xiàn)該設(shè)計(jì)的點(diǎn)睛之筆。對(duì)于實(shí)現(xiàn)在繁雜工作環(huán)境下準(zhǔn)確的計(jì)算脈沖這個(gè)問題,采用的是使脈沖以不同高度的信號(hào)來解決該問題。</p><p> 在下坡等危險(xiǎn)容易高速騎行的路段,為了保護(hù)使用者人身安全,當(dāng)自行車速度達(dá)到預(yù)設(shè)的危險(xiǎn)值時(shí)危險(xiǎn)報(bào)警器發(fā)出警報(bào),與此同時(shí)控制剎車的微型發(fā)動(dòng)機(jī)轉(zhuǎn)動(dòng)使得剎車線拉緊從而緩慢降低速度。</p><p&g
11、t; 在夏季炎熱的天氣騎行時(shí)很容易造成中暑,為此,裝有一個(gè)溫度感應(yīng)系統(tǒng)。當(dāng)炎熱的溫度超過適合人體的極限溫度時(shí)系統(tǒng)會(huì)發(fā)出報(bào)警提示聲,并與上述原理相同緩慢降低速度。</p><p> 2.3 與傳統(tǒng)常用里程表比較</p><p> 雖然傳統(tǒng)使用磁電式的自行車?yán)锍瘫碛兄鴺?gòu)造簡(jiǎn)單并有著較為低廉的成本等優(yōu)點(diǎn),但其無法抵抗電磁波的干擾。在現(xiàn)代社會(huì)中,移動(dòng)電話被使用者隨時(shí)隨地的攜帶,移動(dòng)電話所帶來
12、的電磁波對(duì)傳統(tǒng)里程表的使用有著致命的影響。其次,當(dāng)使用者車速過快時(shí),由于過高的電壓值會(huì)使傳感器產(chǎn)生額外次脈沖從而嚴(yán)重干擾了測(cè)量的精度同時(shí)也降低了產(chǎn)品的使用體驗(yàn)。</p><p> 自行車工作的環(huán)境非常不理想,很強(qiáng)的震動(dòng)、機(jī)油形成的污垢勢(shì)必有一個(gè)適應(yīng)性強(qiáng)的產(chǎn)品才能夠滿足種種艱苦的工作要求。而在整個(gè)設(shè)計(jì)過程當(dāng)中使用適應(yīng)性、保障性強(qiáng)的霍爾傳感器很大程度上解決了此類問題,才使得設(shè)計(jì)的里程表具有優(yōu)越的使用性能。</
13、p><p><b> 3 系統(tǒng)硬件設(shè)計(jì)</b></p><p><b> 3.1 總設(shè)計(jì)方案</b></p><p> 作為MCS-51系列單片機(jī)中基本的產(chǎn)品屬于89C51增強(qiáng)型版本,CMOS可靠 其有著8位的處理單元、8k的存儲(chǔ)器(ROM)等較強(qiáng)的硬件條件。除此之外,在低功耗模式下該單片機(jī)可以在空余與掉電模式中轉(zhuǎn)換,只
14、需要軟件控制就可以。</p><p> 單片機(jī)只有在電源、時(shí)鐘、復(fù)位等硬件條件正常條件下,才可以運(yùn)行。以MCS-51單片機(jī)作為操作過程的核心,車輪的轉(zhuǎn)數(shù)以電脈沖的形式由傳感元件轉(zhuǎn)換而成并將之解決成一個(gè)單獨(dú)的芯片是本系統(tǒng)的主要目的。用單片機(jī)的定時(shí)和計(jì)數(shù)功能來實(shí)現(xiàn)路程和速度的計(jì)算,原理是每轉(zhuǎn)的脈沖數(shù)都可以由定時(shí)器和計(jì)數(shù)器計(jì)算出。</p><p> 如果輪子的周長(zhǎng)假設(shè)為C,裝q個(gè)磁鐵在輪圈上
15、,那么就會(huì)有測(cè)的的路程誤差值最大為C/q。只有一個(gè)磁鐵的時(shí)候,霍爾元件檢測(cè)到一個(gè)脈沖信號(hào),也就意味著輪子轉(zhuǎn)了一圈。并且,每當(dāng)霍爾元件檢測(cè)到脈沖信號(hào)時(shí),相應(yīng)的就會(huì)在P3.2引腳0端中斷輸入,與此同時(shí),系統(tǒng)的數(shù)量計(jì)算也會(huì)停止一次。</p><p> 由上述易得,路程的測(cè)量值即為輪子的周長(zhǎng)C*停止的次數(shù)=行程。輪子轉(zhuǎn)一圈所用的時(shí)間由單片機(jī)上的計(jì)數(shù)器可計(jì)算得出,有轉(zhuǎn)一圈所需的時(shí)間那么瞬時(shí)的速度很容易就會(huì)求得了。為了防止
16、車速過快容易發(fā)生意外事故,如果正在騎行的自行車速度達(dá)到一丁點(diǎn)設(shè)定極限值時(shí),以蜂鳴器當(dāng)作的警報(bào)設(shè)備就會(huì)發(fā)出聲響,提醒騎車的使用者。</p><p> 如圖所示即霍爾傳感器測(cè)速:</p><p> 圖3-1 霍爾傳感器測(cè)速</p><p> 把有磁性的小鋼塊固定在沒有磁性的材料制成的車輪邊緣上,自行車車輪轉(zhuǎn)動(dòng)一次就會(huì)產(chǎn)生一個(gè)脈沖在霍爾感應(yīng)器上,再由計(jì)數(shù)器來測(cè)算出轉(zhuǎn)
17、數(shù)。</p><p> 如下即為實(shí)現(xiàn)各指標(biāo)舉措:</p><p> 確?;魻栐霈F(xiàn)里程脈沖信號(hào)。</p><p> 用單片機(jī)的計(jì)數(shù)器計(jì)算霍爾元件產(chǎn)生的脈沖信號(hào)。</p><p> 通過軟件編程來加工數(shù)據(jù),為了路程數(shù)和瞬時(shí)速度可以在顯示屏中顯示。目標(biāo)是可以在單片機(jī)的控制下,由這三個(gè)舉措來使速度里程表有路程測(cè)量、速度測(cè)量并且顯示數(shù)據(jù)的功
18、能。</p><p><b> 圖3-2 系統(tǒng)框圖</b></p><p><b> 3.2 最小系統(tǒng)</b></p><p> 3.2.1 STC89C52單片機(jī)</p><p> 圖3-3 單片機(jī)內(nèi)部結(jié)構(gòu)示意圖</p><p> 一般情況下,如果將單片機(jī)用于操作
19、中連接時(shí),往往會(huì)和相應(yīng)的連接電路、設(shè)備等硬軟件結(jié)合在一起,這樣的話,一個(gè)單片機(jī)應(yīng)用系統(tǒng)才會(huì)構(gòu)成。</p><p> 圖3-4 STC89C52單片機(jī)</p><p> 作為可與MCS-51系列產(chǎn)品性能完全兼容的單片機(jī),STC89C52有著8K的可編程Flash存儲(chǔ)器,在性能上功能消耗非常低。同時(shí),STC89C52作為很多應(yīng)用系統(tǒng)非常優(yōu)質(zhì)的處理元件,得益于它那8位的大規(guī)模集成電路和能夠在
20、線編程的Flash。</p><p> 除了和其他系列的單片機(jī)功能之外,能夠在節(jié)電的情況下運(yùn)行兩種軟件。</p><p> 3.2.2 時(shí)鐘電路的設(shè)計(jì)</p><p> 振蕩時(shí)鐘與外部的時(shí)鐘組成了時(shí)鐘電路。作為協(xié)同外部的晶體產(chǎn)生振動(dòng)電路的時(shí)鐘電路,可以正常工作的前提條件是有著相同脈沖的帶動(dòng),運(yùn)行的時(shí)鐘可以提供給單片機(jī)。單片機(jī)正常工作的前提是運(yùn)行的時(shí)鐘為1,除此
21、之外,也要要求單片機(jī)工作時(shí)的頻率要在所規(guī)定的單片機(jī)工作頻率范圍之內(nèi)。</p><p> 時(shí)鐘功能正常運(yùn)轉(zhuǎn)是整個(gè)單片機(jī)各種功能運(yùn)行的重要基礎(chǔ),作為單片機(jī)的核心部分,其頻率的高低和電路的品質(zhì)與單片機(jī)的穩(wěn)定性有著非常緊密的聯(lián)系。本設(shè)計(jì)在內(nèi)、外部時(shí)鐘當(dāng)中采用內(nèi)部的時(shí)鐘方式。</p><p> 另外,輸入、輸出端分別為芯片引腳XTAL1、XTAL2的反相放大器也位于單片機(jī)里面,來組成一個(gè)振蕩器。
22、一個(gè)運(yùn)行平穩(wěn)的自己振蕩器可由可調(diào)電容及晶體振蕩器與XTAL1、XTAL2這兩個(gè)引腳連接而成。</p><p><b> 圖3-5 時(shí)鐘電路</b></p><p><b> 復(fù)位電路的設(shè)計(jì)</b></p><p> 有了RET復(fù)位輸入引腳作為單片機(jī)實(shí)現(xiàn)初始的一種方法,能夠讓程序在程序存儲(chǔ)當(dāng)中的初始地址0000H開始運(yùn)
23、行。若使單片機(jī)初始復(fù)位,則只需要在引腳RET上接通兩個(gè)周期的高電平就可以實(shí)現(xiàn),若要使其不斷的復(fù)位,則只需要RET維持高電平即可。否則,單片機(jī)不會(huì)從0地址開始運(yùn)行,除非RET從高電平降為低電平。</p><p> 首先,手動(dòng)型的復(fù)位和復(fù)位電源型復(fù)位方式構(gòu)成了單片機(jī)系統(tǒng)的復(fù)位方式。由電容的電壓不可以在短時(shí)間內(nèi)突然改變的特點(diǎn)及電容的串聯(lián)電阻構(gòu)成的復(fù)位電路可以得出,如果給整個(gè)系統(tǒng)通上電源,那么高電平將會(huì)出現(xiàn)在RST引腳
24、,除此之外,該電路的RC值可以決定高電平所持續(xù)的時(shí)間。</p><p> 且振蕩器穩(wěn)定后,如果有一個(gè)高水平在RST引腳和保持2個(gè)機(jī)器周期以上,中央處理器可以響應(yīng),此時(shí)也會(huì)重置系統(tǒng),適當(dāng)組合的RC的取值能夠使復(fù)位保證足夠的可能性。設(shè)計(jì)的該系統(tǒng)是通過按鍵復(fù)位的方式來進(jìn)行復(fù)位操作,單片機(jī)復(fù)位的前提條件是其當(dāng)RET引腳為高電平并且ALE及PSEN也為高電平輸出的引腳。</p><p> 如圖所
25、示為復(fù)位電路:</p><p><b> 圖3-6 復(fù)位電路</b></p><p> 3.3 顯示電路的設(shè)計(jì)</p><p> 將LCD1602顯示模塊用于本設(shè)計(jì),具有較為美觀的人機(jī)交互界面和直觀的信息傳遞方式使得液晶顯示器有著非常高品質(zhì)的顯示效果。除此之外,采用低電壓掃視的LCD液晶顯示器有著節(jié)能、性能穩(wěn)定易于控制、低消耗、占用CPU
26、少等優(yōu)點(diǎn)也使得這種顯示器使用范圍廣泛。</p><p> 作為專業(yè)用于呈現(xiàn)字符及數(shù)字的點(diǎn)陣式的液晶顯示模塊,有多種型號(hào)。下圖即為一般的1602液晶顯示器實(shí)物圖:</p><p> 圖3-7 液晶顯示器實(shí)物圖</p><p> 根據(jù)有無背光1602LCD顯示器分為兩個(gè)類別,而且有背光功能的厚度要厚一些。如下圖即為尺寸差別:</p><p>
27、; 圖3-8 液晶顯示模塊圖</p><p> 1602引腳說明表格如下:</p><p> 單 單片
28、機(jī)與液晶引腳連接:</p><p> 第1腳:VSS為電源地。</p><p> 第2腳:VDD接5V電源正極。</p><p> 第3腳:VO調(diào)整液晶顯示器對(duì)比度端口</p><p> 第4腳:RS依據(jù)電平高低選擇寄存器。</p><p> 第5腳:R/W依據(jù)電平高低讀寫信號(hào)線。</p>&l
29、t;p> 第6腳:E端為控制信號(hào)輸入端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><p> 第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。</p><p> 第15腳:正極接電源背光源。</p><p> 第16腳:負(fù)極接地背光源。</p><p> 圖3-9 LCD電路結(jié)構(gòu)圖</p><p&g
30、t; 液晶顯示模塊由于接地或接正極會(huì)出現(xiàn)最高或最低的對(duì)比度,我們可以通過10K的電位器來調(diào)節(jié)避免因太高的對(duì)比度而使之產(chǎn)生虛影。</p><p> 3.4 按鍵電路的設(shè)計(jì)</p><p> 按鍵作為單片機(jī)應(yīng)用中的重要組成部分,最常用的有單獨(dú)和矩陣兩種類型。本設(shè)計(jì)采用單獨(dú)型的鍵盤,并且每一個(gè)按鍵相應(yīng)的連接一個(gè)單片機(jī)端口。</p><p> 輕度接觸型開關(guān)常被用于
31、按鍵,按鍵未受到手指的壓力時(shí)其觸點(diǎn)是斷開的,只有當(dāng)手指給予其一定的壓力才會(huì)有觸點(diǎn)接觸使開關(guān)閉合,按鍵不會(huì)立即閉合或者立即斷開因?yàn)橛|點(diǎn)有一定的彈性。在按鍵閉合、斷開的過程當(dāng)中由于觸點(diǎn)具有彈性作用會(huì)發(fā)生顫動(dòng),按鍵自身的性能及使用者的操作會(huì)影響顫動(dòng)時(shí)間的長(zhǎng)短。整個(gè)按擊鍵盤的過程大概包含五個(gè)時(shí)段:</p><p> 等候時(shí)段:手指未按下鍵盤,觸點(diǎn)未接觸。</p><p> 閉合顫動(dòng)時(shí)段:手指剛
32、剛按下鍵盤,觸點(diǎn)由于彈性作用發(fā)生顫動(dòng),也必須設(shè)置顫動(dòng)延時(shí)來避免誤操作。</p><p> 穩(wěn)定時(shí)段:閉合引發(fā)的顫動(dòng)已經(jīng)結(jié)束,起作用的按鍵動(dòng)作已經(jīng)形成。</p><p> 斷開顫動(dòng)階段:手指慢慢松開按鍵時(shí),觸點(diǎn)由于彈性作用也會(huì)發(fā)生顫動(dòng),同理,也需設(shè)置顫動(dòng)延時(shí)來防止誤操作。</p><p> 鍵盤松開時(shí)段:由于機(jī)械的性能而產(chǎn)生的顫動(dòng)已消失,觸點(diǎn)恢復(fù)未接觸。<
33、/p><p> 圖3-10 按鍵電路</p><p><b> 報(bào)警電路的設(shè)計(jì)</b></p><p> 如果固定頻率的矩形的電磁波能夠由單片機(jī)的口線發(fā)出高或低的電平而產(chǎn)生,那么安裝一個(gè)喇叭就可以使頻率化成聲音。發(fā)出的頻率也可以通過調(diào)節(jié)高低電平的維持時(shí)間來改變,進(jìn)而使喇叭產(chǎn)生不一樣的聲響即使音調(diào)發(fā)生變化。</p><p&g
34、t; 在5V的電壓下,蜂鳴器正常工作,除此之外,上拉電阻也沒有必要安裝在P3接口處。重要的是,5V的電源要與三極管的發(fā)送端相連接,三極管的陰極與1K的電阻相接,電阻最后要接I0口,蜂鳴器正負(fù)極分別與三極管集電極和地相接。</p><p> 圖3-11 蜂鳴器發(fā)聲電路結(jié)構(gòu)圖</p><p> 蜂鳴器無法發(fā)出聲響,前提是正在行駛的速度小于已設(shè)的警示速度。如果行駛的速度達(dá)到了設(shè)定的警示值,
35、則蜂鳴器會(huì)發(fā)出報(bào)警的聲響,此時(shí)控制剎車的微型發(fā)動(dòng)機(jī)轉(zhuǎn)動(dòng)緩慢拉緊剎車線使速度降低。</p><p><b> 3.5 霍爾傳感器</b></p><p> 圖3-12 霍爾傳感器</p><p> 作為使用霍爾效應(yīng)制成的一種磁敏傳感器,即霍爾感應(yīng)器。</p><p> 當(dāng)我們對(duì)放在磁場(chǎng)的半導(dǎo)體、導(dǎo)體開通電流并且磁場(chǎng)
36、垂直電流,那么會(huì)有電勢(shì)差在磁場(chǎng)和電流都垂直的方向產(chǎn)生,即霍爾效應(yīng)。以霍爾效應(yīng)為基礎(chǔ)的霍爾元件,由于有著簡(jiǎn)單的構(gòu)造、較高的靈敏度、耐高溫等一系列優(yōu)點(diǎn),還能夠測(cè)出沒有轉(zhuǎn)速的情況,在環(huán)境惡劣的環(huán)境中正常工作,在檢測(cè)技術(shù)、處理信息的地方經(jīng)常顯示出它們的身影。</p><p> 磁通量的大小因傳感器內(nèi)部的轉(zhuǎn)軸轉(zhuǎn)動(dòng)而發(fā)生變化,從而得到相應(yīng)的反饋信號(hào)。由半導(dǎo)體制成的霍爾元件需要給以電流,并且將信號(hào)處理等系列功能聚焦于一張芯片
37、,霍爾元件磁場(chǎng)變大也會(huì)導(dǎo)致傳感器磁通量發(fā)生變化。</p><p> 圖3-13 霍爾傳感器外形</p><p> 霍爾傳感器的使用往往與與之匹配的組件共同使用,因?yàn)椴荒墚a(chǎn)生較大的電勢(shì)差所以會(huì)有放大器電路來進(jìn)行信號(hào)放大,也要有溫度補(bǔ)償和穩(wěn)定電壓的電路給予功能上的補(bǔ)償。上圖所示為一種型號(hào)的霍爾傳感器外觀,容易看到,其體積較小。</p><p> 圖3-14 線性霍
38、爾傳感器特性</p><p> 如上圖所示,當(dāng)磁場(chǎng)的強(qiáng)度位于B1~B2的范圍內(nèi)時(shí),輸出的電壓和外面的磁場(chǎng)強(qiáng)度之間有著較好的線性關(guān)系。也容易發(fā)現(xiàn),當(dāng)磁場(chǎng)場(chǎng)強(qiáng)超過一定范圍則電壓大小維持不變,而在一般適合騎行的環(huán)境中,霍爾傳感器的線性特性完全可以實(shí)現(xiàn)。</p><p><b> 3.6 時(shí)鐘芯片</b></p><p> 圖3-15 時(shí)鐘電路&
39、lt;/p><p> DS1302型號(hào)的芯片作為時(shí)間芯片用于本次設(shè)計(jì),作為有著微小電流充電功能的低消耗時(shí)鐘電路,在2.5V至5.5V的工作電壓下,DS1302還有著年、月、周、日、時(shí)、分、秒進(jìn)行計(jì)時(shí)等的功能。</p><p> 由于使用串行的數(shù)據(jù)傳輸方式,在其內(nèi)部還置放臨時(shí)性儲(chǔ)存信息的RAM寄存器,也就意味著即使沒有電,信息也不會(huì)失去。RST引腳、SCLK串行時(shí)鐘引腳和I/O串行數(shù)據(jù)引腳組
40、成了時(shí)鐘芯片與STC89C52的連接線。另外,計(jì)時(shí)的脈沖也由作為備用電源的Vcc2,芯片外接晶振X2提供。</p><p><b> 3.7 溫度控制</b></p><p> 炎熱的夏日街頭,很容易看到全副武裝的騎友們,為了防止陽(yáng)光的曝曬在身上覆蓋很多厚實(shí)的防護(hù)服。由于騎行過程中疲憊時(shí)精神不集中,特別容易引起中暑現(xiàn)象,在車輛川流不息的馬路上這是異常危險(xiǎn)的。在自行
41、車行程速度表內(nèi)安裝溫度感應(yīng)器就可以很好避免這類問題。</p><p> 我們?cè)O(shè)定一個(gè)自己的身體在曝曬的情況下能夠承受的最大溫度值,并輸入進(jìn)單片機(jī)系統(tǒng),也通過由蜂鳴器來警報(bào)炎熱溫度。比如說:當(dāng)我們?cè)隍T行時(shí),溫度逐漸上升到我們的設(shè)定值時(shí),系統(tǒng)通過蜂鳴器發(fā)出警報(bào)并啟動(dòng)控制剎車的微型電動(dòng)機(jī),微型發(fā)動(dòng)機(jī)轉(zhuǎn)動(dòng)從而拉緊剎車線。為了防止降速過快容易發(fā)生側(cè)翻電動(dòng)機(jī)緩慢轉(zhuǎn)動(dòng)使得車速緩緩降低,讓使用者安全的停下休息。</p&g
42、t;<p><b> 3.8 剎車系統(tǒng)</b></p><p> 圖3-16 微型發(fā)動(dòng)機(jī)控制剎車原理圖</p><p> 剎車原理:當(dāng)收到剎車的指令時(shí),單片機(jī)啟動(dòng)微型電動(dòng)機(jī),電動(dòng)機(jī)轉(zhuǎn)動(dòng)。由于電動(dòng)機(jī)與剎車線接觸的圓柱形轉(zhuǎn)輪直徑較小,故山車線被拉緊的速度較為緩慢,從而使得速度緩慢降低,避免了降速過快引發(fā)的一些意外事故。</p><p
43、> 4 設(shè)計(jì)與實(shí)現(xiàn)軟件編程</p><p> 硬件是設(shè)計(jì)的四肢,則軟件是設(shè)計(jì)的大腦。單片機(jī)的優(yōu)越性能就是可以由軟件來操作,在此過程中,科學(xué)性、正確性是整個(gè)程序設(shè)計(jì)所要遵守的原則。以先整體再部分的設(shè)計(jì)思路每層仔細(xì)分開來,再研究各層次的關(guān)系并計(jì)劃好細(xì)節(jié)。</p><p> 主程序,計(jì)算、延時(shí)、顯示及中斷等子程序組成了軟件設(shè)計(jì)。</p><p><b&g
44、t; 4.1 主程序流程</b></p><p> 本系統(tǒng)的總體流程圖如圖所示。</p><p> 圖4-1 主程序流程圖</p><p><b> 設(shè)計(jì)方案及其步驟:</b></p><p> 1. 以系統(tǒng)所需和相應(yīng)實(shí)現(xiàn)的操作為基礎(chǔ)來進(jìn)行規(guī)劃模塊。</p><p> 2.
45、 要在確定整個(gè)設(shè)計(jì)的設(shè)計(jì)平臺(tái)之后,再確定程序的設(shè)計(jì)語言及如何設(shè)計(jì)和調(diào)整各類模塊的功能。</p><p> 3. 在設(shè)計(jì)時(shí)一定要把模塊之間數(shù)據(jù)傳遞的原理了解清楚,為了增加各模塊的自主性也要減少其之間的傳遞。</p><p> 4. 保證自身清楚的思考路線,合理調(diào)整程序調(diào)用、中止的關(guān)系。</p><p><b> 4.2 顯示流程</b>&l
46、t;/p><p> 使用LCD非靜態(tài)掃描來顯示子程序,把單片機(jī)的P2.2口接到使能端口E是第一步,然后便將數(shù)據(jù)/命令選擇端RS與單片機(jī)的P2.0口接起來,D0~D7的數(shù)據(jù)端口和P0口接起來,并把顯示的數(shù)字指令傳遞到P0口。</p><p> 除上述過程,使用延時(shí)的功能把P2.2口設(shè)置為0,把P2.0口設(shè)置為1。繼續(xù)還要把P2.2端口置于1,把P2.0端口置于1,在數(shù)字顯示之前一直持續(xù)改寫數(shù)
47、據(jù)。</p><p> 圖4-2 顯示流程圖</p><p><b> 速度處理流程</b></p><p> 圖4-3 速度處理流程圖</p><p><b> 溫度處理流程</b></p><p> 圖4-4 溫度處理流程圖</p><p&g
48、t;<b> 4.4 仿真電路</b></p><p> 4.4.1 軟件簡(jiǎn)介</p><p> 除了有基本的電子設(shè)計(jì)自動(dòng)化功能外,Proteus在模仿單片機(jī)以及外部零件等方面也有著非常實(shí)用并且有效的功能。在國(guó)內(nèi)發(fā)展的短短時(shí)間內(nèi),其卓越的用戶體驗(yàn)已經(jīng)讓它在單片機(jī)及周邊行業(yè)好評(píng)如潮。</p><p> 作為風(fēng)靡世界的EDA工具,無論是從布
49、置原理圖、檢測(cè)數(shù)據(jù)還是實(shí)際電路的模擬上,Proteus都做出了非常大的貢獻(xiàn)。Proteus也在虛擬框架到實(shí)體的設(shè)計(jì)過程當(dāng)中做出了歷史性貢獻(xiàn),是多種優(yōu)秀功能軟件的結(jié)晶,并且適合于多種型號(hào)的處理支持。</p><p><b> 4.4.2 結(jié)果</b></p><p><b> 繪制仿真圖要點(diǎn):</b></p><p>&
50、lt;b> 找出所需元件。</b></p><p> 以電路圖為基礎(chǔ)進(jìn)行連接。</p><p> 運(yùn)行C程序產(chǎn)生的HEX文件來開始仿真。</p><p><b> 圖4-5 仿真圖</b></p><p><b> 5 調(diào)試與測(cè)量分析</b></p><
51、;p> 圖5-1 電路實(shí)物圖</p><p> 圖5-2 實(shí)物運(yùn)行圖</p><p> 如果在電路中最低端的系統(tǒng)電路無法運(yùn)轉(zhuǎn),檢測(cè)電源是否有正常的電壓是首先做的工作。判斷電源電壓的常用方法是用電壓表測(cè)電源接口與接地接口的電壓,看是否為5V左右。</p><p><b> 附錄</b></p><p><
52、;b> 程序</b></p><p> #include <reg52.h> //調(diào)用單片機(jī)頭文件</p><p> #define uchar unsigned char //無符號(hào)字符型 宏定義變量范圍0~255</p><p> #define uint unsigned int //無符號(hào)整型
53、宏定義變量范圍0~65535</p><p> sbit clk = P1^3; //ds1302時(shí)鐘線定義</p><p> sbit io = P1^4; //數(shù)據(jù)線</p><p> sbit rst = P1^5; //復(fù)位線</p><p> //秒 分 時(shí) 日 月 年 星期 </
54、p><p> uchar code write_add[]={0x80,0x82,0x84,0x86,0x88,0x8c,0x8a}; //寫地址</p><p> uchar code read_add[] ={0x81,0x83,0x85,0x87,0x89,0x8d,0x8b}; //讀地址</p><p> uchar code init_ds[]
55、 ={0x55,0x17,0x15,0x01,0x01,0x13,0x13}; </p><p> uchar miao,fen,shi,ri,yue,week,nian;</p><p><b> uchar i;</b></p><p> uchar t1_num,t2_num;//計(jì)時(shí)間中斷的次數(shù)</p><p
56、> unsigned long speed1,juli,time2;</p><p> float f_hz,speed_km,speed_m;</p><p> uchar TH11,TL11;</p><p> uchar flag_en; //開始計(jì)算速度使能</p><p> uchar flag_stop_en
57、; //要確定車子是否停下了</p><p> uint juli_s; //每秒走的距離</p><p> uint juli_z; //總路程</p><p> float zhijing = 0.55; //直徑 0.55M</p><p> uint s_zhijing = 55;</p&
58、gt;<p> bit flag_1s = 1; //1s</p><p> uchar menu_1; //菜單設(shè)置變量</p><p> uchar menu_2; //菜單設(shè)置變量</p><p> long zong_lc; //總量程</p><p> uc
59、har flag_200ms;</p><p> uint shudu; //定義速度的變量</p><p> uint bj_shudu = 80; //報(bào)警速度</p><p> //這三個(gè)引腳參考資料</p><p> sbit rs=P1^0; //寄存器選擇信號(hào) H:數(shù)據(jù)寄存器 L:指令寄存器</p>
60、<p> sbit rw=P1^1; //寄存器選擇信號(hào) H:數(shù)據(jù)寄存器 L:指令寄存器</p><p> sbit e =P1^2; //片選信號(hào) 下降沿觸發(fā)</p><p> uchar code table_num[]="0123456789abcdefg";</p><p><b> uchar
61、 i;</b></p><p> sbit beep = P3^7; //蜂鳴器IO口定義</p><p> /******************1ms 延時(shí)函數(shù)*******************/</p><p> void delay_1ms(uint q)</p><p><b> {</b
62、></p><p><b> uint i,j;</b></p><p> for(i=0;i<q;i++)</p><p> for(j=0;j<120;j++);</p><p><b> }</b></p><p> /***********
63、*********************************************************</p><p> * 名稱 : delay_uint()</p><p> * 功能 : 小延時(shí)。</p><p><b> * 輸入 : 無</b></p><p><b> * 輸出
64、: 無</b></p><p> ***********************************************************************/</p><p> void delay_uint(uint q)</p><p><b> {</b></p><p>
65、while(q--);</p><p><b> }</b></p><p> /********************************************************************</p><p> * 名稱 : write_com(uchar com)</p><p> *
66、 功能 : 1602命令函數(shù)</p><p> * 輸入 : 輸入的命令值</p><p><b> * 輸出 : 無</b></p><p> ***********************************************************************/</p><p> vo
67、id write_com(uchar com)</p><p><b> {</b></p><p><b> i =0;</b></p><p><b> e=0;</b></p><p><b> rs=0;</b></p>&l
68、t;p><b> rw=0;</b></p><p><b> P0=com;</b></p><p> delay_uint(3);</p><p><b> e=1;</b></p><p> delay_uint(25);</p><p
69、><b> e=0;</b></p><p><b> }</b></p><p> /********************************************************************</p><p> * 名稱 : write_data(uchar dat)</
70、p><p> * 功能 : 1602寫數(shù)據(jù)函數(shù)</p><p> * 輸入 : 需要寫入1602的數(shù)據(jù)</p><p><b> * 輸出 : 無</b></p><p> ***********************************************************************/
71、</p><p> void write_data(uchar dat)</p><p><b> {</b></p><p><b> i =0;</b></p><p><b> e=0;</b></p><p><b> rs=
72、1;</b></p><p><b> rw=0;</b></p><p><b> P0=dat;</b></p><p> delay_uint(3);</p><p><b> e=1;</b></p><p> delay_
73、uint(25);</p><p><b> e=0;</b></p><p><b> }</b></p><p> /********************************************************************</p><p> * 名稱 :
74、 write_sfm2(uchar hang,uchar add,uchar date)</p><p> * 功能 : 顯示2位十進(jìn)制數(shù),如果要讓第一行,第五個(gè)字符開始顯示"23" ,調(diào)用該函數(shù)如下</p><p> write_sfm1(1,5,23)</p><p> * 輸入 : 行,列,需要輸入1602的數(shù)據(jù)</p>
75、<p><b> * 輸出 : 無</b></p><p> ***********************************************************************/</p><p> void write_sfm2(uchar hang,uchar add,uint date)</p><
76、p><b> {</b></p><p> if(hang==1) </p><p> write_com(0x80+add);</p><p><b> else</b></p><p> write_com(0x80+0x40+add);</p><p&g
77、t; write_data(0x30+date/10%10);</p><p> write_data(0x30+date%10);</p><p><b> }</b></p><p> /********************************************************************<
78、/p><p> * 名稱 : write_sfm4(uchar hang,uchar add,uchar date)</p><p> * 功能 : 顯示2位十進(jìn)制數(shù),如果要讓第一行,第五個(gè)字符開始顯示"23" ,調(diào)用該函數(shù)如下</p><p> write_sfm1(1,5,23)</p><p> * 輸入 : 行
79、,列,需要輸入1602的數(shù)據(jù)</p><p><b> * 輸出 : 無</b></p><p> ***********************************************************************/</p><p> void write_sfm4(uchar hang,uchar add,u
80、int date)</p><p><b> {</b></p><p> if(hang==1) </p><p> write_com(0x80+add);</p><p><b> else</b></p><p> write_com(0x80+0x40
81、+add);</p><p> write_data(0x30+date/10000%10);</p><p> write_data(0x30+date/1000%10);</p><p> write_data('.');</p><p> write_data(0x30+date/100%10);</p
82、><p> write_data(0x30+date/10%10);</p><p> write_data(0x30+date%10);</p><p> write_data('k');</p><p> write_data('m');</p><p><b>
83、 }</b></p><p> void write_sfm7(uchar hang,uchar add,uint date)</p><p><b> {</b></p><p> if(hang==1) </p><p> write_com(0x80+add);</p>&l
84、t;p><b> else</b></p><p> write_com(0x80+0x40+add);</p><p> write_data(0x30+date/100000%10);</p><p> write_data(0x30+date/100000%10);</p><p> write_d
85、ata(0x30+date/10000%10);</p><p> write_data(0x30+date/1000%10);</p><p> write_data('.');</p><p> write_data(0x30+date/100%10);</p><p> write_data(0x30+dat
86、e/10%10);</p><p> write_data('k');</p><p> write_data('m');</p><p><b> }</b></p><p> /***********************lcd1602上顯示兩位十進(jìn)制數(shù)*********
87、***************/</p><p> void write_sfm1(uchar hang,uchar add,uchar date)</p><p><b> {</b></p><p> if(hang==1) </p><p> write_com(0x80+add);</p>
88、<p><b> else</b></p><p> write_com(0x80+0x40+add);</p><p> write_data(0x30+date % 10);</p><p><b> }</b></p><p> /******************
89、**************************************************</p><p> * 名稱 : write_string(uchar hang,uchar add,uchar *p)</p><p> * 功能 : 改變液晶中某位的值,如果要讓第一行,第五個(gè)字符開始顯示"ab cd ef" ,調(diào)用該函數(shù)如下</p>
90、<p> write_string(1,5,"ab cd ef;")</p><p> * 輸入 : 行,列,需要輸入1602的數(shù)據(jù)</p><p><b> * 輸出 : 無</b></p><p> ***************************************************
91、********************/</p><p> void write_string(uchar hang,uchar add,uchar *p)</p><p><b> {</b></p><p> if(hang==1) </p><p> write_com(0x80+add);</
92、p><p><b> else</b></p><p> write_com(0x80+0x40+add);</p><p><b> while(1)</b></p><p><b> {</b></p><p> if(*p == '\
93、0') break;</p><p> write_data(*p);</p><p><b> p++;</b></p><p><b> }</b></p><p><b> }</b></p><p> /**********
94、*************lcd1602上顯示兩位十進(jìn)制數(shù)************************/</p><p> void write_sfm2_ds1302(uchar hang,uchar add,uchar date)</p><p><b> {</b></p><p> if(hang==1) </p&g
95、t;<p> write_com(0x80+add);</p><p><b> else</b></p><p> write_com(0x80+0x40+add);</p><p> write_data(table_num[date / 16]);</p><p> write_data(t
96、able_num[date % 16]);</p><p><b> }</b></p><p> /*****************控制光標(biāo)函數(shù)********************/</p><p> void write_guanbiao(uchar hang,uchar add,uchar date)</p>
97、<p><b> {</b></p><p> if(hang==1) </p><p> write_com(0x80+add);</p><p><b> else</b></p><p> write_com(0x80+0x40+add);</p>&
98、lt;p> if(date == 1)</p><p> write_com(0x0f); //顯示光標(biāo)并且閃爍</p><p><b> else </b></p><p> write_com(0x0c); //關(guān)閉光標(biāo)</p><p><b> } </b>&l
99、t;/p><p> /********************************************************************</p><p> * 名稱 : init_1602()</p><p> * 功能 : 初始化1602液晶 </p><p><b> * 輸入 : 無</b>
100、;</p><p><b> * 輸出 : 無</b></p><p> ***********************************************************************/</p><p> void init_1602() //1602初始化</p><p>
101、;<b> {</b></p><p> write_com(0x38);</p><p> write_com(0x0c);</p><p> write_com(0x06);</p><p> delay_uint(1000);</p><p> write_string(1,0,
102、"sd:00km/h 00:00");</p><p> write_string(2,0,"lc:00.00km ");</p><p><b> }</b></p><p><b> // E309R</b></p><p>
103、/*************寫一個(gè)數(shù)據(jù)到對(duì)應(yīng)的地址里***************/</p><p> void write_ds1302(uchar add,uchar dat)</p><p><b> {</b></p><p> rst = 1; //把復(fù)位線拿高</p><p> for(i=
104、0;i<8;i++)</p><p> { //低位在前</p><p> clk = 0; //時(shí)鐘線拿低開始寫數(shù)據(jù)</p><p> io = add & 0x01; </p><p> add >>= 1; //把地址右移一位</p><p>
105、clk = 1; //時(shí)鐘線拿高</p><p><b> }</b></p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p> clk = 0; //時(shí)鐘線拿低開始寫數(shù)據(jù)</p><p> io =
106、 dat & 0x01;</p><p> dat >>= 1; //把數(shù)據(jù)右移一位</p><p> clk = 1; //時(shí)鐘線拿高</p><p><b> }</b></p><p> rst = 0; //復(fù)位線合低</p><p><b&
107、gt; clk = 0;</b></p><p><b> io = 0;</b></p><p><b> }</b></p><p> /*************從對(duì)應(yīng)的地址讀一個(gè)數(shù)據(jù)出來***************/</p><p> uchar read_ds130
108、2(uchar add)</p><p><b> {</b></p><p> uchar value,i;</p><p> rst = 1; //把復(fù)位線拿高</p><p> for(i=0;i<8;i++)</p><p> { //低位在前<
109、/p><p> clk = 0; //時(shí)鐘線拿低開始寫數(shù)據(jù)</p><p> io = add & 0x01; </p><p> add >>= 1; //把地址右移一位</p><p> clk = 1; //時(shí)鐘線拿高</p><p><b> }<
110、;/b></p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p> clk = 0; //時(shí)鐘線拿低開始讀數(shù)據(jù)</p><p> value >>= 1;</p><p> if(io == 1)</p&
111、gt;<p> value |= 0x80;</p><p> clk = 1; //時(shí)鐘線拿高</p><p><b> }</b></p><p> rst = 0; //復(fù)位線合低</p><p><b> clk = 0;</b></p>&l
112、t;p><b> io = 0;</b></p><p> return value; //返回讀出來的數(shù)據(jù)</p><p><b> }</b></p><p> /*************把要的時(shí)間 年月日 都讀出來***************/</p><p> voi
113、d read_time()</p><p><b> {</b></p><p> miao = read_ds1302(read_add[0]);//讀秒</p><p> fen = read_ds1302(read_add[1]);//讀分</p><p> shi = read_ds1302(re
114、ad_add[2]);//讀時(shí)</p><p> ri = read_ds1302(read_add[3]);//讀日</p><p> yue = read_ds1302(read_add[4]);//讀月</p><p> nian = read_ds1302(read_add[5]);//讀年</p><p> w
115、eek = read_ds1302(read_add[6]);//讀星期</p><p><b> }</b></p><p> /*************把要寫的時(shí)間 年月日 都寫入ds1302里***************/</p><p> void write_time()</p><p><b
116、> {</b></p><p> write_ds1302(0x8e,0x00);//打開寫保護(hù)</p><p> write_ds1302(write_add[0],miao);//寫秒</p><p> write_ds1302(write_add[1],fen);//寫分</p><p> wri
117、te_ds1302(write_add[2],shi);//寫時(shí)</p><p> write_ds1302(write_add[3],ri);//寫日</p><p> write_ds1302(write_add[4],yue);//寫月</p><p> write_ds1302(write_add[5],nian);//寫星期</p
118、><p> write_ds1302(write_add[6],week);//寫年</p><p> write_ds1302(0x8e,0x80);//關(guān)閉寫保護(hù)</p><p><b> }</b></p><p> /*************把數(shù)據(jù)保存到ds1302 RAM中**0-31******
119、*******/</p><p> void write_ds1302ram(uchar add,uchar dat)</p><p><b> {</b></p><p> add <<= 1; //地址是從第二位開始的</p><p> add &= 0xfe; //把最低位清
120、零 是寫的命令</p><p> add |= 0xc0; //地址最高兩位為 1 </p><p> write_ds1302(0x8e,0x00);</p><p> write_ds1302(add,dat);</p><p> write_ds1302(0x8e,0x80);</p><p>
121、<b> }</b></p><p> /*************把數(shù)據(jù)從ds1302 RAM讀出來**0-31*************/</p><p> uchar read_ds1302ram(uchar add)</p><p><b> {</b></p><p> add
122、<<= 1; //地址是從第二位開始的</p><p> add |= 0x01; //把最高位置1 是讀命令</p><p> add |= 0xc0; //地址最高兩位為 1 </p><p> return(read_ds1302(add));</p><p><b> }</b
123、></p><p> /*************初始化ds1302時(shí)間***************/</p><p> void init_ds1302()</p><p><b> {</b></p><p><b> uchar i;</b></p><p&
124、gt; rst = 0;//第一次讀寫數(shù)據(jù)時(shí)要把IO品拿低</p><p><b> clk = 0;</b></p><p><b> io = 0;</b></p><p> i = read_ds1302ram(30); </p><p> if(i != 3)</p&g
125、t;<p><b> {</b></p><p><b> i = 3;</b></p><p> write_ds1302ram(30,i);</p><p> write_ds1302(0x8e,0x00); //打開寫保護(hù)</p><p> f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- stc89c52單片機(jī).pdf
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- 基于stc89c52單片機(jī)紅外測(cè)溫系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的自行車速度及里程表設(shè)計(jì)
- stc89c52單片機(jī)畢業(yè)論文
- 基于stc89c52單片機(jī)-紅外智能循跡小車
- 基于stc89c52單片機(jī)溫度報(bào)警器
評(píng)論
0/150
提交評(píng)論