单片机中断问题高手指点

来源:百度知道 编辑:UC知道 时间:2024/05/10 22:28:31
很想问几个困惑我的小问题,
1,52单片机里面特殊功能寄存器sfr IE=0xA8,很奇怪,为什么里面开始就赋值了呢?我想开定时器中断对IE整体赋值行吗?应该是什么呢?
2,中断里面有5个中断源其中外部中断重要吗?都什么时候比如P3.2口出现低电平呢?是不是只是人为的呢
可以一一解答?本人是初学忘了说了 谢谢~

1.特殊功能寄存器sfr IE=0xA8 指的是IE的地址 没理解错误的话应该是头文件定义。开定时器中断对IE整体赋值可以 在主程序里面设置 书上有
2.外部中断很重要 比如单片机外接键盘的时候一般用到外部中断 P3.2口出现低电平可以人为设置 比如一开始为高电平 按键按下后接地即可。

给你一个实例你慢慢看:
// 单片机串行口发送/接收程序,每接收到字节即发送出去
// 和微机相接后键入的字符回显示在屏幕上
// 可用此程序测试
//
#include <reg51.h>

#define XTAL 11059200 // CUP 晶振频率
#define baudrate 9600 // 通信波特率

void main(void)
{
unsigned char c;

TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率
TH1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate)));
TL1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate))); // 定时器0赋初值

SCON = 0x50;
PCON = 0x00;

TR1 = 1;
IE = 0x00; // 禁止任何中断

while(1)
{
while(RI == 0);
RI = 0;
c = SBUF; // 从缓冲区中把接收的字符放入c中

SBUF = c; // 要发送的字符放入缓冲区
while(TI == 0);
TI = 0;
}
}

1,它不是赋值,是定义。就像宏定义一样。
当然可以对IE整体赋