PIC單片機(jī)數(shù)碼管流水燈代碼_第1頁
PIC單片機(jī)數(shù)碼管流水燈代碼_第2頁
PIC單片機(jī)數(shù)碼管流水燈代碼_第3頁
PIC單片機(jī)數(shù)碼管流水燈代碼_第4頁
PIC單片機(jī)數(shù)碼管流水燈代碼_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

PIC單片機(jī)數(shù)碼管(流水燈)代碼#INCLUDEp16f886.inc__config_CONFIG1,_INTOSCIO&_WDT_OFFCONTEXT_SAVINGUDATA_SHROFFSETRES1RESETCODE0x0PAGESELINITGOTOINITCODEINITBANKSELTRISCCLRFTRISCBANKSELPORTCMOVLWB'11111111'MOVWFPORTCBANKSELTRISACLRFTRISABANKSELPORTACLRFPORTABANKSELANSELCLRFANSELPAGESELMAINGOTOMAIN,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;這里是函數(shù)區(qū);;;;;;;;;;;;;;;;;SELECT1:BANKSELPORTCMOVLWB'11111111'MOVWFPORTCBCFPORTC,0RETURNSELECT2:BANKSELPORTCMOVLWB'11111111'MOVWFPORTCBCFPORTC,1RETURNSELECT3:BANKSELPORTCMOVLWB'11111111'MOVWFPORTCBCFPORTC,2RETURNSELECT4:BANKSELPORTCMOVLWB'11111111'MOVWFPORTCBCFPORTC,3RETURNWRITE:BANKSELPORTACLRFPORTAMOVLWLOWTABLE;獲得TABLE的低8位ADDWFOFFSET,F;TABLE值加上偏移量MOVLWHIGHTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFOFFSET,W;將需要調(diào)用的信號的地址寫入WCALLTABLE;XORWFB'00000000',WMOVWFPORTARETURNTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'00111111';0;;;;;;;;;;;;3FRETLWB'00000110';1RETLWB'01011011';2;;;;;;;;;;;;5BRETLWB'01001111';3RETLWB'01100110';4RETLWB'01101101';5RETLWB'01111101';6RETLWB'00000111';7RETLWB'01111111';8RETLWB'01101111';9;;;;;;;;;;函數(shù)區(qū)到此為止;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MAINLOOPCALLSELECT1BANKSELOFFSETMOVLWD'3'MOVWFOFFSETCALLWRITE,,,,,,,,,,,,,,,,,,,,,,,,,,CALLSELECT2BANKSELOFFSET

MOVLWD'1'MOVWFOFFSETCALLWRITE,,,,,,,,,,,,,,,,,,,,,,,,,,,,CALLSELECT3BANKSELOFFSETMOVLWD'1'MOVWFOFFSETCALLWRITECALLSELECT4BANKSELOFFSETMOVLWD'4'MOVWFOFFSETCALLWRITEGOTOLOOPEND,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,顯示2003顯示2003,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#INCLUDEp16f886.inc__config_CONFIG1,_INTOSCIO&_WDT_OFFCONTEXT_SAVINGUDATA_SHRW_TMPRES1S_TMPRES1OFFSETRES1NUMRES1CNUMRES1COFFSETRES1LP0RES1LP1RES1RESETCODE0x0PAGESELINITGOTOINIT;ISRCODE0x04;MOVWFW_TMP;SWAPFSTATUS,W;MOVWFS_TMP;NOP;SWAPFS_TMP,W;MOVWFSTATUS;SWAPFW_TMP,F;SWAPFW_TMP,W;RETFIECODEINITBANKSELTRISCCLRFTRISCBANKSELPORTCMOVLWB'11111111'MOVWFPORTCBANKSELTRISACLRFTRISABANKSELPORTACLRFPORTABANKSELOFFSETCLRFOFFSETBANKSELOSCCONMOVLWB'00000011'MOVWFOSCCON;;;;;;;;;;;;;;;;;;;;;;振蕩器設(shè)置為310KHz,內(nèi)部振蕩器;BANKSELNUM;CLRFNUMBANKSELCOFFSETMOVLWD'10'MOVWFCOFFSETBANKSELCNUMMOVLWD'4'MOVWFCNUMPAGESELMAINGOTOMAIN,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,SELECT:BANKSELPORTCMOVLWLOWSTABLE;獲得TABLE的低8位ADDWFNUM,F;TABLE值加上偏移量MOVLWHIGHSTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFNUM,W;將需要調(diào)用的信號的地址寫入WCALLSTABLE;MOVWFPORTCRETURN;ORG0x9FDSTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'11111110';1RETLWB'11111101';2RETLWB'11111011';3RETLWB'11110111';4WRITE:MOVLWLOWTABLE;獲得TABLE的低8位ADDWFOFFSET,F;TABLE值加上偏移量MOVLWHIGHTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFOFFSET,W;將需要調(diào)用的信號的地址寫入WCALLTABLE;MOVWFPORTARETURN;ORG0x9FDTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'00000110';1RETLWB'01011011';2RETLWB'01001111';3RETLWB'01100110';4RETLWB'01101101';5RETLWB'01111101';6RETLWB'00000111';7RETLWB'01111111';8RETLWB'01101111';9RETLWB'00111111';0DELAY:MOVLW01FHMOVWFLP0L0MOVLW01FHMOVWFLP1L1DECFSZLP1,FGOTOL1DECFSZLP0,FGOTOL0RETURNSETCNUM:MOVLWD'4'MOVWFCNUMRETURNSETCOFFSET:MOVLWD'10'MOVWFCOFFSETRETURN;;;;;;;;;;函數(shù)區(qū)到此為止;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MAIN;ORG0x80BANKSELANSELCLRFANSELLOOPMOVFCOFFSET,WMOVWFOFFSETMOVFCNUM,WMOVWFNUMCALLSELECTCALLWRITEDECFCOFFSETBTFSCSTATUS,ZCALLSETCOFFSETDECFCNUMBTFSCSTATUS,ZCALLSETCNUMCALLDELAYGOTOLOOPEND,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;98765432,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,V-/I\—/W丄t_z10單數(shù)字滾動顯示#INCLUDEp16f886.inc__config _CONFIG1,_INTOSCIO&_WDT_OFFCONTEXT_SAVINGUDATA_SHRW_TMP RES 1S_TMP RES 1OFFSETRES1COFFSETRES1NUMRES1CNUMRES1PARES1CNTRES1LP0RES1

