单片机流水灯闪烁问题
2016-01-25 11:56
330 查看
呵呵,又是一个流水灯的问题 !要求如下:
利用51单片机的定时器/计数器产生2秒定时,每到2秒时就更换指示灯闪烁;
指示灯闪烁频率为0.2秒,要用延时程序。
----
分析:
又要用定时器,又要用延时程序,这有些浪费资源。
况且,还要求做到它们的时间是整数倍的关系,这也是很难弄准确的。
其实,多个时间控制的问题,只用一个定时器,就都可以解决。
;假设在 P0 口外接 8 个 LED,P0 输出低电平时发光。
;下面程序,已经通过了实验,符合题目的流水灯闪烁要求。
ORG 0000H
LJMP START
ORG 000BH
MOV TH0, #4CH ;50ms@11.0592MHz
CPL F0
JNB F0, END_T0 ;不到100ms就退出.
XRL P0, A ;每隔100ms,有一个LED亮/灭一次.
DJNZ R6, END_T0
MOV R6, #20
RL A
END_T0:
RETI
START:
MOV TMOD, #01H ;T0定时方式1
MOV TH0, #4CH ;50ms@11.0592MHz
MOV IE, #82H ;开T0中断.
MOV R6, #20
MOV A, #1 ;仅有一个LED需要闪烁.
SETB TR0 ;启动T0
SJMP $
END
-----------------
回答者:做而论道 2012-5-16 23:38
题目网址:http://zhidao.baidu.com/question/424348066.html
-----------------
利用51单片机的定时器/计数器产生2秒定时,每到2秒时就更换指示灯闪烁;
指示灯闪烁频率为0.2秒,要用延时程序。
----
分析:
又要用定时器,又要用延时程序,这有些浪费资源。
况且,还要求做到它们的时间是整数倍的关系,这也是很难弄准确的。
其实,多个时间控制的问题,只用一个定时器,就都可以解决。
;假设在 P0 口外接 8 个 LED,P0 输出低电平时发光。
;下面程序,已经通过了实验,符合题目的流水灯闪烁要求。
ORG 0000H
LJMP START
ORG 000BH
MOV TH0, #4CH ;50ms@11.0592MHz
CPL F0
JNB F0, END_T0 ;不到100ms就退出.
XRL P0, A ;每隔100ms,有一个LED亮/灭一次.
DJNZ R6, END_T0
MOV R6, #20
RL A
END_T0:
RETI
START:
MOV TMOD, #01H ;T0定时方式1
MOV TH0, #4CH ;50ms@11.0592MHz
MOV IE, #82H ;开T0中断.
MOV R6, #20
MOV A, #1 ;仅有一个LED需要闪烁.
SETB TR0 ;启动T0
SJMP $
END
-----------------
回答者:做而论道 2012-5-16 23:38
题目网址:http://zhidao.baidu.com/question/424348066.html
-----------------
相关文章推荐
- 【Leetcode】67. Add Binary
- 8086汇编语言编程--大小写转换、统计个数、显示时还要求发音
- 字典和集合的常用用法
- C语言编程:统计输入的各字符的个数
- 用 LCD1602 显示的时钟
- 溢出的概念和判断方法
- C语言编程:扑克牌魔术
- 80x86汇编编程:键入两个8进制数字,相加后以16进制输出
- Python -- collection 系列
- 80x86汇编编程:在输入的字符串中查找关键字
- 80x86汇编编程:实现十进制或十六进制向二进制的转换
- PC 机中的 CMOS
- C语言编程,对字符串进行处理
- $modal
- BCD 码的应用
- 80x86汇编编程两题
- 在WPF中使用PlaneProjection模拟动态3D效果
- 双向流水灯的最简单程序
- CRC 的应用
- 彩虹文字--RainbowText