清翔51单片机学习笔记-中断系统

一,基础内容

1,51单片机个引脚功能回顾

引脚总共分为四种

        1.电源引脚

        Vcc:+5V电源        Vss:  接地

        2.时钟引脚

        XTL1,XTL2

        3. 控制引脚

        RST:复位信号输入端(RST为高电平时复位)        Vpd:备用电源输入端

        EA:内外部程序储存选择端(EA为高电平时访问内部,低电平访问外部)(因为现在单片机内部空间够用所以一般只用高电平)

        Vpp编程电压输入端(现在用不到了)

        ALE地址锁存允许信号(现在用不到了)

        PROG编程脉冲输入(现在用不到了)

        PSEN读取外部储存选通信号(现在用不到了)

        4.可编程输入/输出引脚

                P0 P1 P2 P3

        P3第二功能各引脚定义:

        P3.0:RXD(Receive Date 接收数据)串口行输入//串口通信时会用到

        P3.1:TXD(Transmit Date 发送数据)串口行输入//串口通信时会用到

        P3.2:INT0(Interrupt 0)外部中断0输入//本章内容

        P3.3:INT1(Interrupt 1)外部中断1输入//本章内容

        P3.4:T0(Timer 0)定时器0外部输入//定时器

        P3.5:T1(Timer 1)定时器1外部输入//定时器

        P3.6:WR(write)外部RAM写选通信号控制(几乎用不到了)

        P3.7:Rd(read)外部RAM读选通信号控制(几乎用不到了)

2,数据的输入输出传送方式

        1.无条件传送方式:一方对另一方来说总是准备好的。ex:给led发亮的数据,他直接亮

        2.查询传送方式:传送前乙方先查询另一方的状态,若准备好了就传送,否则就继续查询。ex:在温度传感器中,转换温度是需要一定时间的,需要先查询温度转换好了没,转换好了才去读。

        3.中断传送方式:一方通过申请中断的方式与另一方进行数据传送。ex:就是先停止当前的程序先进行这个所传送的数据。用于紧急突发事件

        4.直接存储器存取方式:双方直接通过总线传送数据,不经过CPU中转。ex:适用于数据量大高速通讯的设备不占用CPU时间。

3,中断传送方式的特点

        1.数据传送的双方平时各自做自己的工作,一旦甲方要求与乙方进行数据传送,就主动发出信号申请,乙方收到申请后同意传送,停止当前的工作,先与甲发生数据传送,在继续之前的工作。

总的来说就是 甲发出请求,乙同意,乙停止,进行数据传送,乙继续。(中断代码的运行顺序和思路大概就是这种)

4,特殊功能寄存器

清翔51单片机学习笔记-中断系统_第1张图片

(这是从其他大佬那里拿的图,大家也可以看看这个大佬的内容)

        1.在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM(Read-Only Memory),用来存放程序,有RAM(Random Access Memory),用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。

        2.我们已经知道P0~3是可以控制如点亮led等,那51单片机还有着如中断系统的功能,这个又是怎么控制的呢?就是用这个特殊功能寄存器。

二,什么是中断系统

        就是某程序在运行过程中先停止,然后去做另一个程序,处理完毕后在继续执行某程序。

三,中断系统在单片机系统的作用

四,如何去使用单片机的中断系统

1,中断源(外部中断一般是指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断等。 外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备 的中断请求。 内部中断是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、溢出运算、单步中断等)所引起的中断

        1.外部中断源

                INT0  低电平下降沿引起

                INT0  低电平下降沿引起

                这两个外部中断源标志和他们的触发方式由特殊功能寄存器TCON的低4位控制

        2.内部中断源

                T0        定时器/计数器中断0   T0回0溢出引起

                T1        定时器/计数器中断1   T1回0溢出引起

                TI/RI        串行I/0中断,串口端口完成一帧字符发送或接收后引起

2,如何去使用

清翔51单片机学习笔记-中断系统_第2张图片

清翔51单片机学习笔记-中断系统_第3张图片

清翔51单片机学习笔记-中断系统_第4张图片

清翔51单片机学习笔记-中断系统_第5张图片

        首先我们来看这个图,这个图就是使用中断的打开顺序,为了初学者(我也是)我会标记这些缩写的名称

        (RX(receive)和TX(transmit)就是上面说的P3.0和P3.1)

        1.第一部分是TCON(特殊功能寄存器)他可以用来选择是那种中断,INT0(外部中断0),T0(定时器0),INT1(外部中断1),T1(定时器1)

        2,然后选择完TCON的工作模式后

        假如我现在选择的INT0(外部中断0,下降沿(就是从高电平到低电平)或低电平触发)那接下来选择IT0,若IT0为1就是下将沿触发,若IT0为0就是低电平触发。IE0(外部中断0请求标志为)会被硬件置1,然后CPU响应之后会自动置0.

        3.让后到IE(中断允许寄存器)部分

        将EX0(外部中断0开关)和EA(总开关)置1

        4.IP(控制中断优先级)部分

        IP不论为0还是为1都是可以出去的

  2,中断的优先级和中断入口

清翔51单片机学习笔记-中断系统_第6张图片

五,编程部分

#include 
sbit flag=P3^7;
sbit key_s2=P3^0;
void delay(unsigned int x)
{
	while(x--);
}
void chushihua()
{
	IT0=1;
	EX0=1;
	EA=1;
}
void zhongduan0()interrupt 0
{
	P1=~P1;
}
void main()
{
	chushihua();
	while(1)
	{
		if(key_s2==0)
			delay(50);
		if(key_s2==0)
		{
			flag=1;
			flag=0;
			while(!key_s2);
		}
	}
}

你可能感兴趣的:(51单片机,学习,笔记)