定时器/计数器实验
一、 实验要求
1、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转.
2、80c51内部定时计数器T0,按计数器模式和方式1 工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1 口驱动LED灯上显示出来。 二、实验目的
1、学习8031内部计数器的使用和编程方法。 2、进一步掌握中断处理程序的编程方法。 三、实验说明
1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器。 2、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
3、内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是6MHZ,本程序工作于方式2,即8位自动重装方式定时器,定时器100us中断一次, 所以定时常数的设置可按以下方法计算:
机器周期=12/6MHZ=2uS (256-定时常数)×2uS=100us
定时常数=206. 然后对100us中断次数计数10000次,就是1秒钟.
4、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 四、实验框图 (1)定时器
(2)计数器
五、实验电路
计数器电路图 定时器电路图 六、 自编程序