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

標(biāo)題: 51單片機(jī)紅外線控制數(shù)碼管匯編語言程序有問題 [打印本頁]

作者: wuyuetian    時間: 2021-6-10 17:40
標(biāo)題: 51單片機(jī)紅外線控制數(shù)碼管匯編語言程序有問題
上傳有開發(fā)板的原理圖,麻煩大佬幫忙一下看看,我這個按遙控器按鍵它顯示不對,也不是每個按鍵按下去都會數(shù)碼管亮,哪點程序出問題了,求指導(dǎo)應(yīng)該如何排查錯誤
                DQ EQU P3.3

                ADDR0 EQU P1.0
                ADDR1 EQU P1.1
                ADDR2 EQU P1.2
                ADDR3 EQU P1.3
                ENLED EQU P1.4

                ORG 000H
                LJMP MAIN

                ORG 000BH
                LJMP ZD

    MAIN:
                MOV TH0,#0FEH
                MOV TL0,#0FEH
                MOV TMOD,#01H
                SETB ET0
                SETB TR0
                SETB EA
                CLR ENLED
                CLR ADDR0
                CLR ADDR1
                CLR ADDR2
                SETB ADDR3

                SJMP $

     ZD:
                CLR EA
                MOV R3,#10
     SB:        LCALL YS1  ;延時9000微妙

                DJNZ R3,SB

                JB DQ,EXIT




;---------------以上對檢測9000微妙的初始低電平
                JNB DQ,$

                LCALL YS2   ;延時4.74毫秒避開4.5毫秒結(jié)果碼

                MOV R1,#40H    ;設(shè)定起始RAM區(qū)
                MOV R2,#4      ;四組八位數(shù)據(jù)
      PP:       MOV R3,#8

      JJJ:      JNB DQ,$       ;等待地址碼第一個高電平信號

                LCALL YS1    ;延時882微妙去判斷此時的信號高低電平狀態(tài)

                MOV C,DQ
                JNC UU

                LCALL YS3    ;延時1000微妙

      UU:       MOV A,@R1      ;將R1的地址給它
                RRC A          ;將C轉(zhuǎn)到最低位
                MOV @R1,A      ;再將A存到r1中

                DJNZ R3,JJJ    ;循環(huán)接受地址碼的高8位

                INC R1
                DJNZ R2,PP     ;接受完16位地址碼和8位數(shù)據(jù)嗎和8位數(shù)據(jù)反碼

;---------------以上將16位地址碼和8位數(shù)據(jù)嗎和8位數(shù)據(jù)反碼存放在1AH,1BH,1CH,1DH

                MOV A,42H
                CPL A
                XRL A,43H      ;將兩數(shù)據(jù)作比較

                JNZ EXIT       ;不相同則丟棄退出解碼

                MOV DPTR,#TABLE
                MOV A,43H
                ANL A,#0FH     ;求與取其低四位

                MOVC A,@A+DPTR
                MOV 44H,A      ;將查表得到的數(shù)字存到1EH中
                MOV A,43H
                SWAP A         ;高四位與低四位交換
                ANL A,#0FH     ;求與取其高四位
                MOVC A,@A+DPTR
                MOV 45H,A      ;將查表到的數(shù)據(jù)放在45H中

;---------------以上將接受到的數(shù)據(jù)碼與數(shù)據(jù)反碼經(jīng)過查表后存放在44H和45H中

                MOV R7,#20H
      DISP:
                MOV P0,45H     ;將數(shù)據(jù)送到數(shù)碼管中
                CLR P2.1
                LCALL YS2
                SETB P2.1
                MOV P0,44H
                CLR P2.2
                LCALL YS2
                SETB P2.2

                CLR P1.6
                LCALL YS2
                SETB P1.6
                DJNZ R7,DISP


      EXIT:     SETB EA
                RETI           ;退出解碼程序

                               ;延時882微秒
       YS1:       MOV R4,#03H
DL0:
    MOV R5,#91H
    DJNZ R5,$
    DJNZ R4,DL0
    RET
       YS2:
                               ;延時4740微秒
          MOV R6,#03H
DL1:
    MOV R4,#08H
DL2:
    MOV R5,#61H
    DJNZ R5,$
    DJNZ R4,DL2
    DJNZ R6,DL1
    RET
       YS3:
                             ;延時1000微秒
         MOV R4,#01H
DL3:
    MOV R6,#8EH
DL4:
    MOV R5,#02H
    DJNZ R5,$
    DJNZ R6,DL4
    DJNZ R4,DL3
    RET

       TABLE: DB  0C0h,0F9h,0A4h,0B0h,99h,92h
              DB  82h,0F8h,80h,90h,88h,83h,0C6h,0A1h,86h,8Eh

KST-51開發(fā)板原理圖.pdf

111.52 KB, 下載次數(shù): 7


作者: yzwzfyz    時間: 2021-6-11 15:07
本帖最后由 yzwzfyz 于 2021-6-12 08:39 編輯

看了你的原理圖,相對來說比較復(fù)雜。
顯示是掃描的,所以你的延時不能用“硬延時”,即調(diào)用 YSx與掃描顯示是有沖突的。
例如顯示分8次掃描,每次4ms,如果在這4ms中,你多次調(diào)用了 YSx延時,而延時的總時間超過了4ms,這時就破壞了掃描顯示的規(guī)則。也就會發(fā)生顯示閃爍、停頓……。
你必須畫出顯示框圖,并走通流程。重要的是仔細(xì)規(guī)劃顯示的時序!!!同時紅外解碼的時序邏輯,也在其中。
如果不是老道的單片機(jī)設(shè)計人員,搞定這張圖,是很難的,
作者: Y_G_G    時間: 2021-6-11 17:10
代碼是不是網(wǎng)上復(fù)制的,如果是,那就看一下延時那
網(wǎng)上的一些代碼是AT8051的,而大多用的是STC8051
指令速度是不一樣的
很有可能就是你按一下遙控數(shù)碼管就會閃,或者是卡住,運(yùn)氣好的話還能有那么一兩下好像是可以的
這基本是單片機(jī)時鐘不一樣造成的




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