LP1RES1ISBLACKRES1RESETCODE0x0PAGESELINITGOTOINIT0x04ISRCODE0x04,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MOVWFW_TMPSWAPFSTATUS,WMOVWFS_TMPBANKSELINTCONBCFINTCON,2;;;;;;;;;;;;;清除TMR0中斷標(biāo)志位COMFISBLACKBTFSSISBLACK,0CALLDECRESE_COFFSETBTFSCISBLACK,0CALLBLACKBANKSELTMR0CLRFTMR0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,SWAPFS_TMP,WMOVWFSTATUSSWAPFW_TMP,FSWAPFW_TMP,WRETFIE;;;;;;;CODEINITBANKSELTMR0CLRFTMR0BANKSELOPTION_REGMOVLWB'00000111'MOVWFOPTION_REG;;;;;;;;;;;;;;;;;;;;;TMR0設(shè)置為256分頻BANKSELINTCONBSFINTCON,GIEBSFINTCON,T0IE;;;;;;;;;;;;;;;;;;;;;總中斷使能,TMR0中斷使能BANKSELTRISCCLRFTRISCBANKSELPORTCMOVLWB'11111111'MOVWFPORTCBANKSELTRISACLRFTRISABANKSELPORTACLRFPORTABANKSELANSELCLRFANSELBANKSELOSCCONMOVLWB'00010011'MOVWFOSCCON;;;;;;;;;;;;;;;;;;;;;;振蕩器設(shè)置為125KHz,內(nèi)部振蕩器BANKSELCOFFSETMOVLWD'10'MOVWFCOFFSET;;;;;;;;;;;;;;;;;;;;10個(gè)數(shù)字BANKSELCNUMMOVLWD'1'MOVWFCNUM;;;;;;;;;;;;;;;;;;;;;;;;;4個(gè)數(shù)碼管MOVFCOFFSET,WMOVWFPA;;;;;;;;;;;;;;;;;;;;;;;;;;;PA暫時(shí)存儲COFFSETMOVLWD'4'MOVWF 計(jì)數(shù)四次CLRFISBLACKPAGESELMAINGOTOMAIN,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;這里是函數(shù)區(qū);;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,*^<-1-. L^ !7]JAA^V*77777777777777777SELECT:BANKSELPORTACLRFPORTABANKSELPORTCMOVLWB'11111111'MOVWFPORTCMOVLWLOWSTABLE;獲得TABLE的低8位ADDWFNUM,F;TABLE值加上偏移量MOVLWHIGHSTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFNUM,W;將需要調(diào)用的信號的地址寫入WCALLSTABLE;MOVWFPORTCRETURNSTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'11111110';1RETLWB'11111101';2RETLWB'11111011';3RETLWB'11110111';4WRITE:MOVLWLOWTABLE;獲得TABLE的低8位ADDWFOFFSET,F;TABLE值加上偏移量MOVLWHIGHTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFOFFSET,W;將需要調(diào)用的信號的地址寫入WCALLTABLE;MOVWFPORTARETURNTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'01101111';9RETLWB'01111111';8RETLWB'00000111';7RETLWB'01111101';6RETLWB'01101101';5RETLWB'01100110';4RETLWB'01001111';3RETLWB'01011011';2RETLWB'00000110';1RETLWB'00111111';0SETORIGIN:MOVLWD'1'MOVWFCNUMMOVLWD'4'MOVWFCNTMOVFCOFFSET,WMOVWFPARETURNSETPA:MOVLWD'10'MOVWFPARETURNSETCOFFSET:MOVLWD'10'MOVWFCOFFSETRETURNDELAY:MOVLW03FHMOVWFLP0L0MOVLW03FHMOVWFLP1L1DECFSZLP1,FGOTOL1DECFSZLP0,FGOTOL0RETURNDECRESE_COFFSET:DECFCOFFSETBTFSCSTATUS,ZCALLSETCOFFSETRETURNBLACK:BANKSELPORTACLRFPORTACALLDELAYRETURN,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

