CPU时序的有关知识

振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期)

状态周期2个振荡周期为1个状态周期,用S表示。振荡周期又称S周期或时钟周期。

机器周期:1个机器周期含6个状态周期,12个振荡周期。

指令周期完成1条指令所占用的全部时间,它以机器周期为单位

例如:外接晶振为12MHz时,51单片机相关周期的具体值为:振荡周期=1/12us;状态周期=1/6us;机器周期=1us;指令周期=1~4us;

在学习定时器之前需要明白的

51单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之为定时器/计数器。

定时器/计数器和单片机的CPU是相互独立的。

定时器/计数器工作的过程是自动完成的,不需要CPU的参与。

51单片机中的定时器/计数器是根据机器内部的时钟或者是外部的脉冲信号对寄存器中的数据加1。

有了定时器/计数器之后,可以增加单片机的效率,一些简单的重复加1的工作可以交给定时器/计数器处理。CPU转而处理一些复杂的事情。同时可以实现精确定时作用。

定时/计数器的工作原理

定时/计数器实质上是一个加1计数器。它随着计数器的输入脉冲进行自加1,也就是每来一个脉冲,计数器就自动加1,,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使相应的中断标志位置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。

可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。

51单片机定时器结构

定时/计数器的实质是加1计数器(16位),由高8位低8位两个寄存器THxTLx组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON控制寄存器,控制T0、T1的启动和停止设置溢出标志

定时/计数器的控制

51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式TCON用于控制其启动和中断申请

1、工作方式寄存器TMOD

工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下:

GATE门控位, GATE=0时,用于控制定时器的启动是否受外部中断源信号的影响。只要用软件使TCON中的TR0TR11,就可以启动定时/计数器工作

GATA=1时,要用软件使TR0TR11,同时外部中断引脚INT0/1也为高电平时才能启动定时/计数器工作。即此时定时器的启动条件,加上了INT0/1引脚为高电平这一条件。

C/T :定时/计数模式选择位。C/T =0定时模式;C/T =1计数模式

M1M0:工作方式设置位。定时/计数器有四种工作方式。

2、控制寄存器TCON

TCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控

制定时/计数器的启动和中断申请。其格式如下:

TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。

TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。

TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。

TR0(TCON.4):T0运行控制位,其功能与TR1类同。

定时/计数器的工作方式

1、方式0

方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。

定时器模式时有:N=t/ Tcy

计数初值计算的公式为:X=2^13-N

定时器的初值还可以采用计数个数直接取补法获得。

计数模式时,计数脉冲是T0引脚上的外部脉冲。

门控位GATE具有特殊的作用。当GATE=0时,经反相后使或门输出为1,此时仅由TR0控制与门的开启,与门输出1时,控制开关接通,计数开始;当GATE=1时,由外中断引脚信号控制或门的输出,此时控制与门的开启由外中断引脚信号和TR0共同控制。当TR0=1时,外中断引脚信号引脚的高电平启动计数,外中断引脚信号引脚的低电平停止计数。这种方式常用来测量外中断引脚上正脉冲的宽度。

2、方式1

方式1的计数位数是16位,由TL0作为低8位,TH0

作为高8位,组成了16位加1计数器 。

计数个数与计数初值的关系为:X=2^16-N

3、方式2

方式2为自动重装初值的8位计数方式。

计数个数与计数初值的关系为:X=2^8-N

工作方式2特别适合于用作较精确的脉冲信号发生器

4、方式3

方式3只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数。

工作方式3将T0分成为两个独立的8位计数器TL0和TH0 。

使用定时器,该做哪些工作

初始化程序应完成如下工作

1.对TMOD赋值,以确定T0和T1的工作方式。2.计算初值,并将其写入TH0、TL0或TH1、TL1。3.中断方式时,则对EA赋值,开放定时器中断。4.使TR0或TR1置位,启动定时/计数器定时或计数。

计数器初值的计算:

机器周期也就是CPU完成一个基本操作所需要的时间。

机器周期=1/单片机的时钟频率。

51单片机内部时钟频率是外部时钟的12分频。也就是说当外部晶振的频率输入到单片机里面的时候要进行12分频。比如说你用的是12MHZ的晶振,那么单片机内部的时钟频率就是12/12MHZ,当你使用12MHZ的外部晶振的时候。机器周期=1/1M=1us。

而我们定时1ms的初值是多少呢,1ms/1us=1000。也就是要计数1000个数,初值=65535-1000+1(因为实际上计数器计数到64536才溢出)=64536=FC18H

定时器中断

使用定时器,该做哪些工作

初始化程序应完成如下工作:

对TMOD赋值,以确定T0和T1的工作方式。

计算初值,并将其写入TH0、TL0或TH1、TL1。

中断方式时,则对EA赋值,开放定时器中断。

使TR0或TR1置位,启动定时/计数器定时或计数。

