阅读:4312回复:7
求教:怎样在一个keil c工程中加一个int0中断处理函数?
怎么用c51声明int0的中断函数?中断向量怎么写?
|
|
最新喜欢:hanwl |
沙发#
发布于:2005-01-10 13:45
中断分配:
编号: 中断名称 中断地址 0 INT0 0003h 1 T0 000Bh 2 INT1 0013h 3 T1 001Bh 4 TI、RI 0023h 中断函数编写以T0为例 void Timer0(void) interrupt1 using1//用第一组寄存器 { th0=.....; tl0=.....; . . . } |
|
|
板凳#
发布于:2005-01-14 04:34
谢谢关注,还是有点不清楚,
中断分配: 编号: 中断名称 中断地址 0 INT0 0003h 1 T0 000Bh 2 INT1 0013h 3 T1 001Bh 4 TI、RI 0023h 这样的格式不符合c51语法吧? |
|
地板#
发布于:2005-01-14 12:13
void Timer0(void) interrupt1 using1//用第一组寄存器
{ th0=.....; tl0=.....; . . . } interrupt 1 using 1 就说中断号为1 即 T0中断,采用第一组寄存器! |
|
|
地下室#
发布于:2005-01-14 12:15
void Int0(void) interrupt0 using1
不就是int0中断吗! |
|
|
5楼#
发布于:2005-01-14 14:38
这个啥意思:
void serial () interrupt 4 using 3 { if(RI) { unsigned char ch; RI = 0; ch=SBUF; if(ch>127) { count3=0; inbuf1[count3]=ch; checksum= ch-128; } else { count3++; inbuf1[count3]=ch; checksum ^= ch; if( (count3==(INBUF_LEN-1)) && (!checksum) ) { read_flag=1; //如果串口接收的数据达到INBUF_LEN个,且校验没错, //就置位取数标志 } } } } |
|
|
6楼#
发布于:2005-01-15 09:14
这个啥意思: |
|
|
7楼#
发布于:2005-02-04 13:15
在.h文件里定义:
/*------------------------------------------------ Interrupt Vectors: Interrupt Address = (Number * 8) + 3 ------------------------------------------------*/ #define IE0_VECTOR 0 /* 0x03 External Interrupt 0 */ #define TF0_VECTOR 1 /* 0x0B Timer 0 */ #define IE1_VECTOR 2 /* 0x13 External Interrupt 1 */ #define TF1_VECTOR 3 /* 0x1B Timer 1 */ #define SIO_VECTOR 4 /* 0x23 Serial port */ #define TF2_VECTOR 5 /* 0x2B Timer 2 */ #define EX2_VECTOR 5 /* 0x2B External Interrupt 2 */ 在.C文件里用到: void int0_isr(void) interrupt IE0_VECTOR 详细的说明可在Keil C51编程手册里找到。 |
|