MAINLOOPMOVFCNUM,WMOVWFNUM;數(shù)碼管MOVFPA,WMOVWFOFFSET;圖案;;;;;數(shù)碼管;;;;圖案CALLSELECT;;;;;數(shù)碼管;;;;圖案CALLWRITEDECFPABTFSCSTATUS,Z;;;;CALLSETPA;;;;;INCFCNUMDECFCNTBTFSCSTATUS,ZCALLSETORIGINGOTOLOOPEND,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

顯示0-9,閃爍一次#INCLUDEp16f886.inc__config_CONFIG1,_INTOSCIO&_WDT_OFFCONTEXT_SAVINGUDATA_SHRW_TMPRES1S_TMPRES1OFFSETRES1COFFSETRES1NUMRES1CNUMRES1PARES1CNTRES1RESETCODE0x0PAGESELINITGOTOINITISRCODE0x04MOVWFW_TMPSWAPFSTATUS,WMOVWFS_TMP,,,,,,,,,,,,,,;;;;以上保存現(xiàn)場,,,,,,,,,,,,,,;;;;以上保存現(xiàn)場PB_INTBTFSCINTCON,RBIFCALLPORTB_INTTM0_INTBTFSCINTCON,T0IFCALLTMR0_INT,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,SWAPFS_TMP,WMOVWFSTATUSSWAPFW_TMP,FSWAPFW_TMP,WRETFIECODEINIT,,,,,,,,,,,,,,,,,,,,,,置;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BANKSELINTCONBSFINTCON,GIEBSFINTCON,T0IE;;;;;;;;;;;;;;;;;;;;;總中斷使能,TMR0中斷使能BSFINTCON,RBIE;;;;;;;;;;;;;;;;;;;;;;PORTB電平變化中斷使能BANKSELTMR0CLRFTMR0BANKSELINTCONBCFINTC0N,2;;;;;;;;;;;;;清除TMRO中斷標(biāo)志位BANKSELOPTION_REGMOVLWB'00000111'MOVWFOPTION_REG;;;;;;;;;;;;;;;;;;;;;TMR0設(shè)置為256分頻BANKSELPORTBBCFPORTB,4BANKSELINTCON;;;;PORTB中;;;;PORTB中斷標(biāo)志清除;;;;振蕩器設(shè)置;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BANKSELOSCCONMOVLWB'00010011'MOVWFOSCCON;;;;;;;;;;;;;;;;;;;;;;振蕩器設(shè)置為125KHz,內(nèi)部振蕩器;;;;輸入輸出設(shè)置;;;;;;;;;;;;;;;;;;;;;;;;;;;BANKSELTRISCCLRFTRISCBANKSELPORTCMOVLWB'11111111MOVWFPORTCBANKSELTRISACLRFTRISABANKSELPORTACLRFPORTABANKSELANSELCLRFANSELBANKSELTRISBMOVLWB'00100000MOVWFTRISBBANKSELIOCBMOVLWB'00100000MOVWFIOCBBANKSELPORTBCLRFPORTBBANKSELWPUBMOVLWB'00100000MOVWFWPUB,,,,,,,,,,,,,,,,,,化;;;;;;;;;;;;;;;;;;;;;;;;;ILJ7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7BANKSELCOFFSETMOVLWD'10'MOVWFCOFFSET;;;;;;;;;;;;;;;;;;;;10個(gè)數(shù)字BANKSELCNUMMOVLWD'1'MOVWFCNUM;;;;;;;;;;;;;;;;;;;;;;;;;4個(gè)數(shù)碼管MOVFCOFFSET,WMOVWFPA;;;;;;;;;;;;;;;;;;;;;;;;;;;PA暫時(shí)存儲COFFSETMOVLWD'4'MOVWFCNT;;;;;;;;;;;;;;;;;;;;;;;;;;計(jì)數(shù)四次PAGESELMAINGOTOMAINSELECT:BANKSELPORTACLRFPORTABANKSELPORTCMOVLWB'11111111'MOVWFPORTCMOVLWLOWSTABLE;獲得TABLE的低8位ADDWFNUM,F;TABLE值加上偏移量MOVLWHIGHSTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFNUM,W;將需要調(diào)用的信號的地址寫入WCALLSTABLE;MOVWFPORTCRETURNSTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'11111110';1RETLWB'11111101';2RETLWB'11111011';3RETLWB'11110111';4WRITE:MOVLWLOWTABLE;獲得TABLE的低8位ADDWFOFFSET,F;TABLE值加上偏移量MOVLWHIGHTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFOFFSET,W;將需要調(diào)用的信號的地址寫入WCALLTABLE;MOVWFPORTARETURNTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'01101111';9RETLWB'01111111';8RETLWB'00000111';7RETLWB'01111101';6RETLWB'01101101';5RETLWB'01100110';4RETLWB'01001111';3RETLWB'01011011';2RETLWB'00000110';1RETLWB'00111111';0SETORIGIN:MOVLWD'1'MOVWFCNUMMOVLWD'4'MOVWFCNTMOVFCOFFSET,WMOVWFPA

