单片机总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、中断 (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由单片机硬件置一和清零,不用程序控制。
TR0(和TR1)用程序置一,启动定时器;清零后,定时器停止工作。
5、写中断函数(不用再main函数前声明):
Void函数名()interrupt1(或3)
{
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的溢出率来决定。
串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方