




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、四川師范大學(xué)成都學(xué)院電子工程學(xué)院課程設(shè)計(jì)報(bào)告汽車速度里程表的設(shè)計(jì)摘要:在車輛高速行駛的過程中,車速里程表是為駕駛員及時提供動態(tài)駕駛信息的重要儀表,它的好壞直接影響到車輛行駛安全。而傳統(tǒng)的車速里程表存在兩大缺陷:一是用軟軸驅(qū)動的傳統(tǒng)車速里程表在車輛高速行駛狀態(tài)下,軟軸高速旋轉(zhuǎn),由于軟軸鋼絲應(yīng)力極限的限制,常常造成鋼絲軟軸的疲勞斷裂,從而使車速里程表失效;二是由于軟軸布線過長,出現(xiàn)形變過大和運(yùn)動遲滯現(xiàn)象,導(dǎo)致動態(tài)指示遲鈍或指示錯誤。為了更加及時可靠的為駕駛員提供動態(tài)駕駛信息,保證車輛行駛安全,客服傳統(tǒng)軟軸驅(qū)動車速里程表故障率高、動態(tài)指示遲鈍等問題,運(yùn)用先進(jìn)的電子技術(shù)、傳感器測量技術(shù)和計(jì)算機(jī)智能技術(shù)
2、,改進(jìn)傳統(tǒng)的里程表是非常必要的。關(guān)鍵字:單片機(jī),霍爾傳感器,車速里程表Abstract: In the process of high-speed vehicles, vehicle speed odometer is important instrument driver to provide dynamic driving information, which directly affects the running safety of vehicles. The speedometer tradition has two defects: one is the traditional s
3、peedometer flexible shaft driving the vehicle high speed running condition, the shaft rotating speed, the flexible shaft steel wire stress limit, often resulting in fatigue fracture of the wire flexible shaft, so that the speedometer failure; two is a flexible wiring is too long due to deformation,
4、appear too large and the motion lag, lead to dynamic indicating slow or indication error. In order to be more reliable and timely to the drivers driving dynamic information, guarantee the driving safety, the problem of high failure rate, the speedometer dynamic indicating slow service traditional fl
5、exible shaft driving, the use of electronic technology, sensor technology and computer intelligence technology advanced, the improvement of the traditional odometer is very necessary. Key words:The microcontroller, hall sensors, memory,The speedometerI目 錄前 言11 系統(tǒng)概述22 基本原理與設(shè)計(jì)方案22.1 霍爾傳感器簡介32.2 AT89C2
6、051芯片簡介42.3 液晶顯示模塊SED1520芯片介紹52.3.1 SED1520芯片介紹52.3.2 SED1520的特性62.3.3 SED1520指令與顯示RAM結(jié)構(gòu)62.4 定時器/計(jì)數(shù)器的結(jié)構(gòu)72.5 定時計(jì)數(shù)器的原理72.6 頻率測量83 系統(tǒng)硬件設(shè)計(jì)83.1 信號預(yù)處理電路83.2 施密特觸發(fā)器93.3 液晶顯示電路和數(shù)據(jù)存儲電路104 系統(tǒng)軟件設(shè)計(jì)114.1 電機(jī)轉(zhuǎn)速控制模塊程序設(shè)計(jì)124.2 頻率測量模塊程序設(shè)計(jì)124.3 液晶顯示程序的設(shè)計(jì)154.4 速度、里程顯示程序的設(shè)計(jì)154.5 模塊程序設(shè)計(jì)185 軟件調(diào)試205.1 程序的查錯手段205.2 源程序的檢測215
7、.3 源程序的調(diào)試216 設(shè)計(jì)總結(jié)22參考文獻(xiàn)23前 言 汽車是現(xiàn)代生活中不可或缺的一種重要交通工具,傳統(tǒng)的指針式里程表伴隨著汽車的誕生就一直為人們喜愛,不過,新生事物不會因傳統(tǒng)的存在而停止它前進(jìn)的步伐。數(shù)碼科技在今天已滲透到工業(yè),農(nóng)業(yè),民用等產(chǎn)品的點(diǎn)點(diǎn)滴滴。新概念的車速里程表最直觀的變化就是用大屏幕的液晶取代指針式表盤,直接用數(shù)字顯示速度和里程,以及其他一些諸如油耗、時鐘、環(huán)境溫度等參數(shù),直觀的呈現(xiàn)給使用者。同時,它還具有成本低廉,顯示清晰,穩(wěn)定可靠等優(yōu)點(diǎn)。由于單片機(jī)體積小,可以把它做到產(chǎn)品的內(nèi)部,取代老式機(jī)械零件,縮小產(chǎn)品體積,增強(qiáng)功能,實(shí)現(xiàn)智能化。因此被廣泛地用在智能產(chǎn)品中。Intel公
8、司的MCS-51系列單片機(jī)近年來得到了廣泛流行。本文即介紹一種基于AT89C2051單片機(jī)的汽車速度與里程表的設(shè)計(jì)和實(shí)現(xiàn)。本設(shè)計(jì)以AT89C2051為核心,利用單片機(jī)的運(yùn)算和控制功能,采用串口液晶顯示模塊實(shí)時顯示所測汽車的速度和里程設(shè)計(jì)方案。由于使用了串口液晶顯示模塊和E2PROM,以及高效快速算法,因而可在節(jié)約系統(tǒng)資源和簡化程序設(shè)計(jì)的基礎(chǔ)上保證測量精度和系統(tǒng)實(shí)時性。本文先對里程表設(shè)計(jì)中所需設(shè)備作詳細(xì)介紹,再對設(shè)計(jì)中存在的問題進(jìn)行了說明,對硬件部分和軟件部分的設(shè)計(jì)和實(shí)現(xiàn)作認(rèn)真的分析。1 系統(tǒng)概述本系統(tǒng)由信號采集處理模塊、單片機(jī)AT89C2051、系統(tǒng)化LCD顯示模塊、系統(tǒng)軟件組成。系統(tǒng)軟件包括
9、單片機(jī)和液晶模塊的初始化模塊、液晶模塊的寫數(shù)據(jù)命令子模塊、周期測量模塊、速度里程計(jì)算模塊、數(shù)據(jù)存儲模塊、速度和里程顯示數(shù)據(jù)轉(zhuǎn)BCD碼模塊、顯示數(shù)據(jù)消多余零模塊、數(shù)據(jù)顯示模塊以及實(shí)時中斷服務(wù)模塊等。其中,信號采集處理模塊以霍爾傳感器為核心器件,將不同的轉(zhuǎn)速信號轉(zhuǎn)換成相應(yīng)的脈沖信號,并送到單片機(jī)的T1引腳;對單片機(jī)進(jìn)行設(shè)置,使內(nèi)部的定時器/計(jì)數(shù)器timer0工作在定時狀態(tài),timer1工作在計(jì)數(shù)狀態(tài),利用內(nèi)部定時器T0對脈沖輸入引腳T1進(jìn)行控制,這樣就能精確地檢測到設(shè)定時間內(nèi)加到T1引腳的脈沖數(shù),一個脈沖即代表著車子前進(jìn)一個輪長,對脈沖數(shù)進(jìn)行處理就可得到里程和速度的數(shù)據(jù);將數(shù)據(jù)送到LCD顯示模塊進(jìn)
10、行顯示。速度顯示部分采用串口液晶顯示模塊,所得的數(shù)據(jù)采用I2C總線并通過E2PROM來存儲,因而節(jié)省了所需單片機(jī)的口線和外圍器件,同時也簡化了顯示部分的軟件編程。汽車速度與里程表系統(tǒng)原理框圖如圖1-1所示。脈沖信號單片機(jī)LCD圖1-1 汽車速度與里程表系統(tǒng)原理框圖2 基本原理與設(shè)計(jì)方案該設(shè)計(jì)能實(shí)時地將所測的速度顯示出來,同時也能夠累計(jì)顯示總里程數(shù)。該速度里程表能將傳感器輸入到單片機(jī)的脈沖信號的寬度(傳感器將車速轉(zhuǎn)變成相應(yīng)寬度的脈沖信號)實(shí)時地測量出來,然后通過單片機(jī)計(jì)算出速度和里程,再將所得的數(shù)據(jù)存儲到串口數(shù)據(jù)存儲器,并由串口液晶顯示模塊實(shí)時顯示出所測速度。本設(shè)計(jì)用兩個按鍵來控制顯示速度或里程
11、??紤]到信號的衰減、干擾等影響,在信號送入單片機(jī)前應(yīng)對其進(jìn)行放大整形,然后再輸入到單片機(jī)進(jìn)行測速。單片機(jī)利用定時器T0的控制功能測出輸入信號的周期后,再利用單片機(jī)的算術(shù)運(yùn)算功能將周期轉(zhuǎn)換成速度,同時每秒鐘進(jìn)行一次里程累計(jì),從而計(jì)算出總里程。最后將得出的速度、里程值存儲在E2PROM中,并根據(jù)兩個按鍵的選擇情況來顯示速度或里程。為了方便計(jì)算要顯示數(shù)據(jù)值的段碼,可再將其轉(zhuǎn)換成壓縮的BCD碼,然后通過查表將要顯示的數(shù)據(jù)值中每一位的壓縮BCD碼轉(zhuǎn)換成8段碼送到顯示緩沖區(qū),最后經(jīng)串口送至液晶顯示模塊以顯示所測的速度或里程。2.1 霍爾傳感器簡介 霍耳效應(yīng):1879年E.H. 霍爾發(fā)現(xiàn),如果對位于磁場(B
12、)中的導(dǎo)體(d)施加一個電壓(v),該磁場的方向垂直于所施加電壓的方向,那么則在既與磁場垂直又和所施加電流方向垂直的方向上會產(chǎn)生另一個電壓(UH),人們將這個電壓叫做霍爾電壓,產(chǎn)生這種現(xiàn)象被稱為霍爾效應(yīng)?;魻栃?yīng)從本質(zhì)上講是運(yùn)動的帶電粒子在磁場中受洛侖茲力作用而引起的偏轉(zhuǎn)。當(dāng)帶電粒子(電子或空穴)被約束在固體材料中,這種偏轉(zhuǎn)就導(dǎo)致在垂直電流和磁場的方向上產(chǎn)生正負(fù)電荷的積累,從而形成附加的橫向電場。通有電流I 的金屬或半導(dǎo)體板置于磁感強(qiáng)度為B 的均勻磁場中,磁場的方向和電流方向垂直,在金屬板的第三對表面間就顯示出橫向電勢差 U H 的現(xiàn)象稱為霍耳效應(yīng)。U H 就稱為霍耳電勢差。實(shí)驗(yàn)測定,霍耳電勢
13、差的大小和電流I 及磁感強(qiáng)度B成正比,而與板的厚度d 成反比。霍爾轉(zhuǎn)速傳感器:霍爾轉(zhuǎn)速傳感器的外形圖和與磁場的作用關(guān)系如圖2.1-1所示。磁場由磁鋼提供,所以霍爾傳感器和磁鋼需要配對使用。霍爾傳感器檢測轉(zhuǎn)速示意圖如圖2.1-2所示。在非磁材料的圓盤邊上粘貼一塊磁鋼,霍爾傳感器固定在圓盤外緣附近。圓盤每轉(zhuǎn)動一圈,霍爾傳感器便輸出一個脈沖。通過單片機(jī)測量產(chǎn)生脈沖的頻率就可以得出圓盤的轉(zhuǎn)速?;魻栯娏鱾鞲衅鞅旧硪呀?jīng)存在濾波電路,輸出無須再加裝濾波,可直接供單片機(jī)的05V的 AD采集或直接送到單片機(jī)的中斷輸入引腳,信號非常穩(wěn)定,而且抗干擾能力很強(qiáng)?;魻栯娏鱾鞲衅鞣磻?yīng)速度一般在7微妙,所以不用考慮單片機(jī)循
14、環(huán)判斷的時間。若在圓盤上貼上多塊磁鋼,則圓盤每轉(zhuǎn)一圈,輸出的脈沖信號將相應(yīng)增加,單位時間內(nèi)測到的脈沖數(shù)將增多,測出的轉(zhuǎn)速也將更加精細(xì)。圖2.1-1 霍爾轉(zhuǎn)速傳感器的外形圖圖2.1-2 霍爾傳感器檢測轉(zhuǎn)速示意圖2.2 AT89C2051芯片簡介AT89C2051是一個低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和128 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的AT89C2051提供了高性價(jià)
15、比的解決方案。AT89C2051是一個低功耗高性能單片機(jī),40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計(jì)數(shù)器,2個全雙工串行通信口,AT89C2051可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。AT89C2051具有如下功能特性: 兼容MCS51指令系統(tǒng); 32個雙向I/O口; 兩個16位可編程定時/計(jì)數(shù)器; 1個串行中斷; 兩個外部中斷源; 4k可反復(fù)擦寫(1000次)Flash ROM; 128x8bit內(nèi)部RAM; 6個中斷源; 低功耗空
16、閑和掉電模式; 軟件設(shè)置睡眠和喚醒功能。2.3 液晶顯示模塊SED1520芯片介紹SED1520液晶顯示驅(qū)動器是一種點(diǎn)陣圖形式液晶顯示驅(qū)動器,它可直接與8位微處理器相連,集行、列驅(qū)動器于一體,因此使用起來十分方便,作為內(nèi)藏式控制器被廣泛應(yīng)用于點(diǎn)陣數(shù)較少的液晶顯示模塊。2.3.1 SED1520芯片介紹本設(shè)計(jì)仿真實(shí)驗(yàn)系統(tǒng)采用的液晶顯示屏內(nèi)置控制器為SED1520,點(diǎn)陣為122x32,需要兩片SED1520組成,由E1、E2分別選通,以控制顯示屏的左右兩半屏。圖形液晶顯示模塊有兩種連接方式。一種為直接訪問方式,一種為間接控制方式。本設(shè)計(jì)采用直接控制方式。直接控制方式就是將液晶顯示模塊的接口作為存儲
17、器或IO 設(shè)備直接掛在計(jì)算機(jī)總線上。計(jì)算機(jī)通過地址譯碼控制 E1和 E2的選通;讀寫操作信號 RW由地址線 A1控制;命令/數(shù)據(jù)寄存器選擇信號 AO 由地址線 A0控制。實(shí)際電路如圖2.3.1-1所示。地址映射如表2.3.1-1所示(地址中的X由LCD CS決定,可參見地址譯碼部分說明)。表2.3.1-1 地址映射0X000H0X001H0X002H0X003H0X004H0X005H0X006H0X007H寫E1指令寫E1數(shù)據(jù)讀E1狀態(tài)讀E1數(shù)據(jù)寫E2指令寫E2數(shù)據(jù)讀E2狀態(tài)讀E2數(shù)據(jù)圖2.3.1-1 液晶屏顯示控制電路2.3.2 SED1520的特性內(nèi)置顯示RAM區(qū)RAM容量為2560(3
18、2行80列)位。RAM中的1位數(shù)據(jù)控制液晶屏上一個點(diǎn)的亮滅狀態(tài):“1”表示亮,“0”表示暗。它具有16個行驅(qū)動口和16個列驅(qū)動口,并可級聯(lián)兩個SED1520實(shí)現(xiàn)32行驅(qū)動。還可直接與80系列微處理器相連,亦可直接與68系列微處理器相連。其驅(qū)動占空比為116或132。并可以與SED1520配合使用,以便擴(kuò)展列驅(qū)動口數(shù)目。2.3.3 SED1520指令與顯示RAM結(jié)構(gòu)SED1520指令系統(tǒng)比較簡單,共13條,除讀狀態(tài)指令、讀顯示RAM數(shù)據(jù)指令外,其他指令均為寫操作,并且讀寫指令均為單字節(jié)指令。在送出每條指令時,必須進(jìn)行控制器狀態(tài)檢測,狀態(tài)字節(jié)的含義如下: D7:1/0,模塊忙/準(zhǔn)備就緒; D5:1
19、/0,模塊顯示關(guān)/開; D4:1/0,模塊復(fù)位/正常; D3-D0:未用。 在指令使用中,關(guān)鍵要分清顯示行、列設(shè)置和顯示頁面設(shè)置的關(guān)系。單片SED1520可驅(qū)動6116液晶屏,其內(nèi)部顯示RAM相對于COM0每8行為一個顯示頁面。本設(shè)計(jì)所用的字符液晶模塊由兩塊SED1520級聯(lián)驅(qū)動,其中一個工作在主工作方式下,另一個工作在從方式下,主工作方式SED1520負(fù)責(zé)上半屏16行的驅(qū)動和左半屏的61列驅(qū)動,從工作方式的SED1520則負(fù)責(zé)下半屏16行的驅(qū)動和右半屏的61列驅(qū)動,使能信號E1、E2用來區(qū)分具體控制的是那一片SED1520。這樣兩片SED1520級聯(lián)可驅(qū)動12232圖形點(diǎn)陣液晶顯示屏,可完成
20、圖形顯示,也可顯示七個半(1616點(diǎn)陣)漢字。2.4 定時器/計(jì)數(shù)器的結(jié)構(gòu)16位的定時/計(jì)數(shù)器分別由兩個8位專用寄存器組成,即:T0由TH0和TL0構(gòu)成;T1由TH1和TL1構(gòu)成。其訪問地址依次為8AH-8DH。這些寄存器是用于存放定時或計(jì)數(shù)初值的。此外,其內(nèi)部還有一個8位的定時器方式寄存器TMOD和一個8位的定時控制寄存器TCON。這些寄存器之間是通過內(nèi)部總線和控制邏輯電路連接起來的。TMOD主要是用于選定定時器的工作方式;TCON主要是用于控制定時器的啟動停止,此外TCON還可以保存T0、T1的溢出和中斷標(biāo)志。當(dāng)定時器工作在計(jì)數(shù)方式時,外部事件通過引腳T0(P3.4)和T1(P3.5)輸入
21、。定時器/計(jì)數(shù)器的結(jié)構(gòu)原理圖如圖2.4-1所示。圖2.4-1 定時器/計(jì)數(shù)器的結(jié)構(gòu)原理圖2.5 定時計(jì)數(shù)器的原理16位的定時器/計(jì)數(shù)器實(shí)質(zhì)上就是一個加1計(jì)數(shù)器,其控制電路受軟件控制、切換。當(dāng)定時器/計(jì)數(shù)器為定時工作方式時,計(jì)數(shù)器的加1信號由振蕩器的12分頻信號產(chǎn)生,即每過一個機(jī)器周期,計(jì)數(shù)器加1,直至計(jì)滿溢出為止。顯然,定時器的定時時間與系統(tǒng)的振蕩頻率有關(guān)。因一個機(jī)器周期等于12個振蕩周期,所以計(jì)數(shù)頻率 fcount=1/12osc。如果晶振為12MHz,則計(jì)數(shù)周期為: T=1/(12106)Hz1/12=1s 。這是最短的定時周期。若要延長定時時間,則需要改變定時器的初值,并要適當(dāng)選擇定時器
22、的長度(如8位、13位、16位等)。當(dāng)定時器/計(jì)數(shù)器為計(jì)數(shù)工作方式時,通過引腳T0和T1對外部信號計(jì)數(shù),外部脈沖的下降沿將觸發(fā)計(jì)數(shù)。計(jì)數(shù)器在每個機(jī)器周期的S5P2期間采樣引腳輸入電平。若一個機(jī)器周期采樣值為1,下一個機(jī)器周期采樣值為0,則計(jì)數(shù)器加1。此后的機(jī)器周期S3P1期間,新的計(jì)數(shù)值裝入計(jì)數(shù)器。所以檢測一個由1至0的跳變需要兩個機(jī)器周期,故外部事件的最高計(jì)數(shù)頻率為振蕩頻率的1/24。例如,如果選用12MHz晶振,則最高計(jì)數(shù)頻率為0.5MHz。雖然對外部輸入信號的占空比無特殊要求,但為了確保某給定電平在變化前至少被采樣一次,外部計(jì)數(shù)脈沖的高電平與低電平保持時間均需在一個機(jī)器周期以上。 當(dāng)CP
23、U用軟件給定時器設(shè)置了某種工作方式之后,定時器就會按設(shè)定的工作方式獨(dú)立運(yùn)行,不再占用CPU的操作時間,除非定時器計(jì)滿溢出,才可能中斷CPU 當(dāng)前操作。CPU也可以重新設(shè)置定時器工作方式,以改變定時器的操作。由此可見,定時器是單片機(jī)中效率高而且工作靈活的部件。2.6 頻率測量本設(shè)計(jì)所采用的霍爾傳感器是由一個磁鋼和一個霍爾器件組成的。磁鋼被貼在非磁性圓盤上,跟著圓盤一起旋轉(zhuǎn)。此霍爾器件就固定在圓盤的附近,工作時,圓盤每轉(zhuǎn)動一圈,霍爾器件就會產(chǎn)生一個脈沖。這里的一個脈沖就代表了一個圓盤的周長。在本設(shè)計(jì)中,霍爾傳感器產(chǎn)生的脈沖將被送到單片機(jī)的內(nèi)部定時計(jì)數(shù)器timer1的T1口。內(nèi)部的定時計(jì)數(shù)器Time
24、r0工作在定時狀態(tài),Timer1工作在計(jì)數(shù)狀態(tài)。Timer0和Timer1均工作在模式1。本設(shè)計(jì)中,Timer0所產(chǎn)生的是0.5秒的定時。Timer1將對0.5秒內(nèi)對加到T1腳的脈沖進(jìn)行計(jì)數(shù)。假設(shè)0.5秒內(nèi)timer1計(jì)數(shù)到N個脈沖,則圓盤的轉(zhuǎn)動頻率為 N / 0.5=2N 。若是將磁鋼貼于汽車的輪軸上,則汽車輪子每轉(zhuǎn)一圈,霍爾器件產(chǎn)生一個脈沖。對脈沖頻率進(jìn)行處理,即可轉(zhuǎn)化為車速。對脈沖數(shù)進(jìn)行累加再乘以輪子的長度,即可得到里程數(shù)據(jù)。本設(shè)計(jì)中開辟了兩個字節(jié)的數(shù)據(jù)區(qū)存儲累加脈沖數(shù)據(jù),最多能計(jì)數(shù)65536個脈沖,也即131072 米(假設(shè)車輪周長2m)。3 系統(tǒng)硬件設(shè)計(jì)3.1 信號預(yù)處理電路它由二級
25、電路構(gòu)成,第一級是由開關(guān)三極管組成的零偏置放大器,采用開關(guān)三極管可以保證放大器具有良好的高頻響應(yīng)。當(dāng)輸入信號為零或負(fù)電壓時,三極管截止,電路輸出高電平;而當(dāng)輸入信號為正電壓時,三極管導(dǎo)通,此時輸出電壓隨著輸入電壓的上升而下降,這使得速度里程表既可以測量任意方波信號的頻率,也可以測量正弦波信號的頻率。由于放大器的放大功能降低了對待測信號的幅度要求,因此,系統(tǒng)能對任意大于0.5V的正弦波和脈沖信號進(jìn)行測量。預(yù)處理電路的第二級采用帶施密特觸發(fā)器的反相器CT74LS14來把放大器生成的單相脈沖轉(zhuǎn)換成與COMS電平相兼容的方波信號同時將輸出信號加到單片機(jī)的P3.2口上。系統(tǒng)信號預(yù)處理電路如圖3.1-1所
26、示。圖3.1-1 系統(tǒng)信號預(yù)處理電路3.2 施密特觸發(fā)器利用施密特觸發(fā)器狀態(tài)轉(zhuǎn)換過程中的正反饋,可以把邊沿變化緩慢的周期性信號變換為邊沿很陡的矩形脈沖信號。輸入的信號只要幅度大于VT+,即可在施密特觸發(fā)器的輸出端得到同等頻率的矩形脈沖信號。從傳感器得到的矩形脈沖經(jīng)傳輸后往往發(fā)生波形畸變。當(dāng)傳輸線上的電容較大時,波形的上升沿將明顯變壞;當(dāng)傳輸線較長,而且接收端的阻抗與傳輸線的阻抗不匹配時,在波形的上升沿和下降沿將產(chǎn)生振蕩現(xiàn)象;當(dāng)其他脈沖信號通過導(dǎo)線間的分布電容或公共電源線疊加到矩形脈沖信號時,信號上將出現(xiàn)附加的噪聲。無論出現(xiàn)上述的那一種情況,都可以通過用施密特反相觸發(fā)器整形而得到比較理想的矩形脈
27、沖波形。只要施密特觸發(fā)器的VT+和VT-設(shè)置得合適,均能受到滿意的整形效果。施密特觸發(fā)器對脈沖整形圖如圖3.2-1所示。圖3.2-1 施密特觸發(fā)器對脈沖整形圖3.3 液晶顯示電路和數(shù)據(jù)存儲電路本設(shè)計(jì)的顯示部分采用液晶顯示模塊LCM0825,液晶顯示模塊與單片機(jī)接口電路圖如圖3.3-1所示。LCM0825是8位段碼式液晶顯示模塊,它內(nèi)部集成有LCD控制器、LCD驅(qū)動器和RAM,因而可方便顯示數(shù)據(jù)的編程。液晶顯示模塊采用3-4線串行數(shù)據(jù)輸入,可直接與單片機(jī)接口。由于串行接口方式節(jié)省了所需的口線和系統(tǒng)資源,因而使系統(tǒng)具有較高的資源利用率。該模塊可在2.7V-5.2V電壓下工作,其低功耗及背光可調(diào)特性
28、使得設(shè)計(jì)更具有經(jīng)濟(jì)性和通用性。LCM0825能夠顯示8位數(shù)據(jù),每一個數(shù)據(jù)均以8段碼的形式放在其內(nèi)部顯示RAM區(qū),并用模塊內(nèi)RAM的兩個存儲地址來放置一個數(shù)據(jù)的8段碼。8位數(shù)據(jù)共占用內(nèi)部16個地址。每一個數(shù)據(jù)位的8段碼存放形式及高低地址存放段碼的順序都和表1所列的第8位數(shù)據(jù)的8段碼存放格式一樣,只是段碼的存放地址不同。所以,編程時一定要考慮數(shù)據(jù)的存放地址和形式。在使用該液晶顯示模塊時,VCC與VLCD之間可用一個50K的電位器來調(diào)整背光。圖3.3-1 液晶顯示模塊與單片機(jī)接口電路圖4 系統(tǒng)軟件設(shè)計(jì)整個程序的設(shè)計(jì)以GX-ARM-S3C2410試驗(yàn)箱為平臺,其中速度和里程的計(jì)算都采取了近似處理。本系
29、統(tǒng)軟件采用模塊化設(shè)計(jì)方法。整個系統(tǒng)由初始化模塊、電機(jī)轉(zhuǎn)速控制模塊、電機(jī)轉(zhuǎn)向顯示模塊、頻率測量模塊、速度,里程顯示模塊、漢字顯示模塊以及其他功能模塊組成。系統(tǒng)程序流程總框圖如圖3-1所示。程序設(shè)計(jì)中,以60H、61H、62H三個地址為數(shù)據(jù)緩沖區(qū),60H(DATA1)用于存儲每0.5s 計(jì)數(shù)到的脈沖數(shù),用于計(jì)算速度;61H(DATA2)、62H(DATA3)兩個地址用于存儲計(jì)數(shù)到的脈沖的累加數(shù)據(jù),用于計(jì)算里程。 開始初始化顯示漢字 延時清屏顯示漢字 電機(jī)控制 方向顯示計(jì)數(shù)脈沖速度 里程顯示3-1 系統(tǒng)程序流程總框圖4.1 電機(jī)轉(zhuǎn)速控制模塊程序設(shè)計(jì)電機(jī)轉(zhuǎn)速的控制模塊由指撥開關(guān)、單片機(jī)、DAC0832
30、數(shù)模變換芯片組成。指撥開關(guān)K0-K7接單片機(jī)的P10-P17(P1口),通過指撥開關(guān)可輸入數(shù)據(jù)0-255,單片機(jī)將指撥開關(guān)輸入的數(shù)據(jù)輸出到DAC0832數(shù)模變換芯片,通過數(shù)模變換,轉(zhuǎn)換成-8V+8V的電壓驅(qū)動直流電機(jī)。從而達(dá)到對電機(jī)轉(zhuǎn)速的控制。輸入數(shù)據(jù)等于128時,輸出電壓為0V;數(shù)據(jù)大于128時,輸出電壓大于0V;輸入數(shù)據(jù)小于128時,輸出電壓小于0V。電機(jī)轉(zhuǎn)速控制模塊程序設(shè)計(jì)如下:mov p1,#0ffh ;設(shè)置P1口為輸入口mov dptr,#cs0832mov A, p1movx dptr,A4.2 頻率測量模塊程序設(shè)計(jì)霍爾傳感器產(chǎn)生的脈沖被送到單片機(jī)的內(nèi)部定時/計(jì)數(shù)器timer1的T
31、1口。內(nèi)部定時/計(jì)數(shù)器Timer0工作在定時狀態(tài),Timer1工作在計(jì)數(shù)狀態(tài)。Timer0和Timer1均工作在模式1。本設(shè)計(jì)中Timer0產(chǎn)生0.5秒的定時。Timer1將對0.5秒內(nèi)對加到T1腳的脈沖進(jìn)行計(jì)數(shù)。我們假設(shè)0.5秒內(nèi)timer1計(jì)數(shù)到了第N個脈沖。這時,圓盤的轉(zhuǎn)動頻率就為為 N / 0.5=2N。頻率測量模塊程序設(shè)計(jì)如下:JISHU: MOV IE,#10001010B ;打開中斷開關(guān) MOV TMOD,#MODE ;設(shè)定內(nèi)部定時器/計(jì)數(shù)器的工作模式 MOV SP,#70H MOV 40H,#00H MOV TH1,#00H ;將timer1的計(jì)數(shù)寄存器賦初值0 MOV TL1
32、,#00H ;將timer1的計(jì)數(shù)寄存器賦初值0 SETB TR1 ;啟動timer1AA: CLR F1 ;標(biāo)志位賦0 MOV TH0,#03CH ;定時器寫入初值 MOV TL0,#0B0H SETB TR0 ;打開定時器timer0 JNB F1 , $ ;等待50ms INC 40H MOV A, 40H CJNE A, #09H,AA ;定時中斷重復(fù)10次 CLR TR1 ;關(guān)閉計(jì)數(shù)器timer1 MOV DATA1,TL1 ;取出timer1計(jì)數(shù)值給DATA1 MOV A,DATA1 ADD A,DATA2 MOV DATA2,A ;將計(jì)數(shù)值累加到DATA2 JNC BB ;檢查計(jì)
33、數(shù)是否溢出 INC DATA3 ;有溢出則DATA3加1BB: RET;-定時中斷子程序TIMER : CLR TR0 SETB F1 RETI當(dāng)Timer0工作在模式1時,TLO、THO計(jì)數(shù)寄存器各使用8位,從計(jì)算式 28 = 256,可以得出在設(shè)置計(jì)數(shù)初值時,把計(jì)數(shù)起點(diǎn)的值除以256,再將其余數(shù)放入TLO計(jì)數(shù)寄存器,將商數(shù)放入THO計(jì)數(shù)寄存器。這個實(shí)驗(yàn)系統(tǒng)所采用的是12MHz的晶振,定時器所計(jì)數(shù)的脈沖的周期為1us。由此,我們將這樣設(shè)計(jì):每50ms產(chǎn)生一次定時中斷,就需要計(jì)數(shù)50000個脈沖,則裝入計(jì)數(shù)寄存器的計(jì)數(shù)初值就為6553650000 = 15536,這時,裝入THO計(jì)數(shù)寄存器的初
34、值就為15536/256 = 60(03CH), 裝入TLO計(jì)數(shù)寄存器的初值為176(0B0H)。Timer0中斷子程序流程圖如圖3.2-1所示。Timer關(guān)閉定時器F1=1返回 圖3.2-1 Timer0中斷子程序流程圖主程序流程圖如圖3.2-2所示。圖3.2-2 主程序流程圖開始初始化設(shè)定計(jì)數(shù)器初值,并啟動F1=0定時器賦初值,并啟動F1=0?yesno40H加140H=9 ?NoYes停止計(jì)數(shù),取出計(jì)數(shù)值將計(jì)數(shù)值累加到DATA2CY=0 ?YESNoDATA3加1返回主程序4.3 液晶顯示程序的設(shè)計(jì)本設(shè)計(jì)中速度和里程的數(shù)據(jù)由液晶顯示模塊顯示,所用的液晶顯示模塊由SED1520芯片驅(qū)動,首
35、先必須對液晶顯示模塊進(jìn)行初始化,編寫相應(yīng)的字庫,編寫讀寫程序等。液晶顯示程序的設(shè)計(jì)包括了初始化程序、清屏程序、寫指令代碼子程序、寫顯示數(shù)據(jù)子程序、讀顯示數(shù)據(jù)子程序、中文顯示子程序、數(shù)字顯示程序以及中文字庫和數(shù)字字庫的編寫。4.4 速度、里程顯示程序的設(shè)計(jì)本設(shè)計(jì)中霍爾傳感器產(chǎn)生的脈沖被送到單片機(jī)的內(nèi)部定時計(jì)數(shù)器timer1的T1口。內(nèi)部定時計(jì)數(shù)器Timer0工作在定時狀態(tài),Timer1工作在計(jì)數(shù)狀態(tài)。Timer0和Timer1均工作在模式1。本設(shè)計(jì)中Timer0產(chǎn)生0.5秒的定時。Timer1將對0.5秒內(nèi)對加到T1腳的脈沖進(jìn)行計(jì)數(shù)。假設(shè)0.5秒內(nèi)timer1計(jì)數(shù)到N個脈沖。則圓盤的轉(zhuǎn)動頻率為
36、N / 0.5=2N 。若是將磁鋼貼于汽車的輪軸上,則汽車輪子每轉(zhuǎn)一圈,霍爾器件產(chǎn)生一個脈沖。對脈沖頻率進(jìn)行處理,即可轉(zhuǎn)化為車速。對脈沖數(shù)進(jìn)行累加再乘以輪子的長度,即可得到里程數(shù)據(jù)。本程序?qū)ζ囘\(yùn)行的實(shí)際情況進(jìn)行模擬。設(shè)計(jì)程序時假設(shè)汽車輪子的周長約為2m,最后在顯示屏顯示的速度單位是km/h,里程單位是km。速度的計(jì)算如下:若0.5秒計(jì)數(shù)到N個脈沖,則輪子的轉(zhuǎn)動頻率為2N,車速為2N2 m/s,也即2N23.6 km/h 。設(shè)計(jì)中作近似處理,處理為14N km/h 。顯示時先顯示百位,再依次顯示十位、個位。程序如下:;-速度處理顯示子程序SPEED: PUSH A MOV A,DATA1 MO
37、V B,#0EH ;計(jì)數(shù)值乘以14 MUL AB MOV B, #64H ;除數(shù)賦值100 DIV AB ;得到百位顯示數(shù)據(jù)代碼 MOV CODE_ , A ;百位顯示字庫代碼 MOV A,B LCALL BB1 ;調(diào)用速度寫顯示數(shù)據(jù)程序 MOV B,#0AH ;除數(shù)賦值10 DIV AB ;得到十位顯示數(shù)據(jù)代碼 MOV CODE_ , A ;十位顯示字庫代碼 MOV CTEMP, #08H ;顯示后移8列 MOV A,B LCALL BB1 ;調(diào)用速度寫顯示數(shù)據(jù)程序 MOV CODE_ , A ;個位顯示字庫代碼 MOV CTEMP, #10H LCALL BB1 MOV DATA1,#00
38、H ;數(shù)據(jù)緩沖區(qū)清零 POP A RETDATA2,DATA3存儲計(jì)數(shù)到的脈沖總數(shù),DATA2能存儲255個脈沖,每次計(jì)數(shù)溢出,則DATA3加1,DATA3里的數(shù)據(jù)權(quán)重為256.這樣兩個字節(jié)的數(shù)據(jù)能計(jì)數(shù)最多65536個脈沖,也即131072 米 。130多公里。實(shí)際制作里程表時只要適當(dāng)增加數(shù)據(jù)緩沖區(qū)的數(shù)量,即可對最大顯示里程進(jìn)行擴(kuò)充。程序設(shè)計(jì)過程中,對里程數(shù)據(jù)的顯示作了近似處理。程序如下:;-里程處理顯示子程序MILAGE: PUSH A MOV A,DATA3 MOV B,#0C8H ;除以200 顯示百位里程數(shù)據(jù) DIV AB MOV CODE_, A MOV CTEMP,#00H MOV
39、 A,B LCALL BB2 MOV B,#014H ; 顯示十位里程數(shù)據(jù) DIV AB MOV CODE_,A MOV CTEMP, #08H MOV A,B LCALL BB2 MOV B, #02H ; 顯示個位里程數(shù)據(jù) DIV AB MOV CODE_ ,A MOV CTEMP, #10H MOV A,B LCALL BB2 MOV CODE_ ,#0AH MOV CTEMP, #17H ;顯示小數(shù)點(diǎn) LCALL BB2 CJNE A,#00H, M1 MOV A,DATA2 ;DATA2除以50得到小數(shù)點(diǎn)MOV B,#032H 后第一位 DIV AB MOV CODE_ , A MO
40、V CTEMP, #1EH MOV A,B LCALL BB2 MOV B,#05H ;余數(shù)再除以5得到小數(shù)點(diǎn)后第二位 DIV AB MOV CODE_ ,A MOV CTEMP, #26H LCALL BB2 POP A RETM1 : MOV A,DATA2 MOV B,#032H DIV AB ADD A,#05H ;顯示大于0.50公里時代碼加5 MOV CODE_, A MOV CTEMP, #1EH MOV A,B LCALL BB2 MOV B,#05H DIV AB MOV CODE_ ,A MOV CTEMP, #26H LCALL BB2 POP A RET;-第二行速度數(shù)
41、據(jù)顯示調(diào)用子程序BB1: PUSH A MOV PAGE_,#00H MOV A,CTEMP ADD A,#3CH MOV COLUMN,A LCALL DIW_PR POP A RET;-第一行里程數(shù)據(jù)顯示調(diào)用子程序BB2: PUSH A MOV PAGE_,#02H MOV A,CTEMP ADD A,#3CH MOV COLUMN,A LCALL DIW_PR POP A RET4.5 模塊程序設(shè)計(jì)該程序?qū)闹笓荛_關(guān)輸入的數(shù)據(jù)作出反應(yīng),若輸入的數(shù)據(jù)為128,則在LCD顯示屏上顯示“停止”的標(biāo)志,若輸入的數(shù)據(jù)大于128,則顯示“正轉(zhuǎn)”的標(biāo)志,若輸入的數(shù)據(jù)小于128,則顯示“反轉(zhuǎn)”的標(biāo)志。模
42、塊程序如下:fxb: MOV CTEMP ,#00H CJNE A,#80h,fx MOV PAGE_,#00H ;停止 MOV A,CTEMP ADD A,#2AH MOV COLUMN,A MOV CODE_,#09H LCALL CCW_PR MOV PAGE_,#00H ;顯示“0” MOV A,CTEMP ADD A,#3CH MOV COLUMN,A MOV CODE_,#00H LCALL DIW_PR MOV PAGE_,#00H ;顯示“0” MOV A,CTEMP ADD A,#44H MOV COLUMN,A MOV CODE_,#00H LCALL DIW_PR MOV
43、 PAGE_,#00H ;顯示“0” MOV A,CTEMP ADD A,#4CH MOV COLUMN,A MOV CODE_,#00H LCALL DIW_PR RETfx: ANL a,#80h CJNE a,#80h,fx1 MOV PAGE_,#00H ;正轉(zhuǎn) MOV A,CTEMP ADD A,#2aH MOV COLUMN,A MOV CODE_,#07H LCALL CCW_PR RETfx1: MOV PAGE_,#00H ;反轉(zhuǎn) MOV A,CTEMP ADD A,#2aH MOV COLUMN,A MOV CODE_,#08H LCALL CCW_PR RET5 軟件調(diào)試
44、程序的調(diào)試過程是一個比較復(fù)雜的過程,有些需要高度的技巧和一定的方法。一般的編程軟件都提供單步、單步越過、斷點(diǎn)、運(yùn)行到光標(biāo)處等基本方法,一般掌握這幾種基本方法就可以解決絕大部分問題。經(jīng)過長時間的調(diào)試實(shí)踐之后自然就可以掌握一定的調(diào)試技巧,即熟能生巧。 5.1 程序的查錯手段單片機(jī)的應(yīng)用系統(tǒng)均需借助對應(yīng)的開發(fā)系統(tǒng)(或裝置)進(jìn)行在線仿真,對應(yīng)用系統(tǒng)的軟、硬件進(jìn)行全面地檢測與調(diào)試。各種開發(fā)系統(tǒng)或裝置均提供以下查錯手段。首先有單步執(zhí)行。采用單步執(zhí)行操作可對應(yīng)用程序每步執(zhí)行一條指令,可逐條檢查這一段程序的執(zhí)行過程是否符合原設(shè)計(jì)要求??芍苯硬槌鲥e誤所在。宏單步可執(zhí)行一段程序,如一步就可執(zhí)行完整個循環(huán)程序段。再次,有斷點(diǎn)設(shè)置全速運(yùn)行可在程序有疑慮的地方設(shè)置斷點(diǎn),從設(shè)置的起始地址開始,以全速或非全速方式向設(shè)定的斷點(diǎn)處運(yùn)行。如果這段程序無語法或邏輯上的錯誤,則連續(xù)運(yùn)行到設(shè)置的斷點(diǎn)處停止運(yùn)行,返回監(jiān)控狀態(tài)。如果有錯誤,則在錯誤處停止運(yùn)行,如果進(jìn)入死循環(huán)或者程序跑飛,就永遠(yuǎn)不會停止運(yùn)行。全速斷點(diǎn)運(yùn)行為檢查實(shí)時性及中斷響應(yīng)處理等提供了方便。另外,還有顯示器窗口檢查和實(shí)時跟蹤記錄等。除
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)員計(jì)算機(jī)考試全真試題及答案
- 高考數(shù)學(xué)知識技能對比研究試題及答案
- 企業(yè)戰(zhàn)略實(shí)施的關(guān)鍵技能試題及答案
- 軟件技術(shù)員考試成敗關(guān)鍵解讀試題及答案
- 行政法學(xué)多元化視野試題及答案
- 企業(yè)財(cái)務(wù)戰(zhàn)略與其風(fēng)險(xiǎn)管理架構(gòu)試題及答案
- 多元化經(jīng)營的實(shí)施方案計(jì)劃
- VB考試必背知識點(diǎn)的試題及答案
- 湖南省2025年第一次集中招聘考試筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 社團(tuán)交流活動的組織計(jì)劃
- DB23T 3844-2024 煤礦地區(qū)地震(礦震)監(jiān)測臺網(wǎng)技術(shù)要求
- 工商企業(yè)管理畢業(yè)論文范文(4篇)
- 卷紙有多長(教學(xué)設(shè)計(jì))-2023-2024學(xué)年六年級下冊數(shù)學(xué)北師大版
- 浙江省寧波市2024年小升初英語試卷(含答案)2
- 1.2 勻變速直線運(yùn)動-醫(yī)藥衛(wèi)生類
- 3.2 推動高質(zhì)量發(fā)展 課件高中政治統(tǒng)編版必修二經(jīng)濟(jì)與社會
- 《太陽升起來了》課件
- 2024年湖北高考化學(xué)真題試題(原卷版+含解析)
- 住院成人高血糖患者血糖監(jiān)測醫(yī)護(hù)協(xié)議處方共識
- 汽車清潔保養(yǎng)服務(wù)合同示范文本
- 《市場營銷:網(wǎng)絡(luò)時代的超越競爭》第4版 課件 第8章 制定有效的價(jià)格策略
評論
0/150
提交評論