您的当前位置:首页正文

单片机总结

2021-08-19 来源:好走旅游网
单片机总结

一、中断 (2)

1、中断优先级控制IP (2) 2、中断请求控制标志TCON (2) 3、中断允许控制IE (3)

4、写中断函数(不用在main函数前声明): (3) 二、定时器 (4)

1、工作方式寄存器TMOD:写程序时选择定时器和工作方式(设置M0、M1)。

(4)

2、对定时器装初值: (4) 3、设置中断: (4)

4、启动定时器控制寄存器: (4)

5、写中断函数(不用再main函数前声明): (5)

6、注意:中断函数中的功能程序代码的执行时间不要超过定时时间。 (5)

三、串行接口 (6)

1、将TMOD设置成定时器1,工作方式为2 (6) 2、计算T1的初值:TH1和TL1的值相同: (6) 3、启动定时器T1(对TCON设置):TR1=1; (6) 4、确定串行口控制SCON: (6)

5、串行口工作在中断方式时,进行中断设置: (6) 6、写中断函数。 (6)

串口补充:波特率的计算: (6) 一、中断

中断涉及到的寄存器和写程序时的操作顺序: 1、中断优先级控制IP

IP的每一位需用程序置一,某个控制位置一,相应得中断源就设定为高级中断。

同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:

2、中断请求控制标志TCON

IT0(TCON.0),外部中断0触发方式控制位。 当IT0=0时,为电平触发方式,P3.2引脚低电平有效。 当IT0=1时,为边沿触发方式,P3.2引脚下降沿有效。 IE0(TCON.1),外部中断0中断请求标志位。单片机硬件自动置位和自动清零,不用编写在程序中。

IT1(TCON.2),外部中断1触发方式控制位。 当IT0=0时,为电平触发方式,P3.3引脚低电平有效。 当IT0=1时,为边沿触发方式,P3.3引脚下降沿有效。 IE1(TCON.3),外部中断1中断请求标志位。单片机硬件自动置位和自动清零,不用编写在程序中。

3、中断允许控制IE

每一位都需要用程序置一和清零: 置一时,相应的中断打开; 清零时,相应的中断关闭。

使用定时器、外部中断、串行口中断中的某一个或某几个时,EA都要置一。

4、写中断函数(不用在main函数前声明): V oid 函数名()interrupt 标号(0、1、2、3、4) {

要实现功能的程序代码; }

二、定时器

定时器一般与中断联合使用。定时器涉及到的寄存器和写程序时的顺序:

1、工作方式寄存器TMOD:写程序时选择定时器和工作方式(设置M0、M1)。

GA TE:门控位。 以启动定时/计数器工作;

GA TE=0时,只要用软件使TCON中的TR0或TR1为1,就可

GA TA=1时,要同时满足以下要求,才能启动定时/计数器工作。(一般不用)

①用软件使TR0或TR1为1,

②同时外部中断(INT0/1)引脚(P3.2;P3.3)也为高电平时 M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。

2、对定时器装初值:

对定时器0赋初值:TH0=(65536-X)/256;TL0=(65536-X)%256

对定时器1赋初值:TH1=(65536-X)/256;TL1=(65536-X)%256

X为所要设定的时间,最长为65.536ms。 3、设置中断:

对IE赋值,开中断:①开定时器中断(ET0=1或ET1=1);②开总中断(EA=1)。

4、启动定时器控制寄存器:

TF1和TF0由单片机硬件置一和清零,不用程序控制。 作。

5、写中断函数(不用再main函数前声明): Void函数名()interrupt1(或3)

TR0(和TR1)用程序置一,启动定时器;清零后,定时器停止工

{

TH0=(65536-X)/256;TL0=(65536-X)%256 //重装定时器初值[或TH1=(65536-X)/256;TL1=(65536-X)%256]

要实现功能的程序代码 }

6、注意:中断函数中的功能程序代码的执行时间不要超过定时时间。

三、串行接口

串行口工作方式1工作前要对其进行初始化,主要设置产生波特率的定时器1、串行口控制和中断控制。

涉及到的寄存器和程序书写顺序:

1、将TMOD设置成定时器1,工作方式为2 2、计算T1的初值:TH1和TL1的值相同:

所装值为要求的波特率计算后的值,可查表得此值。(见补充) 3、启动定时器T1(对TCON设置):TR1=1; 4、确定串行口控制SCON:

SM0和SM1为工作方式选择位,可选择四种工作方式:

允许串行口接收:REN=1

TI:发送中断标志。单片机给外部设备发送数据前需用程序清零(TI=0),发送完一侦数据后由单片机硬件置位,发送下一数据时再

程序清零(TI=0)。

RI:接收中断标志。单片机接收外部设备发送的数据前须将该位清零(RI=0),接收完数据后由单片机硬件置一,接收下一数据时再用程序清零(RI=0)。

注意:计算机和一个单片机通信时SM2=0。 5、串行口工作在中断方式时,进行中断设置: IE:ES=1;EA=1; IP:PS=1。

单片机接收到的数据和要发送的数据都存储在SBUF中。 单片机接收到数据:a=SBUF//a可以是寄存器或I/O口,如P1=SBUF表示P1口显示接收到的数据

单片机发送数据:SBUF=a //将要发送的数据发送到a 6、写中断函数。

串口补充:波特率的计算:

在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是

可变的,由定时器T1的溢出率来决定。

串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方

式的波特率计算公式也不相同。 方式0的波特率= fosc/12

方式2的波特率=(2SMOD/64)· fosc

方式1的波特率=(2SMOD/32)·(T1溢出率)方式3的波特率=(2SMOD/32)·(T1溢出率)也可通过查表得到定时器T1的值:

因篇幅问题不能全部显示,请点此查看更多更全内容