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

正文內(nèi)容

基于單片機的出租車計價器設計(編輯修改稿)

2025-02-14 14:25 本頁面
 

【文章內(nèi)容簡介】 需要2個I/O端口,而且在鎖存器件這2個端口還可以干別的事情。數(shù)碼管顯示是各種儀器設備所不可缺少得重要組成部分,按照顯示方法得不同可分為靜態(tài)顯示和動態(tài)顯示兩種這里我們所設計得電路顯示屬于靜態(tài)顯示,靜態(tài)數(shù)碼管顯示的優(yōu)點在于編寫程序相對比較簡單一旦將欲顯示的數(shù)據(jù)發(fā)送出去只要當前顯示的數(shù)據(jù)沒有變化就無須理睬它。 顯示電路原理圖從單片機串口輸出的信號先送到左邊的移位寄存器(74HC164),由于移位脈沖的作用,使數(shù)據(jù)向右移,達到顯示的目的。 移位寄存器74HC164還兼作數(shù)碼管的驅(qū)動,插頭1(header1)接數(shù)據(jù)和脈沖輸出端,插頭2(header2)接電源。 時鐘部分計價器在出租車空車行駛時需要顯示實時時鐘,因為它的時鐘是作為白天/晚上單價自動轉換的一個基準,而且計價器的時鐘顯示能為司機和乘客提供方便,所以選擇一個好的時鐘芯片對計價器很重要。DS1302是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘芯片,采用SPI三線接口與CPU進行同步通信;時鐘可提供秒、分、時、日、星期、月和年;通過設DS1302的控制/狀態(tài)寄存器選擇日歷,時鐘方式經(jīng)過初始校準后即可工作使用;~,采用雙電源供電(主電源和備用電源),并設置備用電源充電方式,提供了對后背電源進行涓細電流充電的能力,在沒有主電源的情況下啟用備用電源能保存時間信息及數(shù)據(jù)。 時鐘顯示電路原理圖 掉電存儲單元AT24C02的設計掉電存儲單元的作用是在電源斷開的時候,存儲當前設定的單價信息。AT24C02是ATMEL公司的2KB字節(jié)的電可擦除存儲芯片,采用兩線串行的總線和單片機通訊,額定電流為1mA,芯片內(nèi)的資料可以在斷電的情況下保存40年以上,而且采用8腳的DIP封裝,使用方便。由于AT24C02的數(shù)據(jù)線和地址線是復用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線SCL(移位脈沖)和SDA(數(shù)據(jù)/地址)與單片機傳送數(shù)據(jù)。每當設定一次單價,系統(tǒng)就自動調(diào)用存儲程序,將單價信息保存在芯片內(nèi);當系統(tǒng)重新上電的時候,自動調(diào)用讀存儲器程序,將存儲器內(nèi)的單價等信息,讀到緩存單元中,供主程序使用。 按鍵單元設計 按鍵電路電路共采用了五個按鍵:SSSS4,其功能分別是:S1查詢按鍵,S2功能設定/確認按鍵,S3+/白天晚上切換按鍵,S4-/中途等待開關。 第四章 系統(tǒng)軟件設計 主程序設計在主程序模塊中,需要完成對各接口芯片的初始化、出租車起價和單價的初始化、中斷向量的設計以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設置啟動/ 清除標志寄存器、里程寄存器和價格寄存器,并對它們進行初始化。然后,主程序?qū)⒏鶕?jù)各標志寄存器的內(nèi)容,分別完成啟動、清除、計程和計價等不同的操作。當空車信號燈打下時,表示有乘客上車,并啟動計價,將根據(jù)里程寄存器中的內(nèi)容計算和判斷出行駛里程是否已超過起價公里數(shù)。若已超過,則根據(jù)里程值、每公里的單價和起價來計算出當前的累計價格,并將結果存于價格寄存器中,然后將當前時間和累計價格送到LED 顯示電路顯示出來。當中途塞車(等待或低速行駛)時,在一定時間內(nèi)沒有檢測到傳感器的脈沖信號就啟動T0定時器進行計時,當超過規(guī)定的等待時間后,計價器就根據(jù)等待價格進行當前金額的累加與顯示,并在計價器上顯示等待時間;當?shù)竭_目的地的時候,由于霍爾開關沒有送來脈沖信號,就停止計價,顯示當前所應該付的金額和對應的單價,到下次啟動計價時,系統(tǒng)自動對顯示清零,并重新進行初始化過程。司機把空車燈打上,就停止計價,顯示當前所應該付的金額和對應的單價,等乘客下車后,啟動出租車,計價器檢測到傳感器的脈沖信號,系統(tǒng)自動對顯示清零,并重新進行初始化過程,完成1次計價。[16] 主程序流程圖計價1:起步價+里程每公里價格()計價2:起步價+里程+等待時間等待價格() 計價3;起步價 計價4:起步價+等待時間等待價格() 定時中斷服務程序在定時中斷服務程序中,每10ms產(chǎn)生一次中斷,當產(chǎn)生100次中斷的時候,也就到了一秒,按秒累積60次后恰好為1min,這樣就可完成定時1min的功能。 里程計數(shù)中斷服務程序每當霍爾傳感器輸出一個低電平信號就使單片機中斷一次,里程計數(shù)器T1對里程脈沖計滿1000次時,就完成當前行駛里程數(shù)的累加操作,并將結果存入里程寄存器中。 所示. 里程計數(shù)流程圖 中途等待中斷服務程序當中途等待按鍵S4按下時,就啟動T0開始計時,每當計時到達1min,等待時間累加器值就自加,并將結果存入時間寄存器中。當中途等待結束的時候,即再按一下S4鍵就自動切換到正常的計價。 中途等待流程圖 顯示子程序服務程序顯示是檢驗程序結果最直接也是最簡單的硬件設計,采用移位寄存器驅(qū)動6位LED方式,實行靜態(tài)顯示。靜態(tài)顯示的優(yōu)點在于,編寫程序相對比較簡單,一旦將欲顯示的數(shù)據(jù)發(fā)送出去,只要當前顯示的數(shù)據(jù)沒有變化,就無須理睬它。十進制數(shù)顯也采用軟件方式將BCD碼轉換成七段碼。轉換過程:顯示的BCD碼通過計算、查表、求出存放顯示段碼單元地址,從該地址單位中取出送顯示端口輸出。[17] 靜態(tài)顯示流程圖 系統(tǒng)調(diào)試在調(diào)試前,先對電路板進行細致的檢查,通過萬用表的測量,觀察有無短路或斷路情況。加電后如果發(fā)現(xiàn)有些芯片迅速發(fā)熱,應立即斷電檢查電路。電源電路板應有良好的穩(wěn)壓特性,保證系統(tǒng)各芯片的正常工作,為此,應仔細測量電源板的各電壓輸出,檢驗是否滿足系統(tǒng)設計要求。硬件調(diào)試離不開軟件的配合,通常需要做一些簡單的測試程序來確定電路的工作情況,以此判斷問題所在。各模塊焊接完成后及時用萬用表進行測量,測量應連接的點是否正確短接。顯示模塊,可用歐姆表(內(nèi)部含電源)進行測試,將表筆正極接數(shù)碼管共陽端,負表筆依次接abcdefgh,觀察數(shù)碼管是否正常顯示,如不正常,檢查焊接情況。上電后,測量各芯片引腳電壓,與理論值相比較,如不同,檢查硬件電路。 總結由于本設計使用的是以單片機作為核心的控制元件和靈敏的霍爾開關型器件,使本出租車計價器具有功能強、性能可靠、電路簡單、成本低的特點,加上經(jīng)過優(yōu)化的程序,使其有很高的智能化水平。但是在我們設計和調(diào)試的過程中,也發(fā)現(xiàn)了一些問題,譬如計價的金額位數(shù)有限,實際的里程可能會很遠,會超出我們的顯示范圍。計價器的設計還不夠人性化,比如加上語音的提示功能,可能會更有生命力。 參考文獻[1] [M].北京:北京航空航天大學出版社,1999[2] [J].北京:人民郵電出版社,2004[3] [M].北京:人民郵電出版社,2005[4] Protel99 高級應用[J].北京:人民郵電出版社,2000[5] [M] .北京:北京理工大學出版社,2000[6] 楊恢先,[M].長沙:國防科技大學出版社,2003[7] 孫育才 單片微型計算機及其應用[J].江蘇:東南大學出版社[8] 宋青,權偉龍,[J].物理實驗,2003[9] 彭樹生,莊志洪, 單片機原理及應用[M]. 北京:機械工業(yè)出版社,2001[10] [J].北京:北京航空航天大學出版社,2002[11] 竇振中, 系列單片機應用設計與實例[M].北京:北京航空航天大學出版社,2000[12] 蘇凱、MCS51系列單片機系統(tǒng)原理與設計[J].北京:冶金工業(yè)出版社,2003[13] 潘新民,[J].北京:電子工業(yè)出版社,2003[14] 涂時亮,[J].上海:復旦大學出版社,1994[15] 張毅坤,陳善久,[M].西安:西安電子科技大學出版社,1998[16] 、陳偉宏、楊明 [J].湖南城市學院出版社,2005[17] 基于單片機的出租車計價器編碼傳感器的設計. 張小虎、劉潔 [J].自動化技術與應用,2005,24(10):13[18] 何希才,新型實用電子電路400例,北京:電子工業(yè)出版社,1998[19] 徐愛鈞,8051單片機實踐教程,北京:電子工業(yè)出版社,2006年[20] 王世遠,徐強,I/V(電流/電壓)變換電路[J],《動態(tài)分折與測試技術》,1994年[21] 溫景國,武新華,單片機測控系統(tǒng)中的信號變換問題[J],太原理工大學學報,1993年第三期[22] 吳勤勤.控制儀表及裝置[M],化學工業(yè)出版社,2007年1月[23] :80/tech/tech/tech/ 附錄A(硬件原理圖) 附錄B(源程序)//*************************************************************************// // 起始價: 白天6 元,晚上7元 。單價: 。 //// 普通出租車,車輪周長為1m,則轉1000圈為一公里, // //*************************************************************************//includedefine uint unsigned intdefine uchar unsigned chardefine WRITE24C02 0xA0 //10100000,器件地址,寫操作define READ24C02 0xA1 //10100001,器件地址,讀操作void I2C_start(void)。 //函數(shù)功能:產(chǎn)生啟動信號 void I2C_stop(void)。 //函數(shù)功能:產(chǎn)生停止信號void I2C_send_ack(void)。 //函數(shù)功能:發(fā)送ACK(確認)信號bit TestAck()。 //函數(shù)功能:檢查AT24C02的ACK信號void I2C_write_byte(uchar)。 //函數(shù)功能:向AT24C02寫入一個字節(jié)uchar I2C_read_byte(void)。 //函數(shù)功能:從AT24C02讀出一個字節(jié)void AT24C02_write(uchar,uchar *,uchar)。 //函數(shù)功能:向AT24C02連續(xù)寫入若干字節(jié)void AT24C02_read(uchar,uchar *,uchar)。 //函數(shù)功能:從AT24C02連續(xù)讀出若干字節(jié)void minut()。void hou()。sbit DAT=P0^1。 //模擬串口數(shù)據(jù)發(fā)送端sbit CLK=P0^2。//模擬時鐘控制端sbit SDA=P1^4。sbit SCL=P1^3。 unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。unsigned char table1[8]={0x3F,0x3F,0xbf,0x3F,0x3F,0xbf,0x3F,0x3F}。 //000000unsigned char cc[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}。int top=0。unsigned char second。unsigned char tcount。unsigned char minute。unsigned char hour。unsigned int gl=0。 //公里數(shù)(百米)unsigned char dj=16。 //單價(角)unsigned int ze=0。 //總額(角)void sendbyte(uchar byte){ uchar num,c。 num=tab[byte]。 for(c=0。c8。c++) { CLK=0。 DAT=numamp。0x80。 //(0x80即十進制的128,二進制的10000000 按位發(fā)送) CLK=1。 num=1。 } }void delay_50ms(unsigned int t) //50Ms延時程序{unsigned int j。 for(。t0。t) for(j=6245。j0。j){。}}void display() //顯示//{unsigned char h。 while(1){ for(h=0。h10。h++){ delay_50ms(1)。 sendbyte(h)。 delay_50ms(10)。 } h=0。 }}/*********************************************************************//* ds1302實時時鐘C程序 */sbit T_CLK = P1^2。 /*實時時鐘時鐘線引腳 */sbit T_IO = P1^1。
點擊復制文檔內(nèi)容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1