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

正文內(nèi)容

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

 

【正文】 80H相“或”,以確保DDRAM位址的最高位為1,得到的結(jié)果賦值給c,c即是數(shù)據(jù)在液晶上顯示的具體位置。該芯片與單片機(jī)之間采用SPI串行總線接口,操作方便,占用I/O資源少。CS和CLK是輸入信號(hào),由微控制器提供。某個(gè)按鍵按下時(shí),ZLG7289的INT引腳會(huì)出現(xiàn)低電平,向主控制器發(fā)出中斷請(qǐng)求。讀取鍵值后,INT引腳并不會(huì)自動(dòng)恢復(fù)為高電平,一定要等到按鍵抬起為止。如果程序中采用低電平觸發(fā)中斷,則進(jìn)入中斷完成讀取鍵值操作后,還必須要等待INT信號(hào)恢復(fù)為高電平,即等待操作者放鍵,在等待期間,CPU幾乎不能再干其它事情,造成浪費(fèi)。這時(shí)利用該指令可以讀出當(dāng)前的鍵值。具體鍵值0X00~0X09為數(shù)字鍵,分別表示從0~9的10個(gè)數(shù)字,鍵值0X0A為到站鍵,鍵值0X0B為終點(diǎn)站到站鍵。本次設(shè)計(jì)主要是對(duì)單頁(yè)進(jìn)行寫(xiě)(數(shù)據(jù)存儲(chǔ))操作。下面將分別介紹每個(gè)部分的實(shí)現(xiàn)情況:程序?yàn)関oid At45WriteByte(uchar Bytename),形參Bytename表示要寫(xiě)入的1bit數(shù)據(jù)。程序?yàn)閡char At45ReadByte(void)。狀態(tài)寄存器決定了器件的忙/閑狀態(tài)、頁(yè)大小、主存和緩存頁(yè)比對(duì)結(jié)果、頁(yè)保護(hù)狀態(tài)和芯片密度。狀態(tài)寄存器格式如:Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RDY/BUSYCOMP0111XX狀態(tài)寄存器的第7位指示芯片的忙閑狀態(tài),如果它的值是1,那么芯片就是空閑的,可對(duì)其進(jìn)行任何操作;如果是0,就表示忙,不能對(duì)其進(jìn)行寫(xiě)入或擦出等操作。最后兩位為無(wú)關(guān)位。AT45DB041芯片有兩種不同的寫(xiě)緩存方式:寫(xiě)264字節(jié)的頁(yè)和寫(xiě)256字節(jié)的頁(yè)。如果寫(xiě)到緩存區(qū)的最后一個(gè)地址,下一個(gè)寫(xiě)入的數(shù)據(jù)將會(huì)寫(xiě)到緩存區(qū)的第一個(gè)地址。AT45DB041芯片同樣具有兩種不同的寫(xiě)主內(nèi)存方式:寫(xiě)264字節(jié)的頁(yè)和寫(xiě)256字節(jié)的頁(yè)。如果在寫(xiě)的過(guò)程中CS引腳由低變高,芯片仍將繼續(xù)完成該操作。C/T=0,設(shè)置為定時(shí)工作方式;C/T=1,設(shè)置為計(jì)數(shù)工作方式;GATE:門控位,用于決定是軟件還是硬件啟動(dòng)/停止計(jì)數(shù)器。定義如下:8FH 8EH 8DH 8CH 8BH 8AH 89H 88HTF1TR1TF0TR0IE1IT1IE0IT0TFTF0:定時(shí)器0溢出標(biāo)志,T1(T0)溢出時(shí)由硬件置1并申請(qǐng)中斷,CPU響應(yīng)中斷后,由硬件清0也可由軟件清零;TRTR0:定時(shí)器0運(yùn)行控制位,可由軟件置1或清0來(lái)啟動(dòng)或停止T1(T0);ITIT0:外部中斷0觸發(fā)方式選擇位。在9600bps時(shí),每一位的傳送時(shí)間T=1/9600=。這種工作方式可以避免在程序中因重新裝入初值而對(duì)定時(shí)精度的影響,非常適用于作為波特率發(fā)生器等需要產(chǎn)生相當(dāng)精度的定時(shí)時(shí)間的應(yīng)用場(chǎng)合[23]。初始化串口調(diào)用串口接收中斷處理函數(shù)等 待向發(fā)送端申請(qǐng)數(shù)據(jù)重發(fā)數(shù)據(jù)接收完成? N Y調(diào)用求校驗(yàn)和函數(shù)數(shù)據(jù)正確? N Y調(diào)用發(fā)送程序結(jié) 束圖410 串口通信軟件設(shè)計(jì)流程圖 DS1302實(shí)時(shí)時(shí)鐘軟件設(shè)計(jì)DS1302為汽車行駛狀態(tài)記錄儀系統(tǒng)提供實(shí)時(shí)時(shí)鐘數(shù)據(jù)。圖411 DS1302單字節(jié)寫(xiě)時(shí)序圖圖412 DS1302單字節(jié)讀時(shí)序圖控制字總是從最低位開(kāi)始輸出。DS1302的內(nèi)部寄存器如表所示。小時(shí)寄存器:D7用于定義芯片在12小時(shí)與24小時(shí)之間的切換,當(dāng)此位為“1”時(shí),選擇12小時(shí)模式,當(dāng)此位為“0”時(shí)選擇24小時(shí)。當(dāng)WP位為“1”時(shí),寫(xiě)保護(hù)位防止對(duì)任一寄存器的寫(xiě)操作。在實(shí)際程序執(zhí)行中,數(shù)組show_t[]用來(lái)存儲(chǔ)十進(jìn)制數(shù),先將c向右移動(dòng)4位,目的在于屏蔽掉BCD碼的低4位,以便獲取十進(jìn)制數(shù)的十位,并將該數(shù)存入show_[0]中;后將c同0FH相“與”,目的在于屏蔽掉BCD碼的高4位,得到低4位,從而獲得十進(jìn)制數(shù)的個(gè)位,同時(shí)指針加1,即將該數(shù)存入show_[1]中,最終完成碼制的轉(zhuǎn)換。硬件措施如果得當(dāng),可將絕大部分干擾拒之門外,但仍然會(huì)有少數(shù)干擾進(jìn)入微機(jī)系統(tǒng),故軟件措施作為第二道防線必不可少。當(dāng)CPU受到干擾后,往往將一些操作數(shù)當(dāng)作指令碼來(lái)執(zhí)行,引起程序混亂。當(dāng)彈飛到某一雙字節(jié)或三字節(jié)指令上時(shí),有可能落到其操作數(shù)上,從而繼續(xù)出錯(cuò)。但不能加入太多的冗余指令,以免明顯降低程序正常運(yùn)行的效率。掉電信號(hào)由硬件電路檢測(cè)到,加到單片機(jī)的外部中斷輸入端。當(dāng)彈飛的程序落到非程序區(qū)(如EPROM 中未使用的空間、程序中的數(shù)據(jù)表格區(qū))時(shí)前一個(gè)條件即不滿足,當(dāng)彈飛的程序在沒(méi)有碰到冗余指令之前,已經(jīng)自動(dòng)形成一個(gè)死循環(huán),這時(shí)第二個(gè)條件也不滿足。 軟件陷阱通常安排在未使用的中斷向量區(qū)、未使用的大片ROM空間、表格和程序區(qū)。軟件設(shè)計(jì)上實(shí)現(xiàn)了對(duì)駕駛員信息、車輛信息、速度、里程、超速度、停車次數(shù)、到站情況等數(shù)據(jù)的記錄,具有超速報(bào)警的功能,并能在液晶顯示屏上實(shí)時(shí)顯示時(shí)間和行駛里程。致 謝本次課題設(shè)計(jì)是在張蓮老師的精心指導(dǎo)和全力支持下完成的。深深感謝敬愛(ài)的父母和親人對(duì)我的支持和鼓勵(lì),他們給了我無(wú)微不至的關(guān)懷,使我能全力以赴地投入大學(xué)的學(xué)習(xí)中。 product world. 2003 Johns Hopkins University Press[8] [D].2007年 南京 南京理工大學(xué) [9] [D].2006年 南京 南京理工大學(xué) [10] [D].2006年 鎮(zhèn)江 江蘇大學(xué)[11] 2003(5)[12] 北京 電子工業(yè)出版社 [13] [D].2007年 北京 首都師范大學(xué) [14] 北京 北京航空航天大學(xué)出版社[15] MAX706芯片中文資料[16] AT45DB041芯片中文資料[17] 北京 電子工業(yè)出版社[18] 北京 國(guó)防工業(yè)出版社 [19] 北京 北京航空航天大學(xué)出版社[20] 重慶 重慶大學(xué)出版社[21] ZLG7289芯片中文資料[22] AT45DB041芯片中文資料[23] 北京 人民郵電出版社[24] 北京 北京航空航天大學(xué)出版社[25] [26] 北京 機(jī)械工業(yè)出版社附錄一以下為AT89C51汽車行駛狀態(tài)記錄儀系統(tǒng)C語(yǔ)言主要程序清單采用的晶振為12M晶振編譯環(huán)境為KEIL C51軟件*********************************************************************include include //_nop_();延時(shí)函數(shù)用,延時(shí)1usinclude define uchar unsigned chardefine uint unsigned intdefine write_minute 0x82 //分寫(xiě)操作寄存器define read_minute 0x83 //分讀操作寄存器define write_hour 0x84 //時(shí)寫(xiě)操作寄存器define read_hour 0x85 //時(shí)讀操作寄存器define write_day 0x86 //日寫(xiě)操作寄存器define read_day 0x87 //日讀操作寄存器define write_month 0x88 //月寫(xiě)操作寄存器define read_month 0x89 //月讀操作寄存器define write_year 0x8c //年寫(xiě)操作寄存器define read_year 0x8d //年讀操作寄存器define write_protect 0x8e //寫(xiě)保護(hù)寄存器define PORT0 P0define PORT2 P2*********************************************************************管腳及全局變量定義*********************************************************************sbit d0=P0^0。 //74ALS574時(shí)鐘信號(hào)管腳sbit 373LE=ALE。 //zlg7289時(shí)鐘信號(hào)管腳,上升沿有效sbit zlg7289_pinDIO = P1^7。 //IC卡時(shí)鐘信號(hào)管腳sbit SIDataFlash=P1^1。 //日歷時(shí)鐘復(fù)位端管腳sbit ACC7=ACC^7。 //片外數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)管腳sbit fm1808_OE=P3^7。 //程uchar time[6],show_t[2]。 uchar counter40=0。 //日歷時(shí)鐘初始化 delay_xms (1)。 //zlg7289初始化 delay_xms (1)。 } } else if ( key=0amp。 }key=zlg7289_key ()。key=9) display2 ( key,83H )。 //兩位數(shù)工號(hào)的第一位數(shù)while (1){ if (key==0xff) //若沒(méi)有鍵按下,則等待 { while (1) {delay_xms (10)。 break。amp。 //顯示起始站delay_xms (1000)。while (1) //死循環(huán){ If ( car_state==0 ) //車輛啟動(dòng)并處于停止?fàn)顟B(tài) { while (1) //等待 { delay_xms (1)。 //里程顯示 display1 ( dis_b,8FH )。 if ( key==0x0a ) //如果到站鍵(0x0a)按下 tingche++。 //液晶清屏delay_xms (1)。 while ( x ) { for ( j=0。 while ( t != 0 )。 //允許外部中斷0中斷 IT0=1。 TR0=1。}/*定時(shí)器0中斷子程序 */void timer0 ( void ) inter。 //允許定時(shí)器0溢出中斷 EA=1。 //定時(shí)器0工作在方式1,定時(shí)器1工作在方式2 TH0=0x3c。 while ( t != 0 )。j++ )。 //顯示“終點(diǎn)站”ICcunchu ( 1,1,4,DISP_NUM,1 ) //將終點(diǎn)站數(shù)據(jù)存入IC卡中*********************************************************************延時(shí)部分*********************************************************************/* IC卡讀寫(xiě)延時(shí)子程序*/_nop_()。 } ICcunchu ( 1,1,0,DISP_NUM,10 ) //每分鐘存10(實(shí)時(shí)時(shí)間里程速度停車數(shù)到站數(shù)1)字節(jié)數(shù)據(jù) }key=zlg7289_key ()。 if ( car_state==0x55 ) //車輛處于行駛狀態(tài),則啟動(dòng)超速報(bào)警 { judge_sudu ()。 //日歷顯示 delay_xms (1)。 //將3字節(jié)(人、車、起始站)數(shù)據(jù)存入IC卡clc_screen ()。 break。 //兩位數(shù)工號(hào)的第二位數(shù)while (1){ if ( key==0xff ) //若沒(méi)有鍵按下,則等待 { while (1) {delay_xms (10)。amp。 }gonghao_show ()。 } else if(key=0amp。key=9 ) display2 ( key,82H )。 //顯示車號(hào),并按鍵輸入車號(hào)信息key=zlg7289_key ()。 //lcd初始化 delay_xms (1)。 //車輛狀態(tài)初始化uint tingche=0。 //LCD 0~9的顯示代碼uchar pulse=0。 //0xff表示未按鍵狀態(tài)uchar disp_b[]={km}。sbit fm1808_CS=Y1。 //日歷時(shí)鐘片選信號(hào)管腳sbit DS1302I_O=P1^4。 //zlg7289鍵盤中斷請(qǐng)求信
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1