|
#include
#include
unsigned char LED_CODE[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f};
void delay(void)
{ int k;
for(k=0;k<=600;k++);
}
void main()
{
P2=0x1; //位选
P1=LED_CODE[k/1000]; //显示千万位数字
delay(); //延时
P2=0x2; //位选
P1=LED_CODE[k%1000/100]; //显示百万位数字
delay(); //延时
P2=0x4; //位选
P1=LED_CODE[k%100/10]; //显示十万位数字
delay(); //延时
P2=0x8; //位选
P1=LED_CODE[k%10]; //显示万位数字
delay(); //延时
P2=0x10;
P1=LED_CODE[k%10000/1000]; //千
delay();
P2=0x20;
P1=LED_CODE[k%1000/100]; //百
delay();
P2=0x40;
P1=LED_CODE[k%100/10]; //十
delay();
P2=0x80;
P1=LED_CODE[k%10]; //个
delay();
P2=0xff;
}
我自认为这段代码的MAIN函数就类似汇编里的 void delay(void)就类似汇编里的DELAY_1MS
MOV A , #3FH
MOV P1 , A
MOV P2 , #1H
LCALL DELAY_1MS
MOV A , #6H
MOV P1, A
MOV P2 , #2H
LCALL DELAY_1MS
........
MOV A , #80H
MOV P1 , A
MOV P2 , #7H
LCALL DELAY_1MS
delay_1ms: mov r6,#2
temp: mov r5,#0ffh
djnz r5,$
djnz r6,temp
ret
end
但汇编能正常显示0-7为什么C就不行了呢,我还想问下汇编里DELAY_1MS后面个步的具体意思~~~~
[ 本帖最后由 ohno0126 于 2009-2-6 14:00 编辑 ]
|
|