实验2 利用定时器T0中断延时实验2 利用定时器T0中断延时
实验2 定时器T0中断
实验目的
掌握定时器相关寄存器的配置,以及定时时间的计算等
实验内容
定时器中断控制P1.0口输出(实现LED的亮灭),在Proteus界面观察。 实验步骤
1、在Keil开发环境下建立一个工程,命名为‘定时器中断’,然后选择存储路径进行文件保存。
2、程序的编写,
a.定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一致, 为振荡频率的
1/12。本实验中时钟频率为12 MHZ,现采用中断方法来实现0.5秒延时,
选用定时器T0来完成。
(用T...
实验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的亮灭)
时间常数可按下述方法确定:
6 机器周期=12?晶振频率=12/(12×10)=1us
16-6 设计数初值为X,则(2-X)×1×10=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 ,#00000001B ,定时器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,#00000010B ;允许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方式连接。
-1 示波器连接图 图2
c、然后如前所叙述的步骤下载程序后运行,系统自动弹出示波器界面,通过调节示波器上按钮可以调节脉冲在界面的显示效果。也可以定量检验定时值。
图2-2 示波器应用
本文档为【实验2 利用定时器T0中断延时】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。