freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

畢業(yè)設計-電子車速里程表的設計-資料下載頁

2024-12-01 18:45本頁面

【導讀】車速里程表廣泛應用于各種機車,傳統(tǒng)的機械式車速里程表雖然穩(wěn)定可靠,但功能單一,易受磨損。隨著電子技術的迅猛發(fā)展,電子式車速里程表得以廣泛。應用,現(xiàn)在很多轎車儀表已經開始使用電子車速里程表。本設計介紹一種基于單。它的實現(xiàn)方式是:在車輪上安裝一個很小的強力磁鋼,在其側正。的車速及里程了,并由LED顯示器顯示出來。由于單片機每一秒鐘處理一次信號

  

【正文】 ,數(shù)據(jù)線 SDA由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當 SCL線為高電平時, SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y束”信號。開始和結束信號都是單片機產生。在開始信號以后,總線即被認為處于忙狀態(tài);在結束信 號以后的一段時間內,總線被認為是空閑的。 對于 24C02的數(shù)據(jù)傳送, 在 24C02的 I2C總線上每次傳送的數(shù)據(jù)字節(jié)數(shù)不限,但每一個字節(jié)必須為 8位,而且每個傳送的字節(jié)后面必須跟一個認可位(第 9位),也叫應答位( ACK)。每次都是先傳最高位,通常從 單片機上 接收到每個字節(jié)后都會 做 出響應,即釋放 SCL線返回高電平,準備接收下一個數(shù)據(jù)字節(jié), 單片機 可繼續(xù)傳送。當 單片機 發(fā)送完一個字節(jié)的數(shù)據(jù)后,接著發(fā)出對應于 SCL線上的一個時鐘( ACK)認可位,在此時鐘內 單片機 釋放 SDA線,一個字節(jié)傳送結束,而從器件的響應信號將 SDA線拉成 低電平,使 SDA在該時鐘的高電平期間為穩(wěn)定的低電平。從器件的響應信號結束后, SDA線返回高電平, 進入下一個傳送周期。 24C02芯片的讀寫子程序如下: 1 開始、停止、應答信號程序; 2 寫一個字節(jié)和讀一個字節(jié)程序; 3特定物理地址寫數(shù)據(jù)和讀數(shù)據(jù)程序; 其程序如下: void start() { sda=1。//在時鐘線為高電平期間,數(shù)據(jù)線的一個下降沿為 delay()。//起始信號 scl=1。 delay()。 sda=0。 delay()。 } void stop() { 寧夏理工學院畢業(yè)設計(論文) 第 頁 共 61 頁 28 sda=0。//在時鐘線為高電平期間,數(shù)據(jù)線一個上升沿為 delay()。//停止信號 scl=1。 delay()。 sda=1。 delay()。 } void respons() { uchar i。//在時鐘線為高電平期間, scl=1。//數(shù)據(jù)線被接受器件拉低,為應答信號 delay()。 while((sda=1)amp。amp。(i250))//等待,直到數(shù)據(jù)線被拉低或等了較長 i++。//或等了較長時間 scl=0。//釋放時鐘線 delay()。 } void write_byte(uchar date) { uchar i,temp。//在時鐘線為低電平期間,數(shù)據(jù)線電平變化才有效 temp=date。//數(shù)據(jù)暫存 for(i=0。i8。i++) { temp=temp1。//最高位移入 CY中 scl=0。//拉低時鐘線,為數(shù)據(jù)寫入準備 delay()。 sda=CY。//寫入數(shù)據(jù) delay()。 scl=1。//拉高時鐘線,為下一次寫入 準備 寧夏理工學院畢業(yè)設計(論文) 第 頁 共 61 頁 29 delay()。 } scl=0。//釋放時鐘線 delay()。 sda=1。//釋放數(shù)據(jù)線,為應答準備 delay()。 } uchar read_byte() { uchar i,k。 scl=0。//釋放時鐘線 delay()。 sda=1。//釋放數(shù)據(jù)線 delay()。 for(i=0。i8。i++) { scl=1。 delay()。 k=(k1)|sda。 scl=0。 delay()。 } return k。 } void write_add(uchar address,uchar date) { start()。 write_byte(0xa0)。//寫入器件地址 respons()。 寧夏理工學院畢業(yè)設計(論文) 第 頁 共 61 頁 30 write_byte(address)。//寫入物理地址 respons()。 write_byte(date)。//寫入數(shù)據(jù) respons()。 stop()。 } uchar read_add(uchar address) { uchar date。 start()。 write_byte(0xa0)。//寫入器件地址 respons()。 write_byte(address)。//寫入物理地址 respons()。 start()。 write_byte(0xa1)。//寫入器件地址及數(shù)據(jù)傳輸方向 respons()。 date=read_byte()。//讀出數(shù)據(jù) stop()。 return date。 } 溫度采集轉換模 塊程序 本模塊包含以下子程序: 1讀或寫一個字節(jié)子程序; 2溫度采集轉換程序; 3溫度值顯示程序; DS18B20 有多個控制指令,但因為本設計中,只有一個溫度傳感器與單片相連,且使用的功能較簡單,只使用了三條指令現(xiàn)簡紹如下: 1 CCH— 跳過 ROM。忽略 64位 ROM 地址,直接向 18B20 發(fā)溫度變換命令。 寧夏理工學院畢業(yè)設計(論文) 第 頁 共 61 頁 31 2 44H— 溫度轉換。啟動 DS18B20 進行溫度轉換, 12 位轉換時最長為 750MS。結果存入內部 9字節(jié)的 ROM 中。 3 BEH— 讀暫存器。讀內部 RAM 中的 9 字節(jié)的溫度數(shù)據(jù)。 本模塊程序如下; void writebyte(uchar date)//寫一個字節(jié)程序 { uchar i。 for(i=0。i8。i++) { DQ=0。 _nop_()。 DQ=dateamp。0x01。 delay2(9)。 DQ=1。 date=1。 } } uchar readbyte()//讀一個字節(jié)程序 { uchar i,temp=0。 for(i=0。i8。i++) { temp=1。 DQ=0。 _nop_()。 DQ=1。 _nop_()。 if(DQ) { 寧夏理工學院畢業(yè)設計(論文) 第 頁 共 61 頁 32 temp|=0x80。 delay2(8)。 DQ=1。 _nop_()。 } delay2(1)。 return temp。 } uint get_temp()//溫度轉換程序 { int temp_h。 uchar temp_l。 init()。 writebyte(0xcc)。//跳過 ROM writebyte(0x44)。//開始溫度轉換 delay_1ms(100)。//延時等待 init()。 writebyte(0xcc)。//跳過 ROM writebyte(0xbe)。//讀取溫度值 temp_l=readbyte()。 temp_h=readbyte()。 temp_l=4。 temp_h=4。 temp_h|=temp_l。 P1=temp_h。 return temp_h。 } void displaytemp()//溫度值顯示程序 寧夏理工學院畢業(yè)設計(論文) 第 頁 共 61 頁 33 { uint hdata,temp。 uchar bai,shi,ge,i。 hdata=get_temp()。 for(i=0。i100。i++) { if((hdata8)==0)//顯示值分離 { bai=hdata/100。 shi=hdata%100/10。 ge=hdata%10。 } else { temp=~hdata。 temp++。 shi=temp/10。 ge=temp%10。 if(shi==0) { shi=10。 bai=11。 } else { bai=10。 } if(bai!=0)//顯示百位數(shù)據(jù) 寧夏理工學院畢業(yè)設計(論文) 第 頁 共 61 頁 34 { P0=displaydu[bai]。 P1=displaywei[0]。 delay_1ms(5)。 P1=displaywei[8]。 P0=displaydu[11]。 } if(bai|shi)//顯示十位數(shù)據(jù) { P0=displaydu[shi]。 P1=displaywei[1]。 delay_1ms(5)。 P1=displaywei[8]。 P0=displaydu[11]。 } P0=displaydu[ge]。//顯示個位數(shù)據(jù) P0|=0x80。 P1=displaywei[2]。 delay_1ms(5)。 P1=displaywei[8]。 P0=displaydu[11]。 P0=displaydu[0]。 P1=displaywei[3]。 delay_1ms(5)。 P1=displaywei[8]。 P0=displaydu[11]。 } } 寧夏理工學院畢業(yè)設計(論文) 第 頁 共 61 頁 35 4 系統(tǒng)仿真過程介紹 軟件編寫及電路圖繪制 本系統(tǒng)軟件是用 c 語言編寫的,編寫及編譯工具是 keil。通過 keil 軟件生成 hex 文件,添加到仿真電路圖中的單片機中進行仿真的。 keil 軟件的使用大致分為以下三步: 1 keil 項目工程的建立。具體為:先新建一個工程,然后給它命名后選擇一個合適的單片機型號,最后點確定。 2 源文件的新建及添加到項目中。具體為:新建一個源文件,然后命名并保存。再在項目中點擊右鍵將新建的源文件添加到項目中。 3程序的編寫及 編譯。程序編寫完后點擊編譯所有文件按鈕,不斷修改,直到下面無錯誤提示。然后在項目選項輸出頁面中,選擇生成 hex 文件按鈕。重新編譯便生成了 hex 文件。 本系統(tǒng)電路圖是用 protues 軟件繪制的。因為本系統(tǒng)的功能較豐富,所以設計時并不是完成全部的軟硬件設計后調試的。而是像壘積木一樣,功能逐步添加的,這樣有效降低了調試時的困難。大致分為五個階段: 1 車速表。只可以顯示車速,并通過調節(jié)方波器頻率測試車速的準確性。 2 車速單里程表??梢燥@示車速,也可以顯示單個時段的里程。 3 車速單程總里程表。在電路圖中加入存儲 芯片,用來存儲行駛總里程。 4 加入車速報警功能。 5 加入溫度顯示模塊。 系統(tǒng)調試 在系統(tǒng)個階段調試的過程中,發(fā)現(xiàn)以下幾個問題: 1 在車速表調試的過程中,發(fā)現(xiàn)無論如何修改軟件程序,數(shù)碼管都不顯示。開始以為是顯示程序有問題,后來經過仔細觀察仿真過程后,發(fā)現(xiàn)數(shù)碼管位選和段選信號都有變化,說明有信號輸入。最后發(fā)現(xiàn)是沒有加上拉電阻的緣故。 2 系統(tǒng)加入總里程功能后,在調試時,發(fā)現(xiàn)系統(tǒng)掉電后無法記錄行駛的總里程。 反復修改后發(fā)現(xiàn)是存儲器讀寫太快的原因 ,程序如下 : k1=read_add(1)。//讀取存儲器中里程的各位 寧夏理工學院畢業(yè)設計(論文) 第 頁 共 61 頁 36 k2=read_add(2)。 k3=read_add(3)。 k4=read_add(4)。 在加入 1ms 的延時后,存儲器便能正常讀寫了 ,程序如下: k1=read_add(1)。//讀取存儲器中里程的各位 delay1(1)。 k2=read_add(2)。 delay1(1)。 k3=read_add(3)。 delay1(1)。 k4=read_add(4)。 delay1(1)。 3 在報警功能調試時, 發(fā)現(xiàn)蜂鳴器無法工作,在仔細檢查了軟件程序沒有問題后,開始檢查硬件,發(fā)現(xiàn)蜂鳴器工作電壓、電阻及頻率三個參數(shù)值沒有正確的設置。在正確設置后,解決了該問題。, 設計軟件介紹 軟件 Protues軟件是英國 Labcenter electronics公司出版的 EDA工具軟件。它不僅具有其它 EDA 工具軟件的仿真功能,還能仿真單片機及外圍器件 ,它是目前最好的仿真單片機及外圍器件的工具。從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到 PCB 設計,真正實現(xiàn)了從概念到產品的完整設計。是 目前世界上唯一將電路仿真軟件、 PCB 設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持 805 HC1PIC10/12/16/18/24/30/DsPIC3 AVR、 ARM、 8086 和 MSP430 等 。 該軟件的特點是: ①實現(xiàn)了單片機仿真和 SPICE 電路仿真相結合。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、 RS232 動態(tài)仿真、 I2C 調試器、SPI 調
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1