欧美极品高清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
2021-6-10 17:38 上傳
點擊文件名下載附件
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