[示例代码] T0定时器中断模式实验

[复制链接]
4830|2
 楼主| cyclefly 发表于 2021-10-26 17:46 | 显示全部楼层 |阅读模式
本帖最后由 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寄存寄存器的说明如下:
463876177cd6ae4200.png

217886177cda92c3b1.png
746646177cdbed1b18.png
599966177cdd244c79.png
126826177cdea7827d.png
    817466177ce084486e.png
984636177ce289a713.png

169096177ce4487c99.png

929496177ce5572b8c.png



单片小菜 发表于 2021-10-27 10:54 | 显示全部楼层
代码写的很工整,不错的,但是不太理解你的问题。
自己造声卡 发表于 2021-10-28 08:51 | 显示全部楼层
楼主的代码写的很工整,不错的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

106

主题

569

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部