题目
下列哪个函数声明是正确的定时器/计数器0☆ 中断服务程序?A. void Timer0()interrupt 0B. void Timer0_ISR()interrupt 1C. void Timer0()using 1D. void Timer0()using 3
下列哪个函数声明是正确的定时器/计数器0☆ 中断服务程序?
A. void Timer0()interrupt 0
B. void Timer0_ISR()interrupt 1
C. void Timer0()using 1
D. void Timer0()using 3
题目解答
答案
B. void Timer0_ISR()interrupt 1
解析
本题考查的是51单片机中定时器/计数器中断服务程序的正确声明方式。解题的关键在于理解中断服务程序声明的语法规则,包括函数返回类型、函数名、interrupt关键字以及中断号的使用。
对各选项的分析
- A选项:
void Timer0()interrupt 0- 在51单片机中,中断号0对应的是外部中断0,而不是定时器/计数器0中断。所以该选项错误。
- B选项:
void Timer0_ISR()interrupt 1- 函数返回类型为
void,表示该函数不返回任何值,这是中断服务程序的常见返回类型。 - 函数名
Timer0_ISR是一个合法的函数名,通常使用ISR(Interrupt Service Routine)来表示这是一个中断服务程序。 interrupt是声明中断服务程序的关键字,用于告诉编译器这是一个中断服务函数。- 中断号1对应的是定时器/计数器0中断,符合题目要求。所以该选项正确。
- 函数返回类型为
- C选项:
void Timer0()using 1using关键字用于指定工作寄存器组,而不是用于声明中断服务程序。中断服务程序的声明需要使用interrupt关键字。所以该选项错误。
- D选项:
void Timer0()using 3- 同样,
using关键字不能用于声明中断服务程序,该选项也错误。
- 同样,