RETURNSETPA:MOVLWD'10'MOVWFPARETURNSETCOFFSET:MOVLWD'10'MOVWFCOFFSETRETURNTMR0_INT:BANKSELINTCONBCFINTC0N,2;;;;;;;;;;;;;清除TMRO中斷標(biāo)志位DECFCOFFSETBTFSCSTATUS,Z;;;;COFFSET減一;;;;COFFSET減一BANKSELTMR0CLRFTMR0RETURNPORTB_INT:BANKSELPORTBBCFPORTB,4

BANKSELINTCONBCFINTCON,RBIF;;;;;;;;;;;;;;;;;;;;;;;;;;PORTB中斷標(biāo)志清除MOVLWD'10'MOVWFCOFFSETBANKSELINTCONBCFINTCON,2;;;;;;;;;;;;;清除TMR0中斷標(biāo)志位BANKSELTMR0CLRFTMR0RETURNMAINLOOPMOVFCNUM,WMOVWFNUM;數(shù)碼管MOVFPA,WMOVWFOFFSET;圖案;;;;;數(shù)碼管;;;;圖案CALLSELECT;;;;;數(shù)碼管;;;;圖案CALLWRITEDECFPABTFSCSTATUS,Z;;;;人——Q—丄丄1 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7INCFCNUMDECFCNTBTFSCSTATUS,ZCALLSETORIGINGOTOLOOPEND,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;含電平觸發(fā)中斷的數(shù)碼管滾動顯示-0-9#INCLUDEp16f886.inc__config_CONFIG1,_INTOSCIO&_WDT_OFFCONTEXT_SAVINGUDATA_SHRW_TMPRES1S_TMPRES1OFFSETRES1COFFSETRES1NUMRES1CNUMRES1

