畢業(yè)設計-基于AT89S52單片機的自行車里程表設計_第1頁
畢業(yè)設計-基于AT89S52單片機的自行車里程表設計_第2頁
畢業(yè)設計-基于AT89S52單片機的自行車里程表設計_第3頁
畢業(yè)設計-基于AT89S52單片機的自行車里程表設計_第4頁
畢業(yè)設計-基于AT89S52單片機的自行車里程表設計_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、CHANGZHOU INSTITUTE OF TECHNOLOGY題目:基于單片機的自行車里程表設計二級學院直屬學部: 延陵學院 專業(yè): 電氣工程及其自動化 班級: 10電Y3 學生姓名: 學號: 10124508 指導教師姓名: 范力旻 職稱: 副教授 2013年12月30日至2014年1月10日目 錄 TOC o 1-3 h z u HYPERLINK l _Toc376684509 第1章 緒論 PAGEREF _Toc376684509 h 2 HYPERLINK l _Toc376684510 課題的背景 PAGEREF _Toc376684510 h 2 HYPERLINK l _

2、Toc376684511 課題的主要任務及設計內(nèi)容 PAGEREF _Toc376684511 h 3 HYPERLINK l _Toc376684512 第2章 總體方案的設計 PAGEREF _Toc376684512 h 3 HYPERLINK l _Toc376684513 2.1任務分析與實現(xiàn) PAGEREF _Toc376684513 h 3 HYPERLINK l _Toc376684514 2.2 自行車里程表硬件方案設計 PAGEREF _Toc376684514 h 4 HYPERLINK l _Toc376684515 2.3 自行車里程表軟件方案設計 PAGEREF _

3、Toc376684515 h 4 HYPERLINK l _Toc376684516 第3章 自行車里程表軟件程序設計 PAGEREF _Toc376684516 h 5 HYPERLINK l _Toc376684517 3.1 自行車里程表總體程序設計 PAGEREF _Toc376684517 h 5 HYPERLINK l _Toc376684518 第4章 自行車里程表軟件子程序設計 PAGEREF _Toc376684518 h 6 HYPERLINK l _Toc376684519 4.1 中斷子程序設計 PAGEREF _Toc376684519 h 6 HYPERLINK l

4、 _Toc376684520 4.2 延時程序 PAGEREF _Toc376684520 h 8 HYPERLINK l _Toc376684521 4.3 按鍵掃描 PAGEREF _Toc376684521 h 8 HYPERLINK l _Toc376684522 4.4 數(shù)據(jù)處理子程序設計 PAGEREF _Toc376684522 h 9 HYPERLINK l _Toc376684523 4.5 顯示子程序的設計 PAGEREF _Toc376684523 h 11 HYPERLINK l _Toc376684524 4.6 存儲芯片的選擇 PAGEREF _Toc3766845

5、24 h 13 HYPERLINK l _Toc376684525 第5章 軟件仿真 PAGEREF _Toc376684525 h 14 HYPERLINK l _Toc376684526 5.1 Keil軟件的使用 PAGEREF _Toc376684526 h 14 HYPERLINK l _Toc376684527 5.2 Keil軟件仿真 PAGEREF _Toc376684527 h 14 HYPERLINK l _Toc376684528 第6章 系統(tǒng)調(diào)試與分析 PAGEREF _Toc376684528 h 16 HYPERLINK l _Toc376684529 6.1 調(diào)試

6、故障及原因分析 PAGEREF _Toc376684529 h 16 HYPERLINK l _Toc376684530 第7章 總結 PAGEREF _Toc376684530 h 16 HYPERLINK l _Toc376684531 附錄 PAGEREF _Toc376684531 h 17 HYPERLINK l _Toc376684532 參考文獻 PAGEREF _Toc376684532 h 17 HYPERLINK l _Toc376684533 元器件清單 PAGEREF _Toc376684533 h 18 HYPERLINK l _Toc376684534 原理圖 PA

7、GEREF _Toc376684534 h 20 HYPERLINK l _Toc376684535 程序清單 PAGEREF _Toc376684535 h 20 HYPERLINK l _Toc376684536 實物圖 PAGEREF _Toc376684536 h 33第1章 緒論課題的背景自行車被創(chuàng)造及使用到現(xiàn)在已有兩百多年的歷史,這兩百年間人類在不斷的嘗試與研發(fā)過程中,將玩具式的木馬車轉換到今日各式新穎休閑運動自行車。我國是自行車大國,隨著人們生活水平的不斷提高,自行車已經(jīng)不僅僅是運輸、代步的工具,其輔助功能也變得越來越重要。因此,人們希望自行車的娛樂、休閑、鍛煉的功能越來越多,能

