電動(dòng)車(chē)速度里程計(jì)的設(shè)計(jì)_第1頁(yè)
電動(dòng)車(chē)速度里程計(jì)的設(shè)計(jì)_第2頁(yè)
電動(dòng)車(chē)速度里程計(jì)的設(shè)計(jì)_第3頁(yè)
電動(dòng)車(chē)速度里程計(jì)的設(shè)計(jì)_第4頁(yè)
電動(dòng)車(chē)速度里程計(jì)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

電動(dòng)車(chē)速度/里程計(jì)的設(shè)計(jì)目錄TOC\o"1-5"\h\z\o"CurrentDocument"第一章電動(dòng)車(chē)速度/里程計(jì)的設(shè)計(jì)21.1系統(tǒng)結(jié)構(gòu)2\o"CurrentDocument"1.2各部分功能簡(jiǎn)介3\o"CurrentDocument"1.3工作原理3\o"CurrentDocument"1.4功能介紹3第二章硬件設(shè)計(jì)42.1電源部分設(shè)計(jì)42.2傳感部分及接口設(shè)計(jì)52.3主控器單元5\o"CurrentDocument"存儲(chǔ)器EEPROM(AT24C01)6\o"CurrentDocument"2.5其它7\o"CurrentDocument"2.6硬件設(shè)計(jì)圖7第三章I2C總線(xiàn)原理8\o"CurrentDocument"I2C總線(xiàn)8I2C總線(xiàn)特點(diǎn)8\o"CurrentDocument"I2C總線(xiàn)工作原理9\o"CurrentDocument"I2C總線(xiàn)基本操作9I2C總線(xiàn)的應(yīng)用的注意事項(xiàng)總結(jié)9第四章軟件設(shè)計(jì)104.1程序設(shè)計(jì)10\o"CurrentDocument"4.2軟件匯編編譯、調(diào)試以及仿真10\o"CurrentDocument"4.3源程序10第五章結(jié)論11附錄A12附錄B25電動(dòng)車(chē)的速度/里程計(jì)的設(shè)計(jì)【引言】隨著社會(huì)的發(fā)展、科技的進(jìn)步以及人們生活水平的逐步提高,各種方便于生活的嵌入式智能系統(tǒng)開(kāi)始進(jìn)入了人們的生活,以單片機(jī)為核心的智能系統(tǒng)就是其中之一。同時(shí)也標(biāo)志了智能領(lǐng)域成為了數(shù)字化時(shí)代的一員。它實(shí)用性強(qiáng),功能齊全,技術(shù)先進(jìn),使人們相信這是科技進(jìn)步的成果。它更讓人類(lèi)懂得,數(shù)字時(shí)代的發(fā)展將改變?nèi)祟?lèi)的生活,將加快科學(xué)技術(shù)的發(fā)展。21世紀(jì),單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)自動(dòng)檢測(cè)日新月益更新。在實(shí)時(shí)檢測(cè)的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)是作為一個(gè)核心部件來(lái)使用,完成對(duì)數(shù)據(jù)的采集、運(yùn)算處理以及對(duì)數(shù)據(jù)的顯示等。僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,以作完善。隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路產(chǎn)生而出現(xiàn)的微型計(jì)算機(jī),給人類(lèi)生活帶來(lái)了根本性的改變。目前,單片機(jī)以其高可靠性、高性能價(jià)格比,在工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表、辦公自動(dòng)化等諸多領(lǐng)域得到極為廣泛的應(yīng)用,并已走入家庭,從洗衣機(jī)、微波爐到音響、汽車(chē),到處都可見(jiàn)到單片機(jī)是蹤影。因此,單片機(jī)技術(shù)開(kāi)發(fā)和應(yīng)用水平已逐步成為一個(gè)國(guó)家工業(yè)發(fā)展水平的標(biāo)志之一。第一章電動(dòng)車(chē)速度/里程計(jì)的設(shè)計(jì)簡(jiǎn)介1.1系統(tǒng)結(jié)構(gòu)圖如圖(1)所示:圖(1)系統(tǒng)結(jié)構(gòu)圖1.2各部分功能簡(jiǎn)介(1)電源部分:首先我們要完成最基本,最必須的電源部分安裝調(diào)試,任何電路都離不開(kāi)電源部分,單片機(jī)系統(tǒng)也不例外,而且我們應(yīng)該高度重視電源部分,不能因?yàn)殡娫床糠蛛娐繁容^簡(jiǎn)單而有所忽略,其實(shí)有將近一半的故障或制作失敗都和電源有關(guān),電源部分做好才能保證電路的正常工作。(2)傳感部分:主要完成對(duì)電動(dòng)車(chē)轉(zhuǎn)速的轉(zhuǎn)換單元,將圈數(shù)轉(zhuǎn)換為脈沖個(gè)數(shù),便于單片機(jī)認(rèn)識(shí)。(3)主控器單元:該單元是本系統(tǒng)的核心部分。主完成對(duì)電動(dòng)車(chē)速度、里程的運(yùn)算以及顯示功能。(4)顯示單元:主要顯示里程、速度。(5)存儲(chǔ)器:單片機(jī)能讀寫(xiě)存儲(chǔ)器中的里程數(shù),掉電不丟失數(shù)據(jù)。(6)鍵盤(pán):調(diào)整車(chē)輪胎大小以及顯示里程,速度之間的切換。1.3工作原理本次設(shè)計(jì)采用AT89C51單片機(jī)控制。通過(guò)霍爾傳感器對(duì)電動(dòng)車(chē)圈數(shù)轉(zhuǎn)換為脈沖個(gè)數(shù),將傳感信號(hào)送至單片機(jī)的外中斷INTO、INT1。通過(guò)單片機(jī)對(duì)脈沖個(gè)數(shù)運(yùn)算,得到里程數(shù)以及速度數(shù)據(jù)。1.3.1霍爾傳感器將電動(dòng)車(chē)的輪子轉(zhuǎn)動(dòng)的圈數(shù)轉(zhuǎn)換為脈沖個(gè)數(shù)。1.3.2里程計(jì)數(shù)程序(外中斷0服務(wù)程序)外中斷0服務(wù)程序用于對(duì)12腳輸入的圈脈沖進(jìn)行計(jì)數(shù),為十六進(jìn)制計(jì)數(shù)器°60H為低位,62H為高位,每計(jì)數(shù)一次后,對(duì)里程數(shù)據(jù)進(jìn)行一次存儲(chǔ)操作。1.3.3外中斷1服務(wù)程序外中斷服務(wù)程序用于處理輪子轉(zhuǎn)動(dòng)一圈后的計(jì)時(shí)數(shù)據(jù)。當(dāng)標(biāo)志位(00H)為1時(shí),說(shuō)明計(jì)數(shù)器溢出,放入最大時(shí)間值(為#0FFH);當(dāng)標(biāo)志位為0時(shí),將計(jì)數(shù)單元(TL1、TH1、6CH、6DH)的放入68H—6BH單元。1.3.4EEPROM存取程序本系統(tǒng)使用歸一化I£串口存取程序,使用一條數(shù)據(jù)和時(shí)鐘,采用ATMEL公司的24C01串口存儲(chǔ)器,應(yīng)用簡(jiǎn)單方便。1.3.5顯示子程序當(dāng)顯示里程時(shí),先要將圈數(shù)計(jì)數(shù)器中的數(shù)據(jù)進(jìn)行運(yùn)算,求出總里程當(dāng)要顯示速度時(shí),將輪子的周長(zhǎng)和轉(zhuǎn)一圈的時(shí)間數(shù)相除,然后換算成KM/H單位。最后放入70H-73H,進(jìn)行數(shù)據(jù)的顯示。功能介紹本系統(tǒng)設(shè)有五個(gè)按鍵分別為四個(gè)鍵設(shè)置輪胎大小和一個(gè)鍵是里程/速度切換,并設(shè)有報(bào)警裝置,當(dāng)速度超過(guò)40KM/H時(shí)自動(dòng)啟動(dòng)報(bào)警裝置。四個(gè)按鍵:A:輪胎周長(zhǎng)為22英寸B:輪胎周長(zhǎng)為24英寸C:輪胎周長(zhǎng)為26英寸D:輪胎周長(zhǎng)為28英寸第二章硬件設(shè)計(jì)2.1電源部分設(shè)計(jì)電源輸出采用集成穩(wěn)壓管LM7805系列穩(wěn)壓輸出+5V電壓。市電220V交流電經(jīng)過(guò)變壓器降至9V交流;再用橋式整流、濾波、穩(wěn)壓得到單片機(jī)所需要的電源。如圖(2)所示:圖(2)電源電路2.2.傳感部分及接口設(shè)計(jì)2.2.1霍爾元件簡(jiǎn)介DN8799是一種霍爾開(kāi)關(guān)電路又稱(chēng)霍爾數(shù)字電路,主要由穩(wěn)壓器、霍爾片、差分放大器、斯密特觸發(fā)器和輸出級(jí)組成。在外磁場(chǎng)的作用下,當(dāng)B(磁感受應(yīng)強(qiáng)度)超過(guò)導(dǎo)通閾值BOP(工作點(diǎn))時(shí),霍爾電路輸出管導(dǎo)通,輸出低電平。B再增加,仍保持導(dǎo)通態(tài)。若外加磁場(chǎng)的B值降低到BRP(釋放點(diǎn))時(shí),輸出管截止,輸出高電平。2.2.2內(nèi)部等效圖如圖(3)所示:■BbdcDisgr-arn圖(3)內(nèi)部等效圖2.2.3與單片機(jī)接口(1)接口電路如圖(4)所示:+3VOUT圖(4)DN8799INT0引腳分頻器GND圖(3)內(nèi)部等效圖(1)接口電路如圖(4)所示:+3VOUT圖(4)DN8799INT0引腳分頻器GND(2)電動(dòng)車(chē)每轉(zhuǎn)一圈,DN8799將產(chǎn)生一個(gè)低脈沖如圖(5)所示:2.3主控器單元2.3主控器單元2.3.1采用AT89C51單片機(jī)作為主控單元。AT89C51是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4kbytes的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器(PEROM)和128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元。AT89C51是一個(gè)低功耗高性能單片機(jī),40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,AT89C51可以按照常規(guī)方法進(jìn)行編程,也可以在線(xiàn)編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,可反復(fù)擦寫(xiě)的Flash存儲(chǔ)器可有效地降低開(kāi)發(fā)成本。4k可反復(fù)擦寫(xiě)(>1000次)FlashROM可編程UARL通道全靜態(tài)操作0-24MHz4k可反復(fù)擦寫(xiě)(>1000次)FlashROM可編程UARL通道全靜態(tài)操作0-24MHz128x8bit內(nèi)部RAM共5個(gè)中斷源3級(jí)加密位軟件設(shè)置睡眠和喚醒功能兼容MCS—51指令系統(tǒng)32個(gè)雙向I/O口兩個(gè)16位可編程定時(shí)/計(jì)數(shù)器1個(gè)串行中斷兩個(gè)外部中斷源可直接驅(qū)動(dòng)LED低功耗空閑和掉電模式存儲(chǔ)器EEPROM(AT24C01):AT24C01是Atmel公司生產(chǎn)的1024B串行電可擦的可編程存儲(chǔ)器,任一單元的地址為8位,地址范圍為0000?03FFH。它采用8引腳封裝,具有結(jié)構(gòu)緊湊、存儲(chǔ)容量大等特點(diǎn),可以在2線(xiàn)總線(xiàn)上并接8片芯片,特別適用于具有大容量數(shù)據(jù)存儲(chǔ)要求的數(shù)據(jù)采集系統(tǒng),因此在測(cè)控系統(tǒng)中被大量采用。AT24C01各引腳的功能如下:A0、A1、A2——地址選擇輸入端。在串行總線(xiàn)結(jié)構(gòu)中,如需連接8個(gè)AT24C01芯片,則可用A0、A1、A2來(lái)區(qū)分各芯片。A0、A1、A2懸空時(shí)為0。SDA——雙向串行數(shù)據(jù)輸入輸出口。用于存儲(chǔ)器與單片機(jī)之間的數(shù)據(jù)交換。SCL——串行時(shí)鐘輸入。通常在其上升沿將SDA上的數(shù)據(jù)寫(xiě)入存儲(chǔ)器,而在下降沿從存儲(chǔ)器讀出數(shù)據(jù)并送往SDA。WP——寫(xiě)保護(hù)輸入。此引腳與地相連時(shí),允許寫(xiě)操作;與VCC相連時(shí),所有的寫(xiě)存儲(chǔ)器操作被禁止。如果不連,該腳將在芯片內(nèi)部下拉到地。VCC——電源。GND接地。NC懸空。(1)與單片機(jī)接口如圖(6)所示:NC-18_VCCNC-27-WPNC—36SCLSDAGND-54AT24C01P1.4P1.5圖(6)接口電路(2)設(shè)備選址在對(duì)AT24C01開(kāi)始操作前,需要先發(fā)一個(gè)8位的地址字來(lái)選擇芯片以進(jìn)行讀寫(xiě)。其中“1010”為固定的4位二進(jìn)制;A0、A1、A2用于對(duì)多個(gè)AT24C01加以區(qū)分;R/W為讀寫(xiě)操作位,為1時(shí)表示讀操作,為0時(shí)表示寫(xiě)操作。(3)寫(xiě)操作AT24C01的寫(xiě)操作有寫(xiě)字節(jié)和寫(xiě)頁(yè)兩種方式。寫(xiě)字節(jié)時(shí)通常在向AT24C01發(fā)送設(shè)備地址字并接到應(yīng)答信號(hào)后,還需要發(fā)送1個(gè)8位地址來(lái)選擇要寫(xiě)數(shù)據(jù)的地址。AT24C01接收到這個(gè)地址后會(huì)應(yīng)答一個(gè)零信號(hào),然后接收8位數(shù)據(jù)進(jìn)來(lái),并再返回一個(gè)零應(yīng)答信號(hào)。在寫(xiě)頁(yè)方式時(shí),AT24C01可以一次性寫(xiě)入一頁(yè)128字節(jié)。其初始化過(guò)程與寫(xiě)字節(jié)的方法基本相同。不同的是:當(dāng)寫(xiě)入一個(gè)數(shù)據(jù)字節(jié)后,單片機(jī)不發(fā)停止?fàn)顟B(tài),而是在應(yīng)答信號(hào)后接著輸入127個(gè)字節(jié);每一個(gè)字節(jié)接收完畢后,AT24C01則照樣輸出一個(gè)零應(yīng)答信號(hào)。(4)讀操作讀操作有當(dāng)前地址讀、隨機(jī)讀、讀串三種方式。其初始化過(guò)程基本與寫(xiě)操作相同,只是在設(shè)備選擇字中的最低位要改成讀而已。在當(dāng)前地址讀操作方式時(shí),內(nèi)部數(shù)據(jù)的地址將保持在最后的讀寫(xiě)操作地址加1上,直到讀到最后字節(jié)后又回到最開(kāi)始的位置。而隨機(jī)讀操作之前先要向AT24C01寫(xiě)入一個(gè)字節(jié)地址,然后才能讀。讀串操作既可以是當(dāng)前地址讀,也可以是隨機(jī)地址讀。當(dāng)單片機(jī)接收到一個(gè)數(shù)據(jù)字后,會(huì)回應(yīng)一個(gè)應(yīng)答信號(hào)。AT24C01在接收到應(yīng)答信號(hào)后會(huì)將地址加1,接著輸出下一個(gè)字節(jié)。當(dāng)單片機(jī)接收到數(shù)據(jù)但不送應(yīng)答信號(hào)時(shí),讀過(guò)程結(jié)束。2.5其它1)顯示采用動(dòng)態(tài)掃描方式對(duì)數(shù)碼管住掃描,掃描頻率在50HZ以上,并用三極管加以驅(qū)動(dòng)2)鍵盤(pán)采用單片機(jī)掃描方式對(duì)鍵盤(pán)逐個(gè)掃描處理相應(yīng)程序。3)分頻器(TC4024)如圖(7)所示:

CLOCKRESETTC4024匚匚匚123456CLOCKRESETTC4024匚匚匚1234567圖(7)TC4024封裝圖(4)內(nèi)部等效圖如圖(8)所示:圖(8)內(nèi)部等效圖(5)邏輯時(shí)序圖如圖(9)所示:CLOCKQ1Q2-Q7:圖(9)時(shí)序圖說(shuō)明:CLK:為輸入時(shí)鐘信號(hào)。RST:復(fù)位信號(hào)輸入端Q1:為CLK二分頻輸出端Q2:為CLK四分頻輸出端Q3-Q7以此類(lèi)推本文只采用二分頻,即Q1輸端。2.6硬件設(shè)計(jì)圖原理圖在PROTEL99SE下完成設(shè)計(jì)的,并設(shè)計(jì)制作PCB板。附錄C第三章I2C總線(xiàn)原理BC總線(xiàn)l2C(Inter—IntegratedCircuit)總線(xiàn)是一種由PHILIPS公司開(kāi)發(fā)的兩線(xiàn)式串行總線(xiàn),用于連接微控制器及其外圍設(shè)備。I2C總線(xiàn)產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開(kāi)發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。例如管理員可對(duì)各個(gè)組件進(jìn)行查詢(xún),以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風(fēng)扇??呻S時(shí)監(jiān)控內(nèi)存、硬盤(pán)、網(wǎng)絡(luò)、系統(tǒng)溫度等多個(gè)參數(shù),增加了系統(tǒng)的安全性,方便了管理。I2C總線(xiàn)特點(diǎn)I2C總線(xiàn)最主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。由于接口直接在組件之上,因此I2C總線(xiàn)占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本??偩€(xiàn)的長(zhǎng)度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個(gè)組件。I2C總線(xiàn)的另一個(gè)優(yōu)點(diǎn)是,它支持多主控(multimastering),其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線(xiàn)。一個(gè)主控能夠控制信號(hào)的傳輸和時(shí)鐘頻率。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控。I2C總線(xiàn)工作原理I2C總線(xiàn)是由數(shù)據(jù)線(xiàn)SDA和時(shí)鐘SCL構(gòu)成的串行總線(xiàn),可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,最高傳送速率100kbps。各種被控制電路均并聯(lián)在這條總線(xiàn)上,但就像電話(huà)機(jī)一樣只有撥通各自的號(hào)碼才能工作,所以每個(gè)電路和模塊都有唯一的地址,在信息的傳輸過(guò)程中,I2C總線(xiàn)上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。CPU發(fā)出的控制信號(hào)分為地址碼和控制量?jī)刹糠郑刂反a用來(lái)選址,即接通需要控制的電路,確定控制的種類(lèi);控制量決定該調(diào)整的類(lèi)別(如對(duì)比度、亮度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線(xiàn)上,卻彼此獨(dú)立,互不相關(guān)。I2C總線(xiàn)在傳送數(shù)據(jù)過(guò)程中共有三種類(lèi)型信號(hào),它們分別是:開(kāi)始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。開(kāi)始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開(kāi)始傳送數(shù)據(jù)。結(jié)束信號(hào):SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障。目前有很多半導(dǎo)體集成電路上都集成了I2C接口。帶有I2C接口的單片機(jī)有:CYGNAL的C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外圍器件如存儲(chǔ)器、監(jiān)控芯片等也提供I2C接口。3.4總線(xiàn)基本操作I2C規(guī)程運(yùn)用主/從雙向通訊。器件發(fā)送數(shù)據(jù)到總線(xiàn)上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。總線(xiàn)必須由主器件(通常為微控制器)控制,主器

件產(chǎn)生串行時(shí)鐘(SCL)控制總線(xiàn)的傳輸方向,并產(chǎn)生起始和停止條件。SDA線(xiàn)上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來(lái)表示起始和停止條件。如圖(10)圖(10)串行總線(xiàn)上的數(shù)據(jù)傳送順序3.4.1控制字節(jié)在起始條件之后,必須是器件的控制字節(jié),其中高四位為器件類(lèi)型識(shí)別符(不同的芯片類(lèi)型有不同的定義,EEPROM一般應(yīng)為1010),接著三位為片選,最后一位為讀寫(xiě)位,當(dāng)為1時(shí)為讀操作,為0時(shí)為寫(xiě)操作。如圖(11)所示。圖(11)控制字節(jié)配置3.4.2寫(xiě)操作寫(xiě)操作分為字節(jié)寫(xiě)和頁(yè)面寫(xiě)兩種操作,對(duì)于頁(yè)面寫(xiě)根據(jù)芯片的一次裝載的字節(jié)不同有所不同。關(guān)于頁(yè)面寫(xiě)的地址、應(yīng)答和數(shù)據(jù)傳送的時(shí)序如圖(12)所示?!鯩LlhlFBiJEACWTVBJJlCLUwwi皿心Ej■MLlhlFBiJEACWTVBJJlCLUwwi皿心Ej胃頃HDALJE圖(12)頁(yè)面寫(xiě)3.4.3讀操作讀操作有三種基本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。圖4給出的是順序讀的時(shí)序圖。應(yīng)當(dāng)注意的是:最后一個(gè)讀操作的第9個(gè)時(shí)鐘周期不是“不關(guān)心”。為了結(jié)束讀操作,主機(jī)必須在第9個(gè)周期間發(fā)出停止條件或者在第9個(gè)時(shí)鐘周期內(nèi)保持SDA為高電平、然后發(fā)出停止條件。如圖(13)所示:圖(13)順序讀3.5在12C總線(xiàn)的應(yīng)用中應(yīng)注意的事項(xiàng)總結(jié)為以下幾點(diǎn):1)嚴(yán)格按照時(shí)序圖的要求進(jìn)行操作。2)若與口線(xiàn)上帶內(nèi)部上拉電阻的單片機(jī)接口連接,可以不外加上拉電阻。3)程序中為配合相應(yīng)的傳輸速率,在對(duì)口線(xiàn)操作的指令后可用NOP指令加一定的延時(shí)。4)為了減少意外的干擾信號(hào)將EEPROM內(nèi)的數(shù)據(jù)改寫(xiě)可用外部寫(xiě)保護(hù)引腳(如果有),或者在EEPROM內(nèi)部沒(méi)有用的空間寫(xiě)入標(biāo)志字,每次上電時(shí)或復(fù)位時(shí)做一次檢測(cè),判斷EEPROM是否被意外改寫(xiě)。第四章軟件設(shè)計(jì)4.1程序設(shè)計(jì)本文軟件主要完成對(duì)信號(hào)采樣,各種數(shù)據(jù)處理、以及對(duì)速度/里程數(shù)據(jù)顯示的控制等,并采用I2:總線(xiàn)對(duì)電動(dòng)車(chē)的里程數(shù)據(jù)進(jìn)行讀寫(xiě)操作。本系統(tǒng)軟件是主要包括鍵開(kāi)關(guān)掃描程序、I2:的軟件模擬程序、里程計(jì)數(shù)程序(外中斷0服務(wù)程序)、外中斷1服務(wù)程序、定時(shí)器中斷程序、顯示程序等。部分程序流程圖見(jiàn)附錄A系統(tǒng)程序流程圖如圖(14)所示:4.2軟件匯編編譯、調(diào)試以及仿真本文的軟件調(diào)試在51單片機(jī)開(kāi)發(fā)系統(tǒng)Medwin環(huán)境下,對(duì)軟件進(jìn)行匯編編譯、模擬仿真、調(diào)試等操作,最終完成軟件設(shè)計(jì)。4.3源程序見(jiàn)附錄B。附錄A:夕卜外中斷INT0服務(wù)子程序:外中斷INT1服務(wù)子程序:定時(shí)器中斷服務(wù)子程序附錄日:;60H,61H,62H作里程計(jì)數(shù)單元,6CH,6DH作T1計(jì)數(shù)擴(kuò)充單元,;68H,69H,6AH,6BH存放自行車(chē)每圈時(shí)間數(shù),70H,71H,72H,73H作顯示BCD;碼存放數(shù)用,11H~15H存放;;被除數(shù),16H~19H存放除數(shù);定義VSDAEQUP1.5VSCLEQUP1.4SLAEQU50HNUMBYTEQU51HMTDEQU30HMRDEQU40HSLAWEQU0A0HSLAREQU0A1HDPHHEQU62HTH1HEQU6CHTH1HHEQU6DH;;;;;;;;;;;;;;;;;;;PROGRAMINPUT;;;;;;;;;;;;;;;;;;;ORG0000HLJMPSTARTORG0003HLJMPINTEX0ORG000BHRETIORG0013HLJMPINTEX1ORG001BHLJMPINTT1ORG0023HRETI;;;;;;;;;;;;;;;;;;;PRGRAMCLEAR;;;;;;;;;;;;;;;;;上電初始化程序CLEARMEN:MOVTMOD,#90HMOVSP,#75H

