版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計說明書</b></p><p> 課 程 名 稱: 汽車電控系統(tǒng)實習(xí)及課程設(shè)計 </p><p> 課 程 代 碼: </p><p> 題 目: 車速電控系統(tǒng)設(shè)計及其仿真 </p><p>
2、 年級/專業(yè)/班: 09級/車輛工程/汽電3班 </p><p> 學(xué) 生 姓 名: </p><p> 學(xué) 生 學(xué) 號: </p><p> 開 始 時 間: 2012 年 12 月 31 日</p>
3、<p> 完 成 時 間: 2013 年 01 月 18 日</p><p> 課程設(shè)計成績: </p><p> 指導(dǎo)教師簽名: 年 月 日</p><p><b> 目 錄</b></p>
4、<p> 摘要…………………………………………………………………………………………1</p><p><b> 1 引言 </b></p><p> 1.1問題的提出…………………………………………………………………………………2</p><p> 1.2單片機的國內(nèi)外發(fā)展情況……………………………………………………………
5、…3</p><p> 1.3任務(wù)分析……………………………………………………………………………………5</p><p> 2 方案分析及方案設(shè)計 </p><p> 2.1車速控制方案的選擇……………………………………………………………………6</p><p> 2.2總體方案的確定…………………………………………………………………
6、………7</p><p><b> 3系統(tǒng)硬件設(shè)計 </b></p><p> 3.1主控芯片的選擇…………………………………………………………………………8</p><p> 3.2顯示電路設(shè)計……………………………………………………………………………11</p><p> 3.3控制機構(gòu)電路設(shè)計…………………
7、……………………………………………………12</p><p> 4系統(tǒng)軟件設(shè)計與仿真 </p><p> 4.1 Proteus軟件環(huán)境介紹…………………………………………………………………13</p><p> 4.2 Protel軟件環(huán)境介紹…………………………………………………………………14</p><p> 4.3系統(tǒng)軟件分
8、析…………………………………………………………………………15</p><p> 4.4程序流程圖……………………………………………………………………………16 </p><p> 4.5 原理圖檢查與元器件清單………………………………………………………………14</p><p> 4.6 程序調(diào)試………………………………………………………………………………1
9、4</p><p> 4.7 Proteus仿真…………………………………………………………………………15</p><p> 結(jié)論…………………………………………………………………………………………24</p><p> 致謝…………………………………………………………………………………………25</p><p> 參考文獻…………
10、…………………………………………………………………………26</p><p> 附錄A 系統(tǒng)原理圖………………………………………………………………………27</p><p> 附錄B 程序編譯圖………………………………………………………………………28</p><p> 附錄C PCB圖………………………………………………………………………………29&l
11、t;/p><p> 附錄D 程序代碼……………………………………………………………………………30 </p><p><b> 摘 要</b></p><p> 本設(shè)計介紹一種基于AT89C51單片機為控制核心的車速檢測及控制。為了保證汽車行駛的安全性,提高汽車運輸生產(chǎn)率,充分發(fā)揮汽車的動力性,正確
12、掌握行車速度是非常重要的。在本次設(shè)計中采用一個指示燈來進行車速狀況的報警,同時,運用一個自動控制的電動機來控制供油電磁閥的關(guān)閉。車速控制在一定的范圍內(nèi),保證了汽車行駛的安全。本設(shè)計說明書對該系統(tǒng)的硬件電路,工作原理進行了詳細的介紹。同時給出了軟件設(shè)計的流程圖和主要源代碼及利用MATLAB進行結(jié)果仿真與分析。</p><p> 關(guān)鍵詞: AT89C51單片機 車速 控制 供油電磁閥 報警 仿真<
13、;/p><p><b> 1 引 言 </b></p><p> 1.1 問題的提出 </p><p> 在現(xiàn)代社會,汽車作為一種大眾的交通工具在人們的生活中扮演越來越重要的角色。在汽車的使用過程中,車速這一參數(shù)對汽車多的性能及行車的安全的影響是非常大的。車速較高的時候,車輛的更難控制,操縱穩(wěn)定性要變差,使得汽車行駛的危險性增加,危害人類安
14、全。據(jù)報道,交通事故中有很大的一部分是由于超速行駛而引起的。 因此實時的顯示車速,在車速過高時指示燈提示,并自動切斷燃油供給系統(tǒng)可以有效地減少此類事故的發(fā)生,使人們能夠更加安全的出行。</p><p> 1.2單片機的國內(nèi)外發(fā)展情況</p><p> 單片機是指一個集成在一塊芯片上的完整計算機系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:CPU
15、、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設(shè)備。而現(xiàn)在最強大的單片機系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。</p><p> 單片機也被稱為微控制器(Microcontroller),是因為它最早被用在工業(yè)控制領(lǐng)域。單片機由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。</p><p> 早期的單片機都是8位或
16、4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了MCS51系列單片機系統(tǒng)?;谶@一系統(tǒng)的單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機,但因為性價比不理想并未得到很廣泛的應(yīng)用。當(dāng)代單片機系統(tǒng)已經(jīng)不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的W
17、indows和Linux操作系統(tǒng)。</p><p> 可以說,二十世紀跨越了三個“電”的時代,即電氣時代、電子時代和現(xiàn)已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數(shù)人卻不怎么熟悉。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。顧名思義,這種計算機的最小系統(tǒng)只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機
18、械的“肚子”里。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了?,F(xiàn)在,這種單片機的使用領(lǐng)域已十分廣泛,如智能儀表、實時工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機,就能起到使產(chǎn)品升級換代的功效,常在產(chǎn)品名稱前冠以形容詞——“智能型”,如智能型洗衣機等?,F(xiàn)在有些工廠的技術(shù)人員或其它業(yè)余電子開發(fā)者搞出來的某些產(chǎn)品,不是電路太復(fù)雜,就是功能太簡單且極易被仿制。究其原因,可能就卡在產(chǎn)品未使用單片機或其它可
19、編程邏輯器件上。</p><p> 單片機誕生于20世紀70年代末,經(jīng)歷了SCM、MCU、SoC三大階段。 </p><p> 1.SCM即單片微型計算機(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)。“創(chuàng)新模式”獲得成功,奠定了SCM與通用計算機完全不同的發(fā)展道路。在開創(chuàng)嵌入式系統(tǒng)獨立發(fā)展道路上,Intel公司功不可沒。
20、</p><p> 2.MCU即微控制器(Micro Controller Unit)階段,主要的技術(shù)發(fā)展方向是:不斷擴展?jié)M足嵌入式應(yīng)用時,對象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對象的智能化控制能力。它所涉及的領(lǐng)域都與對象系統(tǒng)相關(guān),因此,發(fā)展MCU的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來看,Intel逐漸淡出MCU的發(fā)展也有其客觀因素。在發(fā)展MCU方面,最著名的廠家當(dāng)數(shù)Philips公司。 &
21、lt;/p><p> 3.單片機是嵌入式系統(tǒng)的獨立發(fā)展之路,向MCU階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機的發(fā)展自然形成了SoC化趨勢。隨著微電子技術(shù)、IC設(shè)計、EDA工具的發(fā)展,基于SoC的單片機應(yīng)用系統(tǒng)設(shè)計會有較大的發(fā)展。因此,對單片機的理解可以從單片微型計算機、單片微控制器延伸到單片應(yīng)用系統(tǒng)。</p><p><b> 1.3任務(wù)與分析
22、</b></p><p> 本設(shè)計的主要任務(wù)是基于AT89C51單片機實現(xiàn)車速的測量,并對車速進行一定的控制,介紹一種基于89C51單片機系統(tǒng)的轉(zhuǎn)速測試儀的測量原理、硬件組成和軟件設(shè)計。在設(shè)計過程中,將應(yīng)用Protel軟件及、Keil軟件及Proteus軟件等軟件來完成設(shè)計要求。</p><p> 2方案分析及方案設(shè)計 </p><p> 2.1
23、總體方案的選擇 </p><p> 通過查閱相關(guān)資料,設(shè)計初期有兩種方案可供選擇,分別如下:</p><p> (1)利用單片機的定時功能定時一段時間,并在這段時間內(nèi)對外部信號進行計數(shù),最后顯示在LCD1602液晶屏上。</p><p> ?。?)此方案為通過檢測外部輸入信號,當(dāng)?shù)谝淮螜z測到后即開始計時,在第二次信號到來時停止計時,將計時值保存。如此循環(huán)五次,
24、通過進行加權(quán)濾波和相應(yīng)的轉(zhuǎn)換處理送顯示器顯示,如果車速大于設(shè)定的最高車速值,系統(tǒng)的指示燈點亮提醒駕駛員,電機自動運作來切斷燃油供給,強迫汽車減速。</p><p> 2.2總體方案的確定</p><p> 通過對兩種方案的對比,系統(tǒng)最終選擇第二方案。</p><p> 圖2.1 系統(tǒng)框圖</p><p><b> 3系統(tǒng)硬
25、件電路設(shè)計</b></p><p> 此系統(tǒng)設(shè)計主要涉及以下3個部分:(1)主控芯片介紹(2)顯示器的設(shè)計(3)控制機構(gòu)設(shè)計</p><p> 3.1 主控芯片的選擇</p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Mem
26、ory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌
27、入式控制系統(tǒng)提供了一種靈活性高且價廉的方案,其引腳排列如圖3.1所示</p><p> 圖3.1 89C51單片機引腳圖</p><p> 51單片機的復(fù)位需要給第九引腳持續(xù)兩個周期的高電平。系統(tǒng)的復(fù)位電路由一個10u電解電容和一個按壓開關(guān)并聯(lián)再串聯(lián)一個10K的電阻。如圖3.2所示:</p><p> 圖3.2 時鐘復(fù)位電路</p><
28、p> 電阻在上接地,電容在中間接高電平,下面為RST。這種復(fù)位電路的工作原理是:通電時,電容兩端相當(dāng)于是短路,于是RST引腳上為高電平,然后電源通過電阻對電容充電,RST端電壓慢慢下降,降到一定程序,即為低電平,單片機開始正常工作。</p><p> 在引腳XTAL1和XTAL2外接晶體振蕩器,就構(gòu)成了內(nèi)部振蕩電路,C1、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為5~30PF。晶振常選用頻率為6M
29、Hz、12MHz、或24MHz的,采用串口時常用頻率為11.0592MHz的晶振。內(nèi)部振蕩方式所得到的時鐘信號比較穩(wěn)定,應(yīng)用較多。此設(shè)計選用的晶振頻率為12MHz,電容值為30PF。具體電路設(shè)計電路如圖3.3所示:</p><p> 圖3.3 晶體振蕩電路</p><p> 圖3.4 最小系統(tǒng)</p><p> 3.2 顯示電路設(shè)計</p>
30、<p> 本設(shè)計采用的計數(shù)顯示電路由單片機89C51,液晶顯示器LCD1602及上拉排阻組成。</p><p> 字符型LCD簡介:字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD。目前常用16*1,16*2,20*2和40*2行等的模塊。本設(shè)計采用的是16*2行的LCD1602。</p><p> 1602液晶顯示模塊可以和單片機AT89C51直接接口
31、,電路原理圖如圖3.4所示:</p><p> 圖3.5 顯示電路原理圖</p><p> 系統(tǒng)還設(shè)計了一個LED指示燈用以在車速過高時提醒駕駛員。其原理圖如下:</p><p> 圖3.6 LED指示燈電路原理圖</p><p> 3.3 控制機構(gòu)電路設(shè)計</p><p> 由于在車速過高時需要控制機
32、構(gòu)控制燃油的供給,以限制其車速。在此,系統(tǒng)選用直流電動機作為控制供油電磁閥的執(zhí)行機構(gòu)。其原理圖如圖3.6所示。</p><p> 圖3.7 系統(tǒng)執(zhí)行機構(gòu)</p><p> 4系統(tǒng)軟件設(shè)計與仿真</p><p> 4.1 Proteus軟件環(huán)境介紹</p><p> 本系統(tǒng)的硬件設(shè)計首先是在Proteus軟件環(huán)境中仿真實現(xiàn)的。Prot
33、eus是目前最好的模擬單片機外圍器件的工具??梢苑抡?1系列、AVR、PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達,LED,AD/DA,部分SPI器件,部分IIC器件...)。在沒有硬件的情況下,Proteus能像pspice 仿真模擬/數(shù)字電路那樣仿真MCU及外圍電路。另外,即使有硬件,在程序編寫早期用軟件仿真一下也是很有必要的。Proteus軟件主要具有以下幾個方面的特點:</p><p
34、> 1、設(shè)計和仿真軟件Proteus 是一個很有用的工具,它可以幫助學(xué)生和專業(yè)人士提高他們的模擬和數(shù)字電路的設(shè)計能力。</p><p> 2、它允許對電路設(shè)計采用圖形環(huán)境,在這種環(huán)境中,可以使用一個特定符號來代替元器件,并完成不會對真實電路造成任何損害的電路仿真操作。</p><p> 3、它可以仿真儀表以及可描述在仿真過程中所獲得的信號的圖表。</p><
35、p> 4、它可以仿真目前流行的單片機,如PICS, ATMEL-AVR, MOTOROLA, 8051 等。</p><p> 5、在設(shè)計綜合性方案中,還可以利用ARES開發(fā)印制電路板。</p><p> 4.2 Protel軟件環(huán)境介紹</p><p> Protel印制板設(shè)計軟件包是澳大利亞protel technology公司與1990年推出的電
36、子CAD產(chǎn)品,具有方便、易學(xué)、實用、快速以及高速度、高步通率的特點。它采用了分層次下拉窗口菜單結(jié)構(gòu)形式,用戶基本上不需要記背太多的鍵盤命令,用鼠標點擊菜單命令就能操作,protel有著很高的自動布線布通率。布通率是電子產(chǎn)CAD產(chǎn)品的一項重要指標,它反映電子元件在電路圖中連接關(guān)系有多少能在印刷版圖中實現(xiàn)。在設(shè)計常用的單、雙面印制板時只要選擇適當(dāng)?shù)脑季趾筒季€策略方法,protel就可以輕易的達到98%-100%的布通率。對于極少數(shù)不能布
37、通的定方,protel可以用飛線指示出來,引導(dǎo)用戶用手工方法連通。另外,protel有強大的宏命令設(shè)置功能,利用宏命令功能多定義的熱鍵可以大大提高操作速度</p><p> Protel對微機的軟硬件配置要求很低:cpu在8088以上,dos2.0以上版本,內(nèi)存640kb以上,雙軟件(或一個軟件一個硬盤),單色顯示器(多層板設(shè)計時最好用彩色),各種兼容打印機。也能在Windows9X平臺的模擬DOS下運行。&l
38、t;/p><p> Protel已成為印制板設(shè)計加工方面的工業(yè)標準。據(jù)初步統(tǒng)計Protel在CAD的市場占有率達 95%,成為電子產(chǎn)品制造業(yè)界的首選CAD軟件。</p><p> Keil軟件環(huán)境介紹</p><p> Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護
39、性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍</p>
40、<p><b> 4.3系統(tǒng)軟件分析</b></p><p> 任何一個應(yīng)用系統(tǒng),它們都有著自己的硬件系統(tǒng)和軟件系統(tǒng),少了任何一個部分都不可能稱之為一個完整的應(yīng)用系統(tǒng),它們之間是相互依存的一個整體,硬件系統(tǒng)是軟件系統(tǒng)的一個基礎(chǔ)和前提,為軟件系統(tǒng)提供了一個操作平臺;而軟件系統(tǒng)是硬件系統(tǒng)的靈魂,它對硬件系統(tǒng)起到擴充和完善的作用。可知軟件系統(tǒng)與硬件系統(tǒng)同等重要。</p>
41、<p> 51單片機通常有兩種編程語言,即匯編語言和C語言。匯編語言是低級語言,能夠直接操作硬件,并且生成機器碼的效率高。但匯編對平臺的依賴性強,可移植性差,開發(fā)效率低。而C語言則處于二者之間,移植性比較好,代碼效率也比較高,可以對部分硬件直接訪問。開發(fā)效率較高。寫得好的C代碼,可移植性是很好的,很多時候都不用修改或者只做少量修改。在目前的嵌入式系統(tǒng)中,C語言是使用最廣泛的語言。 </p><p>
42、;<b> 4.4程序流程圖</b></p><p> (1)主程序流程圖如圖4.1所示。</p><p> 圖4.1 主程序流程圖</p><p> 主程序中判斷Flag_s是否為1,如果為1則表示已經(jīng)保存五次車速值則開始進行濾波處理,同時置零Flag_s再調(diào)用顯示函數(shù)。如果為0則直接調(diào)用顯示函數(shù)顯示上次濾波后的車速值。</p
43、><p> (2)定時器中斷流程圖如4.2所示。</p><p> 圖4.2 定時器中斷流程圖</p><p> ?。?)外部中斷流程圖如圖4.3所示。 </p><p> 圖4.3 外部中斷流程圖</p><p> 第一次中斷打開定時器計時,第二次中斷時讀取TH0和TL0的值將其保存在數(shù)組中,五次讀取后將置位
44、Flag_s,退出中斷函數(shù)。數(shù)組的首地址通過編譯軟件匯編后為0x800。</p><p> 4.5 原理圖檢查與元器件清單</p><p> 在Protel 99 SE中,對硬件電路圖進行ERC電氣規(guī)則檢查及羅列元器件的清單。</p><p> 如圖4.4和圖4.5所示:</p><p> 圖4.4 ERC電氣規(guī)則檢查結(jié)果</
45、p><p> 圖4.5 元器件清單圖</p><p><b> 4.6 程序調(diào)試</b></p><p> 程序經(jīng)過調(diào)試顯示“0錯誤,0警告”。表示程序調(diào)試通過。如圖4.6所示:</p><p> 圖4.6 程序調(diào)試通過示意圖</p><p> 4.7 Proteus調(diào)試 </p&
46、gt;<p> 系統(tǒng)采用Proteus進行仿真,按原理圖的設(shè)置建好仿真圖。如圖4.7所示的仿真圖。</p><p> 圖4.7 未運行的仿真圖 </p><p> 調(diào)節(jié)外部中斷的輸入頻率以代表不同的車速情況,當(dāng)輸入頻率為10Hz時,根據(jù)計算公式,其中半徑r=0.35m, =3.14,得到轉(zhuǎn)速為55km/h。車速值小于設(shè)定值100km/h,此時控制的執(zhí)行機構(gòu)電動機不會
47、運作,供油不受影響。超速指示燈熄滅。</p><p> 圖4.8 仿真圖(低于限定值)</p><p> 再次調(diào)節(jié)信號發(fā)生器使其單片機輸入頻率增大,當(dāng)為10Hz時根據(jù)公式,此時輸出的車速應(yīng)該為79km/h。此車速仍小于設(shè)定的車速100km/h,電動機將不會轉(zhuǎn)動,指示燈熄滅,供油電磁閥正常工作。</p><p> 圖4.9 仿真圖(低于限定值)</p&
48、gt;<p> 調(diào)節(jié)單片機輸入頻率,直至車速超過100km/h。此時系統(tǒng)將控制電動機運作,來使供油電磁閥逐漸閉合,供油減小。如果車速還未降下,電動機運作直至供油電磁閥完全切斷燃油的供給,強制汽車減速。同時,儀表盤的超速指示燈將點亮,以提醒駕駛員。(圖上電動機的運轉(zhuǎn)可以通過其三極管基極為高電平判斷出)</p><p> 圖4.10 仿真圖(超速)</p><p><
49、b> 結(jié) 論</b></p><p> 通過本次有關(guān)車速控制系統(tǒng)程序及仿真的課程設(shè)計,我掌握了很多知識。尤其是仿真編程中電動機的使用,讓我學(xué)會了,如何控制電動機的動作。 </p><p> 在本次的設(shè)計過程中,遇到了很多的困難與問題,需要我們課外查詢多方面的知識。</p><p> 由這次課程設(shè)計,我深深地懂得了一件事情,理論一定要結(jié)合實
50、踐,不能只空留在紙面上。理論只有轉(zhuǎn)化成了實際東西才具有價值。</p><p><b> 致 謝</b></p><p> 在**老師的悉心指導(dǎo)下,我順利地完成了此次的課程設(shè)計。他專業(yè)的知識,嚴謹?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,嚴以律己、寬以待人的崇高風(fēng)范,樸實無華、平易近人的人格魅力對我影響深遠。不僅使我樹立了遠大的學(xué)術(shù)目標、掌握了基本的研究
51、方法,還端正了我的學(xué)習(xí)和人生態(tài)度,使我受益匪淺。</p><p> 最后,感謝所有給予我?guī)椭椭С值睦蠋熀屯瑢W(xué)!</p><p><b> 參考文獻</b></p><p> ?。?]張毅剛:新編MCS-51單片機應(yīng)用設(shè)計. 哈爾濱工業(yè)大學(xué)出版社.2004.</p><p> ?。?]彭憶強、吳瓊、葛曉成:電子線路輔
52、助分析軟件在汽車電子方向相關(guān)課程中的應(yīng)用,高等教育研究,2008,No. 2</p><p> ?。?]孫仁云:汽車電器及電子技術(shù),機械工業(yè)出版社,2007.1</p><p> ?。?]唐嵐:汽車測試技術(shù) ,機械工業(yè)出版社 ,2006.7 </p><p><b> 附錄A</b></p><p><
53、b> 系統(tǒng)原理圖</b></p><p><b> 附錄B</b></p><p><b> 程序編譯圖</b></p><p><b> 附錄C</b></p><p> PCB圖
54、</p><p> 圖C-1 PCB圖</p><p><b> 附錄D</b></p><p><b> 程序代碼</b></p><p> #include <REG51.H></p><p> #define PI 3.14 //圓
55、周率</p><p> #define R 0.35 //車輪半徑 </p><p> sbit LED=P1^1;</p><p> sbit MO=P1^0;</p><p> bit Flag; //第一次中斷標志</p><p> bit Flag_s;
56、//轉(zhuǎn)換標志</p><p> unsigned char COUNT; //溢出次數(shù)</p><p> unsigned long T[5];</p><p> unsigned char W[5]={1,2,3,4,5}; //權(quán)值</p><p> unsigned char table[]=" The
57、 Speed is";</p><p> unsigned char table1[]="km/h";</p><p> sbit E=P2^5;</p><p> sbit RW=P2^6;</p><p> sbit RS=P2^7;</p><p> void Init(v
58、oid);</p><p> unsigned int Smooth(void);</p><p> void Delay_ms(unsigned char ms);</p><p> void Write_data(unsigned char date);</p><p> void Write_cmd(unsigned char
59、cmd);</p><p> void LCD_init();</p><p> void Display(unsigned int d);</p><p> //-------------------------------</p><p><b> // 主函數(shù)</b></p><p>
60、; //-------------------------------</p><p> void main(void)</p><p><b> {</b></p><p> unsigned int dis_dat;</p><p><b> Flag=0;</b></p>
61、<p><b> Flag_s=0;</b></p><p><b> COUNT=0;</b></p><p> dis_dat=0;</p><p><b> Init();</b></p><p> LCD_init();</p>&
62、lt;p> Delay_ms(20);</p><p><b> EA=1;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> if(Flag_s)</p><p><
63、;b> {</b></p><p> dis_dat=Smooth();</p><p><b> Flag_s=0;</b></p><p><b> }</b></p><p> if(dis_dat>100) //車速大于100KM/h時,報警 </
64、p><p><b> {</b></p><p><b> LED=1;</b></p><p><b> MO=1;</b></p><p><b> }else</b></p><p><b> {</b&
65、gt;</p><p><b> LED=0;</b></p><p><b> MO=0;</b></p><p><b> }</b></p><p> Display(dis_dat);//顯示函數(shù)</p><p><b> }
66、</b></p><p><b> }</b></p><p> //-----------------------------</p><p><b> //名稱:延時函數(shù)</b></p><p> //功能:約為(ms*1)ms時間</p><p>
67、; //-----------------------------</p><p> void Delay_ms(unsigned char ms)</p><p><b> {</b></p><p> unsigned char a,b;</p><p> for(a=ms;a>0;a--)</
68、p><p> for(b=120;b>0;b--);</p><p><b> }</b></p><p> //-----------------------------</p><p> //名稱:定時器,中斷初始化</p><p> //功能:定時器0采用16位,中斷下降沿觸發(fā)&
69、lt;/p><p> //-----------------------------</p><p> void Init(void)</p><p><b> {</b></p><p> TMOD=0x01;</p><p><b> EX0=1;</b></
70、p><p><b> ET0=1;</b></p><p><b> IT0=1;</b></p><p><b> }</b></p><p> //-----------------------------</p><p><b>
71、//名稱:濾波函數(shù)</b></p><p> //功能:加權(quán)濾波,權(quán)值1,2,3,4,5</p><p> //----------------------------- </p><p> unsigned int Smooth(void)</p><p><b> {</b></p>
72、<p> unsigned char i;</p><p> unsigned int dat;</p><p> float dat_temp;</p><p> float sum;</p><p> float avg;</p><p><b> sum=0;</b>
73、</p><p> for(i=0;i<5;i++)</p><p><b> {</b></p><p> sum+=T[i]*W[i];</p><p><b> }</b></p><p> sum=sum/15;</p><p
74、> avg=1000000/sum; //每秒轉(zhuǎn)幾轉(zhuǎn)</p><p> dat_temp=avg*2*PI*R*3.6;//每秒的轉(zhuǎn)數(shù)乘以周長再乘以3.6換算成km/h</p><p> dat=(int)dat_temp;</p><p> return dat;</p><p><b> }<
75、/b></p><p> //----------------------------------------</p><p> //名稱:液晶寫指令子程序</p><p><b> //功能:</b></p><p> //----------------------------------------&
76、lt;/p><p> void Write_cmd(unsigned char cmd)</p><p><b> {</b></p><p><b> RS=0;</b></p><p><b> RW=0;</b></p><p><b&g
77、t; P0=cmd;</b></p><p> Delay_ms(1);</p><p><b> E=1;</b></p><p> Delay_ms(1);</p><p><b> E=0;</b></p><p><b> }<
78、/b></p><p> //----------------------------------------</p><p> //名稱:液晶寫數(shù)據(jù)子程序</p><p><b> //功能:</b></p><p> //----------------------------------------&
79、lt;/p><p> void Write_data(unsigned char date)//</p><p><b> {</b></p><p><b> RS=1;</b></p><p><b> RW=0;</b></p><p><
80、;b> P0=date;</b></p><p> Delay_ms(1);</p><p><b> E=1;</b></p><p> Delay_ms(1);</p><p><b> E=0;</b></p><p><b>
81、}</b></p><p> //----------------------------------------</p><p> //名稱:液晶初始化程序</p><p><b> //功能:</b></p><p> //-------------------------------------
82、---</p><p> void LCD_init()</p><p><b> {</b></p><p><b> E=0;</b></p><p> Write_cmd(0x38);//16*2,5*7,8位數(shù)據(jù)</p><p> Write_cmd(0x
83、0c);//顯示開,光標不顯示,不閃爍</p><p> Write_cmd(0x06);//地址加1,光標加1,整屏不移動</p><p> Write_cmd(0x80);//地址初始</p><p><b> }</b></p><p> //-----------------------------
84、-----------</p><p> //名稱:車速顯示程序</p><p><b> //功能:</b></p><p> //----------------------------------------</p><p> void Display(unsigned int d)</p>
85、<p><b> {</b></p><p> unsigned char bai,shi,ge;</p><p> unsigned char num;</p><p> static bit flag1=1;</p><p> bai=d/100;</p><p> sh
86、i=d%100/10;</p><p><b> ge=d%10;</b></p><p><b> if(flag1)</b></p><p><b> {</b></p><p> Write_cmd(0x01); //清屏</p>
87、<p> for(num=0;num<17;num++)</p><p><b> {</b></p><p> Write_data(table[num]);</p><p><b> }</b></p><p> Write_cmd(0x80+0x45);</p
88、><p> for(num=0;num<4;num++)</p><p><b> {</b></p><p> Write_data(table1[num]);</p><p><b> }</b></p><p><b> flag1=0;</
89、b></p><p><b> }</b></p><p> Write_cmd(0x80+0x40);</p><p> Write_data(0x30+bai);</p><p> Write_data(0x30+shi);</p><p> Write_data(0x30+g
90、e);</p><p><b> }</b></p><p> //---------------------------</p><p> //外部中斷0的中斷函數(shù)</p><p> //---------------------------</p><p> void INT(voi
91、d) interrupt 0</p><p><b> {</b></p><p><b> if(Flag)</b></p><p><b> {</b></p><p> static unsigned char m=0; </p><p>
92、 T[m]=TH0*256+TL0+65536*COUNT;</p><p><b> TH0=0;</b></p><p><b> TL0=0;</b></p><p><b> COUNT=0;</b></p><p><b> m++;</b&
93、gt;</p><p><b> if(m==5)</b></p><p><b> {</b></p><p><b> m=0;</b></p><p><b> Flag_s=1;</b></p><p><b&
94、gt; }</b></p><p><b> }else</b></p><p><b> {</b></p><p><b> Flag=1;</b></p><p><b> TH0=0;</b></p><p
95、><b> TL0=0;</b></p><p><b> TR0=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> //-----------------------------&
96、lt;/p><p> //定時器0的中斷函數(shù)</p><p> //-----------------------------</p><p> void Time(void) interrupt 1</p><p><b> {</b></p><p><b> COUNT++;
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 控制系統(tǒng)仿真課程設(shè)計
- 控制系統(tǒng)課程設(shè)計報告--- 控制系統(tǒng)設(shè)計與仿真
- 控制系統(tǒng)設(shè)計與仿真課程設(shè)計報告
- 控制系統(tǒng)仿真課程設(shè)計--載熱體前饋-反饋控制系統(tǒng)仿真
- 汽車速度控制系統(tǒng)的設(shè)計與仿真
- 控制系統(tǒng)仿真課程設(shè)計--雙容水箱液位控制系統(tǒng)仿真
- 課程設(shè)計-- 車速檢測系統(tǒng)
- 課程設(shè)計---鍋爐給水控制系統(tǒng)設(shè)計與仿真
- plc課程設(shè)計--配料車控制系統(tǒng)程序設(shè)計
- 自動控制原理課程設(shè)計----控制系統(tǒng)的設(shè)計與仿真
- 控制系統(tǒng)仿真課程設(shè)計--基于simulink的載熱體前饋-反饋控制系統(tǒng)仿真研究
- matlab控制系統(tǒng)仿真課程設(shè)計--pid控制器應(yīng)用
- 課程設(shè)計---精餾塔頂溫度控制系統(tǒng)設(shè)計與仿真
- 溫度控制系統(tǒng)課程設(shè)計
- 集散控制系統(tǒng)課程設(shè)計
- 控制系統(tǒng)課程設(shè)計--- 聯(lián)合站控制系統(tǒng)
- 微機原理課程設(shè)計汽車速度控制
- 控制系統(tǒng)建模分析設(shè)計和仿真-計算機仿真課程設(shè)計
- 計算機仿真課程設(shè)計--控制系統(tǒng)建模、分析、設(shè)計和仿真
- 運動控制系統(tǒng)課程設(shè)計
評論
0/150
提交評論