8、帶來大家更多的健康與快樂。在這個背景下,自行車里程表作為自行車的一大輔助工具迅速開展起來。本次設計主要闡述一種基于霍爾元件的自行車里程表的設計。以 AT89S52 單片機為核心,A44E 霍爾傳感器測轉數(shù),實現(xiàn)對自行車里程/速度的測量統(tǒng)計,采用 24C02 實現(xiàn)在系統(tǒng)掉電的時候保存里程信息,并能將自行車的里程數(shù)及速度用LCD實時顯示。文章詳細介紹了自行車里程表的硬件電路和軟件設計。硬件局部利用霍爾元件將自行車每轉一圈的脈沖數(shù)傳入單片機系統(tǒng),然后單片機系統(tǒng)將信號經(jīng)過處理送顯示。軟件局部用C語言進行編程,采用模塊化設計思想。課題的主要任務及設計內(nèi)容本文介紹的自行車里程表是以ATC89S52單片機為

9、核心,用開關型霍爾傳感器將到來的脈沖信號輸入到單片機進行控制與計算,再采用LCD液晶屏進行顯示,直觀的顯示給使用者,方便地實現(xiàn)了智能化、高精度、高可靠性、高效率的自行車里程表的設計,并且使用方便。本文主要介紹了自行車里程表的設計思想、方案論證等內(nèi)容,整體上分為硬件局部設計和軟件局部設計。首先對該課題進行任務分析,包括硬件和軟件方案的設計,然后具體的介紹里程表的硬件設計傳感器的選擇、單片機的選擇、顯示電路的設計,軟件設計單片機的選擇、存儲器的選擇、中斷子程序設計、數(shù)據(jù)處理子程序設計、顯示子程序的設計,最后進行軟件仿真,系統(tǒng)調(diào)試,然后分析解決問題,對這次設計進行總結。軟件設計采用C語言編寫,主要思

10、想是自頂向下,模塊化設計。第2章 總體方案的設計任務分析與實現(xiàn)本設計的任務是:以ATC89S52單片機為處理核心,用傳感器將車輪的轉數(shù)轉換為電脈沖,進行處理后送入單片機。里程及速度的測量,是經(jīng)過ATC89S52測出總的脈沖數(shù)和轉一圈所需的時間,再經(jīng)過單片機的計算得出,其結果通過LCD顯示屏顯示出來。本系統(tǒng)總體思路如下:設計時,應綜合考慮測速精度和系統(tǒng)反響時間。本設計采用的脈沖計數(shù)方法,用來計算速度具有較高的測速精度。在計算里程時取了自行車的理想狀態(tài)。里程和速度傳感器采用霍爾元件。自行車里程的測量是通過霍爾元件輸出端的電壓發(fā)生變化產(chǎn)生脈沖,通過計數(shù)器,根據(jù)脈沖數(shù)計算里程。自行車速度的測量是通過定

11、時器測出車輪轉一周所用的時間t,車輪周長L除以時間t就是自行車的速度。本次科研設計要求到達的各項指標和實現(xiàn)方法:1、用霍爾傳感器產(chǎn)生脈沖信號,對脈沖信號進行計數(shù),這個指標的實現(xiàn)是利用單片機自帶的計數(shù)器T0對霍爾傳感器脈沖信號進行計數(shù)的。2、對數(shù)據(jù)進行處理,用LCD顯示里程總數(shù)和速度。這個功能的實現(xiàn)是利用編程軟件,對數(shù)據(jù)進行處理得到需要的數(shù)值。最終本次課題需要實現(xiàn)的目標是:自行車里程表具有里程、速度測試與顯示功能,采用單片機作控制,顯示電路可顯示里程及速度,可以通過按鍵設定報警速度,自行車超速,系統(tǒng)發(fā)出報警提示。通過不同按鍵復位及里程清零的功能,方便地實現(xiàn)了智能化、高精度、高可靠性、高效率的自行

12、車里程表的設計。2.2 自行車里程表硬件方案設計自行車里程表的里程及速度設計,采用的是霍爾傳感器進行檢測。當自行車轉過一圈時產(chǎn)生一個脈沖,根據(jù)脈沖數(shù)計算里程,然后計算自行車車輪轉過一圈所需的時間,用總的里程除以時間即可得到速度。在設計的時候還要設計系統(tǒng)的輸入局部按鍵電路、存儲電路等,輸出局部顯示電路、報警等。2.3 自行車里程表軟件方案設計通過軟件控制單片機的功能是單片機的主要特點和優(yōu)點,程序的設計要考慮合理性和可讀性,遵循模塊化設計的原那么,采用自頂向下的設計方法。模塊化設計使程序的可讀性好、修改及完善方便。軟件設計包括主程序、中斷子程序、延時程序、按鍵掃描、存儲芯片的選擇、數(shù)據(jù)處理子程序分

