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

正文內(nèi)容

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

2024-08-19 05:05本頁面
  

【正文】 6位計數(shù)器被拆分成兩個部分:TL1作計數(shù)器,TH1用來保存計數(shù)初值。在9600bps時,每一位的傳送時間T=1/9600=。本記錄儀為了獲得較高的通訊效率,串行通信程序均采用9600bps的波特率。定義如下:8FH 8EH 8DH 8CH 8BH 8AH 89H 88HTF1TR1TF0TR0IE1IT1IE0IT0TFTF0:定時器0溢出標志,T1(T0)溢出時由硬件置1并申請中斷,CPU響應(yīng)中斷后,由硬件清0也可由軟件清零;TRTR0:定時器0運行控制位,可由軟件置1或清0來啟動或停止T1(T0);ITIT0:外部中斷0觸發(fā)方式選擇位。在TR0(或TR1)置“1”時,若INT0/INT1引腳為高電平,啟動定時器計數(shù),若為低電平則停止計數(shù)。C/T=0,設(shè)置為定時工作方式;C/T=1,設(shè)置為計數(shù)工作方式;GATE:門控位,用于決定是軟件還是硬件啟動/停止計數(shù)器。圖49 AT45DB041寫操作流程圖 MAX232串行通信軟件設(shè)計本次串口設(shè)計采用MAX232芯片,MAX232芯片是一款常用的串口芯片,其軟件設(shè)計較為簡單。如果在寫的過程中CS引腳由低變高,芯片仍將繼續(xù)完成該操作。(2)寫256字節(jié)的頁:命令字由83H(選擇緩存1)/86H(選擇緩存2)+5bit任意碼+11bit頁地址碼+8bit任意碼組成,其中的11bit頁地址碼用于指定主內(nèi)存中要寫入的首字節(jié)。AT45DB041芯片同樣具有兩種不同的寫主內(nèi)存方式:寫264字節(jié)的頁和寫256字節(jié)的頁。5. 將緩存中的數(shù)據(jù)寫入主內(nèi)存中程序為void AT45DB041_BufferToPageProgram (uchar buffer,uint PA,uint BFA,uchar *pHeader,uint len),其中形參PA表示要寫入的頁地址(0~2047)。如果寫到緩存區(qū)的最后一個地址,下一個寫入的數(shù)據(jù)將會寫到緩存區(qū)的第一個地址。(2)寫256字節(jié)的頁:命令字由控制字84H(選擇緩存1)/87H(選擇緩存2)+16bit任意碼+8bit緩存地址碼組成,其中的8bit地址碼用于指定緩存中要寫入的首字節(jié)。AT45DB041芯片有兩種不同的寫緩存方式:寫264字節(jié)的頁和寫256字節(jié)的頁。形參BFA表示buffer中的起始地址(0~263),pHeader表示待存數(shù)據(jù)的頭指針,len是待存數(shù)據(jù)的長度。最后兩位為無關(guān)位。狀態(tài)寄存器的第6位指示最近一次主存緩存比對的結(jié)果,如果該位值為0,則表示主存和緩存的數(shù)據(jù)是匹配的,數(shù)據(jù)傳輸沒有出現(xiàn)錯誤;為1則表明主存和緩存至少有1字節(jié)的數(shù)據(jù)不一樣,數(shù)據(jù)傳輸存在錯誤。狀態(tài)寄存器格式如:Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RDY/BUSYCOMP0111XX狀態(tài)寄存器的第7位指示芯片的忙閑狀態(tài),如果它的值是1,那么芯片就是空閑的,可對其進行任何操作;如果是0,就表示忙,不能對其進行寫入或擦出等操作。要讀狀態(tài)寄存器,CS引腳必須首先有效,之后送入8位控制字D7H,緊隨控制字之后,1字節(jié)的狀態(tài)寄存器值即可在輪詢時鐘作用下,從SO引腳讀出,最后一位讀出之后,SCK引腳再變化,就會再次從SO引腳輸出狀態(tài)寄存器的值。狀態(tài)寄存器決定了器件的忙/閑狀態(tài)、頁大小、主存和緩存頁比對結(jié)果、頁保護狀態(tài)和芯片密度。如此循環(huán)8次單片機即可通過SPI讀出AT45DB041一個字節(jié)的數(shù)據(jù),最后返回讀到的1個字節(jié)的數(shù)據(jù)。程序為uchar At45ReadByte(void)。如此循環(huán)8次單片機即可通過SPI向AT45DB041寫入1個字節(jié)的數(shù)據(jù)。下面將分別介紹每個部分的實現(xiàn)情況:程序為void At45WriteByte(uchar Bytename),形參Bytename表示要寫入的1bit數(shù)據(jù)。芯片的各操作指令都是由單片機發(fā)出,一個有效的命令是在CS有效,并且要緊隨有效的8位控制字和合適的緩存或者主存中的地址,所有的串行操作都是高位在前[22]。本次設(shè)計主要是對單頁進行寫(數(shù)據(jù)存儲)操作。AT45DB041的存儲單元被分成三個等級:段、塊和頁。具體鍵值0X00~0X09為數(shù)字鍵,分別表示從0~9的10個數(shù)字,鍵值0X0A為到站鍵,鍵值0X0B為終點站到站鍵。正常情況下,鍵值的范圍是0~63(0X00~OX3F),無按鍵的狀態(tài)用255(0XFF)表示。這時利用該指令可以讀出當前的鍵值。如果設(shè)置成負邊沿觸發(fā)方式,則進入中斷讀完鍵值后不必等待即可退出,返回主程序后也不會再次觸發(fā)中斷。如果程序中采用低電平觸發(fā)中斷,則進入中斷完成讀取鍵值操作后,還必須要等待INT信號恢復為高電平,即等待操作者放鍵,在等待期間,CPU幾乎不能再干其它事情,造成浪費。按鍵掃描軟件流程圖如圖48所示:開 始ZLG7289初始化讀取按鍵向ZLG7289發(fā)出數(shù)據(jù) Y接收ZLG7289返回鍵值KEY=FFH? N單片機讀到該鍵按下結(jié) 束圖48 按鍵掃描軟件設(shè)計流程圖利用中斷方式處理按鍵時,通常將微控制器外部中斷的觸發(fā)方式設(shè)置成負邊沿觸發(fā),而不要設(shè)置成低電平觸發(fā)。讀取鍵值后,INT引腳并不會自動恢復為高電平,一定要等到按鍵抬起為止。但是要避免通過SPI總線用軟件命令的方式去查詢是否有鍵按下,這將導致SPI總線頻繁處于活動狀態(tài),不利于抗干擾。某個按鍵按下時,ZLG7289的INT引腳會出現(xiàn)低電平,向主控制器發(fā)出中斷請求。SPI信號線的具體意義參見表42,圖47是讀按鍵值的時序圖,只有當INT引腳出現(xiàn)下跳沿時才允許去讀取按鍵值,否則將得不到有意義的數(shù)據(jù)。CS和CLK是輸入信號,由微控制器提供。本次設(shè)計只需用到其中的16只按鍵。該芯片與單片機之間采用SPI串行總線接口,操作方便,占用I/O資源少。具體的中文字型編碼可參見ST7920 GB中文字型碼表。表41 漢字顯示位置關(guān)系80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH液晶顯示執(zhí)行指令為void display2(uchar dat,uchar add),其中,形參dat表示要顯示的8位數(shù)據(jù),形參add表示地址,通過與80H相“或”,以確保DDRAM位址的最高位為1,得到的結(jié)果賦值給c,c即是數(shù)據(jù)在液晶上顯示的具體位置。液晶顯示時,需設(shè)定DDRAM位址。2.顯示狀態(tài)開/關(guān)指令:D7 D6 D5 D4 D3 D2 D1 D000001DCB其中D=1:整體顯示ON,C=1:游標ON,B=1:游標位置ON。DM12864初始化指令包括功能設(shè)定指令、顯示狀態(tài)開/關(guān)指令、清除顯示指令和進入點設(shè)定指令。本次設(shè)計采用并行數(shù)據(jù)傳送方式。到站鍵按下的同時,判斷車輛是否到終點站,若車輛到終點站,則駕駛員按下終點站鍵(0X0B),液晶通過清屏后,顯示“終點站”,信息存儲后,主程序結(jié)束。在確認停車后,通過調(diào)用按鍵中斷子程序,確認是否按下到站鍵,若到站鍵未按下,表明車輛只是普通的途中停車,記錄停車時間后,停車次數(shù)加1,并將這些信息存入IC卡后,繼續(xù)判斷車輛是否行駛,形成循環(huán)。程序中不斷將速度值和預(yù)先設(shè)定的門限值作比較,如果超過則啟動超速報警。在行駛過程中通過調(diào)用超速報警子程序,判斷汽車有無超速,超速要給出報警等指示,并將超速的實時時間和超速度存入IC卡中。若car_state等于0,表示車輛啟動并處于停止狀態(tài);若car_state等于0X55,表示車輛處于行駛狀態(tài);若car_state等于0XFF,表示車輛行駛一段時間后停車。初始化完成后,液晶主屏顯示提示信息:車號、工號及起始站,用戶可以通過鍵盤輸入相關(guān)信息。設(shè)計的主程序流程圖如圖44所示。程序流程圖設(shè)計出以后,便可著手編寫程序,再經(jīng)編譯、調(diào)試,正常運行后,固化到EPROM中去,完成了整個應(yīng)用系統(tǒng)的設(shè)計[20]。這種方法比較符合人們的日常思維,缺點是上一級的程序錯誤會對整個程序產(chǎn)生影響。這種模塊化程序便于設(shè)計和調(diào)試,有容易完成并可提供多個程序共享等優(yōu)點,但各模塊之間的連接有一定的難度。此操作系統(tǒng)應(yīng)具備任務(wù)調(diào)度、實時控制、實時時鐘、輸入輸出和中斷控制、系統(tǒng)調(diào)用、多個任務(wù)并行運行等功能,以提高系統(tǒng)的實時性和并行性。明確主程序和中斷服務(wù)程序完成的操作及指定各中斷的優(yōu)先級。根據(jù)系統(tǒng)的定義,可把整個工作分解為若干相對獨立的操作,再考慮各操作之間的相互聯(lián)系及時間關(guān)系而設(shè)計出一個合理的軟件結(jié)構(gòu)。軟件的設(shè)計原則應(yīng)遵循以下幾個方面:★ 設(shè)計對于分析模型應(yīng)是可跟蹤的:軟件的模塊可能被映射到多個需求上;★ 設(shè)計結(jié)構(gòu)應(yīng)該盡可能的模擬實際問題;★ 設(shè)計應(yīng)該表現(xiàn)出一致性;★ 不要把設(shè)計當成編寫代碼;★ 在創(chuàng)建設(shè)計時就應(yīng)該能夠評估質(zhì)量;★ 評審設(shè)計以減少語言性的錯誤。這些程序模塊可以是幾條語句的集合、功能函數(shù)或程序文件。 單片機應(yīng)用軟件系統(tǒng)設(shè)計包括功能模塊劃分、程序流程確立、模塊接口設(shè)計以及程序代碼編寫。Keil uVision2集成開發(fā)環(huán)境是Keil Software,Inc/ Keil Elektronik GmbH開發(fā)的基于80C51內(nèi)核的微處理器軟件開發(fā)平臺,內(nèi)嵌多種符合當前工業(yè)標準的開發(fā)工具,可以完成從工程建立和管理、編譯、鏈接、目標代碼的生成、軟件仿真及硬件仿真等完整的開發(fā)流程。⑦ 生成的目標代碼質(zhì)量高。⑥ 可以直接操作計算機硬件。⑤ 可進行結(jié)構(gòu)化程序設(shè)計。④ 表達方式靈活。③ 表達能力強。② 可移植性好。C語言程序設(shè)計具有如下特點[18]:① C語言簡潔,使用方便靈活。且C編寫的程序比匯編更符合人們的思考習慣,開發(fā)者能更專心的考慮程序設(shè)計而不是考慮些細節(jié)問題,這樣就減少了開發(fā)和調(diào)試的時間[17]。匯編語言的機器代碼生成效率高但可讀性不強,而C語言在大多數(shù)情況下,其機器代碼生成效率和匯編語言相當,而可讀性和可移植性卻遠遠超過匯編語言。車輛行駛數(shù)據(jù)先存放在FM1808中,最終存放到IC卡芯片中。聲光報警電路如圖38所示:圖38 聲光報警電路 FM1808是一種32*8的高集成度的RAM,采用單一+5V供電,雙列直插式28引腳封裝。車輛車速正常時,J1燈熄滅,J2燈點亮;當J2燈點亮時表示車輛此時超速,同時揚聲器發(fā)出報警聲。本系統(tǒng)的報警電路采用的是鳴音報警方式。在單片機控制系統(tǒng)中,一般的工作狀態(tài)可以通過指示燈或數(shù)碼顯示來指示,以供操作員參考。本次設(shè)計中,同時芯片上的中斷INT接單片機的INT1。CS和CLK是輸入信號,由單片機提供。日歷芯片接口電路如圖36所示:圖36 DS1302日歷芯片接口電路圖37 鍵盤接口電路ZLG7289能夠管理多達64只按鍵,并能自動消除抖動,本次設(shè)計中只使用了其中16只按鍵。液晶顯示接口電路如圖35所示:圖35 液晶顯示接口電路DS1302是DALLAS公司推出的涓流充電時鐘芯片,內(nèi)含有一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM,并能提供秒、分、時、日、月、年的信息。既可實現(xiàn)串行數(shù)據(jù)傳送,也可實現(xiàn)并行數(shù)據(jù)傳送。單片機的串口是TTL電平,需要將TTL電平轉(zhuǎn)換成RS232電平,本系統(tǒng)中使用MAX232實現(xiàn)電平的轉(zhuǎn)換。噪聲容限為2V,即要求接收器能識別低至+3V的信號作為邏輯“0”,高到3V的信號作為邏輯“1”。在RS232中任何一條信號線的電壓均為負邏輯關(guān)系。接口電路如圖33所示:圖33 車輛數(shù)據(jù)采集接口電路RS232接口是目前最常用的一種串行通訊接口。速度信號是一個方波,通過外部中斷INT0與單片機相連,進行計數(shù)。開關(guān)在閉合和斷開的過程中,往往存在一定的尖峰脈沖干擾;同時由于汽車的工作環(huán)境比較惡劣,開關(guān)信號的頻率信號中也會含有較多的高頻干擾成分。接口電路圖如圖32所示:圖32 MAX70AT45DB041和AT89C51接口電路數(shù)據(jù)采集包括信號的調(diào)理設(shè)計和車輛狀態(tài)信號的采集。采用4M字節(jié)的數(shù)據(jù)閃存AT45DB041作為數(shù)據(jù)存儲器,用來實現(xiàn)車輛行駛數(shù)據(jù)的長期存儲。、AT45DB041和AT89C51接口電路在本記錄儀中,采用MAXIM公司的MAX706芯片作為電源監(jiān)控和復位器件。同時,AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。在汽車行駛狀態(tài)記錄儀中我們采用AT89C51單片機作為中央處理器。單片機芯片內(nèi)部集成ROM/EPROM、RAM、總線、總線邏輯、定時/計數(shù)器、看門狗、I/O、串行口、脈沖調(diào)制輸出、A/D、D/A等各種必要功能和外設(shè)。以下將介紹單片機及各個部分的接口電路。系統(tǒng)控制核心芯片選用AT89C51單片機;實時液晶顯示部分采用DM12864芯片;按鍵顯示部分采用ZLG7289芯片;實時時鐘部分采用DS1302日歷芯片;片外擴展的數(shù)據(jù)緩存采用FM1808鐵質(zhì)存儲器; IC卡芯片AT45DB041用來存儲完整數(shù)據(jù);用“看門狗”芯片MAX706監(jiān)視單片機的運行情況;串口采用MAX232芯片。包括指示燈(一個電源指示燈、兩個狀態(tài)指示燈),蜂鳴器,LCD(分辨率為128*64)和鍵盤(擁有16個按鍵)。“看門狗”作為復位電路可以防止單片機發(fā)生死機;系統(tǒng)掉電部分提醒單片機對重要的行駛數(shù)據(jù)作保存和處理;實時時鐘采用;整個主機部分設(shè)計體現(xiàn)了高性價比和安全、可靠的設(shè)計思想。記錄儀使用FM1808芯片作為擴展數(shù)據(jù)存儲器,使用Atmel公司的4M基于SPI總線
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1