SETBPX0SETBIT0SETBIT1CLRAMOV20H,AMOV6CH,AMOV6DH,AMOV70H,AMOV71H,AMOV72H,AMOV73H,AMOV60H,AMOV61H,AMOV62H,AMOV63H,ADECAMOV68H,AMOV69H,AMOV6AH,AMOV6BH,AMOVP1,ACLEAR1:JBP1.2,KEY1MOV21H,#0FHLJMPCLEAR2KEY1:JBP1.3,KEY2MOV21H,#12HLJMPCLEAR2KEY2:JBP1.6,KEY3MOV21H,#14HLJMPCLEAR2KEY3:JBP1.7,ERRMOV21H,#19HCLEAR2:SETBTR1SETBEASETBEX0SETBET1SETBP3.1LCALLVIICREADRETERR:CPLP3.1LCALLDL5SLJMPCLEAR1;;;;;;;;;;;;;;;;;;;;PROGRAMSTART;;;;;;;;;;;;;;;;;;;;START:LCALLCLEARMENSTART1:JBP3.0,DISPLAYSLCALLDISPLAYVSTART2:SJMPSTART1;;;;;;;;;;;;;;;;;;;;;INTEX0PROGRAM;;;;;;;;;;;;;;;;;;;;;里程計(jì)數(shù)程序,用外中斷0實(shí)現(xiàn),計(jì)數(shù)用60H-62H內(nèi)存單元INTEX0:PUSHACCPUSHPSWINC60HCLRACJNEA,60H,INTEX0OUTINC61HCJNEA,61H,INTEX0OUTINC62HINTEX0OUT:LCALLVIICWRITESETBEX1POPPSWPOPACCRETI;;;;;;;;;;;;;;;;;;;;;INTEX1PROGRAM;;;;;;;;;;;;;;;;;;;;;每轉(zhuǎn)1圈時(shí)間計(jì)數(shù)處理程序,每圈時(shí)間放在68H-6BH單元中INTEX1:PUSHACCPUSHPSWCLREX1JNB00H,INTEX11MOVTL1,#0FFHMOVTH1,#0FFHMOV6CH,#0FFHMOV6DH,#0FFHINTEX11:MOV68H,TL1MOV69H,TH1MOV6AH,6CHMOV6BH,6DHCLRAMOVTL1,AMOVTH1,AMOV6CH,AMOV6DH,ACLR00HPOPPSWPOPACCRETI;;;;;;;;;;;;;;;;;;;;INTT1PROGRAM;;;;;;;;;;;;;;;;;;;;;T1計(jì)數(shù)器中斷服務(wù)程序。(計(jì)數(shù)器T1由外中斷1輸入控制,當(dāng)為高電平時(shí)計(jì)時(shí)開(kāi)始)INTT1:PUSHACCPUSHPSWINC6CHMOVA,6CHJNZINTT11INC6DHMOVA,6DHJNZINTT11SETB00HINTT11:POPPSWPOPACCRETI;;;;;;;;;;;;;;DISPLAYS;;;;;;;;;;;;;;;;里程顯示控制程序DISPLAYS:SETBP1.0CLRP1.1SETBP3.7LCALLSSSLCALLDISPLAYLJMPSTART1;;;;;;;;;;;;;;;;DISPLAYV;;;;;;;;;;;;;;;;速度顯示控制程序DISPLAYV:CLRP1.0SETBP1.1CLRP3.7LCALLVVVMOVA,71HSUBBA,#04HJNCWARINGSETBP3.1V1:LCALLDISPLAYRETWARING:CLRP3.1AJMPV1;;;;;;;;;;;;;;;;VIICWRITE;;;;;;;;;;;;;;;;歸一化EEPROM存入程序(12MHZ),存入數(shù)在家50H起單元VIICWRITE:ACALLWMOV9MOVSLA,#SLAWMOVNUMBYT,#09HLCALLWRNBYTRETWMOV9:MOV5FH,#50HMOVR0,#MTDMOVR1,#5FHMOVR2,#09HWMOV:MOVA,@R1MOV@R0,AINCR0INCR1DJNZR2,WMOVRET;;;;;;;;;;;;;;;VIICREAD;;;;;;;;;;;;;;;歸一化EEPROM讀出程序(12MHZ時(shí)鐘),讀出數(shù)放入60H~67H單元VIICREAD:MOVMTD,#50HMOVSLA,#SLAWMOVNUMBYT,#01HLCALLWRNBYTMOVSLA,#SLARMOVNUMBYT,#08HLCALLRDNBYTACALLRMOV8RETRMOV8:MOVR0,#MRDMOVR1,#60HMOVR2,#08HRMOV:MOVA,@R0MOV@R0,A