13、為里程子程序、速度子程序、顯示子程序。中斷子程序是將傳感器產(chǎn)生的信號接入計數(shù)器的T0口,然后計數(shù)器開始計數(shù),當計數(shù)到一定數(shù)目后,計數(shù)器就產(chǎn)生溢出中斷。數(shù)據(jù)處理子程序是將得到的車輪所轉的圈數(shù)與實際要顯示值之間有一定的對應關系,經(jīng)過軟件編程顯示所需要的值。秒表計時子程序是采用計數(shù)器T0通過編程實現(xiàn)秒表計時工作。脈沖接收子程序是通過編程實現(xiàn)脈沖的計數(shù),即對車輪所轉的圈數(shù)計數(shù)。顯示子程序是通過編程將數(shù)據(jù)處理的結果送給顯示器顯示。系統(tǒng)軟件總體流程圖如圖2.3所示:初始化計算速度計算里程顯示里程顯示速度開始YN圖2.3 軟件總體流程圖第3章 自行車里程表軟件程序設計 3.1 自行車里程表總體程序設計在整個

14、設計過程中,軟件設計必須與硬件設計緊密地結合在一起。軟件局部設計是設計中最核心和最為主要的。基于霍爾傳感器自行車里程表的軟件設計包括計數(shù)子程序、計時子程序、LED顯示子程序等幾大局部。由于要實現(xiàn)很多功能,所以采用模塊化設計,下面就其主要局部分別加以分析。在主程序模塊中,需要完成對各接口芯片的初始化、自行車里程和速度的初始化、中斷向量的設計以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設置啟動/去除標志存放器、里程存放器、速度存放器,并對它們進行初始化。然后主程序將根據(jù)各標志存放器的內(nèi)容,分別完成啟動、去除、計程和計速等不同的操作。P1.2和P1.3口分別指示報警。主程序流程圖如圖3.5

15、所示。開始LCD、定時器初始化開中斷脈沖接收數(shù)字處理顯示信息結束鍵盤輸入?NY鍵盤掃描NY圖3.5 主程序流程圖第4章 自行車里程表軟件子程序設計 中斷子程序設計定時中斷是為滿足定時或計數(shù)的需要而設置的。為此在單片機內(nèi)部有兩個定時/計數(shù)器,以對其中的計數(shù)結構進行計數(shù)的方法,來實現(xiàn)定時或計數(shù)功能。當結構發(fā)生計數(shù)溢出時,即說明定時時間或計數(shù)值已滿,這時就以計數(shù)溢出信號作為中斷請求,去置位一個溢出標志,作為單片機接受中斷請求的標志。這種中斷請求是在單片機芯片內(nèi)部發(fā)生的,因此無須在芯片上設置引入端。定時/計數(shù)器控制存放器TCON是8位存放器,地址為88H,可以按位尋址。其高4位用于定時/計數(shù)器中斷控制

16、,低4位借給外部中斷,用做中斷標志和觸發(fā)方式選擇位。TF0/TF1:定時器計數(shù)溢出標志位??捎糜谏暾堉袛嗷蚬〤PU查詢。這里用作中斷請求。由硬件自動置位。=0:定時器未溢出; =1:定時器溢出由全“1變成全“0時由硬件自動置位,申請中斷, 中斷被CPU響應后由硬件自動清零。TR0/TR1:定時器運行啟??刂莆豢捎捎脩敉ㄟ^軟件設置 。 =0:定時器停止運行; =1:定時器啟動運行。本設計采用定時中斷,對自行車的里程和速度進行計數(shù)。自行車開始運行,定時器0為1,開始計時,當自行車轉過一圈產(chǎn)生一個脈沖時,定時器溢出,外部中斷0響應,此時由脈沖數(shù)和時間可以計算出里程和速度。中斷程序流程圖如下圖。 圖

17、中斷程序流程圖4.2 延時程序自行車里程表的設計中延時有按鍵延時速度加、減、里程清0、LCD顯示延時、AT24C02存儲的延時,本次設計的延時全部采用延時5ms。,程序編寫時是采用延時1ms,然后調(diào)用5次。延時流程圖如圖4.2所示。4.3 按鍵掃描本次設計中的按鍵分為獨立式按鍵和矩陣式按鍵,這里采用的是獨立式按鍵。主要有速度加按鍵、速度減按鍵、里程清0按鍵,在運用按鍵的時候需要去抖來使系統(tǒng)運行更加穩(wěn)定。去抖的方法有硬件去抖和軟件去抖。這里采用的是軟件去抖。這里去抖是分別在按下和松開后加一小段延時,當按鍵按下后在05ms內(nèi)出現(xiàn)抖動,所以這里采用的延時時間是5ms。按鍵對應的接口如下:sbit K

