新人一枚,如题。用C编程效果出来了,按着思路用汇编试了下死活出不来,究竟是哪里的问题呢?
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV P0,0C0H;给p0口字形码一个用来测试
MOV P2,0FFH ;全部位选通
SJMP 0030H ;循环
END
顺便附上C的方法,送字形码后先给0再延时,干嘛用的呢?
#include <reg52.h>
#define uchar unsigned char
sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90};
//void delay(uchar i)
//{
//uchar j,k;
// for(j=i;j>0;j--)
// for(k=125;k>0;k--);
//}
void display()
{
P0=table[0];
P2_0 = 0;
//delay(5);
P2_0 = 1;
P0=table[1];
// P2_1 = 0;
// delay(5);
P2_1 = 1;
P0=table[2];
// P2_2 = 0;
// delay(5);
P2_2 = 1;
P0=table[3];
// P2_3 = 0;
// delay(5);
P2_3 = 1;
}
/*演示主程序*/
void main(void)
{
unsigned int a;
//while(1)
//{
// for(a=100;a>0;a--)
//{
display();
// }
//}
} |