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

正文內(nèi)容

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

2024-08-25 05:05本頁面
  

【正文】 1 16位計數(shù)器 1 0 2 8位可自動裝載計數(shù)器 1 1 3 T0分成兩個獨立8位計數(shù)器,此方式T1關閉2. 定時器/計數(shù)器控制寄存器TCONTCON的高四位用于控制定時器的啟動、停止以及標明定時器的溢出和中斷情況,低四位用于兩個外部中斷源控制。9FH 9EH 9DH 9CH 9BH 9AH 99H 98HSM0SM1SM2RENTB8RB8TIRISM0、SM1:串行口方式選擇位,用于控制串行口的工作方式;SM2:允許方式2和方式3進行多機通信控制位,SM2=0表示單機對單機通信,SM2=1表示多機通信;REN:允許串行接收控制位,由軟件清0時,禁止串行口接收,由軟件置位時,允許串行接收;TBRB8:發(fā)送數(shù)據(jù)第9位、接收數(shù)據(jù)第9位;TI、RI:發(fā)送中斷標志、接收中斷標志。每幀10位,其中1個起始位,8個數(shù)據(jù)位,1個停止位。51系列單片機內(nèi)部有全雙工串行口,提供了4種工作方式。一旦計數(shù)溢出,將置位中斷標志,并把TH1中的初值再裝入TL1,從而進入新一輪的計數(shù),如此循環(huán),重復不止。開 始波特率的計算公式為:n=2SMOD32*fosc12*(256X)。對本記錄儀而言,設置SMOD=0,晶振頻率fosc=,通過上述公式,可以計算得到計數(shù)器的裝入初值為X=253=0xFD。采用SPI三線接口與單片機進行同步通信。DS1302的控制字與讀寫時序如下所示:D7 D6 D5 D4 D3 D2 D1 D01RAM/CKA4A3A2A1A0RD/WRD7:必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中;D6:如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);D5~D1:指示操作單元的地址;D0:如為0表示要進行寫操作,為1表示進行讀操作。在控制字指令輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從最低位(D0)開始。DS1302是通過SPI串行總線驅(qū)動方式,它不僅可以向寄存器寫入控制字,還可以讀取相應寄存器的數(shù)據(jù)[24]。本次設計中需用到讀、寫秒寄存器(81H、80H),讀、寫分寄存器(83H、82H),讀、寫時寄存器(85H、84H),讀、寫日寄存器(87H、86H),讀、寫月寄存器(89H、88H)、讀寫年寄存器(8DH、8CH)和寫保護控制寄存器(8EH)。當該位置為“1”時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當該位置為“0”時,時鐘開始運行。在12小時模式時,D5定義PM與AM標志位,邏輯1表示PM,邏輯0表示AM;在24小時模式時,D5時第二個10小時位。在任何情況下對時鐘和RAM的寫操作之前,WP位必須為“0”。該模塊基本子程序包括向日歷芯片寫入1字節(jié)數(shù)據(jù)(寫控制字)、從日歷芯片讀取1字節(jié)數(shù)據(jù)(讀取日歷芯片寄存器內(nèi)容)、寫日歷芯片寄存器(先寫寄存器地址,后寫入數(shù)據(jù))、獲取時間(實時時間)、初始化和碼制轉(zhuǎn)換。其中形參c為時間寄存器中數(shù)據(jù)的BCD碼值,指針*P指向經(jīng)碼制轉(zhuǎn)換后存放十進制數(shù)的數(shù)組地址。隨著單片微機在各個領域中的應用越來越廣泛,對其可靠性要求也越來越高??垢蓴_措施有硬件措施和軟件措施。軟件抗干擾以其設計靈活。本文的汽車行駛記錄儀系統(tǒng)在設計時也使用了一些軟件抗干擾措施。這時我們首先要盡快將程序納入正軌(執(zhí)行真正的指令系列)。當程序彈飛到某一條單字節(jié)指令上時,便自動納入正軌。因此,我們應多采用單字節(jié)指令,并在關鍵的地方人為地插入一些單字節(jié)指令(NOP),或?qū)⒂行巫謺噶钪貜蜁鴮懀@便是指令冗余。或者說,某指令前如果插入兩條NOP指令,則這條指令就不會被前面沖下來的失控程序拆散,并將被完整執(zhí)行,從而使程序走上正軌。對于程序流向起決定作用的指令和對系統(tǒng)工作狀態(tài)有重要作用的指令的后面,常常采用重復寫這些指令,并且插入兩條NOP指令的方法,以確保這些指令的正確執(zhí)行[25]。對付這一類事故的有效方法就是掉電保護。軟件中斷將掉電中斷規(guī)定為高級中斷,使系統(tǒng)及時對掉電作出反應。指令冗余使彈飛的程序安定下來是有條件的,首先彈飛的程序必須落到程序區(qū),其次必須執(zhí)行到冗余指令。對付前一種情況采取的措施就是設立軟件陷阱,對于后一種情況采取的措施是建立程序運行監(jiān)視系統(tǒng)(WATCHDOG)。如果我們把這段程序的入口標號稱為ERR的話,軟件陷阱即為一條轉(zhuǎn)入執(zhí)行ERR的指令,為加強其捕捉效果,一般還在它前面加兩條NOP指令,因此,真正的軟件陷阱由三條指令構成:兩條NOP指令+一條轉(zhuǎn)入執(zhí)行ERR的指令。由于軟件陷阱都安排在正常程序執(zhí)行不到的地方,故不影響程序執(zhí)行效率,在當前EPROM容量不成問題的條件下,還是多多益善[26]。經(jīng)過反復的查閱資料,結合前人的研究成果,積極思考,以及在張蓮老師的悉心指導和杜常興同學的無私幫助下,通過實際研究分析,基本實現(xiàn)了課題要求。本次設計雖然取得了預期的成果,但是在軟件設計上仍然存在很多的不足:程序上存在冗余的現(xiàn)象,系統(tǒng)的部分功能仍需進一步的完善,例如在信息數(shù)據(jù)轉(zhuǎn)存上可以更清楚、直接,設計中出現(xiàn)的誤差還能繼續(xù)降低,例如在里程數(shù)據(jù)的顯示上可以更加的精確。由于本人初次設計,且水平有限,文中難免存在著一些不妥和疏漏之處,在此敬請各位老師批評指正。張老師對工作認真負責的態(tài)度,以及對學生學習上和生活上的時刻關心都讓我深受感動;同時,老師嚴謹?shù)闹螌W態(tài)度,對科學孜孜不倦的探求精神,也永遠值得我們學習。本科學習期間,班級里的同學在學習、生活和工作中,都給予我很大的幫助,在此表示由衷的感謝。正是在尊敬的老師、敬愛的父母和兄弟般的同學們的支持和鼓勵下,使我順利完成了大學的學業(yè)和論文工作。Car Data Recorders Accident Analysis and Prevention 2000(32)643650[4] IEEE Vehicular Technology Society.IEEE Standard for Motor Vehicle Event Data Recorders(MVEDRs) .IEEE Std 1616—2004[5] [D].2005年 南京 東南大學 [6] [D].2005年 南京 南京理工大學 [7] Jonathan Design and Implementation of Embedded Vehicle Traveling Data Recordee Journal of electronic engineering amp。 //超速報警控制管腳sbit d1=P0^1。 //電源指示燈控制管腳sbit 574clk=Y2。 //74LS373片選信號管腳sbit A=P2^6。sbit zlg7289_pinCLK = P1^6。 //zlg7289數(shù)據(jù)信號管腳,雙向sbit zlg7289_pinINT = P3^3。 //IC卡片選信號管腳 sbit SCKFlash=P1^1。 //IC卡數(shù)據(jù)輸入端管腳sbit DS1302SCLK=P1^3。 //日歷時鐘數(shù)據(jù)信號管腳sbit DS1302RST=P1^5。sbit ACC0=ACC^0。 //片外數(shù)據(jù)存儲器片選信號管腳sbit fm1808_WE=P3^6。 //片外數(shù)據(jù)存儲器讀選通信號管腳uchar key=0xff。uchar code show[]={ 0xC4,0xEA, //年 0xD4,0xC2, //月 0xC8,0xD5, //日 0xCA,oxB1, //時 0xB7,0xD6, //分 0xB3,0xB5, //車 0xBA,0xC5, //號 0xB9,0xA4, //工 0xC6,0xF0, //起 0xCA,0xBC, //始 0xD5,0xBE, //站 0xD6,0xD5, //終 0xB5,0xE3, //點 0xC0,0xEF, //里 0xB3,0xCC}。 //time數(shù)組裝日歷數(shù)據(jù)(兩位數(shù)),show數(shù)組裝2個數(shù)字uchar num[]={0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b}。 //每秒鐘脈沖個數(shù)初始化uchar maichong=0。 uchar car_state=0。 //停車次數(shù)初始化*********************************************************************主程序*********************************************************************void main (){ time_initial ()。 lcd_initial ()。 zlg7289_Init (t)。chehao_show ()。 //兩位數(shù)車號的第一位數(shù)while (1){ if (key==0xff) //若沒有鍵按下,則等待 { while (1) {delay_xms (10)。amp。 break。 //兩位數(shù)車號的第二位數(shù)while (1){ if (key==0xff) //若沒有鍵按下,則等待 { while (1) {delay_xms (10)。amp。 break。 //顯示工號,并按鍵輸入工號信息key=zlg7289_key ()。 } else if ( key=0amp。key=9 ) display2 ( key,82H )。 }key=zlg7289_key ()。 } else if ( key=0amp。key=9 ) display2 ( key,82H )。 }qishizhan_show ()。 //保持顯示1s時間ICcunchu ( 1,0,0,DISP_NUM,3 )。 //液晶清屏delay_xms (1)。} }else if (( car_state==0x55 )||( car_state==0xff )) //車輛處于行駛狀態(tài)(0X55)或車輛行駛一段時間后又停止(0xff),實時顯示日歷、里程{ calendar_show ()。 //延時 mile_show ()。 display2 ( mile,8AH )。 } if (car_state==0xff) //車輛行駛一段時間后停止 { key=zlg7289_key ()。 else tingche++。if ( key==0x0b ) //終點站到站鍵(0x0b)按下clc_screen ()。 //延時zhongdianzhan_show ()。 //1us延時/*延時X毫秒子程序*/void delay_xms ( uint x ) { uchar j。j125。 }/*zlg7289短延時子程序*/void zlg7289_ShortDelay () //短延時,延時(zlg7289_Delay_t*2+2)個機器周期{ uchar t=zlg7289_Delay_t。}/*zlg7289長延時子程序*/void zlg7289_LongDelay () //長延時,延時(zlg7289_Delay_t*12+8)個機器周期{ uchar t = zlg7289_Delay_t * 6。}*********************************************************************狀態(tài)信號采集部分子程序*********************************************************************/*初始化定時器、外部中斷0*/void init_int (){ EX0=1。 //外部中斷0下降沿觸發(fā)方式 TMOD=0x21。 //40ms觸發(fā)一次 TL0=0xb0。 //定時器0啟動計數(shù) ET0=1。 //開放所有中斷}/*外部中斷0中斷子程序*/void interrupt0 ( void ) interrupt 0 { pulse++
點擊復制文檔內(nèi)容
黨政相關相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1