PARES1CNTRES1RESETCODE0x0PAGESELINITGOTOINITISRCODE0x04MOVWFW_TMPSWAPFSTATUS,WMOVWFS_TMPBANKSELINTCONBCFINTCON,2;;;;;;;;;;;;;清除TMR0中斷標(biāo)志位DECFCOFFSETBTFSCSTATUS,Z;;;;COFFSET減一;;;;COFFSET減一,,,,,,,,,,,,,,,BANKSELTMR0CLRFTMR0SWAPFS_TMP,WMOVWFSTATUSSWAPFW_TMP,FSWAPFW_TMP,WRETFIECODEINITBANKSELTMR0CLRFTMR0BANKSELOPTION_REGMOVLWB'00000111'MOVWFOPTION_REG;;;;;;;;;;;;;;;;;;;;;TMR0設(shè)置為256分頻BANKSELINTCONBSFINTCON,GIEBSFINTCON,T0IE;;;;;;;;;;;;;;;;;;;;;總中斷使能,TMR0中斷使能BANKSELTRISCCLRFTRISCBANKSELPORTCMOVLWB'11111111'MOVWFPORTCBANKSELTRISACLRFTRISABANKSELPORTACLRFPORTABANKSELANSELCLRFANSELBANKSELOSCCONMOVLWB'00010011'MOVWFOSCCON;;;;;;;;;;;;;;;;;;;;;;振蕩器設(shè)置為125KHz,內(nèi)部振蕩器BANKSELCOFFSETMOVLWD'10'MOVWFCOFFSET;;;;;;;;;;;;;;;;;;;;10個(gè)數(shù)字BANKSELCNUMMOVLWD'1'MOVWFCNUM;;;;;;;;;;;;;;;;;;;;;;;;;4個(gè)數(shù)碼管MOVFCOFFSET,WMOVWFPA;;;;;;;;;;;;;;;;;;;;;;;;;;;PA暫時(shí)存儲COFFSETMOVLWD'4'MOVWF 計(jì)數(shù)四次PAGESELMAINGOTOMAINSELECT:BANKSELPORTACLRFPORTABANKSELPORTCMOVLWB'11111111'MOVWFPORTCMOVLWLOWSTABLE;獲得TABLE的低8位ADDWFNUM,F;TABLE值加上偏移量MOVLWHIGHSTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFNUM,W;將需要調(diào)用的信號的地址寫入WCALLSTABLE;MOVWFPORTCRETURNSTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'11111110';1RETLWB'11111101';2RETLWB'11111011';3RETLWB'11110111';4WRITE:MOVLWLOWTABLE;獲得TABLE的低8位ADDWFOFFSET,F;TABLE值加上偏移量MOVLWHIGHTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFOFFSET,W;將需要調(diào)用的信號的地址寫入WCALLTABLE;MOVWFPORTARETURNTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'01101111';9RETLWB'01111111';8RETLWB'00000111';7RETLWB'01111101';6RETLWB'01101101';5RETLWB'01100110';4RETLWB'01001111';3RETLWB'01011011';2RETLWB'00000110';1RETLWB'00111111';0SETORIGIN:MOVLWD'1'MOVWFCNUMMOVLWD'4'MOVWFCNTMOVFCOFFSET,WMOVWFPARETURNSETPA:MOVLWD'10'MOVWFPARETURNSETCOFFSET:MOVLWD'10'MOVWFCOFFSETRETURN;;;;;;;;;;函數(shù)區(qū)到此為止;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MAINLOOPMOVFCNUM,WMOVWFNUM;數(shù)碼管MOVFPA,WMOVWFOFFSET;圖案CALLSELECT;;;;;;;;;;;;;;;;;;;;;;;;;數(shù)碼管CALLWRITE;;;;;;;;;;;;;;;;;;;;;;;;;;圖案DECFPABTFSCSTATUS,Z;;;;;;;;;;;;;;;;;;;;;;CALLSETPA;;;;;;;;;;;;;;;;;;;;;;;;;;unn 丄丄n,,,,,,,,,,,,,,,,,,,,,,,,,,INCFCNUMDECFCNTBTFSCSTATUS,ZCALLSETORIGINGOTOLOOPEND,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;滾動顯示0-9,一秒滾一次每次顯示四個(gè)數(shù)字#INCLUDEp16f886.inc__config_CONFIG1,_INTOSCIO&_WDT_OFF