单片机两个正玄波信号的相位差计算_51单片机的定时器/计数器的原理与使用相关推荐

  1. 单片机两个正玄波信号的相位差计算_【案例】南宁市首个多品牌信号机互联绿波带“新鲜出炉”...

    一.路口概况 长湖路.滨湖路.金湖路是南宁市青秀区城区主要交通干道,长湖路为东西走向,滨湖路与金湖路为南北走向,周边小区.景点.学校密集,居民出行需求大且道路条件良好. 本次将选取长湖路.滨湖路.金湖 ...

  2. dac0832三角波c语言程序,单片机驱动dac0832输出方波三角波正玄波程序

    电路图 仿真文件及完整的源代码下载地址:http://www.51hei.com/bbs/dpj-20395-1.html 下面是汇编程序源码,可以用按键来控制 org 0000h ajmp main ...

  3. 单片机两大延时方法总结

    实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行. 1 使用定时器/计数器实现精确延时 单 ...

  4. 单片机c语言应用100例第3版课后答案,单片机C语言应用100例(第3版)(含光盘1张)...

    基 础 篇 第1章 单片机概述及实验器材介绍2 1.1 单片机概述2 1.1.1 单片机的定义.分类与内部组成2 1.1.2 单片机应用系统的结构及其工作过程5 1.1.3 单片机的应用6 1.2 单 ...

  5. 基于单片机定时器/计数器的时钟设计及计数设计

    基于单片机定时器/计数器的时钟设计以及计数设计 第一部分 前言 第二部分 定时器/计数器的原理 MCS-51定时器/计数器的结构 定时器/计数器相关特殊功能寄存器 定时器/计数器工作方式 第三部分 定 ...

  6. 嵌入式开发学习笔记6-了解单片机中的特殊功能寄存器(定时器/计数器)

    嵌入式开发学习笔记6-了解单片机中的特殊功能寄存器(定时器/计数器) 定时器/计数器简介 TH与TL TMOD工作模式寄存器 TCON定时器控制寄存器 定时器操作实例 定时器/计数器简介 在单片机中, ...

  7. 【51单片机】定时器/计数器的工作原理和结构(一)

    [51单片机]定时器/计数器的工作原理和结构 回看下单片机中断系统内部结构: 分析内部中断触发: 先看图 TCON:和外部中断相比少了IT位设置触发方式 :1跳沿触发 0电平触发:此处我的理解是:就好 ...

  8. 脉冲编码器A、B、Z相正余弦波转换为RS-485输出

    使用2进2出隔离变送器 正弦波信号输入转方波信号输出,Z相不用 转速传感器信号隔离变送器 特点 转速传感器信号直接输入,方波信号输出 正弦波.锯齿波信号输入,方波信号输出 200mV峰值微弱信号的放大 ...

  9. 上行ofdm 信号生成_两种LTE上行SC_OFDMA信号生成方式

    9 2007 年第 8 期,第 40 卷                           通  信  技  术                            Vol.40,No.08,20 ...

最新文章

  1. 查看服务器硬盘负载——判断硬盘是否为瓶颈
  2. smartbits的国产版本minismb-如何测试路由器
  3. feign post 传递空值_HTTP中GET与POST的区别,99 %的人都理解错了
  4. FFmpeg-20160422-snapshot-bin
  5. Linux shell编程学习笔记-----第十四章
  6. MusicXML 3.0 (7) - 连线、延音线
  7. cinder块存储配置使用lvm
  8. 用数学方法构造神经网路的迭代次数1-9
  9. 没有Hyper-V服务,WP Emulator无法启动
  10. python冒泡排序代码完整_用Python写冒泡排序代码
  11. 阵列卡正确安装调试方法
  12. [WCF]NetTcpBinding在IIS中使用的详细配置方法
  13. 兄弟 你们永远是我的大哥哥
  14. int main()和void main()的区别
  15. 使用VMM2008 R2管理Hyper-V之1-实验环境与VMM 2008安装
  16. Atitit 知识点的体系化 框架与方法 如何了解 看待xxx
  17. dropout层加在哪里_神经网络Dropout层中为什么dropout后还需要进行rescale?
  18. 动态表情包制作?gif动态图怎么制作?
  19. 数量积与向量积(点积与叉积)
  20. ios 系统状态栏样式修改_iOS 导航栏颜色和状态栏颜色修改

热门文章

  1. python 比较文件不同,在python中逐行比较两个不同的文件
  2. 494. 目标和(JavaScript)
  3. 拖动卡顿_教你4招,让你的ps永不卡顿
  4. c语言编程实现二叉树的镜像,C/C++知识点之C++实现利用(前序和中序生成二叉树)以及(二叉树的镜像)...
  5. mysql优化 运维_mysql优化
  6. OpenCV4每日一练day6:Image Watch的使用
  7. 数据有序_CATTI汉译英批改 | 人工智能、大数据有序推进
  8. 闪电邮修改服务器设置,网易闪电邮添加outlook邮箱的方法(图文教程)
  9. 算法专题(一)1.1 希尔排序,快速排序
  10. ipmitool 设置网关_Linux下使用命令行配置IPMI