单片机c语言定时器,单片机定时器c语言编程

kodinid 5 0

大家好,今天小编关注到一个比较意思的话题,就是关于单片机c语言定时器问题,于是小编就整理了3个相关介绍单片机c语言定时器的解答,让我们一起看看吧。

  1. 51单片机用C语言或者汇编程序如何实现定时1秒?如何设定初始值?如何计算?如何输出方波?如何对外部?
  2. 89c51单片机定时器有哪几种工作方式,它们之间有什么区别?
  3. 单片机,当定时器/计数器工作方式于1下,晶振频率为6M,请计算最短定时时间和最长定时时间。各是多少?

51单片机用C语言或者汇编程如何实现定时1秒?如何设定初始值?如何计算?如何输出方波?如何对外部?

使用定时器实现1秒定时; 初始值要看单片机配置晶振频率了,若12M晶振,初始值为TH0=0x3c;TL0=0xb0; 这才是50ms,还要一个单元做计数器,计数20次才是1秒 方波?在定时中断里求反一次。

对外输出?就对端口(比如P1.0)求反 如何计算?常用的,记熟了,你自己看书

89c51单片机定时器有哪几种工作方式,它们之间有什么区别?

有四种工作模式:模式0,模式1,模式2,模式3

单片机c语言定时器,单片机定时器c语言编程-第1张图片-安济编程网
图片来源网络,侵删)

(1)模式0:选择定时器的高8位和低5位组成一个13位定时器/计数器。TL低5位溢出时向TH进位,TH溢出时向中断标志位TF进位,并申请中断。

定时时间t=(213-初值)×振荡周期×12;计数长度位213=8192个外部脉冲

(2)模式1:与模式0的唯一差别是寄存器TH和TL以全部16位参与操作。定时时间t=(216-初值)×振荡周期×12;计数长度位216=65536个外部脉冲

单片机c语言定时器,单片机定时器c语言编程-第2张图片-安济编程网
(图片来源网络,侵删)

(3)模式2:把TL0和TL1配置成一个自动重装载的8位定时器/计数器。TL用作8位计数器,TH用以保存初值。TL计数溢出时不仅使TF0置1,而且还自动将TH中的内容重新装载到TL中。

定时时间t=(28-初值)×振荡周期×12;计数长度位28=256个外部脉冲

(4)模式3:对T0和T1不大相同

单片机c语言定时器,单片机定时器c语言编程-第3张图片-安济编程网
(图片来源网络,侵删)

若设T0位模式3,TL0和TH0被分为两个相互独立的8位计数器。TL0为8位计数器,功能与模式0和

单片机,当定时器/计数器工作方式于1下,晶振频率为6M,请计算最短定时时间和最长定时时间。各是多少

定时器是通过计数溢出来计时的,工作方式1是16位计数方式。

晶振频率为6M,那么计数器加1需要一个机器周期2us。机器周期=12/fosc,fosc为晶振频率。计数初值为1时,定时最短为2us,最长是计2的16次方(即65536),最长时间=2*65536us=131.072ms 。在工作方式1下,定时时间:t=(65536-T0初始值)*机器周期。

到此,以上就是小编对于单片机c语言定时器的问题就介绍到这了,希望介绍关于单片机c语言定时器的3点解答对大家有用。

标签: 定时器 晶振 定时