18、EY1=P35;/速度加按鍵sbit KEY2=P36;/速度減按鍵sbit KEY3=P37;/里程清0按鍵按鍵具體程序見附錄。開始掃描鍵盤是否有鍵盤按下并判斷鍵號延時去抖動YN再次判斷相應鍵是否被按下加速子程序減速子程序里程清0子程序NY圖4.2 延時流程圖 數(shù)據(jù)處理子程序設計自行車里程表里程、速度子程序設計定時器的初值的計算如下:在定時器模式下,計數(shù)器的計數(shù)脈沖來自于晶振脈沖的12分頻信號,即對機器周期進行計數(shù)。選擇12MHZ晶振,那么定時器的計數(shù)頻率為1MHZ。定時時間為1000ms,機器周期為1us,即12/晶振頻率。X為定時器初值。那么 X=(2n-T)/T1。方式0,n=13,方

19、式1時,n=16,方式2和方式3,n=8TMOD=0X01;TH0=(65536-1000)/256;TH0=TL0=(65536-1000)%256;外中斷0效勞程序用于對單片機輸入的圈脈沖進行計數(shù),為十六進制計數(shù)器。60H為低位,62H為高位。每次計數(shù)一次后,對里程數(shù)據(jù)進行一次存儲操作。當車輪每轉一圈,通過霍爾元件將脈沖數(shù)輸入單片機內(nèi),通過計數(shù)器計出脈沖數(shù),再用乘法子程序算出里程數(shù)。設定自行車車輪周長為30mm,脈沖數(shù)為m,那么總的里程數(shù)=0.030*m,在速度子程序的設計中,使用單片機的定時器T0,10ms計數(shù)一次,其初值X經(jīng)計算得出,X=D8F0,即應將D8H送入TH0中,F(xiàn)0送入TL

20、0中。具體的設計思路是:定時器T0每10ms中斷一次,當中斷次數(shù)到達100,即時間剛好為1秒的時候,調(diào)用脈沖接收子程序中當前的圈數(shù)變量,然后與設置好的自行車車輪周長相乘之后,再除以1s即為瞬時速度,每次計算完之后將此圈數(shù)變量置0。本次設計的報警采用聲光報警。聲音局部采用的是蜂鳴報警器,當自行車的速度超過預設的15km/h,L2燈亮,蜂鳴器報警。蜂鳴器是高電平有效,即當速度超過預設值時,蜂鳴器輸入信號由0變?yōu)?,蜂鳴器開始工作。Led燈采用的是共陽極接法即低電平有效。當自行車的行駛速度低于15km/h時,此時L1接收到低電平0,L1常亮,當速度超過預設的值時,L1的信號由低電平調(diào)為高電平由0變?yōu)?/p>

21、1,燈熄滅不亮,此時L2由高電平變?yōu)榈碗娖接?變?yōu)?,L2常亮報警,直到解除報警。里程處理子程序流程圖如圖a所示,速度處理子程序流程圖如圖b所示。 圖a 里程處理子程序流程圖速度處理子程序開中斷每10ms中斷次數(shù)加1,計數(shù)為100?計算瞬時速度是否超速?報警關報警顯示速度YY返回圖4.3b 速度處理子程序流程圖 顯示子程序的設計DDRAM顯示數(shù)據(jù)RAM地址和屏幕的對應關系如表4.1所示。表4.1 DDRAM地址和顯示位置的對應關系顯示位置12345640DDRAM地址第一行00H01H02H03H04H05H27H第二行40H41H42H43H44H45H67H也就是說想要在LCD1602屏幕

22、的第二行第一列顯示一個M字,就要向DDRAM的40H地址寫入“M字的代碼就行了。那就是向DDRAM的的40H地址寫入“M字的代碼4DH。同樣,在LCD模塊上也固化了字模存儲器,這就是CGROM和CGRAM。下列圖4.4說明了CGROM和CGRAM與字符的對應關系。圖4.4 CGROM和CGRAM與字符的對應關系從上圖可以看出,“M字的對應上面高位代碼為0100,對應左邊低位代碼為1101,合起來就是01001101,也就是4DH。LCD屏幕上顯示一個字符的過程:初始化、寫指令、寫函數(shù)、在某個屏幕位置上顯示一個字符、檢查忙函數(shù)、延時函數(shù)。速度的顯示運用程序定位到第一行第十列,找到顯示對應的位置為

23、09H,通過速度調(diào)節(jié)鍵設定輸入速度為16km/h,所以要在09H中輸入1,所以1對應的高位代碼為0011,對應的地位代碼為0001H,合起來是00110001,也就是1,然后光標右移一位用程序實現(xiàn),用同樣的方法寫出6.簡而言之數(shù)據(jù)顯示就是顯示的時候先送要顯示的地址,然后再送要顯示的數(shù)據(jù)。顯示程序流程圖如下圖。開始液晶初始化光標定位送顯示數(shù)據(jù)顯示結束圖 顯示子程序流程圖4.6 存儲芯片的選擇本次設計采用的儲存芯片是24C02,AT24C02是一個2K位串行CMOS E2PROM, 內(nèi)部含有256個8位字節(jié),有一個專門的寫保護功能,可以實現(xiàn)掉電存儲。起始條件起始調(diào)教必須在所有操作命令之前發(fā)送。時鐘