CONTEXT_SAVINGUDATA_SHRW_TMPRES1S_TMPRES1OFFSETRES1COFFSETRES1NUMRES1CNUMRES1PARES1CNTRES1LP0RES1LP1RES1ISBLACKRES1RESETCODE0x0PAGESELINITGOTOINIT0x04ISRCODE0x04,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MOVWFW_TMPSWAPFSTATUS,WMOVWFS_TMP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,BANKSELINTCONBCFINTC0N,2;;;;;;;;;;;;;清除TMR0中斷標(biāo)志位COMFISBLACKBTFSSISBLACK,0CALLDECRESE_COFFSETBTFSCISBLACK,0CALLBLACKBANKSELTMR0MOVLWB'11000000'MOVWFTMR0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,SWAPFS_TMP,WMOVWFSTATUSSWAPFW_TMP,FSWAPFW_TMP,WRETFIE;;;;;;;CODEINITBANKSELTMR0CLRFTMR0BANKSELOPTION_REGMOVLWB'00000111'MOVWFOPTION_REG;;;;;;;;;;;;;;;;;;;;;TMR0設(shè)置為256分頻BANKSELINTCONBSFINTCON,GIEBSFINTCON,T0IE;;;;;;;;;;;;;;;;;;;;;總中斷使能,TMR0中斷使能BANKSELTRISCCLRFTRISCBANKSELPORTCMOVLWB'11111111'MOVWFPORTCBANKSELTRISACLRFTRISABANKSELPORTACLRFPORTABANKSELANSELCLRFANSELBANKSELOSCCONMOVLWB'00010011'MOVWFOSCCON;;;;;;;;;;;;;;;;;;;;;;振蕩器設(shè)置為125KHz,內(nèi)部振蕩器BANKSELCOFFSETMOVLWD'22'MOVWFCOFFSET;;;;;;;;;;;;;;;;;;;;10個(gè)數(shù)字BANKSELCNUMMOVLWD'1'MOVWFCNUM;;;;;;;;;;;;;;;;;;;;;;;;;4個(gè)數(shù)碼管MOVFCOFFSET,WMOVWFPA;;;;;;;;;;;;;;;;;;;;;;;;;;;PA暫時(shí)存儲COFFSETMOVLWD'4'MOVWFCNT;;;;;;;;;;;;;;;;;;;;;;;;;;計(jì)數(shù)四次CLRFISBLACKPAGESELMAINGOTOMAINSELECT:BANKSELPORTACLRFPORTABANKSELPORTCMOVLWB'11111111MOVWFPORTCMOVLWLOWSTABLE;獲得TABLE的低8位ADDWFNUM,F;TABLE值加上偏移量MOVLWHIGHSTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFNUM,W;將需要調(diào)用的信號的地址寫入WCALLSTABLE;MOVWFPORTCRETURNSTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'11111110';1RETLWB'11111101';2RETLWB'11111011';3RETLWB'11110111';4WRITE:MOVLWLOWTABLE;獲得TABLE的低8位ADDWFOFFSET,F;TABLE值加上偏移量MOVLWHIGHTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFOFFSET,W;將需要調(diào)用的信號的地址寫入WCALLTABLE;MOVWFPORTARETURNTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'01101111';9RETLWB'01111111';8RETLWB'00000111';7RETLWB'01111101';6RETLWB'01101101';5RETLWB'01100110';4RETLWB'01001111';3RETLWB'01011011';2RETLWB'00000110';1RETLWB'00111111';0RETLWB'00000000';NULL——11RETLWB'00000000';NULL——12RETLWB'00000000';NULL——13RETLWB'00000000';NULL——14RETLWB'01011110';d——15RETLWB'01111001';E——16RETLWB'01111001';E————17RETLWB'01101101';S——18RETLWB'00000000';NULL——19RETLWB'00000000';NULL——20RETLWB'00000000';NULL——21RETLWB'00000000';NULL——22SETORIGIN:MOVLWD'1'MOVWFCNUMMOVLWD'4'MOVWFCNTMOVFCOFFSET,WMOVWFPARETURNSETPA:MOVLWD'10'MOVWFPARETURNSETCOFFSET:MOVLWD'10'MOVWFCOFFSETRETURNDELAY:MOVLW00FHMOVWFLP0L0MOVLW00FHMOVWFLP1L1DECFSZLP1,FGOTOL1DECFSZLP0,FGOTOL0RETURNDECRESE_COFFSET:DECFCOFFSETBTFSCSTATUS,ZCALLSETCOFFSETRETURNBLACK:BANKSELPORTACLRFPORTACALLDELAYRETURN

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MAINLOOPMOVFCNUM,WMOVWFNUM;數(shù)碼管MOVFPA,WMOVWFOFFSET;圖案CALLSELECT,,,,,,;;;;;數(shù)碼管CALLSELECT,,,,,,;;;;;數(shù)碼管CALLWRITE;;;;圖案DECFPABTFSCSTATUS,Z;;;;CALLSETPA;;;;;INCFCNUMDECFCNTBTFSCSTATUS,ZCALLSETORIGINCALLWRITE;;;;圖案DECFPABTFSCSTATUS,Z;;;;CALLSETPA;;;;;INCFCNUMDECFCNTBTFSCSTATUS,ZCALLSETORIGINGOTOLOOPEND,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,畫面SEEd#INCLUDEp16f886.inc__config_CONFIG1,_INTOSCIO&_WDT_OFFCONTEXT_SAVINGUDATA_SHRW_TMPRES1S_TMPRES1OFFSETRES1COFFSETRES1NUMRES1CNUMRES1PARES1CNTRES1LP0RES1LP1RES1ISBLACKRES1RESETCODE0x0PAGESELINITGOTOINITISRCODE0x04MOVWFW_TMPSWAPFSTATUS,WMOVWFS_TMPPB_INTBTFSCINTCON,RBIFCALLPORTB_INTTM0_INTBTFSCINTCON,T0IFCALLTMR0_INT,,,,,,,,,,,,,,,,,,,,,CALLTMR0_INT,,,,,,,,,,,,,,,,,,,,,COMFISBLACKBTFSSISBLACK,0CALLDECRESE_COFFSETBTFSCISBLACK,0CALLBLACKBANKSELINTCONBCFINTCON,2;;;;;;;;;;;;;清除TMR0中斷標(biāo)志位BANKSELTMR0MOVLWB'01111111'MOVWFTMR0SWAPFS_TMP,WMOVWFSTATUSSWAPFW_TMP,FSWAPFW_TMP,WRETFIE;;;;CODEINITBANKSELTMR0MOVLWB'01111111'MOVWFTMR0BANKSELOPTION_REGMOVLWB'00000111'MOVWFOPTION_REG;;;;;;;;;;;;;;;;;;;;;TMR0設(shè)置為256分頻BANKSELINTCONBSFINTCON,GIEBSFINTCON,T0IE;;;;;;;;;;;;;;;;;;;;;總中斷使能,TMR0中斷使能BSFINTCON,RBIE;;;;;;;;;;;;;;;;;;;;;;PORTB電平變化中斷使能BANKSELTRISCCLRFTRISCBANKSELPORTCMOVLWB'11111111MOVWFPORTCBANKSELTRISACLRFTRISABANKSELPORTACLRFPORTABANKSELANSELCLRFANSELBANKSELTRISBMOVLWB'00100000MOVWFTRISBBANKSELIOCBMOVLWB'00100000MOVWFIOCBBANKSELPORTBCLRFPORTBBANKSELWPUBMOVLWB'00100000MOVWFWPUBBANKSELOSCCONMOVLWB'00010011MOVWFOSCCON;;;;;;;;;;;;;;;;;;;;;;振蕩器設(shè)置為125KHz,內(nèi)部振蕩器BANKSELCOFFSETMOVLWD'22'MOVWFCOFFSET;;;;;;;;;;;;;;;;;;;;10個(gè)數(shù)字BANKSELCNUMMOVLWD'1'MOVWFCNUM;;;;;;;;;;;;;;;;;;;;;;;;;4個(gè)數(shù)碼管MOVFCOFFSET,WMOVWFPA;;;;;;;;;;;;;;;;;;;;;;;;;;;PA暫時(shí)存儲COFFSETMOVLWD'4'MOVWF 計(jì)數(shù)四次CLRFISBLACKPAGESELMAINGOTOMAINSELECT:BANKSELPORTACLRFPORTABANKSELPORTCMOVLWB'11111111'MOVWFPORTCMOVLWLOWSTABLE;獲得TABLE的低8位ADDWFNUM,F;TABLE值加上偏移量MOVLWHIGHSTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFNUM,W;將需要調(diào)用的信號的地址寫入WCALLSTABLE;MOVWFPORTCRETURNSTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'11111110';1RETLWB'11111101';2RETLWB'11111011';3RETLWB'11110111';4WRITE:MOVLWLOWTABLE;獲得TABLE的低8位ADDWFOFFSET,F;TABLE值加上偏移量MOVLWHIGHTABLE;獲得TABLE的高5位BTFSCSTATUS,C;檢測是否翻頁ADDLW1;翻頁則在TABLE的高5位加一MOVWFPCLATH;將TABLE的高5位寫入PCLATHMOVFOFFSET,W;將需要調(diào)用的信號的地址寫入WCALLTABLE;MOVWFPORTARETURNTABLE:MOVWFPCL;轉(zhuǎn)到偏移的地址RETLWB'01101111';9RETLWB'01111111';8RETLWB'00000111';7RETLWB'01111101';6RETLWB'01101101';5RETLWB'01100110';4RETLWB'01001111';3RETLWB'01011011';2RETLWB'00000110';1RETLWB'00111111';0RETLWB'00000000';NULL——11RETLWB'00000000';NULL——12RETLWB'00000000';NULL——13RETLWB'00000000';NULL——14RETLWB'01011110';d——15RETLWB'01111001';E——16RETLWB'01111001';E————17RETLWB'01101101';S——18RETLWB'00000000';NULL——19RETLWB'00000000';NULL——20RETLWB'00000000';NULL——21RETLWB'00000000';NULL——22SETORIGIN:MOVLWD'1'MOVWFCNUMMOVLWD'4'MOVWFCNTMOVFCOFFSET,WMOVWFPARETURNSETPA:MOVLWD'10'MOVWFPARETURNSETCOFFSET:MOVLWD'10'MOVWFCOFFSETRETURNDELAY:MOVLW01FHMOVWFLP0L0MOVLW01FHMOVWFLP1L1DECFSZLP1,FGOTOL1DECFSZLP0,FGOTOL0RETURNDECRESE_COFFSET:DECFCOFFSETBTFSCSTATUS,ZCALLSETCOFFSETRETURNBLACK:BANKSELPORTACLRFPORTACALLDELAY

