版權宣言:
此為航電二乙 科南大大、承翰大大、球爺大大所提供....
※版權所有 翻印必究※
此程式僅提供期末考試作弊之利用....切勿拿去做商業用途

---------------------------------------------------------------------
;P99 練習題:兩霹靂燈方向為相反移動
;
;.構想顯示方式:
;	10000001
;	01000010
;	00100100
;	00011000
;	00100100
;	01000010
;	10000001
;
;想法:把R1放入10000000,把R2放入00000001,個別右旋及左旋後做OR閘運算
;
;程式開始:

	MOV	R1,#10000000B
	MOV	R2,#00000001B
	MOV	A,R2
	ORL	A,R1
	MOV	P0,A
	ACALL	DELAY100MS
	
START:
	;把R1右旋 保存R1
	MOV	A,R1
	RR	A
	MOV	R1,A

	;把R2左旋 保存R2
	MOV	A,R2	
	RL	A
	MOV	R2,A
	
	;對R1、R2做OR閘運算輸出
	ORL	A,R1
	MOV	P0,A
	ACALL	DELAY100MS	
	SJMP	START

;100ms 延遲副程式:
DELAY100MS:
	PUSH	ACC
	MOV	A,R0
	PUSH	ACC
	MOV	A,R1
	PUSH	ACC
	MOV	R0,#194
DELAY100ms_1:
	MOV	R1,#255
	DJNZ	R1,$
	DJNZ	R0,DELAY100ms_1
	POP	ACC
	MOV	R1,A
	POP	ACC
	MOV	R0,A
	POP	ACC
      RET

END

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Intel-8051 Macro Assembler - Version 1.00

PASS1.....
PASS2.....
Lines Assembled : 59      Assembly Errors : 0
---------------------------------------------------------------------
;P99 練習題:由左至右每次移入一顆LED燈,停在其未滿的位置,若全滿就從最右邊由左至右一出一顆LED燈
;
;構想顯示方式:
;LOOP1:	10000000
;	11000000
;	11100000
;	11110000
;	11111000
;	11111100
;	11111110
;	11111111
;LOOP2:	01111111
;	00111111
;	00011111
;	00001111
;	00000111
;	00000011
;	00000001
;	00000000
;
;想法:把R1放入10000000,對R1做右旋後,把其值和R1做OR閘運算,保存其結果至R1,連續八次;把R2放入01111111,對R2做右旋後,把其值和R2做AND閘運算,保存其結果至R2,連續八次
;
;程式開始:


START:
	MOV	R3,#8
	MOV	R1,#10000000B
	MOV	P0,R1
	ACALL	DELAY100MS		

LOOP1:
	MOV	A,R1
	RR	A
	ORL	A,R1
	MOV	P0,A
	MOV	R1,A
	ACALL	DELAY100MS	
	DJNZ	R3,LOOP1

	MOV	R3,#8
	MOV	R2,#01111111B	
	MOV	P0,R2
	ACALL	DELAY100MS		

LOOP2:

	MOV	A,R2
	RR	A
	ANL	A,R2
	MOV	P0,A
	MOV	R2,A
	ACALL	DELAY100MS	
	DJNZ	R3,LOOP2

	SJMP	START

;100ms 延遲副程式:
DELAY100MS:
	PUSH	ACC
	MOV	A,R0
	PUSH	ACC
	MOV	A,R1
	PUSH	ACC
	MOV	R0,#194
DELAY100ms_1:
	MOV	R1,#255
	DJNZ	R1,$
	DJNZ	R0,DELAY100ms_1
	POP	ACC
	MOV	R1,A
	POP	ACC
	MOV	R0,A
	POP	ACC
        RET

END

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Intel-8051 Macro Assembler - Version 1.00

PASS1.....
PASS2.....
Lines Assembled : 78      Assembly Errors : 0
---------------------------------------------------------------------
;P99 練習題:奇偶LED交互閃爍顯示
;
;.構想顯示方式:
;	01010101
;	10101010
;
;想法:把A放入01010101,對暫存器做右旋動作
;
;程式開始:


	MOV	A,#01010101B
START:	
	MOV	P0,A
	RR	A
	ACALL	DELAY100MS	
	SJMP	START

;100ms 延遲副程式:
DELAY100MS:
	PUSH	ACC
	MOV	A,R0
	PUSH	ACC
	MOV	A,R1
	PUSH	ACC
	MOV	R0,#194
DELAY100ms_1:
	MOV	R1,#255
	DJNZ	R1,$
	DJNZ	R0,DELAY100ms_1
	POP	ACC
	MOV	R1,A
	POP	ACC
	MOV	R0,A
	POP	ACC
      RET

END

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Intel-8051 Macro Assembler - Version 1.00

PASS1.....
PASS2.....
Lines Assembled : 38      Assembly Errors : 0
---------------------------------------------------------------------
arrow
arrow
    全站熱搜

    swszg 發表在 痞客邦 留言(1) 人氣()