利用定时/计数器产生定时时钟,由 P1 口控制 8 个指示灯。
编写程序,使8个指示灯依次轮流点亮,每个灯亮 1 秒,每个灯闪亮频率为 5 次/秒。
补充说明:那个灯亮 1 秒的时候,是闪烁 5 次。谢谢啊,帮个忙。
悬赏分:200 - 解决时间:2010-1-17 04:36
;--------------------------------------------------------------------------
最佳答案:
闪烁的流水灯,每个灯闪亮 1 秒,闪亮频率为 5 次/秒
下列程序,在PROTEUS中仿真通过。
;-------------------------------------
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0030H
MAIN:
MOV SP, #7FH
MOV TMOD,#01H
MOV TL0, #LOW(65536-50000)
MOV TH0, #HIGH(65536-50000)
SETB TR0
MOV IE, #82H
MOV R2, #2
MOV R3, #10
MOV R4, #0
M_LOOP:
LJMP M_LOOP ;等待中断,一切闪动、移位,都在中断里面解决
;----------------------------------------------------------------
T0_INT: ;50ms执行一次
MOV TL0, #LOW(65536-50000)
MOV TH0, #HIGH(65536-50000)
DJNZ R2, T0_END
MOV R2, #2 ;加大此数字,如改为8,可降低速度,便于观察.
INC R4
DJNZ R3, FLASH ;100ms减一次一.
MOV R3, #10
INC R6 ;1s加一次一
FLASH:
MOV A, R6
ANL A, #7
MOV R5, A ;0~7, 1s换一次位.
INC R5
MOV A, R4
MOV C, ACC.0
MOV A, #255
MOV P1, A ;关显示
T0_LOOP:
RLC A
DJNZ R5, T0_LOOP
MOV P1, A
T0_END:
RETI
END
;------------------------------------------------------------
回答者: 做而论道 - 十二级 2010-1-16 18:34
提问者对于答案的评价:实在是太感谢您了,以后有什么问题能请教下你么?
原文网址:http://zhidao.baidu.com/question/133607218.html
;------------------------------------------------------------