RETURNTMR0_INT:DECFCOFFSETBTFSCSTATUS,ZCALLSETCOFFSET;;;;COFFSET減一RETURNPORTB_INT:BANKSELPORTBBCFPORTB,4BANKSELINTCONBCFINTCON,RBIF;;;;;;;;COFFSET減一RETURNPORTB_INT:BANKSELPORTBBCFPORTB,4BANKSELINTCONBCFINTCON,RBIF;;;;斷標(biāo)志清除MOVLWD'10';;;;PORTB中MOVWFCOFFSETRETURNMAINLOOPMOVFCNUM,WMOVWFNUM;數(shù)碼管MOVFPA,WMOVWFOFFSET;圖案;;;;;數(shù)碼管;;;;圖案CALLSELECT;;;;;數(shù)碼管;;;;圖案CALLWRITEDECFPABTFSCSTATUS,Z;;;;CALLSETPA;;;;;INCFCNUMDECFCNTBTFSCSTATUS,ZCALLSETORIGINGOTOLOOPEND胡巧平16:47:17惡心曹航17:55:01#INCLUDEp16f886.inc__config_CONFIG1,_INTOSCIO&_WDT_OFFCONTEXT_SAVINGUDATA_SHRW_TMPRES1S_TMPRES1OFFSETRES1