24、線保持高電平期間,數(shù)據(jù)線電平從高到低跳變作為I2C總線的啟動信號。CAT24Cxxx一直監(jiān)視SDA和SCL電平信號,直到條件滿足時才響應。停止條件時鐘線保持高電平期間,數(shù)據(jù)線電平從低到高跳變作為I2C總線的停止信號。器件地址的約定主器件在發(fā)送啟動命令后開始傳送數(shù)據(jù),主器件發(fā)送相應的從器件地址,8位從器件地址的高四位固定為1010,接下來的3位用來定義存儲器的地址,最后一位為讀寫控制位,“1表示對從器件進行讀寫操作,“0表示寫操作。在主器件發(fā)送啟動命令和一字節(jié)從器件地址后,如果與從器件地址吻合,CAT24C02將發(fā)送一個應答信號,然后再根據(jù)讀/寫控制為進行讀或寫操作。應答信號每次數(shù)據(jù)傳送成功后,

25、接收器件將發(fā)送一個應答信號。當?shù)诰艂€時鐘信號產(chǎn)生時,產(chǎn)生應答型號的器件將SDA下拉為低,通知已經(jīng)接受到8位數(shù)據(jù),接收到起始條件和從器件地址后,CAT24C02發(fā)送一個應答信號,如果為寫操作,每接收到一個字節(jié)數(shù)據(jù),CAT24C02發(fā)送一個應答信號。如果為讀操作,CAT24C02發(fā)送一個字節(jié)數(shù)據(jù)后釋放總線等待應答信號,一旦接收到應答信號,它將繼續(xù)發(fā)發(fā)送數(shù)據(jù),如果接收到主器件發(fā)送非應答信號,將結束數(shù)據(jù)傳送等待停止條件。寫操作在寫字節(jié)模式下,助器件發(fā)送起始命令和從器件地址信息給從器件,在從器件響應應答信號后,主器件將要寫入的數(shù)據(jù)地址發(fā)送到CAT24C02的地址指針,主器件收到從器件的應答信號后再送數(shù)據(jù)

26、到相應的數(shù)據(jù)存儲區(qū)地址,CAT24C02再響應一個應答信號,主器件產(chǎn)生一個停止信號,然后CAT24C02啟動內(nèi)部寫周期,在內(nèi)部寫周期期間,CAT24C02不再響應主器件任何請求。寫操作時序讀如讀操作CAT24C02讀操作的初始化方式和寫操作一樣,僅把R/W位置1,讀操作有三種方式:立即地址讀、選擇地址讀、連續(xù)讀。選擇地址讀操作時序圖第5章 軟件仿真 Keil軟件的使用 在keil中輸入編寫好的c語言程序,在編譯運行沒有的錯誤的情況下,在project中找到options for targettarget1在output選項中勾選create HEX file,即可生成.hex文件。 Keil軟

27、件仿真主程序仿真圖如下圖圖5.1 主程序仿真圖圖5.2 LCD顯示仿真圖圖5.2 AT24C02仿真圖第6章 系統(tǒng)調(diào)試與分析 調(diào)試故障及原因分析這次的科研工程實訓中,我主要負責自行車里程表的軟件局部,所以我的調(diào)試主要側重在軟件的調(diào)試。首先查閱相關資料,在同學的幫助下完成C語言程序的編寫。編寫好程序后我利用keil軟件進行編譯調(diào)試。一開始由于平時C語言的書寫習慣會出現(xiàn)很多語法和字符用錯的問題,在軟件的提示下一步步修改程序,直到程序沒有錯誤。在C語言程序完成后,利用proteus仿真軟件開始繪制仿真圖,查找好所有型號的器件,并用線連接起來,然后用keil軟件實現(xiàn)兩者的聯(lián)調(diào)。一開始會出現(xiàn)速度調(diào)節(jié)按鈕

28、無效的問題,在檢查完線路沒有問題后,開始查找程序的問題,在同學的幫助下終于找出程序問題所在,然后對程序進行修改,重新編譯,重新調(diào)試,直到所有功能實現(xiàn)。第7章 總結經(jīng)過這一段時間的努力最終按要求完本錢設計,所完成的設計能實現(xiàn)任務要求的各項功能。對總體相應的軟、硬件進行了設計、制作及調(diào)試,并貫穿至設計的全過程。本課題的主要任務是開發(fā)一個以AT89S52單片機為核心的自行車的速度里程表,主要由脈沖接收,LCD顯示等模塊組成。本設計主要分為硬件局部和軟件局部,硬件局部著重考慮硬件電路的簡單性,故盡可能簡化硬件電路,節(jié)省線路板的空間,到達硬件電路最優(yōu)化設計。軟件采用C語言編寫,采用模塊化設計思想,程序可

