当前位置: 首页 > news >正文

网站如何备案icp深圳网络整合营销公司

网站如何备案icp,深圳网络整合营销公司,wordpress运行加速,网站seo外包技术资源文 | 阿飞 写于2020-1-25 今天我们开始讲解定时/计数器的基础知识。 从名称上就可以看出来,这部分内容有两个主要功能模式:定时模式和计数模式。 工作在定时模式时,每经过一个机械周期,内部的16位计数寄存器数值就会加1&#xff0…
54a2f1895e13838c09e2980a6feda963.png

文 | 阿飞

写于2020-1-25

今天我们开始讲解定时/计数器的基础知识。

从名称上就可以看出来,这部分内容有两个主要功能模式:定时模式和计数模式。

工作在定时模式时,每经过一个机械周期,内部的16位计数寄存器数值就会加1,寄存器装满时就会溢出,对应的标志位就会被置高,计时会从我们存放的初值开始计时,一直到16位的寄存器存满时产生溢出,因此在最大计时范围内,我们只要计算出需要存放的初值,就可以准确的产生任意时间的定时。

工作在计数模式时,对应的计数器输入引脚每产生一个脉冲,计数寄存器就会加1。

使用定时/计数器步骤主要分为以下几步:

  • 启动定时/计数器(通过TCON寄存器控制)

  • 设置定时/计数器工作模式(通过TMOD寄存器控制)

  • 查询定时/计数器是否溢出(查看TCON中TF标志位)

这节课我们主要讲解一下定时器的基础知识:

8fbc0213dfe8254dc2615123125eb965.png

我们先来看TCON寄存器高四位的使用:以定时器0为例,图中可以看到,TR0是定时器0的运行控制位,在TOMD.3 = 0的情况下(这也是我们常用的):当TR0 = 1时,定时器0会开始计时,TR0 = 0时,定时器0会禁止计时,因此,在启用定时器时,需要将TR0置高,“TR0 = 1”。TF0是定时器0的溢出标志,图中也可以看到,定时器0计满时,此标志位会被置高,在打开了定时器0中断的情况下,标志位会在响应中断后被硬件清0,也可以在程序的循环扫描中通过程序查询标志位并清0。(定时器1也是类似的)

再来看一下TMOD寄存器的使用:

57616969b55bec4520c79ad0996f5104.png

从图中可以看到,TMOD寄存器是不可位寻址的,因此在使用时只能对此寄存器进行整体赋值(例:TMOD = 0x01;)图中的高四位(4~7)是定时器1的控制位,低四位(0~3)是定时器0的控制位,以下介绍仍然以定时器0为例(定时器1也是类似的):

28f1ff353c57d6a6c65db7ab8aa59782.png

GATE(TMOD.3)控制定时器0的打开方式(前边讲过的,这里我们一般配置为0,不做太多讲解)

c0ac397eef38881dd2d1341f73928e64.png

C/T(TMOD.2)用来控制定时/计数器是工作在定时模式还是计数模式(当TMOD.2 = 1时工作在计数模式,TMOD.2 = 0时工作在定时模式)

040cc91dc32fb8fc59657434992eef3f.png

M1(TMOD.1)与M0(TMOD.0)共同控制定时器0的定时模式,共有4种工作模式(0、1、2、3),这里我们常用的是模式1(M1 = 0、M0 = 1时),此时定时器的高8位与低8位全用,溢出值为65535,因此,当使用定时器0时,TMOD寄存器应配置为:“TMOD = 0x01; ”。(其它三个模式如果用到了会再讲,大家也可以去问一下百度)

现在就只剩下了最后一步:存放定时器初值,因为51单片机定时器默认为12分频的,因此,单片机的机械频率 = 晶振频率 / 12,机械周期 = 12 / 晶振频率,外接的晶振是11.0592MHz的频率,因此可计算出机械周期 = 12 / 11.0592 = 1.085(us)。也就是说,每隔1.085us,计数值会加1,我们只要用目标时间除以1.085us就是需要计数多少次,再用溢出值(65535)减去计数次数就得到了我们的需要存放的初值,我举个栗子:假设计时5ms, 5ms / 1.085us = 4608 ;65535 - 4608 = 60927;这个60927就是我们需要存放的初值,把高8位存放到TH0中,低8位存放到TL0中就可以啦,因此:TH0 = 0xed; TL0 = 0x14; 每次计时结束后进行下次计时时,初值会被清零,因此我们需要在查询TF标志位时重装初值。

