線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:5178
推到 Plurk!
推到 Facebook!

請教如何用7447+紅綠燈七段顯示器

缺席
ttneurpffnt
一般會員


發表:1
回覆:6
積分:1
註冊:2004-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-12 16:35:33 IP:220.134.xxx.xxx 未訂閱
因為為了要交一篇專題報告,而小弟就用簡單的8051來寫紅綠燈 七段顯示器(類似現在的紅綠燈@@),小弟是會寫紅綠燈的程式,但要同時顯示七段顯示器 7447編碼器....小弟就有難題了! 七段顯示器 7447編碼是這段↓ org 00h mov r3,#00h;r3暫存器設為00顯示 loop: mov p1,r3;把r3的00顯示搬到p1埠顯示出來 mov r2,#30;delay程式 call delay呼叫delay xch a,r3;r3跟累積器a對換 add a,#01;累積器 1 da a;a作十進制調整 xch a,r3;暫存器跟a對換 jmp loop;跳到loop delay延遲程式為1秒 ↑ 這段是從00顯示到99在跳到00的顯示的,而小弟製做的是p1為甲路口的七段顯示器(加7447),p2為乙路口的七段顯示器(加7447),p0為紅綠燈,而綠燈設定為20s,黃燈為5s,紅燈為25s。是用七段顯示器到0時,就變換紅綠燈的輸出值,所以紅綠燈沒有delay程式。 那如果小弟目前想到的如果要讓p1及p2同時顯示器秒數的話!那是否能夠寫這樣↓ mov r3,#00100101b;用2進制顯示25s行不行?還是一定要用十六進制? mov r4,#00100000b;同樣的,顯示20s loop:mov p1,r3;把r3內容搬到p1 mov p2,r4;把r4內容搬到p2 mov r2,#30 call delay xch a,r3 xch a,r4 subb a,#01;把累積器的內容減1 da a xch a,r3 xch a,r4 jmp loop 這段不知行不行,也就是甲路口為25s,乙路口為20秒,同時都慢慢減1,乙路口減到為0的話就跳成黃燈,從乙路口又顯示5秒開始慢慢減到0到變為紅燈,甲路口也剛好到5秒也是減到0變成綠燈,而這又有一個問題就是...如果剛的程式要讓他成0就跳成另一段...該如何做? 能否請站上要是知道的為小弟講解一下呢?謝謝大家。
sadiku
一般會員


發表:0
回覆:15
積分:8
註冊:2004-08-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-13 12:08:06 IP:61.62.xxx.xxx 未訂閱
請問你可以稍微描述一下你的電路接法嗎?
ttneurpffnt
一般會員


發表:1
回覆:6
積分:1
註冊:2004-08-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-13 12:43:46 IP:218.171.xxx.xxx 未訂閱
電路接法喔…,我是把P0當做紅綠燈顯示,P1則控制東西向的七段顯示器(加7447編碼器),P2控制南北向的七段顯示器(加7447編碼器) 然而我用DA A的話,是不是只能用在ADD(加法),不能用在SUBB(減法)? 我是要把7段顯示器,從25→24→23→22→....→0然後又變換成20→19→18...→0又變成5→4→....→0這樣又跳到25秒開始這樣循環的...
dododo
一般會員


發表:16
回覆:23
積分:12
註冊:2004-04-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-14 00:44:16 IP:61.62.xxx.xxx 未訂閱
DA A 這個指令只能用在 ADD 或是 ADDC 這兩個指令之後才有效。 如果只是需要加一也可以用 INC A 如果減一可以用 DEC A
ttneurpffnt
一般會員