29、讀性強。通過對程序的燒錄、實驗驗證了系統(tǒng)的可行,能滿足設計要求,到達設計的指標,實現(xiàn)對自行車里程/速度的計算功能,并用LCD液晶屏顯示,功能性較強。這次科研實踐讓我對自己以后的畢業(yè)設計方面也有了更深的了解。這次實踐,同學們也幫了我很大的忙,讓我知道一個工程的完成不是一件容易的事情,團隊合作還是比擬重要的。附錄參考文獻1 ATMEL新型AT89S52系列單片機及其應用 清華大學出版社2 范力旻.?單片機原理及應用技術?.電子工業(yè)出版社3 樓然苗, 李光飛. 51系列單片機設計實例. 北京航空航天大學出版社, 20064 李朝青. 單片機原理及接口技術. 北京航空航天大學出版社, 19945張毅剛

30、, 劉杰. MCS-51單片機原理及應用. 哈爾濱工業(yè)大學出版社,20046李勛, 劉源, 李靜東. 單片機實用教程. 北京航空航天大學出版社, 2006元器件清單序號文字標號名稱數(shù)量規(guī)格型號備注1R2、R3、R6電阻4102R1、R9-R10R14-R16、R23電阻71K3R17電阻14R13電組110K5Q1三極管185506C6、C8瓷片電容2103瓷片電容7U3霍爾元件1A44E8磁鐵兩個29D1、D2二極管2IN400710C10瓷片電容1103瓷片電容11C4瓷片電容1470uf12LS1蜂鳴器1GPC1407YB有源13L1、L2、L3發(fā)光二極管3SL-H302314C6、C8

31、瓷片電容230pf15Y1晶振112M16Q10三極管1S855017B1電機1RF-300CA-0858518K2自鎖按鍵1LCD-37AX537BX519R10電位器11K20K1、K3-K5按鍵4TD-03B21U2定時器1555芯片22P2插座2DIP23R2電位器11K24U1單片機1AT89S5225插座1DIP4026P1液晶顯示屏1LCD160227U4PROM1AT24C02原理圖程序清單#include#define uchar unsigned char#define uint unsigned intuint num=0; /外部中斷次數(shù)uchar num1=0;uin

32、t Speed_dat=0;uint Total_Dis=0;uchar Beep_speed=40;sbit KEY1=P35;/速度加按鍵sbit KEY2=P36;/速度減按鍵sbit KEY3=P37;/里程清0按鍵void delayms(uint xms)uint i,j;for(i=xms;i0;i-)/xms延時子程序for(j=110;j0;j-);#includeLCD1602.H#includeAT24C02.Hvoid keyscan()if(!KEY1)delayms(5);if(!KEY1)if(Beep_speed0)Beep_speed-;while(!KEY2

33、);else if(!KEY3)delayms(5);if(!KEY3)Write_AT24C02_Byte(0,0);Write_AT24C02_Byte(1,0);/里程清0Total_Dis=0;dis_Mileage();while(!KEY3);void main()uchar dat=0;float M_dat=0.0;init_1602();Init_AT24C02();dat=Read_AT24C02_Random(0);Total_Dis=dat*256+Read_AT24C02_Random(1);dis_Mileage();TMOD=0X01;TH0=(65536-100

34、0)/256;TL0=(65536-1000)%256;ET0=1;TR0=1;IT0=1; /邊沿觸發(fā)中斷EX0=1;EA=1;while(1)if(num199)num1=0;if(M_dat1000.0) /路程每增加100m儲存一次M_dat-=1000.0;Total_Dis+=1;Write_AT24C02_Byte(0,Total_Dis/256);Write_AT24C02_Byte(1,Total_Dis%256);dis_Mileage();display();keyscan();void T0_time() interrupt 1 /定時器0TH0=(65536-1000

35、)/256;TL0=(65536-1000)%256;if(num500)num+;elseSpeed_dat=0;if(num1100)num1+;void ex_0() interrupt 0 /外部中斷0Speed_dat=(500/num); num=0;#define uchar unsigned char#define uint unsigned int sbit EN=P27;sbit RS=P25;sbit RW=P26;sbit BEEP=P20;sbit LED1=P12;/正常顯示sbit LED2=P13;/報警uchar LCD1602_Table=012345678

36、9;/LCD1602顯示標尺 /0123456789abcdefuchar code DIS_TAB1= Speed:-Km/h ;/顯示速度uchar code DIS_TAB2=M: Km-Km/h;/顯示里程 uint sum_dat=0;uchar Cur_Speed=0;extern uint Speed_dat;extern uint Total_Dis;extern void delayms(uint xms);void WRITE_LCD1602_DAT(uchar date)EN=0;RS=1;/寫數(shù)據(jù)P0=date;EN=0;delayms(5);EN=1;void WRI

