标题: 我想点亮led点阵左上角一个led灯,为什么点亮了一排? [打印本页]

作者: 1164804963    时间: 2020-4-29 18:52
标题: 我想点亮led点阵左上角一个led灯,为什么点亮了一排?
我想点亮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_();
}

作者: carpcarey    时间: 2020-4-30 08:53
ledsend函数有问题。595的驱动时序研究下。
void ledsend(int dat1)
{
   int a;
   sc = 0;
   rc = 0;
    for(a = 0;a < 8;a ++)
    {
        se = dat1 >> 7;
        dat1 <<= 1;
        sc = 1;
         _nop_();
         _nop_();      
        sc = 0;
        //_nop_();
    }
    rc = 1;
    _nop_();
    _nop_();   
    rc = 0;
    _nop_();
    _nop_();
}
作者: 须臾9q    时间: 2020-5-4 08:54
点亮函数不对




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1