發表:1
回覆:6
積分:1
註冊:2004-08-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-14 01:03:03 IP:218.171.xxx.xxx 未訂閱
以下是我晚上想的,不過還有很多不足的地方 org 00h jmp g1; 跳到start g1: mov p0,#00100001b; p0埠為LED燈,0為滅、1為亮 mov r3,#20h; r3暫存器這定成25,也就是要讓p1埠顯示成25 mov r4,#25h; r4暫存器這定成20,也就是要讓p2埠顯示成25 loop: mov p1,r3; r3輸出到p1埠,p1埠接上7447編碼 2顆7-LED燈 mov p2,r4; r4輸出到p2埠,p2埠接上7447編碼 2顆7-LED燈 mov r2,#20 call delay; 延遲逼程式 xch a,r3; 累積器及r3暫存器做變換 add a,#99h; 25 99=124,因為只有一個 BYTE,所以值=24H,相當於減一 da a; 做十進制調整 xch a,r3; 累積器及r3暫存器做變換 xch a,r4; 累積器及r4暫存器做變換 add a,#99h; 20 99=119,因為只有一個 BYTE,所以值=19H,相當於減一 da a; 做十進制調整 xch a,r4; 累積器及r3暫存器做變換 jmp loop; 跳到loop又繼續把p1、p2埠的7-LED做減一 y1: mov p0,#00010001b mov r3,#05h mov r4,#05h loop1: mov p1,r3 mov p2,r4 mov r2,#20 call delay xch,r3 add a,#99h da a xch a,r3 xch a,r4 add a,#99h da a xch a,r4 jmp loop1 r1: mov p0,#00001100b mov r3,#25h mov r4,#20h loop2: mov p1,r3 mov p2,r4 mov r2,#20 call delay xch a,r3 add a,#99h da a xch a,r3 xch a,r4 add a,#99h da a xch a,r4 jmp loop2 y2: mov p0,#00001010b mov r3,#05h mov r4,#05h loop3: mov p1,r3 mov p2,r4 mov r2,#20 call delay xcha,r3 add a,#99h da a xch a,r3 xch a,r4 add a,#99h da a xch a,r4 jmp loop3 delay: mov r1,#20 del: mov r0,#248 djnz r0,$ djnz r1,del djnz r2,delay ret end 我把我現在寫的程式po上去,只不過這個程式..還少一堆因為還少一個jz... jz是把累積器a的到0時就跳到另一段的程式....,然而jz我不會用... 我的理想7-LED是這樣子,P1為顯示25,P2顯示20,而P2顯示到0的時候,就變成5秒,而P1剛好也到5秒,兩者繼續倒數到0時,又變成P1顯示為20,P2顯示為25,又重覆下去,最後又跳到G1,而因為JZ我不知要加在哪...這點我就很困擾了!如果有知道的大大們,可否麻煩一下呢?謝謝您。
pdcmg
一般會員


發表:3
回覆:22
積分:20
註冊:2004-11-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-15 15:42:29 IP:220.135.xxx.xxx 未訂閱
為什麼不用timer中斷去寫呢?既快速又方便~
91402035
一般會員


發表:0
回覆:6
積分:1
註冊:2004-12-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-28 23:36:36 IP:220.140.xxx.xxx 未訂閱
你好我現在再作依個專題紅綠燈~~~但我自己困惑了很久寫不出來~~~所以 希望能幫我寫一個紅綠燈家閃黃燈的程式~~~可以ㄇ~~~我是使用89c51的IC 希望有哪位會寫可以幫我~~~
ttneurpffnt
一般會員


發表:1
回覆:6
積分:1
註冊:2004-08-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-12-28 23:40:55 IP:218.165.xxx.xxx 未訂閱
你是說要寫紅綠燈在加上讓黃燈可以閃爍嗎....我記得我書上有看過喔!
91402035
一般會員


發表:0
回覆:6
積分:1
註冊:2004-12-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-01-03 01:22:18 IP:218.171.xxx.xxx 未訂閱
引言: 你是說要寫紅綠燈在加上讓黃燈可以閃爍嗎....我記得我書上有看過喔!
謝謝你回應我~~~我可以請教你ㄇ??你是再哪一本書看到的ㄇ??因為閃紅綠燈的程式不是應該要跟倒數計時的程式有連載一起ㄇ???可是如果寫出紅綠燈可是我的倒數就不會寫啦!!
91402035
一般會員


發表:0
回覆:6
積分:1
註冊:2004-12-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-01-03 01:26:16 IP:218.171.xxx.xxx 未訂閱
引言: 你是說要寫紅綠燈在加上讓黃燈可以閃爍嗎....我記得我書上有看過喔!
ORG 0000H JMP START START: MOV P2,#11011110B MOV R4,#150 CALL DELAY MOV R3,#10 FLASH1: CPL A MOV R4,#10 CALL DELAY DJNZ R3,FLASH1 MOV P2,#11011101B MOV R4,#30 CALL DELAY MOV P2,#11110011B MOV R4,#150 CALL DELAY MOV R3,#10 FLASH2: CPL A MOV R4,#10 CALL DELAY DJNZ R3,FLASH2 MOV P2,#11101011B MOV R4,#30 CALL DELAY JMP START DELAY: MOV R6,#250 DEL1: MOV R7,#200 DEL2: DJNZ R7,DEL2 DJNZ R6,DEL1 DJNZ R4,DELAY RET END 這是我的程式你可以幫我看一下ㄇ??謝謝你
ttneurpffnt
一般會員


發表:1
回覆:6
積分:1
註冊:2004-08-16

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-01-03 01:28:59 IP:218.165.xxx.xxx 未訂閱
你是要寫出紅綠燈,而到黃燈時可以閃爍的嗎? 有要加上七段顯示嗎? 我這次專題也才把七段顯示搞好而已...
ttneurpffnt
一般會員