37、TE_LCD1602_COM(uchar date)EN=0;RS=0;/寫命令P0=date;EN=0;delayms(5);EN=1;void init_1602() unsigned char i;RW=0; WRITE_LCD1602_COM(0 x38);/設定使用8位總線、2行顯示使用5X7字符,初始化WRITE_LCD1602_COM(0 x0c);/開顯示,不顯示光標WRITE_LCD1602_COM(0 x06); /地址加1,當寫入數(shù)據(jù)的時候光標右移WRITE_LCD1602_COM(0 x01);/清屏WRITE_LCD1602_COM(0 x80); P0口的地址for

38、(i=0;i16;i+)WRITE_LCD1602_DAT(DIS_TAB1i);WRITE_LCD1602_COM(0 x80+0 x40);/第一行、第二行顯示for(i=0;i16;i+)WRITE_LCD1602_DAT(DIS_TAB2i);void display()static uint dat=0;static uchar i=0;if(i0)WRITE_LCD1602_DAT(LCD1602_Tabledat%1000/100);elseWRITE_LCD1602_DAT( );if(dat/100)WRITE_LCD1602_DAT(LCD1602_Tabledat%100

39、/10);elseWRITE_LCD1602_DAT( );WRITE_LCD1602_DAT(LCD1602_Tabledat%10);WRITE_LCD1602_COM(0 x80+9+0 x40);if(Beep_speed/1000)WRITE_LCD1602_DAT(LCD1602_TableBeep_speed%1000/100);elseWRITE_LCD1602_DAT( );if(Beep_speed/100)WRITE_LCD1602_DAT(LCD1602_TableBeep_speed%100/10);elseWRITE_LCD1602_DAT( );WRITE_LCD

40、1602_DAT(LCD1602_TableBeep_speed%10);if(datBeep_speed)if(i0)WRITE_LCD1602_DAT(LCD1602_TableTotal_Dis%10000/1000);elseWRITE_LCD1602_DAT( );if(Total_Dis/1000)WRITE_LCD1602_DAT(LCD1602_TableTotal_Dis%1000/100);elseWRITE_LCD1602_DAT( );WRITE_LCD1602_DAT(LCD1602_TableTotal_Dis%100/10);WRITE_LCD1602_DAT(.

41、);WRITE_LCD1602_DAT(LCD1602_TableTotal_Dis%10);#include#defineAT24C02_OP_READ0 xa1/ AT24C02器件地址以及讀取操作#defineAT24C02_OP_WRITE 0 xa0/ AT24C02器件地址以及寫入操作/#defineAT24C02_MAX_ADDR 0 xff/ AT24C02最大地址/unsigned char code dis_code=0 x7e,0 xbd,0 xdb,0 x7e,0 xdb,0 xbd,0 x7e,0 xff;/ 寫入到AT24C02的數(shù)據(jù)串sbit AT24C02_SD

42、A=P11;sbit AT24C02_SCL=P10;/sbit AT24C02_WP=P33; /寫保護 “=0讀寫 “=1 只讀/*延時子程序*/void Delay_1ms(unsigned int xms) unsigned int i,j; for(i=xms;i0;i-) for(j=122;j0;j-);/*24C02初始化子程序*/void Init_AT24C02() AT24C02_SDA=1; /總線空閑時,因各設備都是集電極或漏極開路,上拉電阻使SDA和SCL線都保持高電平。/AT24C02_WP=1; AT24C02_SCL=1; _nop_(); _nop_();

43、_nop_(); _nop_();/*24C02起始信號子程序*/void AT24C02_Start()AT24C02_SDA=1;_nop_();_nop_();AT24C02_SCL=1;_nop_();_nop_();AT24C02_SDA=0;_nop_();_nop_();_nop_();_nop_();AT24C02_SCL=0;/*24C02停止信號子程序*/void AT24C02_Stop()AT24C02_SDA=0;_nop_();_nop_();AT24C02_SCL=1;_nop_();_nop_();_nop_();_nop_();AT24C02_SDA=1;_n

44、op_();_nop_();/*24C02應答子程序*/void AT24C02_ACK()AT24C02_SDA=1;/ 讀取應答_nop_();_nop_();AT24C02_SCL=1;_nop_();_nop_();_nop_();_nop_();while(AT24C02_SDA);/等待應答信號AT24C02_SCL=0;_nop_();_nop_();/*讀出24C02數(shù)據(jù)子程序*/unsigned char Read_AT24C02_DATA()unsigned char i,read_data;for(i=0;i8;i+)AT24C02_SCL=1;_nop_();_nop_

45、();_nop_();_nop_();read_data=1; /從高位到底位read_data|=(unsigned char)AT24C02_SDA;AT24C02_SCL=0;_nop_();_nop_();_nop_();_nop_();return(read_data);/*寫入24C02數(shù)據(jù)子程序*/void Write_AT24C02_DATA(unsigned char write_data)unsigned char i;for(i=0;i8;i+)/ 循環(huán)移入8個位AT24C02_SDA=(bit)(write_data&0 x80);_nop_();AT24C02_SCL

