标题: STC15单片机驱动64*32点阵板不亮 [打印本页]

作者: ning_dan    时间: 2021-1-26 22:17
标题: STC15单片机驱动64*32点阵板不亮
驱动一块64*32点阵板,大屏上拆下来的那种,写个测试程序,仅点亮第一行,用的是STC15单片机,屏幕无法点亮,大神帮看下程序哪里不对。
#include "STC15.H"

sbit sk = P2^6;
sbit lt = P2^7;
sbit g1 = P4^5;
sbit led_A  = P0^0;
sbit led_B  = P0^1;
sbit led_C  = P0^2;
sbit led_D  = P0^3;
unsigned char i,j;
void main()
{
    P0M0=0;
    P0M1=0;
    P2M0=0;
    P2M1=0;
    P4M0=0;
    P4M1=0;

    while(1)
    {

            P0 = 0;                   //只显示第一行
            for(j=0;j<64;j++)
            {
                g1 = 1;              //第一行全亮
                sk = 0;
                sk = 1;             //上升沿移位
            }
            lt = 0;
            lt = 1;                //上升沿锁存

    }
}


作者: 人人学会单片机    时间: 2021-1-27 08:29
这个是P10单元板 你可以参考一下 http://www.51hei.com/bbs/dpj-201948-1.html
作者: man1234567    时间: 2021-1-27 08:48
只要把电路改一下就可以了
作者: munuc_w    时间: 2021-1-27 09:11
单片机程序和硬件平台是紧密相联系的,应先说明硬件连接方式,点阵LED是要行和列扫描驱动的。你的代码在循环中只做了一个动作,没有任何变化。其它行如何能亮。
作者: munuc_w    时间: 2021-1-27 10:07
点阵LED驱动时需要行列进行,扫描驱动。你的代码中64个循环只是执行了一个操作,所以只能有一个结果。
作者: wjcxy3166    时间: 2021-1-27 14:17
程序不对吧,第一行全亮这语句执行得太快了,你看不到结果的。

作者: ning_dan    时间: 2021-1-28 18:16
munuc_w 发表于 2021-1-27 10:07
点阵LED驱动时需要行列进行,扫描驱动。你的代码中64个循环只是执行了一个操作,所以只能有一个结果。

P0=0,说明行选在P0端口,全0说明只选第一行
作者: ning_dan    时间: 2021-1-28 18:20
wjcxy3166 发表于 2021-1-27 14:17
程序不对吧,第一行全亮这语句执行得太快了,你看不到结果的。

g1=1就是移64个1进去啊,不用锁存之后=0吧?




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