怎么把这个C51按键中断程序汇编语言改写成C语言

2025-03-13 15:42:34
推荐回答(4个)
回答1:

#include
#define uchar unsigned char
char mcudat;
uchar sm[]={0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x19,0x03};
sbit s1=P3^2;
sbit s2=P3^4;
void ext0() interrupt 0
{
while(!s1);
mcudata--;
if(mcudata==-1)mcudata=9;
P2=sm[mcudata];
}
void dlykey();
{
uchar i,j;
for(i=0;i<125;i++)
for(j=0;j<125;j++);
}
main()
{
s1=1;
s2=1;
EA=1;
EX0=1;
IT0=1;
mcudat=0;
P2=sm[mcudat];
while(1)
{
while(1)
{
while(s2);
dlykey();
if(!s2)break;
}
mcudata++;
if(mcudata==10)mcudata=0;
P2=sm[mcudata];
}
}

回答2:

:VOID DIS()
{INT X;
为(X = 250,X = 0,X - ;) {
P0 = 0x5B;
P2_0 = 0; ...... / DELAY();
P2_0 = 1;
P0 = 0X3F
P2_1 = 0;
DELAY();
P2_1 = 1;
P0 = 0X5B;
P2_2 = 0;
DELAY();
P2_2 = 1;
P0 = 0X6D;
P2_3 = 0;
DELAY()
P2_3 = 1;
}
}
VOID DELAY()
{INT X,Y;
(X = 25,X> 0 X - )

(Y = 2,Y> 0,Y - );}

回答3:

返回(FSUM);很长一段时间没有得到一个编译,但看代码,它应该是一个非常简单的循环,看看这本书应该可以解决。

回答4:

C语言程序到汇编语言简单,如果只倒挂理解的程序,自己重写。