請問16*16點距陣問題 |
答題得分者是:bernie_w39
|
iqsteven
一般會員 ![]() ![]() 發表:4 回覆:9 積分:2 註冊:2007-10-20 發送簡訊給我 |
各位大大,我的16*16距陣LED,會有殘像的問題出現,我設定不會亮的燈,在程式運行時,他會有暗亮,令到我的距陣LED不能顯示應有的字樣
在DELAY方面我已試過不同的時間,仍解決不了有關問題,望大大可幫忙指出問題所在 程式: L1 EQU 31H L2 EQU 32H ORG 00H START:MOV R6,#20H MOV P1,#0H MOV P2,#0H CALL DELAY MOV DPTR,#TABLE MOV 40H,DPL MOV 41H,DPH Z1: MOV R2,#50H Y1: MOV R5,#01H MOV L1,#0H MOV L2,#0H MOV R3,#0H X1: CALL LOOP MOV P1,R5 CALL DELAY MOV A,R5 RL A MOV R5,A INC R3 INC L1 MOV A,L1 CJNE A,#08H,X1 MOV A,0 MOV P1,0 MOV R5,#01H X2: CALL LOOP MOV P2,R5 CALL DELAY MOV A,R5 RL A MOV R5,A INC R3 INC L2 MOV A,L2 CJNE A,#08H,X2 CALL DELAY MOV L1,#0H MOV L2,#0H MOV P1,#0H MOV P2,#0H CALL DELAY DJNZ R2,Y1 MOV A,DPL ADD A,#10H MOV DPL,A MOV A,DPH ADDC A,#0H MOV DPH,A DJNZ R6,Z1 AJMP START LOOP: MOV R7,#8H MOV A,R3 MOVC A,@A DPTR SHIFT: CLR P0.3 RRC A MOV P1.0,C SETB P0.3 DJNZ R7,SHIFT INC R3 MOV R7,#8H MOV A,R3 MOVC A,@A DPTR SHIFT2: CLR P0.2 RRC A MOV P1.1,C SETB P0.2 DJNZ R7,SHIFT2 RET DELAY:MOV R1,#50 DY250:CALL DY500US DJNZ R1,DY250 RET DY500US:MOV R0,#5 DJNZ R0,$ NOP RET TABLE: db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H db 03H,03H,03H,03H end ![]() ![]() |
bernie_w39
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:3 回覆:199 積分:280 註冊:2007-10-07 發送簡訊給我 |
大概看了一下你的程式, 有看到幾個問題.
1. 在 SHIFT 與 SHIFT2 中, 均將進位旗號導入 P1.0, P1.1, 但是看線路應該不是用 P1 的 port 才對. 圖太小, 看不太清楚, 但是應該是 P0 port 的其它 bit 2. X1 在 call loop 之前, 先將 P1 清為 0, X2 在 call loop 之前, 先將 P2 清為 0. 這樣就可以避免 在設 loop 中設定 74164 時, 因 shift 過程使 LED 閃動. 希望能解決您的問題. |
iqsteven
一般會員 ![]() ![]() 發表:4 回覆:9 積分:2 註冊:2007-10-20 發送簡訊給我 |
|
iqsteven
一般會員 ![]() ![]() 發表:4 回覆:9 積分:2 註冊:2007-10-20 發送簡訊給我 |
|
阿信
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:111 回覆:983 積分:813 註冊:2005-03-10 發送簡訊給我 |
|
bernie_w39
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:3 回覆:199 積分:280 註冊:2007-10-07 發送簡訊給我 |
問題描述的太籠統, 新改出來的程式也沒有附上, 這個問題就猜不出了. 建議大大將 DELAY 改成非常久, 超過兩三秒, 這樣就可以看清楚每一列 到底是如何點亮的. 從您的圖上看, 74164 控制的是左右, 但您說是上下, 不曉得是不是電路板 的擺放方向不同. 又 "只有第一行可以控制", 何謂第一行? 是指 74164 的 某一 pin 輸出, 還是 ULN2803 的某一 pin 輸出? 如果是 74164 的某一 pin, 那是 MSB 還是 LSB? 是 T2 - T17 的某一顆嗎? ===================引 用 iqsteven 文 章=================== 在殘像的問題上以得到解決了,先謝大大,但在loop上又有問題出時了,我是用2顆74164去控制上下各8個粒,在上方的燈方面控制是正常的,但下方的燈只有第一行可以正常控制,之後就會不規則的閃動,我已研究了多時,但仍未可解決到..希望大大們可再指教, |
foreman
高階會員 ![]() ![]() ![]() ![]() 發表:3 回覆:124 積分:190 註冊:2004-09-10 發送簡訊給我 |
大大:
這樣改試試. ORG 00H START: MOV R6,#20H MOV P1,#0H MOV P2,#0H CALL DELAY MOV DPTR,#TABLE MOV 40H,DPL MOV 41H,DPH Z1: MOV R2,#50H Y1: MOV R5,#01H MOV L1,#0H MOV L2,#0H MOV R3,#0H X1: CALL LOOP MOV P1,R5 MOV P2,R5 ;加這行 CALL DELAY MOV A,R5 RL A MOV R5,A INC R3 INC L1 MOV A,L1 CJNE A,#08H,X1 ; MOV A,0 ; MOV P1,0 ; MOV R5,#01H ;X2: CALL LOOP ; MOV P2,R5 ; CALL DELAY ; MOV A,R5 ; RL A ; MOV R5,A ; INC R3 ; INC L2 ; MOV A,L2 ; CJNE A,#08H,X2 ; CALL DELAY MOV L1,#0H MOV L2,#0H MOV P1,#0H MOV P2,#0H CALL DELAY DJNZ R2,Y1 MOV A,DPL ADD A,#10H MOV DPL,A MOV A,DPH ADDC A,#0H MOV DPH,A DJNZ R6,Z1 AJMP START
編輯記錄
foreman 重新編輯於 2008-05-15 15:14:46, 註解 無‧
|
iqsteven
一般會員 ![]() ![]() 發表:4 回覆:9 積分:2 註冊:2007-10-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |