实验2利用定时器T0中断延时.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验2利用定时器T0中断延时

实验2 定时器T0中断 实验目的 掌握定时器相关寄存器的配置,以及定时时间的计算等 实验内容 定时器中断控制P1.0口输出(实现LED的亮灭),在Proteus界面观察。 实验步骤 1、在Keil开发环境下建立一个工程,命名为‘定时器中断’,然后选择存储路径进行文件保存。 2、程序的编写, a.定时常数的确定 定时器/计数器的输入脉冲周期与机器周期一致, 为振荡频率的1/12。本实验中时钟频率为12 MHZ,现采用中断方法来实现0.5秒延时,选用定时器T0来完成。 (用T0计时器不能直接实现0.5S的延时,实验可以通过中断延时0.05秒,然后进行10次中断后,实现LED的亮灭) 时间常数可按下述方法确定: 机器周期 12÷晶振频率 12/ 12×106 1us 设计数初值为X,则(216-X)×1×10-6 0.05,可求得X,然后将X 化为十六进制则X 3CB0H,故初始值为TH1 3CH,TL1 B0H b.初始化程序 包括定时器初始化和中断系统初始化,主要是对IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。 c.设计中断服务程序和主程序 中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。 d.编译代码: ORG 0000H SJMP Main ORG 000BH AJMP TT0 ;定时器T0的中断服务程序入口地址 ORG 0030H Main : MOV TMOD , ,定时器T0工作在方式1 CLR TR0 CLR TF0 MOV TH0,#60 ; 65536-50000 延时5ms的初值 MOV TL0,#176 MOV R7,#10 ;循环10次,5*10 50ms SETB P1.0 MOV IE, ;允许T0中断 SETB TR0 ;启动定时器T0 SETB EA ;打开中断系统 Loop: SJMP Loop TT0 : DJNZ R7,Next ; CPL P1.0 ;取反p1.0 MOV R7,#10 ;重置循环次数初值 Next: CLR TR0 ; 关闭定时器 MOV TH0,#60 ;重写定时5ms的初值 MOV TL0,#176 SETB TR0 ;启动定时器 RETI 3、搭建Proteus仿真平台,仿真平台如实验1中平台一致。 4、程序下载调试,编译完成后生成HEX文件进行下载调试。 5、附注:定时器还常用方式0和方式2,方式2 为自动重装计数初值的8位定时器,主要用于串行通信中波特率的产生和短时精确定时(因为不必软件重装初值所以更精确)。 6、实验还可以借助Proteus软件中的可视化工具进行观察,本实验可以将LED灯换成示波器来观察P1.0口的波形输出情况。 a.删除原理图中的LED以及与之相连的电阻、电源器件;并在图中加入开关(关键词“BUTTON”)等器件,将上电自动复位转变为手动复位。 b.在绘图工具栏点击按钮,然后选择示波器按如图2-1方式连接。 图2-1 示波器连接图 c、然后如前所叙述的步骤下载程序后运行,系统自动弹出示波器界面,通过调节示波器上按钮可以调节脉冲在界面的显示效果。也可以定量检验定时值。 图2-2 示波器应用

您可能关注的文档

文档评论(0)

zilaiye + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档