INCR0INCR1DJNZR2,RMOVRET;;;;;;;;;;;;;;;;;VIICPROGRAM;;;;;;;;;;;;;;;;;;IIC串行歸一化存儲(chǔ)子程序STA:SETBVSDASETBVSCLNOPNOPNOPNOPCLRVSDANOPCLRVSDANOPNOPNOPNOPCLRVSCLRETSTOP:CLRVSDASETBVSCLNOPNOPNOPNOPSETBVSDANOPNOPNOPNOPCLRVSDACLRVSCLRETMACK:CLRVSDASETBVSCLNOPNOPNOPNOPCLRVSCLSETBVSDA

RETMNACK:SETBVSDASETBVSCLNOPNOPNOPNOPCLRVSCLCLRVSDARETCACK:SETBVSDASETBVSCLCLRF0MOVC,VSDAJNCCENDSETBF0CEND:CLRVSCLRETWRBYT:MOVR0,#08HWLP:RLCAJCWR1AJMPWR0WLP1:DJNZR0,WLPRETWR1:SETBVSDASETBVSCLNOPNOPNOPNOPCLRVSCLCLRVSDAAJMPWLP1WR0:CLRVSDASETBVSCLNOPNOPNOPNOPCLRVSCLAJMPWLP1RDBYT:MOVR0,#08HRLP:SETBVSDASETBVSCLMOVC,VSDAMOVA,R2

