<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 智能收費(fèi)系統(tǒng)軟件源代碼

          智能收費(fèi)系統(tǒng)軟件源代碼

          作者: 時(shí)間:2012-10-27 來源:網(wǎng)絡(luò) 收藏

          采用為6MHZ采用T0工作方式2

          OUTBIT EQU 08002h ; 位控制口

          OUTSEG EQU 08004h ; 段控制口

          IN EQU 08001h ; 鍵盤讀入口

          LEDBuf EQU 60h ;顯示緩沖

          Hour EQU 40h ;存放時(shí)信息計(jì)數(shù)單元

          Minute EQU 41h ;存放分信息計(jì)數(shù)單元

          Second EQU 42h ; 存放秒信息計(jì)數(shù)單元

          C100us EQU 43h

          Tick EQU 10000

          T100us EQU 256-50

          LGMP StArt ;跳轉(zhuǎn)到程序入口

          org 000Bh

          T0Int:

          PUSH DPL

          PUSH DPH

          PUSH ACC ;保護(hù)斷點(diǎn)

          ORL P1, #01H

          ANL P1, #0FEH ;當(dāng)車進(jìn)停車場時(shí)由系統(tǒng)產(chǎn)生下降沿脈沖觸發(fā)硬件電路開始計(jì)時(shí)

          MOV A, C100us+1

          JNZ Goon

          DEC C100us

          Goon:

          DEC C100us+1

          MOV A, C100us

          ORL A, C100us+1

          JNZ Exit ;判斷是否溢出10000次

          MOV C100us, #high(Tick)

          MOV C100us+1, #low(Tick) ;從新設(shè)置技術(shù)單元C100us的初值

          INC Second ;秒單元加1

          MOV A, Second

          CJNE A, #60, Exit ;判斷秒技術(shù)單元是否累加到60

          MOV Second, #0 ;需要向分計(jì)數(shù)單元進(jìn)位秒計(jì)數(shù)單元先清零

          INC Minute ;分計(jì)數(shù)單元加1

          MOV A, Minute

          CJNE A, #60, Exit ;判斷分計(jì)數(shù)單元是否加到60

          MOV Minute, #0 ;需要向時(shí)計(jì)數(shù)單元進(jìn)位分技術(shù)單元先清零

          INC Hour ;時(shí)計(jì)數(shù)單元加1

          Exit:

          POP DPL

          POP DPH

          POP PSW ;恢復(fù)斷點(diǎn)

          RETI

          DelAy: ; 延時(shí)子程序

          MOV r7, #0

          DelAyLoop:

          DJNZ r7, DelAyLoop

          DJNZ r6, DelAyLoop ;實(shí)現(xiàn)延時(shí)

          RET

          LEDMAP: ; 八段管顯示碼

          dB 3fh, 06h, 5Bh, 4fh, 66h, 6dh, 7dh, 07h

          dB 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h

          DisplAyLED:

          MOV r0, #LEDBuf

          MOV r1, #6 ; 共6個(gè)八段管

          MOV r2, #00100000B ; 從左邊開始顯示

          Loop:

          MOV DPTR, #OUTBIT

          MOV A, #0

          MOVX @DPTR, A ; 關(guān)所有八段管

          MOV A, @r0

          MOV DPTR, #OUTSEG

          MOVX @DPTR,A ;將要顯示的值放到段控制口

          MOV DPTR, #OUTBIT

          MOV A, r2

          MOVX @DPTR, A ; 顯示一位八段管

          MOV r6, #1

          CAll DelAy ;調(diào)用延時(shí)程序

          MOV A, r2 ; 顯示下一位

          RR A

          MOV r2, A

          INC r0 ;找到要顯示下一位地址

          DJNZ r1, Loop ;判斷是否全部顯示

          RET

          ToLED:

          MOV DPTR, #LEDMAp

          MOVC A, @A+DPTR ;查表顯示

          RET

          StArt:

          MOV TMOD, #02h ; 模式2, 定時(shí)器

          MOV TH0, #T100us

          MOV TL0, #T100us ;給T0賦初值

          MOV IE, #10000010B ; EA=1, IT0 = 1

          MOV Hour, #0

          MOV Minute, #0

          MOV Second, #0 ;將時(shí)分秒單元分別清零

          MOV C100us, #high(Tick)

          MOV C100us+1, #low(Tick) ;設(shè)定計(jì)數(shù)初值

          SETB TR0 ; 啟動(dòng)定時(shí)器T0

          MLoop:

          MOV A, Hour

          MOV B, #10

          DIV AB ;求的時(shí)的高位放到A

          CAll ToLED ;調(diào)用查表程序

          MOV LEDBuf, A;將顯示值放到顯示緩沖區(qū)

          MOV A, B

          CAll ToLED

          ORL A, #80h ;得到時(shí)的低位值:

          MOV LEDBuf+1, A;將顯示值放到顯示緩沖區(qū)的下一地址

          MOV A, Minute

          MOV B, #10

          DIV AB ;求的分的高位放到A

          CAll ToLED ;調(diào)用查表程序

          MOV LEDBuf+2, A;將顯示值放到顯示緩沖區(qū)下一地址

          MOV A, B

          CAll ToLED

          ORL A, #80h ;得到時(shí)的低位值:

          MOV LEDBuf+3, A ;將顯示值放到顯示緩沖區(qū)的下一地址

          MOV A, Second

          MOV B, #10

          DIV AB


          CAll ToLED ;調(diào)用查表程序

          MOV LEDBuf+4, A ;將顯示值放到顯示緩沖區(qū)的下一地址

          MOV A, B

          CAll ToLED ;調(diào)用查表程序

          MOV LEDBuf+5, A ;將顯示值放到顯示緩沖區(qū)的下一地址

          CAll DisplAyLED ;調(diào)用顯示程序顯示所有的結(jié)果

          MOV A, Hour

          MOV B, #8

          MUL AB

          MOV R3,B ;計(jì)算整小時(shí)費(fèi)用

          MOV A, Minute

          MOV B, #60

          DIV AB

          MOV B, #8

          MUL AB

          MOV A, B ;計(jì)算分費(fèi)用

          ADD A, R3 ;總費(fèi)用

          Ljmp Mloop

          End



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();