欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 如果想要單片機計數的時長超過100s應該怎么改動匯編程序? [打印本頁]

作者: BSq    時間: 2020-3-26 19:29
標題: 如果想要單片機計數的時長超過100s應該怎么改動匯編程序?
;定義數據RAM空間
        LMS EQU 37H                 ;定義一個變量存放計數值毫秒
        LMIAO EQU 38H         ;定義一個變量存放計數值秒
                ;數據存放
                ORG 0100H
TABLE: DB 0C0h,0F9H,0A4H,0b0H,99H,92H,82H,0F8H,80H,90H
                                        ;表:共陽數碼管 0-9
                ORG 0000H
                LJMP MAIN
                ORG 000BH                 ;中斷入口
                LJMP TIMER
                ORG 0200H
MAIN: MOV TMOD,#01H     ;設置定時器11模式,即16位計算模式
        MOV TH0,#0D8H     ;給計數寄存器賦值,10毫秒時間
        MOV TL0,#0F0H
        MOV IE,#82H             ;開總中斷和T0中斷
        CLR A
        MOV LMS,A                 ;計數緩沖清0
        MOV LMIAO,A
        SETB TR0 ;
M1:         MOV A,LMS
        CJNE A,#100,M2         ;10毫秒計數,100次即為1
        MOV LMS,#0
        MOV A,LMIAO
        INC A
        MOV LMIAO,A
        CJNE A,#100,M2         ;如果加到100秒,則清0
        MOV LMIAO,#0
M2:         LCALL DISPLAY         ;顯示
        SJMP M1
TIMER: INC LMS                 ;定時中斷產生,以10毫秒計數加1
        MOV TH0,#0D8H         ;重新裝入定時器值10毫秒
        MOV TL0,#0F0H
        RETI
DISPLAY:  MOV DPTR,#TABLE ;數碼管顯示子程序
        MOV A,LMIAO
        MOV B,#10
        DIV AB
        SETB P3.4
        SETB P3.3                 ;千位數碼管
        MOVC A,@A+DPTR
        MOV P1,A
        MOV P1,#0FFH
        CLR P3.3                         ;百位數碼管
        MOV A,B
        MOVC A,@A+DPTR
        ANL A,#0X7F                 ;加入小數點
        MOV P1,A
        MOV P1,#0FFH
        MOV A,LMS
        MOV B,#10
        DIV AB
        CLR P3.4
        SETB P3.3                 ;十位數碼管
        MOVC A,@A+DPTR
        MOV P1,A
        MOV P1,#0FFH
        CLR P3.3                     ;個位數碼管
        MOV A,B
        MOVC A,@A+DPTR
        MOV P1,A
        MOV P1,#0FFH
        RET
        END


作者: yzwzfyz    時間: 2020-3-27 07:02
在中斷服務子程序中,加一個計數器,計數不滿時,立即返回。計數計滿時再執行你的主服務內容!
如此10000秒也行、這么簡單事,如何就想不到呢?
作者: Y_G_G    時間: 2020-3-27 08:20
如果你定時器中斷不改變的話,100S的延時要用3個地址在存放時間數據
在定時器中使用DJNZ來實現
作者: BSq    時間: 2020-3-27 10:10
yzwzfyz 發表于 2020-3-27 07:02
在中斷服務子程序中,加一個計數器,計數不滿時,立即返回。計數計滿時再執行你的主服務內容!
如此10000 ...

呃呃,對不起,我剛剛學習,學的不精。其實我之前改過顯示分秒的,是在原來的加一個分鐘中斷,和顯示,然后計數超過一百秒,沒有要求上限,我有點😵
作者: BSq    時間: 2020-3-27 10:12
Y_G_G 發表于 2020-3-27 08:20
如果你定時器中斷不改變的話,100S的延時要用3個地址在存放時間數據
在定時器中使用DJNZ來實現

對對,我之前改分秒顯示就是這樣改的,加一個存儲單元,加一個d'j'n'z




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1