s1 bit p3.2s2 bit p3.4
mcudata equ 30h
dly1 equ 41hdly2 equ 42h
org 0000h
sjmp start
org 0003h
sjmp s1do
start:nop
setb s1setb s2
setb ea
setb ex0
setb it0
mov mcudata,#0
mov dptr,#sm
mov a,mcudata
movc a,@a+dptr
mov p2,a
loop:jb s2,$
lcall dlykey
jb s2,loop
inc mcudata
mov a,mcudata
xrl a,#10
jnz goon1
mov mcudata,#0
goon1:mov a,mcudata
movc a,@a+dptr
mov p2,a
sjmp loop
s1do:jnb s1,$
dec mcudata
mov a,mcudata
xrl a,#0ffh
jnz goon2
mov mcudata,#9
goon2:mov a,mcudata
movc a,@a+dptr
mov p2,a
reti
dlykey: mov dly1,#250
dlylop2:mov dly2,#250
djnz dly2,$
djnz dly1,dlylop2
ret
sm: db 9Fh,25h,0Dh,99h,49h,41h,1Fh,01h,19h,03h
end
#include<reg51.h>
#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];
}
}
#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];
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-12-14
: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 - );}
{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 - );}
第2个回答 2012-12-04
返回(FSUM);很长一段时间没有得到一个编译,但看代码,它应该是一个非常简单的循环,看看这本书应该可以解决。
第3个回答 2012-12-07
C语言程序到汇编语言简单,如果只倒挂理解的程序,自己重写。