本帖最后由 cyclefly 于 2021-10-26 17:45 编辑
功能简述: T0定时中断模式的使用,使得数码管从0~9999计数,1秒增加1,当加到 9999时,又从0开始计数。
本实验运用到两个模块,一个是单片机内部功能模块,定时器0(T0),另一个是数码管显示模块。数码管具体特性在此之前已经讲解过,在此不作敷述,T0属于内部模块,不需进行接线操作
T0是一个8位的定时/计数器,当T0寄存器值加到255时,再加1,则会产生溢出,T0寄存器的值返回到0开始重新计数。使用T0定时器,只需配置OPTR一个寄存器,其各个位如图4.1所示。在此重点讲解定时器0的分频器使用,例如我们采用8M频率,T0工作在定时模式下为每个机器周期加1,则定时器每次加1的时间是(1/8M)*4=0.5us。如果此时将预分频器分频比设置成64分频,那么定时器每次加1的时间就是0.5us*64=32us。如果我们需要一个5MS的定时,那么我们需要156个这样的计数。此时我们即可将T0寄存器初始值设为100,当T0数值加到256时正好是156个计数,这样便会产生一个5MS的定时。200个5MS这样的定时就是1S的时间。当T0用于定时中断功能时,关于OPTR寄存寄存器的说明如下:
|