当前位置:文档之家› 单片机实验三 定时器实验

单片机实验三 定时器实验

实验三:定时器实验
一、实验要求
实验目的:了解MCS-51单片机中定时器/计数器的基本结构、工作原理和工作方式,掌握工作在定时器模式下的编程方法。

实验内容:设单片机的晶振频率f=12Mhz,使用T0定时100ms,在p1.2引脚产生周期为200ms的方波信号,并通过示波器观察P1.2的输出波形。

二、实验原理
定时器和外部计数方式选择位C/T
C/T=0为定时器方式,采用晶振频率的1/12作为计数器的计数脉冲,几对及其周期进行计数。

若选择12MHz晶振,则定时器的计数频率为1MHz。

C/T=1为计数方式,采用外部引脚的输入脉冲作为计数脉冲。

当T0或T1输入发生由高到低的负跳变时,计数器加1,其最高计数频率为晶振频率的1/24。

工作方式2
当TMOD的M1、M0未为10是,计时器/计数器工作在工作方式2.当方式0、方式1用于循环重复定时计数时,计数器全部为0,下一次计数还得重新装入计数初值,这样编程麻烦,而且影响定时时间的精度。

方式2是能自动重新装入计数初值的8位计数器,可以解决这个问题。

方式2把16位计数器分成两个8为的计数器,低8为作为计数器使用,高8位用以保存计数初值,当低8位计数产生溢出是,将TF0或TF1置1,同时又将保存在高8位的计数初值重新自动装入低8位计数器汇总,又继续计数,循环重复。

计数初值X=2^8-t*f osc/12;其中t为定时时间。

初试化编程是,TH0和TL0(或TH1和TL1)都装入次X值。

方式2适用于作较为精确的脉冲信号发生器,尤其适用于串口波特率发生器。

三、程序设计
1、程序流程图
图 1 定时器实验流程图
2、程序代码
ORG 0100H
MAIN: MOV A, 0H
MOV TMOD, #61H ;外部引脚脉冲计数,工作方式2
MOV TL1, #0FFH
MOV TH1, #0FFH ;计数1次,以CP1.0为脉冲连接计数器
CPL P1.0
SETB TR1;
LP1: CPL P1.2
LP2: MOV TL0, #0B0H
MOV TH0, #3CH ;一次计数50ms,P1.0的脉冲周期为100ms
SETB TR0
LP3: JBC TF0, LP4
SJMP LP3
LP4: CPL P1.0
JBC TF1, LP1
SJMP LP2
END
四、程序验证
1、在Proteus中连接电路图如下:
图 2 定时器实验电路图
2、将程序导入A T89C52
3、按键观察电路中示波器波形:
图 3 示波器上显示的周期为200ms的方波示波器1格为50ms,故产生的波形周期为200ms。

结论:程序符合实验要求。

五、实验总结
1、T0为内部计数,T1为外部计数,因此T1与T20必须连在一起。

2、实物连接的时候需加晶振、电源等外部电路。

仿真时这些部分可忽略。

3、工作方式2适用于做比较精确的脉冲信号发生器。

相关主题