發表:1
回覆:6
積分:1
註冊:2004-08-16

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-01-03 01:33:04 IP:218.165.xxx.xxx 未訂閱
這是紅綠燈加七段顯示器,但是綠燈就跳到黃燈,在來跳到紅燈。黃燈的話,我就沒做閃爍的動作了 org 00h jmp start start: mov p0,#11011110b mov r3,#25h mov r4,#20h loop: mov p1,r3 mov p2,r4 mov r2,#20 call delay mov a,r4 jnz hex_1 mov p0,#11101110b mov a,#05h hex_1: add a,#99h da a mov r4,a mov a,r3 jz start1 add a,#99h da a mov r3,a jmp loop start1: mov p0,#11110011b mov r3,#20h mov r4,#25h loop1: mov p1,r3 mov p2,r4 mov r2,#20 call delay mov a,r3 jnz hex_2 mov p0,#11110101b mov a,#05h hex_2: add a,#99h da a mov r3,a mov a,r4 jz start add a,#99h da a mov r4,a jmp loop1 delay: mov r1,#40 del: mov r0,#248 djnz r0,$ djnz r1,del djnz r2,delay ret end
ttneurpffnt
一般會員


發表:1
回覆:6
積分:1
註冊:2004-08-16

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-01-03 01:51:58 IP:218.165.xxx.xxx 未訂閱
ORG 0000H JMP START START: MOV P2,#11011110B MOV R4,#150 CALL DELAY MOV R3,#10 FLASH1: MOV P2,#11011101B MOV R4,#5 CALL DELAY MOV P2,#11011111B MOV R4,#5 CALL DELAY DJNZ R3,FLASH1 MOV P2,#11110011B MOV R4,#150 CALL DELAY MOV R3,#10 FLASH2: MOV P2,#11101011B MOV R4,#5 CALL DELAY MOV P2,#11111011B MOV R4,#5 CALL DELAY DJNZ R3,FLASH2 JMP START DELAY: MOV R6,#40 DEL1: MOV R7,#150 DJNZ R7,$ DJNZ R6,DEL1 DJNZ R4,DELAY RET END 這是顯示紅燈跟綠燈,等綠燈延時完,就跳至黃燈,而黃燈會閃爍,在來兩者就對調嘍!如果要接上七段顯示的話在整合之前的程式就好了喔!....
91402035
一般會員


發表:0
回覆:6
積分:1
註冊:2004-12-28

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-01-03 23:14:02 IP:218.171.xxx.xxx 未訂閱
引言: ORG 0000H JMP START START: MOV P2,#11011110B MOV R4,#150 CALL DELAY MOV R3,#10 FLASH1: MOV P2,#11011101B MOV R4,#5 CALL DELAY MOV P2,#11011111B MOV R4,#5 CALL DELAY DJNZ R3,FLASH1 MOV P2,#11110011B MOV R4,#150 CALL DELAY MOV R3,#10 FLASH2: MOV P2,#11101011B MOV R4,#5 CALL DELAY MOV P2,#11111011B MOV R4,#5 CALL DELAY DJNZ R3,FLASH2 JMP START DELAY: MOV R6,#40 DEL1: MOV R7,#150 DJNZ R7,$ DJNZ R6,DEL1 DJNZ R4,DELAY RET END 這是顯示紅燈跟綠燈,等綠燈延時完,就跳至黃燈,而黃燈會閃爍,在來兩者就對調嘍!如果要接上七段顯示的話在整合之前的程式就好了喔!....
那我先去試看看!!!謝謝你了歐!!!很感謝妳幫我這一個忙!!謝謝你歐!!
91402035
一般會員


發表:0
回覆:6
積分:1
註冊:2004-12-28

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-01-05 00:42:03 IP:220.140.xxx.xxx 未訂閱
[/quote]對不起歐~~~我那天拜託你的阿~~~是可以出來啦~~~可是我好像把動作順序沒有跟你說清楚ㄟ~~~對不起~~~我想做的是跟陸上的紅綠燈依樣~~~正常時~~綠燈亮會先倒數8秒~~~在跳黃登~~延遲一下~~再跳紅燈~~然後另一般~~有一樣~~但是沒有工作時~~把開關沏過去他會閃黃登~~~一秒閃依下 我的p2.0是接綠的p2.1黃的p2.2紅的p2.3綠的2.4接黃的p2.5紅的蛋七段我還沒有接~~~因為我忘了接腳怎麼算了~~~對不起~~~所以順便想要問你~~~可以ㄇ?? 對不起依職麻煩你~~~真的很對不起~~~
91402035
一般會員


發表:0
回覆:6
積分:1
註冊:2004-12-28

發送簡訊給我
#16 引用回覆 回覆 發表時間:2005-01-05 23:52:17 IP:218.171.xxx.xxx 未訂閱
[/quote]對不起歐~~~那我昨天問你的可以ㄇ??
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#17 引用回覆 回覆 發表時間:2005-01-06 00:40:42 IP:61.62.xxx.xxx 未訂閱
91402035 你好,這是別人發問的問題 如果你有這類的疑問,請另開主題發問 發問前,請閱讀本站規定…以維自身權益
系統時間:2024-04-29 8:06:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!