首页 > 编程知识 正文

手把手教你学51单片机c语言版(51单片机用什么语言)

时间:2023-05-05 16:53:51 阅读:76906 作者:2596

89C51单片机有两个计数器T0和T1,每个计数器由两个8位RAM单元组成。 也就是说,每个计数器都是16位计数器,最大的计数容量为216=65536,请从0-65535开始记住。

其次,为计时器提供的计数来源来自哪里呢? 单片机晶体振动经过12分频得到的脉冲源。 12M的晶体振动,提供给计数器的脉冲的时间间隔为1us。

最后,预置计数法。 如果一个脉冲为1微秒,则计数65536脉冲需要65.536毫秒。 但是如果10毫秒就可以了,我该怎么办? 如果在计数器中输入55536,则只需计数65536-55536=10000次,即10毫秒。

51单片机定时器设置初探

STC单片机计时器的使用非常简单,掌握原理,只要有一点c语言的基础就可以了。 要点如下。

1 .为了不用记住寄存器的名字,一定要知道英文缩写的真面目。

理解是最好的记忆方法。 好的教材一定会展示所有缩写的原形。

2 .尽量用形象记忆

例如,在教程中,TCON和TMOD两个寄存器的每个位中的功能通常都有一个图表,您在学习过程中会一直记住该图表的形状

TMOD :计时器/计数器模式控制寄存器(timer/countermodecontrolregister ) () ) ) ) )。

定时器/计数器模式控制寄存器TMOD是按位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。

其形式如下。

其中,后4位定义计时器/计数器C/T0,前4位定义计时器/计数器C/T1,各位说明:

GATE——车门控制。

GATE=1时,从外部中断端子INT0、INT1启动计时器T0、T1。

INT0端子为高电平时设定TR0,启动计时器T0;

INT1端子为高电平时TR1被设定,计时器T1开始。

GATE=0时,仅通过TR0、TR1套分别启动计时器T0、T1。

C/T——功能选择位

C/T=0时为计时器功能,C/T=1时为计数功能。

设置时选择计数功能,清除时选择计时器功能。

M0、M1——方式选择功能

因为有两个人,所以有四种工作方法:

M1M0动作模式计数器模式TMOD (计时器模式的设定) ) ) ) ) ) ) ) )。

0方式0 13位计数器TMOD=0x00

0方式1 16位计数器TMOD=0x01

1方式2自动重载8位计数器TMOD=0x02

1方式3 T0分为两个8位独立计数器,T1为无中断重载8位计数器TMOD=0x03

单片机0的动作模式1设定为TMOD=0x01

其中,要知道TMOD的t是TIMER/COUNTER的意思,MOD是MODE的意思。 关于各个功能,只要记住图表,知道各个缩写的原型就可以了。

在程序中使用TMOD时,首先要马上想起图表,从缩写的原形中整理各自的意思。 如果意思不清楚,查一下手册,几次下来,TMOD的图表就会进入脑海。

8位GATE位,本身就是门的意思。

7位c/t计数器/timer

6位m1模式1

5位M0 Mode 0

TCON :定时器/计数器控制寄存器(timer/counter控制寄存器) )。

TMOD分为2级,TCON控制更精细,分为4级,本文使用到4级高度。

TF0(TF1 ) ——对溢出标志的比特计数,并且当计数器溢出时其位置为1。

tr0(tr1 ) ——计时器运行控制位

tr0(tr1 )=0时停止计时器/计数器的动作

tr0(tr1 )=1开始计时器/计数器工作

ie0(ie1 ) ——外部中断请求标志位

如果CPU对p3.2(p3.3 )进行采样并发出有效的中断请求,则硬件将此位设置为1。 中断响应完成并迁移到中断服务后,硬件将自动清除0。

it0(it1 ) ——外部中断请求信号方式控制位

it0(it1 )=1脉冲方式(后端负跳跃有效)时

it0(it1电平方法)启用低电平)时,该位由软件设置为1或0。

TF0(TF1 ) ——计数溢出标志

如果计数器发生计数溢出,则此位由硬件设置为1。 中断服务时,硬件将自动清除为0。 计数超过的标志位的使用有采用中断方式、作为中断请求标志位使用和采用中断方式两种。 采用查询方式时,用作查询的状态位。

只要注意记忆方法,理解单词的原形,就绝对不会把TF和TR混淆。 TF的f是溢出溢出的f。 国外知名的IT知识问答q&; a有一个社区,网站单击关于堆栈溢出的com

TR的r是运行Run。 默认值不在0处执行。 当然请放1后再执行。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。