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,0x8
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/26 22:14:41
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,0x8
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 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,0x8
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寄存器,如果你的终端函数和别的程序用的不是同一个寄存器组则进入中断的时候就不会将寄存器组压入堆栈返回时也不会弹出来 节省代码和时间
void counter(void) interrupt 0 是外部中断0的中断函数,在外部中断0引脚低电平时就自动调用了。