好的,现在用程序来实现以下以上讲到的内容(led间隔500ms闪烁,假设LED直接由P1端口控制):

b4ecb86eeeea94e40acb2dc73110e5f5.png

接下来我们把定时器与中断配合起来使用(依然以定时器0为例):

e985b69c94b2cd7ca322a0d1e8bb6981.png

a0a8502477faab975c7d60ec3daa85a7.png

结合这两张图与上次讲的内容我们知道,打开定时器0中断时需要配置:“ EA = 1;  ET0 = 1; ”

配置好以后,每次定时器计满溢出时,程序会响应对应的中断,前边讲的,当打开了定时器对应的中断时,每次定时满响应了溢出中断以后,溢出标志位TF会被硬件清零,因此,我们就不需要在程序中编写 “扫描TF状态” 与 “清零TF标志” 的操作。

66ed8f0c995e5cbbe50fc0aaacaac14d.png

编写中断服务函数时需要在函数名后边加上中断编号:interrupt 1(定时器0),别忘了在中断服务函数中重放初值哦

在这里要强调一点:在中断服务函数里边不要放延时函数和死循环,也很好理解的,假如说我定时2ms,定时时间到了以后会执行中断服务函数,同时定时器会重新计时,当这里有延时函数与死循环时很容易造成这次中断服务函数还没有执行完,下一次又该开始了,程序很容易会跑飞的,因此,加了松手检测与按键消抖的按键扫描函数一定不能放里边

好的,接下来我们用程序来实现一下(与上一程序功能相同的):

9edb311dbbf457b742d11a4c906615ef.png

小练习

(1)使用定时器控制数码管任意一位显示数值0~9(每隔1秒数值加1)。

(2)把我们将机械按键时写的那个用延时函数实现的秒表程序改为定时器计时。

▼ 更多蓝桥杯文章 ▼ 蓝桥杯·单片机竞赛备赛之外部中断 蓝桥杯·单片机竞赛备赛之机械按键 1f69bdd24bf456519a17a1bd15385248.png fa0d74632b4b7e9d570ccfa479579050.png 扫码入群 扫码添加管理员微信

加入“电子产品世界”粉丝交流群

↓↓↓↓点击,查看更多新闻

http://www.15wanjia.com/news/50314.html

相关文章:

  • 手机站是什么意思搜索引擎优化管理实验报告
  • 常德网站建设要点潮州网络推广
  • 有做盆景的网站扬州整站seo
  • 手机wap网站开发软文撰写公司
  • 西安优秀的集团门户网站建设公司企业网站建站模板
  • 做签名照的网站有品质的网站推广公司
  • 17网站一起做网店睡衣批发武汉seo网站优化运营
  • iis 如何新建网站上海市人大常委会
  • 茶网站建设宗旨北京网站建设公司哪家好
  • 中国做视频网站有哪些内容seo代码优化工具
  • 设计logo的手机软件免费外贸seo推广
  • 湖南岳阳网站开发网络公司市场营销策划包括哪些内容
  • 快速做网站搜索引擎优化的核心及内容
  • 旧家电回收网站开发网站seo收录
  • 网站怎么做能赚钱吗seoul是啥意思
  • 游戏推广代理保定百度seo排名
  • 济南协会网站设计团队广告公司品牌营销推广
  • 什么网站专门做外围的站长工具使用方法
  • 做网站备案需要什么中国站长网站
  • 网站建设需要什么教材长沙seo培训班
  • 吉林建站西安百度推广联系方式
  • 学做网站需要学那些程序互联网营销师证书是国家认可的吗
  • 注销网站 取消接入百度官网首页
  • 如何建设机关用房管理系统网站搜索引擎平台有哪些软件
  • 网站界面设计案例分析百度云网盘网页版登录
  • 网站首页新增悬浮小窗怎么做聊石家庄seo
  • 文化宣传 加强网站建设 创办网站太原关键词排名提升
  • 网站建设要买哪些软件千锋教育培训机构地址
  • 做淘客网站用什么服务器好手机百度网页版入口
  • 网站用户体验诊断seo快速排名软件app