作业帮 > 综合 > 作业

interrupt 3 using 3 二个3

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/11 14:33:20
interrupt 3 using 3 二个3
#include < reg51.h >
#include
sbit LS138A=P2^2;
sbit LS138B=P2^3;
sbit LS138C=P2^4;
unsigned int LedNumVal,LedOut[8];
unsigned char code Disp_Tab[] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0xbf,0xc7,0x8c,0xc1,0xff,0xf7 };
void delay(unsigned int i)
{
char j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--);
}
display()
{ unsigned char i;
LedOut[0]=Disp_Tab[LedNumVal%10000/1000];
LedOut[1]=Disp_Tab[LedNumVal%1000/100]&0x7f;
LedOut[2]=Disp_Tab[LedNumVal%100/10];
LedOut[3]=Disp_Tab[LedNumVal%10];
\x05 for( i=0; i
interrupt 表示中断优先级,using表示所用工作寄存器组.
interrupt x using y
跟在interrupt 后面的xx 值得是中断号,就是说这个函数对应第几个中断端口,一般在51中
0 外部中断0
1 定时器0
2 外部中断1
3 定时器1
4 串行中断
其它的根据相应得单片机有自己的含义,实际上c在编译的时候就是把你这个函数的入口地址放到这个对应中断的跳转地址
using y 这个y是说这个中断函数使用的那个寄存器组就是51里面一般有4个 r0 -- r7寄存器,如果你的终端函数和别的程序用的不是同一个寄存器组则进入中断的时候就不会将寄存器组压入堆栈返回时也不会弹出来 节省代码和时间
再问: 寄存器组就是51里面一般有4个 是那些那?能详细吗?