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

標(biāo)題: 大神幫忙看一下這個(gè)單片機(jī)匯編程序,為什么動(dòng)態(tài)數(shù)碼管只能顯示一個(gè)數(shù)字啊? [打印本頁(yè)]

作者: suibianyige    時(shí)間: 2020-11-28 20:50
標(biāo)題: 大神幫忙看一下這個(gè)單片機(jī)匯編程序,為什么動(dòng)態(tài)數(shù)碼管只能顯示一個(gè)數(shù)字啊?
MAIN:   
        MOV P1,#0FFH
        MOV A,P1
        CPL A              ;輸入此時(shí)溫度
        LED_0        EQU         30H
    LED_1         EQU         31H
    LED_2         EQU         32H
zhuanhuan:
                MOV         B,#100
                DIV         AB
                MOV         LED_2,A
                MOV         A,B
                MOV         B,#10
                DIV         AB
                MOV         LED_1,A
                MOV         LED_0,B  
                MOV   DPTR, #TABLE
DISP:      

                        
            MOV                A,LED_0                        ;數(shù)碼顯示子程序
                MOVC        A,@A+DPTR
                CLR                P2.2
                MOV                P0,A
                LCALL        DELAY
                SETB        P2.2

                MOV                A,LED_1
                MOVC        A,@A+DPTR
                CLR                P2.1
                MOV                P0,A
                LCALL        DELAY
                SETB        P2.1

                            MOV                A,LED_2
                MOVC        A,@A+DPTR
                CLR                P2.1
                                CLR              P2.2
                MOV               P0,A
                LCALL        DELAY
                SETB        P2.0

                RET

DELAY:        MOV                R6,#10
D1:                MOV                R7,#250
                DJNZ        R7,$
                DJNZ        R6,D1
                RET
DELAY2:        MOV                R5,#20
D2:                MOV                R6,#20
D3:                MOV                R7,#250
                DJNZ        R7,$
                DJNZ        R6,D3
                DJNZ        R5,D2
                RET
TABLE:         DB                 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
                END


作者: csmyldl    時(shí)間: 2020-11-29 01:26
程序結(jié)構(gòu)有問題,第一,主程序未構(gòu)成循環(huán)并且去調(diào)用DISP顯示子程序,第二,轉(zhuǎn)換程序到底是主程序的一部分還是單獨(dú)的一個(gè)子程序,若為子程序,沒有RET指令,第三,延時(shí)程序DELAY2在本程序中未調(diào)用,可刪去。因?yàn)閷?duì)程序結(jié)構(gòu)未搞清,所以不能正常顯示
作者: 用戶名被注冊(cè)了    時(shí)間: 2020-11-29 09:37
程序結(jié)構(gòu)確實(shí)有點(diǎn)亂.....
作者: Y_G_G    時(shí)間: 2020-11-30 14:14
整個(gè)程序沒有用到一個(gè)JMP指令來循環(huán)
程序結(jié)構(gòu)太亂
作者: zhouchuantao    時(shí)間: 2020-12-4 17:33
http://m.raoushi.com/bbs/dpj-151055-1.html  看看
作者: zhouchuantao    時(shí)間: 2020-12-4 17:33
http://m.raoushi.com/bbs/dpj-151055-1.html  看看這個(gè)鏈接
作者: suncat0504    時(shí)間: 2020-12-5 11:30
DISP:      
            MOV         A,LED_0           ;取得第一個(gè)顯示數(shù)據(jù)
            MOVC        A,@A+DPTR         ;取得筆段數(shù)據(jù)           
            CLR         P2.2              ;關(guān)閉顯示
            MOV         P0,A              ;筆段數(shù)據(jù)輸出到IO口
            SETB        P2.2              ;打開顯示
            LCALL       DELAY             ;延遲顯示一段時(shí)間
            CLR         P2.2              ;關(guān)閉第一個(gè)數(shù)碼顯示,防止下一個(gè)筆段數(shù)據(jù)串位顯示到第一個(gè)數(shù)碼管上

            MOV         A,LED_1           ;取得第二個(gè)顯示數(shù)據(jù)
            MOVC        A,@A+DPTR
            CLR         P2.1
            MOV         P0,A
            SETB        P2.1
            LCALL       DELAY
            CLR         P2.1              ;關(guān)閉第二個(gè)數(shù)碼顯示顯示,防止下一個(gè)筆段數(shù)據(jù)串位顯示到第二個(gè)數(shù)碼管上
            

            MOV         A,LED_2           ;取得第三個(gè)顯示數(shù)據(jù)
            MOVC        A,@A+DPTR
            CLR         P2.0
            MOV         P0,A
            SETB        P2.0
            LCALL       DELAY
            CLR         P2.0              ;不加這個(gè)代碼,并且沒有下面的LJMP語句的話,第三個(gè)數(shù)碼管會(huì)一直亮下去
            
            LJMP        DISP              ;循環(huán)顯示


你之前的代碼有幾個(gè)問題:
1、在顯示下一個(gè)數(shù)碼管之前,一定要關(guān)閉位驅(qū)動(dòng),否則會(huì)出現(xiàn)一個(gè)筆段數(shù)據(jù)同時(shí)顯示給幾個(gè)數(shù)碼管。
2、在DISP處理中最后執(zhí)行的是RET。在執(zhí)行了
CLR                P2.1
CLR              P2.2
SETB        P2.0
之后,P0口保持著第三個(gè)數(shù)碼管的筆段數(shù)據(jù),第三個(gè)數(shù)碼管被點(diǎn)亮,并一直保持。

如果想循環(huán)顯示,必須及時(shí)點(diǎn)亮一段時(shí)間,然后關(guān)閉,處理下一個(gè),并且要保持不斷的循環(huán)才行
注意,以上代碼,是基于P2的IO口輸出‘1’時(shí)點(diǎn)亮數(shù)碼管的前提下,才成立。




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