COFFSETRES1NUMRES1CNUMRES1PARES1CNTRES1LP0RES1LP1RES1ISBLACKRES1RESETCODE0x0PAGESELINITGOTOINIT0x04ISRCODE0x04,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MOVWFW_TMPSWAPFSTATUS,WMOVWFS_TMP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,PB_INTBTFSCINTCON,RBIFCALLPORTB_INTTM0_INTBTFSCINTCON,T0IFCALLTMR0_INT,,,,,,,,,,,,,,,,,,,,,CALLTMR0_INT,,,,,,,,,,,,,,,,,,,,,;COMFISBLACK;BTFSSISBLACK,0;CALLDECRESE_COFFSET;NOP;BTFSCISBLACK,0CALLBLACKBANKSELINTCONBCFINTC0N,2;;;;;;;;;;;;;清除TMRO中斷標(biāo)志位BANKSELTMR0MOVLWB'01111111'MOVWFTMR0SWAPFS_TMP,WMOVWFSTATUSSWAPFW_TMP,FSWAPFW_TMP,WRETFIE;;;;;;;CODEINITBANKSELTMR0MOVLWB'01111111'MOVWFTMR0BANKSELOPTION_REGMOVLWB'00000111'MOVWFOPTION_REG;;;;;;;;;;;;;;;;;;;;;TMR0設(shè)置為256分頻BANKSELINTCONBSFINTCON,GIEBSFINTCON,T0IE;;;;;;;;;;;;;;;;;;;;;總中斷使能,TMR0中斷使能BSFINTCON,RBIE;;;;;;;;;;;;;;;;;;;;;;PORTB電平變化中斷使能BANKSELTRISCCLRFTRISCBANKSELPORTCMOVLWB'11111111'MOVWFPORTCBANKSELTRISACLRFTRISABANKSELPORTACLRFPORTABANKSELANSELCLRFANSELBANKSELTRISBMOVLWB'00100000'MOVWFTRISBBANKSELIOCBMOVLWB'00100000'MOVWFIOCBBANKSELPORTBCLRFPORTBBANKSELWPUBMOVLWB'00100000'MOVWFWPUBBANKSELOSCCONMOVLWB'00010011'MOVWFOSCCON;;;;;;;;;;;;;;;;;;;;;;振蕩器設(shè)置為125KHz,內(nèi)部振蕩器BANKSELCOFFSETMOVLWD'22'MOVWFCOFFSET;;;;;;;;;;;;;;;;;;;;10個(gè)數(shù)字BANKSELCNUMMOVLWD'1'

MOVWFCNUM;;;;;;;;4個(gè)數(shù)碼管MOVFCOFFSET,WMOVWFPA;;;;;;;;PA暫時(shí)存儲COFFSETMOVLWD'4'MOVWFCNUM;;;;;;;;4個(gè)數(shù)碼管MOVFCOFFSET,WMOVWFPA;;;;;;;;PA暫時(shí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論