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

正文內(nèi)容

40-畢業(yè)設(shè)計論文-基于單片機的汽車行駛狀態(tài)記錄儀系統(tǒng)的軟件設(shè)計-文庫吧

2025-07-22 05:05 本頁面


【正文】 電壓檢測和手動復位功能[15]。采用4M字節(jié)的數(shù)據(jù)閃存AT45DB041作為數(shù)據(jù)存儲器,用來實現(xiàn)車輛行駛數(shù)據(jù)的長期存儲。AT45DB041是ATMEL公司推出的一款基于Flash計數(shù)的大容量數(shù)據(jù)存儲器,—;通過SPI總線進行數(shù)據(jù)的訪問,其主要接口允許直接5VCMOS或TTL電平信號,并且與之兼容;4M存儲空間被劃分成2048頁,每一頁含有264個字節(jié)數(shù)據(jù),支持頁擦寫和段擦寫,還有兩個264字節(jié)的SRAM數(shù)據(jù)緩存[16]。接口電路圖如圖32所示:圖32 MAX70AT45DB041和AT89C51接口電路數(shù)據(jù)采集包括信號的調(diào)理設(shè)計和車輛狀態(tài)信號的采集。對于+12V車輛系統(tǒng),其開關(guān)量的信號電平是+12V,開關(guān)量信號的頻率很低,不高于4Hz。開關(guān)在閉合和斷開的過程中,往往存在一定的尖峰脈沖干擾;同時由于汽車的工作環(huán)境比較惡劣,開關(guān)信號的頻率信號中也會含有較多的高頻干擾成分。采用光電耦合隔離措施和增加必要的濾波電路能很好的解決這些問題[13]。速度信號是一個方波,通過外部中斷INT0與單片機相連,進行計數(shù)。再根據(jù)車輛特征系數(shù)、車輛特征轉(zhuǎn)數(shù)和時間就可計算車輛行駛里程和車輛行駛速度。接口電路如圖33所示:圖33 車輛數(shù)據(jù)采集接口電路RS232接口是目前最常用的一種串行通訊接口。本記錄儀中使用DB9連接器,使用的引線為接受數(shù)據(jù)(RXD)、發(fā)出數(shù)據(jù)(TXD)和信號地線(SG),對應的引腳為3和5。在RS232中任何一條信號線的電壓均為負邏輯關(guān)系。即:邏輯“1”的電平在5V—15V;邏輯“0”的電平在+5V—+15V。噪聲容限為2V,即要求接收器能識別低至+3V的信號作為邏輯“0”,高到3V的信號作為邏輯“1”。高于+15V或低于15V的電壓認為無意義,介于+3V和3V間的電壓也無意義。單片機的串口是TTL電平,需要將TTL電平轉(zhuǎn)換成RS232電平,本系統(tǒng)中使用MAX232實現(xiàn)電平的轉(zhuǎn)換。串口接口電路如圖34所示:圖34 串口接口電路 DM12864是一種采用低功耗CMOS技術(shù)實現(xiàn)的點陣圖形LCD模塊,每頁能顯示32個漢字(4行8列)。既可實現(xiàn)串行數(shù)據(jù)傳送,也可實現(xiàn)并行數(shù)據(jù)傳送。本次設(shè)計中采用該芯片的并行數(shù)據(jù)傳送功能。液晶顯示接口電路如圖35所示:圖35 液晶顯示接口電路DS1302是DALLAS公司推出的涓流充電時鐘芯片,內(nèi)含有一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM,并能提供秒、分、時、日、月、年的信息。DS1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線:RET復位、I/O數(shù)據(jù)線和SCLK串行時鐘。日歷芯片接口電路如圖36所示:圖36 DS1302日歷芯片接口電路圖37 鍵盤接口電路ZLG7289能夠管理多達64只按鍵,并能自動消除抖動,本次設(shè)計中只使用了其中16只按鍵。ZLG7289與單片機的接口采用3線制SPI串行總線,由CS、CLK和DIO這3條信號線組成。CS和CLK是輸入信號,由單片機提供。DIO信號是雙向的,必須接到單片機上具有雙向功能的I/O上。本次設(shè)計中,,同時芯片上的中斷INT接單片機的INT1。鍵盤接口電路如圖37所示。在單片機控制系統(tǒng)中,一般的工作狀態(tài)可以通過指示燈或數(shù)碼顯示來指示,以供操作員參考。但對于某些緊急狀態(tài)或反常狀態(tài),為了使操作人員不致忽視,以便及時采取措施,往往還需要有某種更能引人注意、提起警覺的報警信號。本系統(tǒng)的報警電路采用的是鳴音報警方式。電路圖中的3個發(fā)光二極管的功能分別是:超速報警燈(J1),車輛正常工作指示燈(J2)和電源指示燈(J3)。車輛車速正常時,J1燈熄滅,J2燈點亮;當J2燈點亮時表示車輛此時超速,同時揚聲器發(fā)出報警聲。當車輛電源正常工作時,J3燈一直亮著。聲光報警電路如圖38所示:圖38 聲光報警電路 FM1808是一種32*8的高集成度的RAM,采用單一+5V供電,雙列直插式28引腳封裝。本次設(shè)計中FM1808作片外數(shù)據(jù)存儲器,起緩沖器作用。車輛行駛數(shù)據(jù)先存放在FM1808中,最終存放到IC卡芯片中。數(shù)據(jù)存儲器擴展電路如圖39所示:圖39 FM1808數(shù)據(jù)存儲器擴展電路4 系統(tǒng)軟件設(shè)計在單片機應用系統(tǒng)開發(fā)過程中,程序設(shè)計有兩種方法:一種是基于匯編語言的程序設(shè)計方法,另一種是基于C語言的程序設(shè)計方法。匯編語言的機器代碼生成效率高但可讀性不強,而C語言在大多數(shù)情況下,其機器代碼生成效率和匯編語言相當,而可讀性和可移植性卻遠遠超過匯編語言。此外,由于C語言有很好的層次結(jié)構(gòu),使其編寫的程序更容易閱讀和維護。且C編寫的程序比匯編更符合人們的思考習慣,開發(fā)者能更專心的考慮程序設(shè)計而不是考慮些細節(jié)問題,這樣就減少了開發(fā)和調(diào)試的時間[17]。所以,C語言已成為在單片機應用系統(tǒng)開發(fā)中程序設(shè)計的主流語言。C語言程序設(shè)計具有如下特點[18]:① C語言簡潔,使用方便靈活。C語言是現(xiàn)有程序設(shè)計語言中規(guī)模最小的語言之一,ANSIC標準C語言只有32個關(guān)鍵字,9種流程控制語句。② 可移植性好。采用C語言編寫的程序,不依賴機器硬件,可以不加修改地移植到別的機器上。③ 表達能力強。C語言具有豐富的數(shù)據(jù)結(jié)構(gòu)類型,用戶可根據(jù)需要,采用多種數(shù)據(jù)類型來實現(xiàn)各種復雜的數(shù)據(jù)結(jié)構(gòu)運算;C語言還有多種運算符,用戶可靈活使用各種運算符實現(xiàn)復雜運算。④ 表達方式靈活。利用C語言提供的多種運算符,可以組成各種表達式,還可以采用多種方法來獲得表達式的值,從而使用戶在程序設(shè)計中具有更大的靈活性。⑤ 可進行結(jié)構(gòu)化程序設(shè)計。C語言以函數(shù)作為程序設(shè)計的基本單位,C語言程序中的函數(shù)相當于一般語言中的子程序。⑥ 可以直接操作計算機硬件。C語言具有直接訪問機器物理地址的能力,Keil的C51編譯器和Franklin的C51編譯器都可以直接對單片機的內(nèi)部特殊功能寄存器和I/O端口進行操作,可以直接訪問片內(nèi)或片尾存儲器,還可以進行各種位操作。⑦ 生成的目標代碼質(zhì)量高。目前針對不同廠家的不同單片機,所采用的開發(fā)環(huán)境也不同,如PIC單片機采用的MPLAB IDE開發(fā)環(huán)境,HOLTEK單片機采用的HTIDE3000開發(fā)環(huán)境等。Keil uVision2集成開發(fā)環(huán)境是Keil Software,Inc/ Keil Elektronik GmbH開發(fā)的基于80C51內(nèi)核的微處理器軟件開發(fā)平臺,內(nèi)嵌多種符合當前工業(yè)標準的開發(fā)工具,可以完成從工程建立和管理、編譯、鏈接、目標代碼的生成、軟件仿真及硬件仿真等完整的開發(fā)流程。尤其是C編譯工具在產(chǎn)生代碼的準確性和效率方面達到了較高的水平,而且可以附加靈活地控制選項,在開發(fā)大型項目時非常理想,是目前應用最廣泛的單片機開發(fā)環(huán)境之一[19]。 單片機應用軟件系統(tǒng)設(shè)計包括功能模塊劃分、程序流程確立、模塊接口設(shè)計以及程序代碼編寫。我們依據(jù)系統(tǒng)的功能要求,將整體軟件系統(tǒng)分割成若干個獨立的程序模塊。這些程序模塊可以是幾條語句的集合、功能函數(shù)或程序文件。隨后,根據(jù)各個程序模塊的實現(xiàn)功能寫出流程,一般需要寫出具體的實現(xiàn)功能描述。軟件的設(shè)計原則應遵循以下幾個方面:★ 設(shè)計對于分析模型應是可跟蹤的:軟件的模塊可能被映射到多個需求上;★ 設(shè)計結(jié)構(gòu)應該盡可能的模擬實際問題;★ 設(shè)計應該表現(xiàn)出一致性;★ 不要把設(shè)計當成編寫代碼;★ 在創(chuàng)建設(shè)計時就應該能夠評估質(zhì)量;★ 評審設(shè)計以減少語言性的錯誤。合理的軟件結(jié)構(gòu)是設(shè)計出一個性能優(yōu)良的單片機應用系統(tǒng)軟件的基礎(chǔ),必須充分重視。根據(jù)系統(tǒng)的定義,可把整個工作分解為若干相對獨立的操作,再考慮各操作之間的相互聯(lián)系及時間關(guān)系而設(shè)計出一個合理的軟件結(jié)構(gòu)。對于簡單的單片機應用系統(tǒng),可采用順序結(jié)構(gòu)設(shè)計方法,其系統(tǒng)軟件由主程序和若干個中斷服務程序構(gòu)成。明確主程序和中斷服務程序完成的操作及指定各中斷的優(yōu)先級。對于復雜的實時控制系統(tǒng),可采用實時多任務操作系統(tǒng)。此操作系統(tǒng)應具備任務調(diào)度、實時控制、實時時鐘、輸入輸出和中斷控制、系統(tǒng)調(diào)用、多個任務并行運行等功能,以提高系統(tǒng)的實時性和并行性。在程序設(shè)計方法上,模塊程序設(shè)計是單片機應用中最常用的程序設(shè)計方法。這種模塊化程序便于設(shè)計和調(diào)試,有容易完成并可提供多個程序共享等優(yōu)點,但各模塊之間的連接有一定的難度。根據(jù)需要也可采用自上而下的程序設(shè)計方法,此方法是先從主程序開始設(shè)計,然后再編制各從屬的程序和子程序。這種方法比較符合人們的日常思維,缺點是上一級的程序錯誤會對整個程序產(chǎn)生影響。軟件結(jié)構(gòu)設(shè)計和程序設(shè)計方法確定后,根據(jù)系統(tǒng)功能定義,可先畫出程序粗框圖,再對粗框圖進行擴充和具體化,即對存儲器、寄存器、標志位等工作單元作具體的分配和說明,再繪制出詳細的程序流程圖。程序流程圖設(shè)計出以后,便可著手編寫程序,再經(jīng)編譯、調(diào)試,正常運行后,固化到EPROM中去,完成了整個應用系統(tǒng)的設(shè)計[20]。 系統(tǒng)的功能決定了系統(tǒng)程序設(shè)計,由于系統(tǒng)的功能需求直接明了,所以軟件流程也相應清晰,易于設(shè)計。設(shè)計的主程序流程圖如圖44所示。汽車啟動后,系統(tǒng)先進行初始化,包括對程序執(zhí)行過程中用到的相關(guān)變量初始化和各模塊初始化。初始化完成后,液晶主屏顯示提示信息:車號、工號及起始站,用戶可以通過鍵盤輸入相關(guān)信息。程序中設(shè)置車輛狀態(tài)變量car_state,通過測試變量car_state的值來判斷車輛的運行狀態(tài)。若car_state等于0,表示車輛啟動并處于停止狀態(tài);若car_state等于0X55,表示車輛處于行駛狀態(tài);若car_state等于0XFF,表示車輛行駛一段時間后停車。當車輛第一次處于行駛狀態(tài)時,主程序通過調(diào)用日歷芯片子程序和液晶顯示子程序,在液晶主屏上顯示實時時間和汽車所行駛的里程信息,每分鐘記錄1次數(shù)據(jù)并存入IC卡中。在行駛過程中通過調(diào)用超速報警子程序,判斷汽車有無超速,超速要給出報警等指示,并將超速的實時時間和超速度存入IC卡中。速度信號可看作是脈沖信號,單片機利用定時器0中斷定時,利用外部中斷0記錄脈沖個數(shù),從而得到速度等信息。程序中不斷將速度值和預先設(shè)定的門限值作比較,如果超過則啟動超速報警。通過測試car_state是否等于OXFF,判斷是否停車:若未停車,則繼續(xù)實時顯示時間、里程等信息。在確認停車后,通過調(diào)用按鍵中斷子程序,確認是否按下到站鍵,若到站鍵未按下,表明車輛只是普通的途中停車,記錄停車時間后,停車次數(shù)加1,并將這些信息存入IC卡后,繼續(xù)判斷車輛是否行駛,形成循環(huán)。反之,表示車輛到站,記錄到站時間,停車次數(shù)加1后存入IC卡中。到站鍵按下的同時,判斷車輛是否到終點站,若車輛到終點站,則駕駛員按下終點站鍵(0X0B),液晶通過清屏后,顯示“終點站”,信息存儲后,主程序結(jié)束。液晶顯示界面如下圖所示:車號XX工號XX起始站圖41 汽車啟動后主屏顯示提示信息及相關(guān)輸入界面20XX年XX月XX日XX時XX分里程XXKm圖42 汽車行駛、停車及到站實時顯示界面終點站圖43 汽車到達終點站顯示界面汽車啟動初 始 化主屏顯示提示信息輸入相關(guān)信息并存入IC卡車輛行駛? N 實時顯示日歷 里程等信息 Y 每分鐘記錄1次數(shù)據(jù)并存入IC卡Y啟動聲光報警超速? N 停車? N Y N記錄停車時間停車次數(shù)加1到站鍵按下? Y記錄到站時間,停車次數(shù)加1,并存入IC卡終點站? NY 按鍵并存儲信息主屏顯示終點站 圖44 主程序流程圖 DM12864液晶顯示軟件設(shè)計DM12864有兩種數(shù)據(jù)傳送方式:串行數(shù)據(jù)傳送和并行數(shù)據(jù)傳送。本次設(shè)計采用并行數(shù)據(jù)傳送方式。8位并行數(shù)據(jù)傳送時序下圖如所示:圖45 單片機寫數(shù)據(jù)到DM12864時序圖圖46 單片機從DM12864讀出數(shù)據(jù)時序圖RS為并行的指令/數(shù)據(jù)選擇信號,RS=0表示并行指令選擇信號,RS=1表示并行數(shù)據(jù)選擇信號;E為DM12864的使能信號,由時序圖可知,使能信號為高電平有效;R/W為并行的讀寫選擇信號,邏輯“1”表示讀,邏輯“0”表示寫。DM12864初始化指令包括功能設(shè)定指令、顯示狀態(tài)開/關(guān)指令、清除顯示指令和進入點設(shè)定指令。1.功能設(shè)定指令:D7 D6 D5 D4 D3 D
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1