T0定时、T1计数,协作定时
来源:互联网 发布:软件销售计划书 编辑:程序博客网 时间:2024/05/17 03:57
MCS—51单片机定时/计数器实验 编程 求程序
编程要求:
1.在P1.0引脚接一个发光二极管LED,点亮两秒,熄灭一秒,周而复始。
2.用T0作为定时器,T1作为T0溢出的计数器,完成延时2秒和1秒的任务。
图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/5ae768514c716359843524b4.html
悬赏分:20 - 解决时间:2010-5-29 09:24
;---------------------------------
最佳答案:
按照图示,应该用P1.7向T1送入计数脉冲。
先用T0定时250us,到时即输出一个脉冲,送到T1。
T1应使用计数方式1工作,收到4000个,即达到了1s。
下列程序,在PROTEUS中仿真通过
ORG 0000H
JMP START
ORG 000BH
JMP T0_INT
ORG 001BH
JMP T1_INT
ORG 0030H
START:MOV SP,#60H
MOV TMOD,#52H ;T1计数方式1; T0定时方式2
MOV TH0, #(256-250) ;T0定时
MOV TL0, #(256-250) ;
SETB TR0;
MOV TH1, #(65536-4000) / 256 ;T1计数4000
MOV TL1, #(65536-4000) MOD 256 ;即1s
SETB TR1;
SETB ET0;
SETB ET1;
SETB EA;
MOV R2, #3
WAIT: SJMP WAIT ;等待中断
;----------------------------------
T0_INT: ;T0定时250us,方式2,故不用重送初值
CLR P1.7 ;向T1送计数脉冲
NOP
SETB P1.7
RETI
;----------------------------------
T1_INT: ;每当收到4000个脉冲(即1s)中断一次
MOV TL1, #(65536-4000) MOD 256 ;重新送入初始值
MOV TH1, #(65536-4000)/256 ;T1计数4000
CLR P1.0
DJNZ R2, T1_END
SETB P1.0
MOV R2, #3
T1_END:
RETI
;----------------------------------
END
回答者: 朝酒晚舞8031
原题网址:http://zhidao.baidu.com/question/155805632.html?si=1
;----------------------------------
这篇答案,是网友“朝酒晚舞8031”写的,做而论道非常欣赏,观点不谋而合。
征得他同意后,才稍加修改,发表在此处。
- T0定时、T1计数,协作定时
- 3、SONIX单片机T0中断定时
- ICCAVR编程Atmega128规则之计数/定时器T1的使用 溢出中断 定时
- 利用8031的定时/计数器T1对外部事件进行计数
- 利用8031的定时/计数器T1对外部事件进行计数
- 利用T0定时器定时 100ms,每当定时时间到就使 P1.7 求反
- T0 T1 DPTR 的赋值
- ISO7816 传输协议 T0 T1
- ISO7816 传输协议 T0 T1
- T0外部计数输入
- T0外部计数输入
- T0外部计数输入
- 单片机 计数/定时 中断实验
- [Linux驱动入门]定时计数
- 单片机定时/计数工作方式
- 定时
- 定时
- 定时
- Android常用控件之ProgressBar系列
- 使用定时器1以方式0产生周期为500us的方波连续脉冲
- 用AT89C51单片机设计一个秒表:00.0~99.9
- 三层登录——VB.NET版
- setNeedsDisplay
- T0定时、T1计数,协作定时
- 单片机编程:键控定时灯
- 重新敲一遍代码,胜过Ctrl+C和Ctrl+V
- 电影《铁血江桥》在鹤城拍摄
- 江桥抭战和义勇军进行曲
- 浅析Java中CountDownLatch用法
- Knight Moves hdu1372
- 中国碉堡
- 单片机LED数码电路和C程序