#太原理工大学机器人团队#51单片机20天学习打卡——Day4

1.逻辑电路与逻辑运算

常见的逻辑电路符号如图所示:

在这里插入图片描述

这里我们着重解释几个编写程序常用的逻辑符号(1为真,0为假)

*&&逻辑与。C=A&&B表示若A,B都为真,则C=1,若有一个为假,则C=0;

*||逻辑或。C=A||B表示若,A,B中有一个为真,则C=1;若都是假,则C=0;

*!逻辑非。C=!A表示,若A为真,则C=0,若A为假,则C=1;

*&按位与,|按位或。即A,B两个字节按位进行相应的运算。

2.定时器的学习(重点)

先认识以下概念:

*时钟周期:是时序中最小的时间单位,其计算方法是时钟源频率的倒数。

*机器周期:单片机完成一个操作的最短时间,它主要是针对汇编语言,在汇编语言下程序的每一条语句执行所使用的时间都是机器周期的整数倍(ps:keil程序调试时会显示出C语言程序相应的汇编语言)。标准单片机一个机器周期时12各时钟周期,一些新的,运行速度比较快的单片机的机器周期更短。

*定时器和计数器:它们时单片机的同一模块,通过配置SFR可以实现两种不同的功能。

*定时:从某一个初始值开始,经过确定的时间后溢出。

*溢出:类似于钟表的秒针,加到60后自动变为0。16位定时器,加到65535后,再加1就会溢出。

定时器的寄存器

标准的51单片即内部有T0和T1两个寄存器。

存储寄存器:

在这里插入图片描述

控制寄存器的位分配(地址0x88,可寻地址)——TCON
在这里插入图片描述

控制寄存器的位描述——TCON
在这里插入图片描述

ps:表中硬件置1或清零是指一旦符合条件,单片机自动完成动作。软件置1或清零表示必须用程序完成这个动作。符号带0的都是对应T0定时器,带1的都是对应T1定时器。

定时器的工作原理

以以16位的定时器1为例,当程序中写TR1=1后,定时器的值就会每经过一个机器周期自动加1,这里首先开始的增加的是TL1,当TL1加到255后再加1,TL1就重新归0,TH1会加1,如此这样一直加到TH1到255后再加1,就会溢出。此时作为标志位的TF1会自动变成1,作为定时器溢出的信号(不会对定时器时候继续运行产生影响。在以上过程中,若写TR1=0,定时器就会停止加1,其值会保持不变。

3.定时器的工作模式

工作模式的选择由(不可寻址)来控制

*在这里插入图片描述在这里插入图片描述
PS
:(1)可寻址和不可寻址的区别在于前者能寄存器的每个位进行单独操作(比如程序中写TR1=0就是对TCON的TR1位进行单独操作),后者则必须一次性对所有位操作。(2)THn,TLn,TFn中的n可为1或2。

这里着重说明以下模式1和模式*2:

模式1就是上面讲工作原理用的例子,计数范围0~65535,溢出后,若不对THn,TLn重新赋值,则从0开始计数。以下为模式1的电路示意图:

在这里插入图片描述

(逻辑符号请参照本篇第一张图,OSC框表示时钟频率,因为一个机器周期是12各时钟周期,,则d=12)

TRn与下边的结果进行与运算要想得到1,那么TRn和下面的结果都应为1,下面结果的1是GATE位经过非门再与INTn进行或运算得到的。这是,若GATE位的值为0,经过非门就是1,此时无论INTn脚的值是多少,经过或运算结果都为1,定时器都可以启动;若GATE位的值为1,经过非门就是0,只有在INTn脚的值为1是定时器才能工作,它的值为0时则不能,这就体现了GATE位作为门控位的作用。

模式2是8位自动重装载模式,只有TLn做计数,THn的值不变,TLn加到255后再加1,TFn直接置1,然后THn的值赋给TLn以此往复。它的计数范围0~255。

4.定时器的应用

步骤:(1)设置特殊功能寄存器TMOD,配置好工作模式。

​ (2)设计计数寄存器的THn和TLn的初值。

​ (3)设置TCON,通过TR0置1来让定时器开始计数。

​ (2)设计计数寄存器的THn和TLn的初值。

​ (3)设置TCON,通过TR0置1来让定时器开始计数。

​ (4)判断TCON寄存器的TF0位,监测定时器的溢出情况。

发布了4 篇原创文章 · 获赞 8 · 访问量 1782

猜你喜欢

转载自blog.csdn.net/byz666/article/details/104812473