一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 2287|回复: 3
收起左侧

关于P10 请教高手一个问题!

[复制链接]
发表于 2012-4-25 16:59 | 显示全部楼层 |阅读模式
为啥我P10 用单片机驱动的时候, 138控制 总是8行一起亮 (我这个是板式1/4的),而且Y0 基本上是常量 !!
求高手告知。。谢谢!!
IMG_20120425_165433.jpg
 楼主| 发表于 2012-4-25 17:03 | 显示全部楼层
补充一下, 通过加大延时,看看138控制行,按道理说应该是4行一亮!!
发表于 2013-9-23 22:23 | 显示全部楼层
我的p10也玩不转!
发表于 2013-11-17 17:20 | 显示全部楼层
/*
* 程序名称:P10户外LED屏显示控制
* 主控型号:STC89C52RC
* 晶    振:11.0592MHZ
*
*/

#include "AT89X52.h"

#define SBIT sbit
#define BIT  bit

#define LEDLINEPORT P2

typedef unsigned char INT8U;
typedef unsigned int  INT16U;

SBIT LEDOE = P1^0;                        //显示允许
SBIT SCLK = P1^1;                        //时钟
SBIT STR = P1^2;                        //锁存                 
SBIT RDATA = P1^3;                        //数据


code unsigned char HZ[] =
{
        0xFD,0xFD,0xFD,0xFC,0xFD,0xFD,0xC0,0xDF,0xDF,0xDF,0xC0,0xFF,0xDB,0xDD,0xBD,0x7F,
        0xFF,0xFF,0xFF,0x03,0xFF,0xFF,0x0F,0xEF,0xEF,0xEF,0x0F,0xFF,0x77,0xBB,0xBB,0xFB,/*"点",0*/
       
        0xFF,0x83,0xBB,0xB4,0xB7,0xAF,0xB6,0xB6,0xBB,0xBB,0xBB,0x94,0xAF,0xBF,0xBF,0xBF,
        0xBF,0xBF,0xBF,0x01,0x7F,0x5F,0xDF,0x03,0xDF,0xDF,0xDF,0x01,0xDF,0xDF,0xDF,0xDF,/*"阵",1*/

        0xFF,0xE0,0xEF,0xEF,0xE0,0xEF,0xEF,0xE0,0xFB,0xBB,0xDB,0xEB,0xEB,0xFB,0x00,0xFF,
        0xFF,0x0F,0xEF,0xEF,0x0F,0xEF,0xEF,0x0F,0xBF,0xBB,0xBB,0xB7,0xAF,0xBF,0x01,0xFF,/*"显",0*/
       
        0xFF,0xC0,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0xFE,0xEE,0xEE,0xDE,0xBE,0x7E,0xFA,0xFD,
        0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0x01,0xFF,0xFF,0xEF,0xF7,0xFB,0xFD,0xFD,0xFF,0xFF,/*"示",1*/
};

void SPIWriteToOneChar(unsigned char Write_Data)
{
        unsigned char I = 0x00;
        for (I = 0x00;I < 8;I++)
        {
                RDATA = Write_Data & 0x80;
                SCLK  = 1;
                SCLK  = 0;
                Write_Data <<= 1;
        }
}


void main(void)
{
        unsigned char I = 0x00;
        unsigned char J = 0X00;
        unsigned int  M = 0x00;
        unsigned int  COUNT;
        unsigned char MM = 0;
//        LEDOE = 0;
        while(M++ < 2)
        {
                for (I = 0;I < 4;I++)
                {
                        for (J = 0;J < 32;J++)
                        {
                                 SPIWriteToOneChar(0X00);
                        }
                        STR = 1;
                        LEDLINEPORT = I;
                        LEDOE = 1;
                        STR = 0;
                        COUNT = 20000;
                        while(COUNT--);
                }
        }
        M = 0;
        I = 0;
        J = 0;
        MM = 0X80;
        while(MM > 0)
        {
                for (I = 0;I < 4;I++)
                {
                        for (J = 0;J < 32;J++)
                        {
                                 SPIWriteToOneChar(~MM);
                        }
                        STR = 1;
                        LEDLINEPORT = I;
                        LEDOE = 1;
                        STR = 0;
                        COUNT = 100;
                        while(COUNT--);
                }       
                if (++M == 20)
                {
                        MM >>= 1;
                        M = 0;
                }
        }
        I = 0;
        J = 0;

        while(1)
        {
                for (I = 0;I < 4;I++)
                {
                        LEDOE = 0;
                        SPIWriteToOneChar(HZ[(6-J)*2+I]);
                        SPIWriteToOneChar(HZ[(4-J)*2+I]);
                        SPIWriteToOneChar(HZ[(2-J)*2+I]);
                        SPIWriteToOneChar(HZ[   J *2+I]);
                       
                        SPIWriteToOneChar(HZ[(14-J)*2+I]);
                        SPIWriteToOneChar(HZ[(12-J)*2+I]);
                        SPIWriteToOneChar(HZ[(10-J)*2+I]);
                        SPIWriteToOneChar(HZ[(8 -J)*2+I]);
                       
                        SPIWriteToOneChar(HZ[(22-J)*2+I]);
                        SPIWriteToOneChar(HZ[(20-J)*2+I]);
                        SPIWriteToOneChar(HZ[(18-J)*2+I]);
                        SPIWriteToOneChar(HZ[(16-J)*2+I]);
                       
                        SPIWriteToOneChar(HZ[(30-J)*2+I]);
                        SPIWriteToOneChar(HZ[(28-J)*2+I]);
                        SPIWriteToOneChar(HZ[(26-J)*2+I]);
                        SPIWriteToOneChar(HZ[(24-J)*2+I]);          

                        SPIWriteToOneChar(HZ[(38-J)*2+I]);
                        SPIWriteToOneChar(HZ[(36-J)*2+I]);
                        SPIWriteToOneChar(HZ[(34-J)*2+I]);
                        SPIWriteToOneChar(HZ[(32-J) *2+I]);
                       
                        SPIWriteToOneChar(HZ[(46-J)*2+I]);
                        SPIWriteToOneChar(HZ[(44-J)*2+I]);
                        SPIWriteToOneChar(HZ[(42-J)*2+I]);
                        SPIWriteToOneChar(HZ[(40 -J)*2+I]);
                       
                        SPIWriteToOneChar(HZ[(54-J)*2+I]);
                        SPIWriteToOneChar(HZ[(52-J)*2+I]);
                        SPIWriteToOneChar(HZ[(50-J)*2+I]);
                        SPIWriteToOneChar(HZ[(48-J)*2+I]);
                       
                        SPIWriteToOneChar(HZ[(62-J)*2+I]);
                        SPIWriteToOneChar(HZ[(60-J)*2+I]);
                        SPIWriteToOneChar(HZ[(58-J)*2+I]);
                        SPIWriteToOneChar(HZ[(56-J)*2+I]);
                        STR = 1;
                        LEDLINEPORT = I;
                        LEDOE = 1;
                        STR = 0;
                        COUNT = 100;
                        while(COUNT--);
                }
        }
}       


本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-22 10:31 , Processed in 0.068935 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表