46、=1;_nop_();_nop_();AT24C02_SCL=0;write_data=1;/*字節(jié)寫入24C02數(shù)據(jù)子程序*/void Write_AT24C02_Byte(unsigned char addr, unsigned char write_data) / 在指定地址addr處寫入數(shù)據(jù)write_dataAT24C02_Start();/發(fā)起始命令Write_AT24C02_DATA(AT24C02_OP_WRITE);/從機地址寫命令AT24C02_ACK();Write_AT24C02_DATA(addr); /發(fā)送AT24C02的字節(jié)地址AT24C02_ACK();Writ

47、e_AT24C02_DATA(write_data); /發(fā)送數(shù)據(jù)到被尋址的存儲單元AT24C02_ACK();AT24C02_Stop();/停止信號Delay_1ms(10);/延時等待AT24C02內(nèi)部數(shù)據(jù)的擦寫unsigned char Read_AT24C02_Current()/ 在當前地址讀取unsigned char read_data;AT24C02_Start();Write_AT24C02_DATA(AT24C02_OP_READ);AT24C02_ACK();read_data = Read_AT24C02_DATA();AT24C02_Stop();return re

48、ad_data;unsigned char Read_AT24C02_Random(unsigned char addr)/ 在指定地址讀取AT24C02_Start();Write_AT24C02_DATA(AT24C02_OP_WRITE);AT24C02_ACK();Write_AT24C02_DATA(addr);AT24C02_ACK();return(Read_AT24C02_Current();實物圖g an employment tribunal claimEmployment tribunals sort out disagreements between employers

49、 and employees.You may need to make a claim to an employment tribunal if:you dont agree with the disciplinary action your employer has taken against youyour employer dismisses you and you think that you have been dismissed unfairly.For more information about dismissal and unfair dismissal, seeDismis

50、sal.You can make a claim to an employment tribunal, even if you haventappealedagainst the disciplinary action your employer has taken against you. However, if you win your case, the tribunal may reduce any compensation awarded to you as a result of your failure to appeal.Remember that in most cases

51、you must make an application to an employment tribunal within three months of the date when the event you are complaining about happened. If your application is received after this time limit, the tribunal will not usually accept it.If you are worried about how the time limits apply to you, take adv

52、ice from one of the organisations listed underFurther help.Employment tribunals are less formal than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation.Most people find making a claim to an employment tribunal challenging. If you are th

53、inking about making a claim to an employment tribunal, you should get help straight away from one of the organisations listed underFurther help.If you are being represented by a solicitor at the tribunal, they may ask you to sign an agreement where you pay their fee out of your compensation if you w

54、in the case. This is known as adamages-based agreement. In England and Wales, your solicitor cant charge you more than 35% of your compensation if you win the case.If you are thinking about signing up for a damages-based agreement, you should make sure youre clear about the terms of the agreement. I

55、t might be best to get advice from an experienced adviser, for example, at a Citizens Advice Bureau. To find your nearest CAB, including those that give advice by e-mail, click onnearest CAB.For more information about making a claim to an employment tribunal, seeEmployment tribunals.The (lack of) ai

56、r up there Watch mCayman Islands-based Webb, the head of Fifas anti-racism taskforce, is in London for the Football Associations 150th anniversary celebrations and will attend Citys Premier League match at Chelsea on Sunday.I am going to be at the match tomorrow and I have asked to meet Yaya Toure,

57、he told BBC Sport.For me its about how he felt and I would like to speak to him first to find out what his experience was.Uefa has HYPERLINK :/ bbc.co.uk/sport/0/football/24654499 opened disciplinary proceedings against CSKAfor the racist behaviour of their fans during HYPERLINK :/ bbc.co.uk/sport/0

58、/football/24615218 Citys 2-1 win.Michel Platini, president of European footballs governing body, has also ordered an immediate investigation into the referees actions.CSKA said they were surprised and disappointed by Toures complaint. In a statement the Russian side added: We found no racist insults

59、 from fans of CSKA.Age has reached the end of the beginning of a word. May be guilty in his seems to passing a lot of different life became the appearance of the same day; May be back in the past, to oneself the paranoid weird belief disillusionment, these days, my mind has been very messy, in my mi

60、nd constantly. Always feel oneself should go to do something, or write something. Twenty years of life trajectory deeply shallow, suddenly feel something, do it.一字開頭的年齡已經(jīng)到了尾聲?;蛟S是愧疚于自己似乎把轉瞬即逝的很多個不同的日子過成了同一天的樣子;或許是追溯過去,對自己那些近乎偏執(zhí)的怪異信念的醒悟,這些天以來,思緒一直很凌亂,在腦海中不斷糾纏??傆X得自己自己似乎應該去做點什么,或者寫點什么。二十年的人生軌跡深深淺淺,突然就感覺

溫馨提示

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

評論

0/150

提交評論