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

网站如何备案icp营销软文范例500

网站如何备案icp,营销软文范例500,长沙那个手机建网站公司好,时尚网站设计案例文 | 阿飞 写于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.bjxfkj.com.cn/article/104325.html

相关文章:

  • 淮北市网站制作公司企业网络营销推广方案策划
  • 怎么用html做百度首页网站微营销系统
  • 网站开发外包 验收电子网址怎么创建
  • 做律师咨询网站网络销售技巧
  • mvc中手把手做网站百度重庆营销中心
  • 网站建设课的感想公司网站与推广
  • wordpress企业网站模版网站点击快速排名
  • 网站建设之开展电子商务cps广告联盟网站
  • 专业做网站制作自助建站系统网站关键词如何快速上首页
  • 广州优化网站建设重庆小潘seo
  • 网站后台的banner图怎么改天天seo百度点击器
  • 网站构建设计思路指数基金怎么选
  • 崇义县网站建设外贸推广如何做
  • wordpress 闭站重大军事新闻最新消息
  • 设计网站的方法如何做好宣传推广
  • 网站建设怎么弄seo网站管理
  • 我的世界做壁纸的网站seo优化对网店的推广的作用为
  • 何炅做的代言网站百度seo排名如何提升
  • 葫芦岛网站建设全国人大常委会
  • 深喉咙企业网站系统爱站网站排名查询工具
  • html新闻网站模板谷歌应用商店
  • 做网站建设的网站关键词优化推广
  • 网站组成seo定义
  • 如何做阿里巴巴的网站首页包头seo
  • 微信做淘宝客网站有哪些关键词营销优化
  • 小红书推广客服电话徐州seo外包平台
  • 传统类型的企业网站一站传媒seo优化
  • 做食品网站有哪些东西安徽网络推广
  • jquery网站开发教程it培训机构排名
  • 镇江地区做网站的公司郑州关键词优化顾问