新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)將2個16進(jìn)制數(shù)轉(zhuǎn)換為5位十進(jìn)制數(shù)并顯示

PIC單片機(jī)將2個16進(jìn)制數(shù)轉(zhuǎn)換為5位十進(jìn)制數(shù)并顯示

作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
;;;**************************************************************;;; 十進(jìn)制數(shù)調(diào)整;;;************************************************************** DA1 MOVWF 60H;將W里的數(shù)保存到60H里MOVLW B00001111;ANDWF 60H,0;將60H的數(shù)與00001111去除高4位MOVWF 62H;將去除高位后的數(shù)保存到62HMOVLW 0AH;SUBWF 62H,0;去除高位的數(shù)減0AHBTFSS STATUS,DC;判斷是否比0AH大GOTO DA2 ;否則跳轉(zhuǎn)ADDLW B10000;比0AH大則進(jìn)位MOVWF 62H;高4位加1DA2 MOVLW B11110000;ANDWF 60H,1;將60H的數(shù)與11110000去除低4位MOVLW 0A0H;SUBWF 60H,0;高4位的數(shù)減0A0HBTFSS STATUS,C;判斷是否比0A0H大GOTO DA3;否ADDWF 62H,1;是則將差加上低位BSF STATUS,C;是則置位GOTO DA4;DA3 MOVFW 60H;ADDWF 62H,1;否則將高4位加上低4位MOVFW 62H;ANDLW B11110000;SUBLW 0A0H ;加后判斷是否大于或等于0A0HBCF STATUS,C;BTFSS STATUS,Z;GOTO DA4;否則退出MOVLW B00001111;是ANDWF 62H,1;則去掉高4位并進(jìn)位BSF STATUS,C;置進(jìn)位標(biāo)志 DA4 MOVFW 62H;RETURN;;**************************************************************; 定時中斷數(shù)碼管顯示程序;**************************************************************ZD01 BTFSS INTCON,T0IF;判斷是否產(chǎn)生定時中斷GOTO ZD03;否跳出是繼續(xù)執(zhí)行MOVWF W_TEMP;W備份到W_TEMP中SWAPF STATUS,0;STATUS半字交換后送WCLRF STATUS;選擇體0為當(dāng)前體備份MOVWF STATUS_TEMP;將原來的STATUS送體0上的MOVF PCLATH,0;PCLATH送W MOVWF PCLATH_TEMP;W送備份寄存器中CLRF PCLATH ;設(shè)置為0頁BCF INTCON,T0IFBSF STATUS,RP0;體1BCF STATUS,RP1;MOVLW 0;MOVWF TRISB;RB口設(shè)為輸出口MOVWF TRISD;RD口設(shè)為輸出口BCF STATUS,RP0;體0BCF STATUS,RP1;MOVLW 0FFH;MOVWF PORTB;RB口輸出高電平MOVLW 0MOVWF PORTD;RD口輸出低電平起清屏作用MOVFW INDF;間接尋址顯示數(shù)據(jù) CALL Q1;查數(shù)據(jù)表MOVWF PORTB;顯示斷碼輸出到RB口INCF FSR,1;間接尋址地址加1MOVFW 41H ;位碼MOVWF PORTD;位碼輸出到RD口RLF 41H,0;處理CRLF 41H,1;左移位碼DECFSZ 40H,1;判斷是否顯示完4位GOTO ZD02;否則繼續(xù)顯示MOVLW 4;顯示位數(shù)MOVWF 40H;MOVLW B00000001;位碼MOVWF 41H;MOVLW 5AH;MOVWF FSR ;間接尋址ZD02 MOVLW 0FFH;MOVFW TMR0;重裝初值; 恢復(fù)現(xiàn)場CLRF STATUS;恢復(fù)到體0MOVF PCLATH_TEMP,0;開始恢復(fù)數(shù)據(jù) MOVWF PCLATH;恢復(fù)PCLATHSWAPF STATUS_TEMP,0MOVWF STATUS;恢復(fù)STATUSSWAPF W_TEMP,1;半字交換后放回SWAPF W_TEMP,0;再半字交換后送WZD03 RETFIE ;中斷返回M001 MOVLW 4MOVWF 30HM002 MOVLW 248MOVWF 31HM003 MOVLW 250MOVWF 32HDECFSZ 32HGOTO $-1DECFSZ 31HGOTO M003DECFSZ 30HGOTO M002RETURN;********************************************; 數(shù)據(jù)表;******************************************** Q1 ADDWF PCL,1 RETLW 00C0H ;0RETLW 00F9H ;1RETLW 00A4H ;2RETLW 00B0H ;3RETLW 0099H ;4RETLW 0092H ;5RETLW 0082H ;6RETLW 00F8H ;7RETLW 0080H ;8RETLW 0090H ;9RETLW 0088H ;ARETLW 0083H ;BRETLW 00C6H ;CRETLW 00A1H ;DRETLW 0086H ;ERETLW 008EH ;FEND
上一頁 1 2 下一頁

評論


技術(shù)專區(qū)

關(guān)閉