全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1491
推到 Plurk!
推到 Facebook!

該在哪個地方加入七段顯示器的功能??

尚未結案
chennehc000
一般會員


發表:1
回覆:0
積分:0
註冊:2008-06-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-06-07 17:02:36 IP:118.171.xxx.xxx 訂閱
 以下是一個顯示紅燈跟綠燈,等綠燈延時完,就跳至黃燈,黃燈閃爍的程式
請問我該再哪邊加入七段顯示器...使它會在綠燈亮時倒數10秒..在跳黃燈...黃登延遲一下..在跳紅燈
麻煩各位先進指導....感謝
ORG 0000H
JMP START
START:
MOV P2,#11011110B
MOV R4,#150
CALL DELAY
MOV R3,#10
LOOP1:
MOV P2,#11011101B
MOV R4,#5
CALL DELAY
MOV P2,#11011111B
MOV R4,#5
CALL DELAY
DJNZ R3,LOOP1
MOV P2,#11110011B
MOV R4,#150
CALL DELAY
MOV R3,#10
LOOP2:
MOV P2,#11101011B
MOV R4,#5
CALL DELAY
MOV P2,#11111011B
MOV R4,#5
CALL DELAY
DJNZ R3,LOOP2
JMP START
DELAY:
MOV R6,#40
DEL1:
MOV R7,#150
DJNZ R7,$
DJNZ R6,DEL1
DJNZ R4,DELAY
RET
END
penguin5
資深會員


發表:116
回覆:317
積分:431
註冊:2004-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-06-20 22:04:14 IP:59.121.xxx.xxx 訂閱
以下的寫法是最笨的方法,但是很容易看懂,此程式可以再減化
[code c#]
;
; 共並陽7節LED
;
; 十位數 7節LED接腳定義 P0.0→A P0.1→B P0.2→C P0.3→D P0.4→E P0.5→F P0.6→G
; 個位數 7節LED接腳定義 P1.0→A P1.1→B P1.2→C P1.3→D P1.4→E P1.5→F P1.6→G
;
XR REG P2.0 ; X軸 紅燈
XY REG P2.1 ; X軸 黃燈
XG REG P2.2 ; X軸 綠燈
YR REG P2.3 ; Y軸 紅燈
YY REG P2.4 ; Y軸 黃燈
YG REG P2.5 ; Y軸 綠燈
ORG 0H
MOV P2,#11111111B ;初始化,將XY軸 紅黃綠燈開閉
JMP START
;===============================================================
START:
;===================================================================
; X軸 綠燈 亮 Y軸 紅燈 亮
;======================================================================
MOV P0,#F9H ; 十位數 顯示1 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9
MOV P1,#COH ; 個位數 顯示0 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9

CLR XG ; X軸 綠燈 亮
CLR YR ; Y軸 紅燈 亮
CALL S1 ; 延時一秒
;--------------------------------------------------------
MOV P0,#COH ; 十位數 顯示0 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9
MOV P1,#9OH ; 個位數 顯示9 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9

CLR XG ; X軸 綠燈 亮
CLR YR ; Y軸 紅燈 亮
CALL S1 ; 延時一秒
;--------------------------------------------------------
MOV P0,#COH ; 十位數 顯示0 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9
MOV P1,#8OH ; 個位數 顯示8 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9

CLR XG ; X軸 綠燈 亮
CLR YR ; Y軸 紅燈 亮
CALL S1 ; 延時一秒

;請接下繼續寫7秒6秒5秒4秒3秒2秒1秒
;======================================================================================================
MOV P0,#COH ; 十位數 顯示0 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9
MOV P1,#COH ; 個位數 顯示0 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9
SETB XG ; X軸 綠燈 熄
CLR XY ; X軸 黃燈 亮
MOV R5,#25
CALL DELAY_2 ; 延時 1/4秒
SETB XY ; X軸 黃燈 熄
MOV R5,#25
CALL DELAY_2 ; 延時 1/4秒
CLR XY ; X軸 黃燈 亮
MOV R5,#25
CALL DELAY_2 ; 延時 1/4秒
SETB XY ; X軸 黃燈 熄
;===================================================================
; Y軸 綠燈 亮 X軸 紅燈 亮
;==============================================================================================================
MOV P0,#F9H ; 十位數 顯示1 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9
MOV P1,#COH ; 個位數 顯示0 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9

CLR YG ; Y軸 綠燈 亮
CLR XR ; X軸 紅燈 亮
CALL S1 ; 延時一秒
;請接下繼續寫9秒8秒7秒6秒5秒4秒3秒2秒1秒
;=========================================================================================
MOV P0,#COH ; 十位數 顯示0 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9
MOV P1,#COH ; 個位數 顯示0 ;C0,F9,A4,B0,99,92,82,F8,80,90, 共陽LED 0~9
SETB YG ; Y軸 綠燈 熄
CLR YY ; Y軸 黃燈 亮
MOV R5,#25
CALL DELAY_2 ; 延時 1/4秒
SETB YY ; Y軸 黃燈 熄
MOV R5,#25
CALL DELAY_2 ; 延時 1/4秒
CLR YY ; Y軸 黃燈 亮
MOV R5,#25
CALL DELAY_2 ; 延時 1/4秒
SETB YY ; Y軸 黃燈 熄

JMP START ; 迴旋重新開始
;========================================================
; 延時副程式 (R5)*10MS 1000MS = 1S 1S = 1秒
;========================================================
DELAY_2:
MOV R6,#50
E3: MOV R7,#100
DJNZ R7,$
DJNZ R6,E3
DJNZ R5,DELAY_2
RET
;=================================================================
S1:
MOV R5,#100
CALL DELAY_2 ; 延時 1秒
RET
END

[/code]
編輯記錄
penguin5 重新編輯於 2008-06-20 22:06:18, 註解 無‧
penguin5 重新編輯於 2008-06-20 22:07:35, 註解 無‧
penguin5 重新編輯於 2008-06-20 22:12:13, 註解 無‧
系統時間:2024-05-19 11:39:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!