⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c51_8259.c

📁 PC机与单片机之间进行通讯连接的C51代码和PC机的VC++代码
💻 C
字号:
#include<reg51.h>

#define P8259A XBYTE[0x00FE]

#define P8259B XBYTE[0x00FF]

void int_IR0();

void int_IR1();

...

void int_IR7();

void main()

{

P8259A=0x16; /*ICW1送8259*/

P8259B=0x21; /*ICW2送8259*/

EA=1; /*开所有中断*/

EX0=1; /*开INT0中断*/

IT0=1; /*令INT0为边沿触发*/

for(;;); /*等待中断*/

}

 

void int_8259(void) using 2 interrupt 0 /*INT0中断,使用第二组寄存器*/

{

unsigned char int_add_l;

unsigned char int_add_h;

int_add=P8259A; /*读CALL操作码,丢弃*/

int_add_l=P8259A; /*读低8位中断矢量*/

int_add_h=P8259A; /*读高8位中断矢量*/

/*因为高8位中断矢量相同,所有只要判断低8位中断矢量*/

switch(int_add_l){

case 0x00 :

int_IR0();

break;

case 0x04 :

int_IR1();

break;

...

case 0x1c:

int_IR7();

break;

default:

break;

}

}

void int_IR0()

{

.....

P8259A=0x20H; /*非指定EOI命令送8259*/

 

}

void int_IR1()

{

......

P8259A=0x20H;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -