51单片机第22步_interrupt和using关键字

Keil C51中有一些关键字,一定要牢记,它和其它CPU不一样,所以需要记住interrupt和using关键字,以及它后面所跟的数字在程序中的意义。

单独提出来讲,我也和大家一样记不住,那些数字的意义太少,不知道编译器为什么不用宏去定义,估计也只有51单片机才会这么操蛋。

1、interrupt关键字

interrupt 0:指定当前函数为外部中断0;

interrupt 1:指定当前函数为定时器0中断;

interrupt 2:指定当前函数为外部中断1;

interrupt 3:指定当前函数为定时器1中断;

interrupt 4:指定当前函数为串口中断;

2、using关键字

using 0:表示当前函数的R0~R7使用第0组寄存器;

using 1:表示当前函数的R0~R7使用第1组寄存器;

using 2: 表示当前函数的R0~R7使用第2组寄存器;

using 3: 表示当前函数的R0~R7使用第3组寄存器;

3、R0~R7的实际地址

51单片机内有4个工作组寄存器,每个工作组的寄存器是R0--R7。

R0-R7的实际地址是由特殊功能寄存器PSW里的RS1、RS0位决定的。

using 0表示设置 RS1=0,RS0 =0,即R0~R7使用第0组寄存器。

R0~R7的实际地址是00H~07H。R0(00H)....R7(07H);

using 1表示设置 RS1=0,RS0 =1,即R0~R7使用第1组寄存器。

R0~R7的实际地址是00H~07H。R0(08H)....R7(0FH);

using 2表示设置 RS1=1,RS0 =0,即R0~R7使用第2组寄存器。

R0~R7实际地址是08H~0FH。R0(10H)....R7(17H);

using 3表示设置 RS1=1,RS0 =1,即R0~R7使用第3组寄存器,

R0~R7的实际地址是00H~07H。R0(18H)....R7(1FH);

4、中断服务函数定义

void int0_interrupt_service_function(void) interrupt 0

{//外部中断0

}

void timer0_interrupt_program(void) interrupt 1 using 1

{//Timer0中断

}

void TL0_interrupt_program(void) interrupt 1 using 1

{//Timer0中断

}

void int1_interrupt_service_function(void) interrupt 2

{//外部中断1

}

void timer1_interrupt_program(void) interrupt 3 using 1

{//Timer1中断

}

void TH0_interrupt_program(void) interrupt 3 using 1

{//Timer1中断

}

void isr_UART(void) interrupt 4 using 1

{//串口中断

}

void timer2_interrupt_program(void) interrupt 5 using 1

{//Timer2中断

}

5、举例:

//函数功能: T2定时器的捕获中断服务程序;

void T2_capture_Interrupt_Program (void) interrupt 5 using 0

{ if(EXF2) //处理T2EX脚(P1.1)的下降沿中断;

{

/处理程序/

EXF2=0;

}

if(TF2) //处理T2溢出中断;

{

/处理程序/

TF2=0;

}

}

相关推荐
远望创客学堂7 小时前
【单片机毕业设计选题24047】-基于阿里云的工地环境监测系统
stm32·单片机·嵌入式硬件·阿里云·云计算·课程设计·arduino
极客小张7 小时前
利用 STM32 实现多协议物联网网关:Modbus/Zigbee 到以太网/Wi-Fi 的数据桥接
stm32·单片机·嵌入式硬件·物联网·网络协议·https·硬件工程
FPGAmaster创新者8 小时前
基于AGX ORIN与FPGA K7实现PCIE高速数据通信/Orin与FPGA高速数据传输/XDMA在linux系统使用教程
linux·嵌入式硬件·fpga开发
XD7429716368 小时前
【TB作品】电子琴,ATMEGA16单片机,Proteus仿真
单片机·proteus·电子琴·atmega
maybe_YX8 小时前
51单片机基础8——单片机控制超声波模块
c语言·单片机·嵌入式硬件·51单片机
@一二三四五9 小时前
STM32 看门狗 HAL
stm32·单片机·嵌入式硬件
北京迅为9 小时前
【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第四章 Ubuntu启用root用户
linux·嵌入式硬件
maybe_YX9 小时前
51单片机基础10——串口实验
c语言·单片机·嵌入式硬件·51单片机
Qingniu0110 小时前
开关电源的电路组成原理
单片机·嵌入式硬件·新能源·电源模块·无刷电机
芯源义码11 小时前
嵌入式软件常用测试工具
单片机