8个指示灯轮流点亮,每个灯亮1秒,每个灯闪5次/秒
2016-01-25 11:37
816 查看
利用定时/计数器产生定时时钟,由 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
;------------------------------------------------------------
编写程序,使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
;------------------------------------------------------------
相关文章推荐
- spring4 学习4 spring MVC+mybatis+Mysql
- A/D 转换数据处理程序
- 利用8031的定时/计数器T1对外部事件进行计数
- 求助:使用8031单片机,编一程序......共5个
- 脉冲序列的检测
- 94、QOS区分式服务配置实验之拥塞避免
- 基于51单片机的定时顺序控制器
- 基于 74LS164 的 LED 温度显示 设计
- EditText学习
- 51单片机汇编三字节加法
- [LeetCode] Reverse Words in a String
- 跳台阶问题的变种
- 利用T0定时器定时 100ms,每当定时时间到就使 P1.7 求反
- xUtils简介
- Java IO和Java NIO在文件拷贝上的性能差异分析
- 使用AT89S51单片机,将LED灯亮4s熄2s
- 单片机编程题 -3
- 查看内存状况 Runtime runtime = Runtime.getRuntime();
- javascript产生随机数方法汇总
- 单片机编程题 -2