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

正文內(nèi)容

單片機速度里程表設(shè)計畢業(yè)論文(編輯修改稿)

2025-07-15 12:51 本頁面
 

【文章內(nèi)容簡介】 第3章 系統(tǒng)軟件設(shè)計待測信號經(jīng)預處理電路后加至單片機的P3.2(INT0)引腳可為單片機測量信號周期提供有效的輸入信號。單片機通過檢測P3.2引腳電平來決定是否啟動測量周期程序。當該引腳為高電平時,系統(tǒng)處于等待狀態(tài),要一直到該引腳出現(xiàn)低電平時才開始測周期。測量時首先將零賦給THO、TL0兩個寄存器,以將定時器T0的運行控制位TR0置位,同時也將ET0置位以允許定時器T0中斷。然后再判斷P3.2引腳是否還為低電平,如為低電平則等待,直到出現(xiàn)高電平再開始判斷P3.2引腳是否為低電平,當其不是低電平時再等待。一旦出現(xiàn)低電平,則立即復位TR0以終止定時器,以結(jié)束測周期程序。測周期過程中可能會發(fā)生定時器T0的中斷,每發(fā)生一次中斷則將R0寄存器加一,因此R0實際上是周期值的高字節(jié)。測出的周期值存儲在R0、TH0、TL0三個寄存器中,然后將其轉(zhuǎn)換成速度。速度是用車輪的周長除以脈沖周期得到的。由于所測周期的單位是μs,因此在相除轉(zhuǎn)換時應將被除數(shù)擴大106倍,以保證得出正確的速度。每秒進行一次里程數(shù)累加時,可用當前的速度值加上一秒前的里程數(shù)得出當前的總里程數(shù),得出的速度和總里程值放到E2PROM中。通過k1、k2鍵可顯示速度或里程值,k1鍵為速度鍵,k2鍵為里程鍵,兩個鍵可以隨時設(shè)置。要顯示的速度或里程放到R1、R2、R3三個寄存器后即可調(diào)用轉(zhuǎn)換BCD代碼模塊,以將數(shù)據(jù)值轉(zhuǎn)換成壓縮的BCD代碼并顯示處理??紤]到對響應時間的要求,BCD代碼模塊采用快速算法。數(shù)據(jù)轉(zhuǎn)變成相應的壓縮BCD代碼后,可調(diào)用顯示消多余零和顯示數(shù)據(jù)存儲模塊,并將要顯示的數(shù)據(jù)值通過查表轉(zhuǎn)換成相應數(shù)據(jù)的8段碼放到顯示緩沖區(qū)以備顯示。當然,編程時要把十進制數(shù)據(jù)的相應8段碼放在表格中,這樣才能進行查表以得到相應數(shù)值的段碼。此過程的另一個重要目的是消除最高有效位前面的多余零,以使多余零的段碼處于不顯示狀態(tài),從而保證數(shù)據(jù)以正常的格式顯示出來。最后,將顯示緩沖區(qū)的8位8段碼經(jīng)串口送至液晶顯示模塊進行顯示。 系統(tǒng)初始化模塊周期測量模塊速度里程計算模塊數(shù)據(jù)存儲模塊定時器中斷服務模塊顯示數(shù)據(jù)的BCD碼轉(zhuǎn)換模塊數(shù)據(jù)顯示模塊顯示數(shù)據(jù)的處理模塊圖31 系統(tǒng)軟件框圖 本系統(tǒng)軟件采用模塊化設(shè)計方法。整個系統(tǒng)由初始化模塊、周期測量模塊、速度轉(zhuǎn)換模塊、里程計算和存儲模塊、數(shù)據(jù)轉(zhuǎn)BCD碼模塊、顯示數(shù)據(jù)處理模塊、數(shù)據(jù)顯示模塊、定時器中斷服務模塊以及其它功能模塊組成,圖31給出了其軟件框圖。上電后,首先進入系統(tǒng)初始化模塊,此后系統(tǒng)軟件將開始運行,以實時地將所測數(shù)值顯示在液晶模塊上。LCM0825是串行8位8段液晶顯示模塊。使用時,要在上電后對該模塊進行初始化。在初始化之前,應延時200ms以上再送命令。它的初始化工作過程如下:首先定義液晶模塊(當其命令代碼為:00101001),其次定義振蕩器方式(當其命令代碼為00011000時,將模塊定義為內(nèi)部RC振蕩方式,命令代碼為00010100時,定義為外部晶體振蕩方式)。然后分別用命令代碼00000001和00000011開振蕩器和開顯示器。以上命令送入后,便可以在需要顯示數(shù)據(jù)時將相應的段碼直接送入模塊內(nèi)部的顯示RAM中。在送顯示數(shù)據(jù)的段碼數(shù)據(jù)時,要考慮到顯示RAM 的高和低地址所對應的數(shù)據(jù)段碼的存放形式。其第8位數(shù)據(jù)的段碼與LCM0825內(nèi)部的RAM地址的對應關(guān)系見表1。以后隨地址的增加依次存放第7位至第1位數(shù)據(jù)段碼。為了正確地顯示數(shù)據(jù),應使要顯示的8位字符在顯示屏幕中為左起第一位,右止第8位。 另外,寫命令和寫數(shù)據(jù)程序應分別編寫,因為它們的命令格式及時序不同, 圖32見圖32。由時序圖可見,編寫傳輸子程序時,所傳數(shù)據(jù)的高位先移入模塊,否則模塊不能正常工作或顯示。同樣,為了能正確讀/寫命令或數(shù)據(jù),必須在時序中加入相應的延時;此外,為保證系統(tǒng)的低功耗,每次讀/寫命令或數(shù)據(jù)之后,都應將CS、RD、WR、DATA 置高電平。:在本系統(tǒng)初始化程序中,主要完成一下工作:將T1設(shè)為外部控制定時器方式;外中斷0及外中斷1設(shè)為邊沿觸發(fā)式;將部分內(nèi)存單元清零;設(shè)置輪子周長值;開中斷及定時器;將EEPROM中的數(shù)據(jù)調(diào)入內(nèi)存等。;60H,61H,62H作里程計數(shù)單元,6CH,6DH作T1計數(shù)擴充單元,;68H,69H,6AH,6BH存放自行車每圈時間數(shù),70H,71H,72H,73H;作顯示BCD碼存放數(shù)用,11H—15H存放被除數(shù),16H—19H存放除數(shù);;;定義VSDA WQU ;EEPROM數(shù)據(jù)傳送口VSCL EQU ;EEPROM時鐘傳送口SLA EQU 50H ;EEPROM器件尋址字節(jié)存放單元NUMBYT EQU 51H ;EEPROM傳送字節(jié)數(shù)存放單元MTD EQU 30H ;EEPROM發(fā)送數(shù)據(jù)緩沖單元MRD EQU 40H ;EEPROM讀出數(shù)據(jù)存放單元SLAW EQU 0A0H ;EEPROM尋址字節(jié)寫SLAR EQU 0A1H ;EEPROM尋址字節(jié)讀DPHH EQU 62H ;DPTR計數(shù)擴展高8位TH1H EQU 6CH ;定時器T1擴展高8位TH1HH EQU 6DH ;定時器T1擴展高8-6位;;;;;;;;;;;;;;;;;;;;;;;PROGRAM INPUT;;;;;;;;;;;;;;;;;;;;;;;ORG 0000H ;程序執(zhí)行開始地址LJMP START ;跳至STARTORG 0003H ;外中斷中斷程序入口LJMP INTEX0 ;跳至INTEX0中斷程序入口ORG 001BH ;定時器T0中斷程序入口RET1 ;中斷返回ORG 0013H ;外中斷1中斷入口 LJMP INTEX1 ;跳至INTEX1中斷服務程序ORG 001BH ;定時器T1中斷程序入口LJMP INTT1 ;跳至INTT1中斷服務程序ORG 0023H ;串口中斷入口地址RETI ;中斷返回ORG 002BH ;定時器T2中斷入口地址RETI ;中斷返回、當沒有設(shè)定時(至少讓一個開關(guān)閉合),用作發(fā)光管閃爍及信響器提醒。;上電初始化程序CLWARMEN; MOV TMOD,#90H ;T1為16位外部控制定時器MOV SP,#75H ;堆棧在75H開始SETB PX0 ;外中斷0優(yōu)先級為1SETB IT0 ;外中斷0用邊沿觸發(fā)CLR A ;清AMOV 20H,A ;清內(nèi)存中特定單元MOV 20H,A ;MOV 6CH,A ; MOV 6DH,A ;MOV 70H,A ;MOV 71H,A ;MOV 72H,A ;MOV 73H,A ;MOV 60H,A ;MOV 61H,A ;MOV 62H,A ;MOV 63H,A ;清內(nèi)存中特定單元DEC A A ;為#0FFHMOV 68H,A ;內(nèi)存置數(shù)據(jù)#0FFHMOV 69H,A ;內(nèi)存置數(shù)據(jù)#0FFHMOV 6AH,A ;內(nèi)存置數(shù)據(jù)#0FFHMOV 6BH,A ;內(nèi)存置數(shù)據(jù)#0FFHMOV P1,A ;P1口置1CLEAR1; JB ,KEY1 ;,, ;在21H地址單元賦自行車周長值MOV 21H,#0FH ;22英寸自行車周長值LJMP CLEAR2 ;轉(zhuǎn)CLEAR2KEY1; JB ,KEY2 ;MOV 21H,#14H ;26英寸自行車周長值LJMP CLEAR2 ;轉(zhuǎn)CLEAR2KEY2; JB ,KEY3 ; MOV 21H,#14H ;26英寸自行車周長值KEY3; JB ,ERR ;4個開關(guān)都沒合上,轉(zhuǎn)出錯處理 MOV 21H,#19H ;28英寸自行車周長值CLEAR2; SETB TR1 ;開定時器T1SETB EA ;開中斷允許SETB EX0 ;開外中斷0SETB ET1 ;開定時中斷T1SETB ;關(guān)報警器LCALL VIICREAD ;將EEPROM中原諒程數(shù)據(jù)調(diào)入內(nèi)存RET ;子程序返回ERR; CPL ;輪周長設(shè)置出錯,LED燈閃爍提醒LCALL DL5S ;延時LJMP CLEAR1 ;重新初始化,等待輪周長設(shè)置開關(guān)合上.START: LCALL CLEARMEN ;上電初始化START: JB ,DISPLAYS ;=1顯示里程 LCALL DISP。AYV ;顯示速度START: SJMP START1 ;轉(zhuǎn)START1循環(huán);;;;;;;;;;;;;;;;;;;;;;;INTEX0 PROGRAM;;;;;;;;;;;;;;;;;;;;;;;里程計數(shù)程序,用外中斷0實現(xiàn),-62H內(nèi)存單元。INTEX0; PUSH ACC ;累加器堆棧保護PUSH PSW ;狀態(tài)字堆棧保護INC 60H ;圈加1CLR A ;清ACJNE A,60H,INTEX0OUT ;計數(shù)沒溢出轉(zhuǎn)INTEX0OUTINC 61H ;溢出進位(61H加1)CJNE A,61H,INTEX0OUT ;計數(shù)沒溢出轉(zhuǎn)INTEX0OUTINC 62H ;溢出進位(62H加1)INTEX0OUT: LCALL VIICWRITE ;里程數(shù)據(jù)存入EEPROMSETB EX1 ;開外中斷1POP PSW ;狀態(tài)字恢復POP ACC ;累加器恢復RETI ;中斷返回;;;;;;;;;;;;;;;;;;;;;INTEX1 PROGRAM;;;;;;;;;;;;;;;;;;;;;;每轉(zhuǎn)1圈時間計數(shù)處理程序,每圈時間放在68H—6BH單元中。INTEX1: PUSH ACC ;堆棧保護 PUSH PSE ;CLR EX1 ;關(guān)外中斷1JNB 00H,INTEX11 ;溢出標志為0轉(zhuǎn)INTEX11MOV TLN,#0FFH ;溢出時計時單元賦#0FFH(顯示速遞為零)MOV TH1,#0FFH ;MOV 6CH,#0FFH ;MOV 6DH,#0FFH
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1