下载此文档

第6章定时器计数器习题.ppt


文档分类:IT计算机 | 页数:约41页 举报非法文档有奖
1/41
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/41 下载此文档
文档列表 文档介绍
第6章定时器计数器****题
由NordriDesign提供

查询方式参考程序:
MOV TMOD,#01H ;设置T0为方式1
LOOP: MOV TH0,#0FEH ;T0置初出中断请求,同时TH0的内容0FFH送TL0,即TL0恢复初值0FFH。
。。
【例6-4】 当T0()引脚上发生负跳变时,。,如图6-14所示(系统时钟6MHz)。
*
15
基本思想:T0设为方式1计数,初值为FFFFH。当外部计数输入端T0()发生一次负跳变时,T0加1且溢出,溢出标志TF0置“1”,向CPU发出中断请求,此时T0相当于一个负跳沿触发的外部中断源。
进入T0中断程序后,F0标志置“1”,说明T0引脚上已接收过负跳变信号。T1定义为方式2定时。在T0引脚产生一次负跳变后,启动T1每500s产生一次中断,,。由于省去重新装初值指令,所以可产生精确的定时时间。
*
16
*
图6-14 负跳变触发输出一个周期为1ms的方波
17
(1)计算T1的初值
设T1的初值为x,则
(28 − x)  2  10−6 = 5  10−4
x = 28 − 250 = 6 = 06H
(2)程序设计
参考程序:
ORG 0000H ;程序入口
RESET:LJMP MAIN ;跳向主程序MAIN
ORG 000BH ;T0的中断入口
LJMP IT0P ;转T0中断服务程序
ORG 001BH ;T1的中断入口
*
18
LJMP IT1P ;转T1中断服务程序
ORG 0100H ;主程序入口
MAIN: MOV SP,#60H ;设堆栈指针
ACALL PT0M2 ;调用对T0,T1初始化子程序
LOOP: MOV C,F0 ;T0是否产生过中断,若产生
;过,F0置1
JNC LOOP ;T0未产生中断,C=0,则跳
;到LOOP,等待T0中断
SETB ET1 ;允许T1产生定时中断
SETB TR1 ;启动T1
HERE: AJMP HERE
*
19
PT0M2: MOV TMOD,#26H ;对T0,T1初始化,T0方式1
;计数,T1方式2定时
MOV TL0,#0FFH ;T0置初值
MOV TH0,#0FFH
SETB ET0 ;允许T0中断
MOV TL1,#06H ;T1置初值
MOV TH1,#06H
CLR F0 ;把T0已发生中断标志F0清0
SETB EA ;总中断允许
SETB TR0 ;启动T0
RET
*
20
IT0P: CLR TR0 ;T0中断服务程序,停止T0计数
SETB F0 ;把T0引脚接收过负脉冲标志F0置1,
;即接收过负跳变
RETI
IT1P: CPL ;T1中断服务程序,
RETI
程序说明:当单片机复位时,从0000H跳向主程序MAIN处执行程序。其中调用了对T0,T1初始化子程序PT0M2。子程序返回后执行标号LOOP处指令,循环等待T0引脚上负脉冲的到来。由于负脉冲到来的标志位F0的复位初始值为0,所以程序就在标号LOOP处循环等待。
*
21
当T0()脚发生负跳变时,由于T0计数溢出,则跳向T0中断服务子程序。此时停止T0计数,并把T0引脚接收过负脉冲的标志F0置1。
当中断返回时,由于F0已被置1,则程序跳出LOOP处的循环等待。此时执行指令来允许T1中断,并启动T1定时,然后执行“AJMP HERE”指令,循环等待,等待T1的500s定时中断到来。
当T1的500s定时中断产生时,则进入T1的中断服务子程序IT1P,。由于是自动装初值,省去对T1重装初值指令。中断返回后,到“AJMP

第6章定时器计数器习题 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数41
  • 收藏数0 收藏
  • 顶次数0
  • 上传人核辐射
  • 文件大小801 KB
  • 时间2022-08-12