下列说法正确的是 ( )。
A. 各中断源发出的中断请求信号,都会标记在STC89C52单片机的IE寄存器中
B. 各中断源发出的中断请求信号,都会标记在STC89C52单片机的TMOD寄存器中
C. 各中断源发出的中断请求信号,都会标记在STC89C52单片机的IP寄存器中
D. 各中断源发出的中断请求信号,都会标记在STC89C52单片机的TCON、SCON、T2CON和XICON寄存器中
单片机的P34、P35、P36、P37口分别接LED1、LED2、LED3、LED4,输出低电平点亮LED灯, P32口接按键K1,按键按下时单片机输入低电平,程序如下:#include "reg52.h"sbit P32=P3^2;void main(){IT0=1;EX0=1;EA=1;while(1);}void int0() interrupt 0{static unsigned char Bit=0;Bit++;if(Bit>=4)Bit =0;switch(Bit){case 0: P3 = 0xef; break;case 1: P3 = 0xdf; break;case 2: P3 = 0xbf; break;case 3: P3 = 0x7f; break;}}
A. 采用外部中断的方式实现4个LED的轮流亮灭;
B. 执行EX0=1;的功能是使能外部中断0;
C. 采用定时中断的方式实现4个LED的轮流亮灭;
D. 执行IT0=1;的功能是采用外部中断0边沿触发方式。
单片机的P34、P35、P36、P37口分别接LED1、LED2、LED3、LED4,输出低电平点亮LED灯, P32口接按键K1,按键按下时单片机输入低电平,程序如下:#include unsigned char key = 0;void main(void ){char map0[4] = { 0x7f, 0xbf, 0xdf,0xef }; //LED状态数据char map1[2] = { 0x3f, 0xcf }; //LED状态数据unsigned char i = 0;int j = 0;IT0 = 1;EX0 = 1;EA = 1;while (1 ){i ++;switch (key ){case 0:{P3 = map0[i % 4 ]; break;}case 1:{P3 = map1[i % 2 ]; break; }}for (j = 0; j < 0x4000; j ++ );}}void int0(void ) interrupt 0 using 0{key ++;if(key==2)key=0;}
A. 初始状态,4个LED轮流亮灭;
B. 第1次按键,P34、P35的2个LED和P36、P37的2个LED轮流亮灭;
C. 第2次按键,4个LED轮流亮灭
D. 第3次按键,P34、P35的2个LED和P36、P37的2个LED轮流亮灭。
#include "reg52.h"sbit P35=P3^5;void main(){IT0=1;EX0=1;EA=1;while(1);}void int0() interrupt 0{P35=!P35;}
A. 采用外部中断的方式实现按键控制1个LED的亮灭;
B. 外部中断0边沿触发方式;
C. 执行EA=1;后允许外部中断0产生中断;
D. 外部中断函数在主函数中被调用。