RLCAMOVR2,ACLRVSCLDJNZR0,RLPRETWRNBYT:MOVR3,NUMBYTLCALLSTAMOVA,SLALCALLWRBYTLCALLCACKJBF0,WRNBYTMOVR1,#MTDWRDA:MOVA,@R1LCALLWRBYTLCALLCACKJBF0,WRNBYTINCR1DJNZR3,WRDALCALLSTOPRETRDNBYT:MOVR3,NUMBYTLCALLSTAMOVA,SLALCALLWRBYTLCALLCACKJBF0,RDNBYTRDN:MOVR1,#MRDRDN1:LCALLRDBYTMOV@R1,ADJNZR3,ACKLCALLMNACKLCALLSTOPRETACK:LCALLMACKINCR1SJMP;RDN1;;;;;;;;;;;;;;;;;;;;;DISPLAYPROGRAM;;;;;;;;;;;;;;;;;;;;;;顯示程序。顯示BCD碼在70H?73H單元內(nèi),DISPLAY:MOVR1,#70HMOVR2,#0FEHPLAY:MOVA,R2MOVP2,AMOVA,@R1采用共陰LED數(shù)碼管ANLA,#0FHMOVDPTR,#TABMOVCA,@A+DPTRMOVP0,ALCALLDL1MSINCR1MOVA,R2JNBACC.3,ENDOUTRLAMOVR2,AAJMPPLAYENDOUT:SETBP2.0SETBP2.1SETBP2.2SETBP2.3RET;共陰段碼表(可顯示0?F)TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71HDB00H;;;;;;;;;;;;;;;;;;SSSPROGRAM;;;;;;;;;;;;;;;;;;里程處理程序,將自行車(chē)圈數(shù)據(jù)換算成公里數(shù)SSS:MOV19H,#64HMOV18H,#00HMOV17H,#00HMOV16H,#00HMOV11H,#00HMOV12H,#00HMOV13H,62HMOV14H,61HMOV15H,60HLCALLDIVSTLCALLBCDSTMOVA,25HANLA,#0FHMOV70H,AMOVA,25HSWAPAANLA,#0FHMOV71H,AMOVA,24HANLA,#0FHMOV7

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論