大家好,今天小编关注到一个比较有意思的话题,就是关于单片机c语言定时器的问题,于是小编就整理了3个相关介绍单片机c语言定时器的解答,让我们一起看看吧。
- 51单片机用C语言或者汇编程序如何实现定时1秒?如何设定初始值?如何计算?如何输出方波?如何对外部?
- 89c51单片机定时器有哪几种工作方式,它们之间有什么区别?
- 单片机,当定时器/计数器工作方式于1下,晶振频率为6M,请计算最短定时时间和最长定时时间。各是多少?
51单片机用C语言或者汇编程序如何实现定时1秒?如何设定初始值?如何计算?如何输出方波?如何对外部?
使用定时器实现1秒定时; 初始值要看单片机配置的晶振频率了,若12M晶振,初始值为TH0=0x3c;TL0=0xb0; 这才是50ms,还要一个单元做计数器,计数20次才是1秒 方波?在定时中断里求反一次。
对外输出?就对端口(比如P1.0)求反 如何计算?常用的,记熟了,你自己看书89c51单片机定时器有哪几种工作方式,它们之间有什么区别?
有四种工作模式:模式0,模式1,模式2,模式3
(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个外部脉冲
(3)模式2:把TL0和TL1配置成一个自动重装载的8位定时器/计数器。TL用作8位计数器,TH用以保存初值。TL计数溢出时不仅使TF0置1,而且还自动将TH中的内容重新装载到TL中。
定时时间t=(28-初值)×振荡周期×12;计数长度位28=256个外部脉冲
(4)模式3:对T0和T1不大相同
若设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点解答对大家有用。