我想点亮led点阵左上角一个led灯为什么点亮了一排。
单片机源程序如下:
#include<reg52.h>
#include<intrins.h>
sbit se = P2 ^ 5;
sbit sc = P2 ^ 4;
sbit rc = P2 ^ 6;
int dat1,dat2;
void ledsend(int);
void main()
{
while(1)
{
P1 = 0x7f;
ledsend(0x80);//列是低电平有效行是高电平有效
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
// P1 = 0xfe;
}
}
void ledsend(int dat1)
{
int a;
sc = 1;
rc = 1;
for(a = 0;a < 8;a ++)
{
se = dat1 >> 7;
dat1 <<= 1;
sc = 0;
_nop_();
_nop_();
sc = 1;
//_nop_();
}
rc = 0;
_nop_();
_nop_();
rc = 1;
_nop_();
_nop_();
}
|