一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 1167|回复: 0
收起左侧

两块P10的16*32组成32*32 静态显示不了 求大神指点

[复制链接]
发表于 2014-3-19 09:10 | 显示全部楼层 |阅读模式
两块P10的16*32 4分之扫描方式 上下组成32*32 静态显示不了 求大神指点 只能显示一块 上边或是下边 另一块就瞎显示 不知道为什么 我用的stc12c5a60s2 晶振11M的 这是程序 //serial_input(table1[j][3*8+2*k+i],table[j][3*8+2*k+i]);只能正常显示括号前边变的,后边的不行

#include <STC12C5A.H>

#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define NOP     _nop_()

sbit OE     = P2^0;
sbit A1     = P2^1;
sbit B1     = P2^2;


sbit SHCP=P2^4;    //11脚SHCP    移位时钟
sbit STCP=P2^3;    //12脚STCP    锁存时钟
sbit DATA=P3^7;
sbit DATA1=P3^6;          //数据输入

uchar code table[2][32]=
{
{0xF7,0x7F,0xF7,0x7F,0xF7,0x7F,0xEE,0x01,0xEE,0xFD,0xCD,0xFB,0xCB,0xDF,0xAF,0xDF,0x6E,0xD7,0xEE,0xDB,0xED,0xDB,0xED,0xDD,0xEB,0xDD,0xEF,0xDF,0xEF,0x5F,0xEF,0xBF},
{0xF7,0x7F,0xF7,0x7F,0xF7,0x7F,0xEE,0x01,0xEE,0xFD,0xCD,0xFB,0xCB,0xDF,0xAF,0xDF,0x6E,0xD7,0xEE,0xDB,0xED,0xDB,0xED,0xDD,0xEB,0xDD,0xEF,0xDF,0xEF,0x5F,0xEF,0xBF}
};
uchar code table1[2][32]=
{
{0xEF,0xFF,0xEF,0x03,0xEF,0xFB,0xEF,0xF7,0x03,0xEF,0xDB,0xDF,0xDB,0xDF,0xDA,0x01,0xDB,0xDF,0xB7,0xDF,0xD7,0xDF,0xEF,0xDF,0xD7,0xDF,0xBB,0xDF,0x7B,0x5F,0xFF,0xBF},
{0xEF,0xFF,0xEF,0x03,0xEF,0xFB,0xEF,0xF7,0x03,0xEF,0xDB,0xDF,0xDB,0xDF,0xDA,0x01,0xDB,0xDF,0xB7,0xDF,0xD7,0xDF,0xEF,0xDF,0xD7,0xDF,0xBB,0xDF,0x7B,0x5F,0xFF,0xBF}
};
/*******************************************************************************************/

/*******************************************************************************************/
/*******************************************************************************************/
void io_init()        //端口初始化 //填了这段程序也没用
{
        P2M0 = 0xff; // 推挽输出
        P2M1 = 0x00; //       

        P3M0 = P3M0|0x60; //0011 1000  推挽输出        
}
//数据串行输入
void serial_input(uchar dat,uchar dat1)   
{
   uint i;
  for(i=0; i<8; i++)
        {
               
                DATA=dat&0x80;
                DATA1=dat1&0x80;
                SHCP=0;
                SHCP=1;                //上升沿移位
                dat<<=1;
                dat1<<=1;        //左移1位
        }
}


/*******************************************************************************************/
//并出
void serial_output()
{
        STCP=1;                 
        NOP;
        NOP;
        STCP=0;        
}  
/*******************************************************************************************/
/*******************************************************************************************/
//行显控制
void HC138_scan(uchar temp)
{
   OE=1;
   A1=0x01 & temp;
   B1=0x01 &(temp>>1);
}

/*******************************************************************************************/
/*******************************************************************************************/
//整屏显示
void display()
{
    uint i,j,k;
    for(k=0;k<4;k++)                  //显示的四行
        {        
            for(j=0;j<2;j++)          //显示3、4列
               {
                    for(i=0;i<2;i++)      // 显示1、2列
                        {
                            serial_input(table1[j][3*8+2*k+i],table[j][3*8+2*k+i]);//只能正常显示括号前边变的,后边的不行
                                                                                                                                       
                            serial_input(table1[j][2*8+2*k+i],table[j][2*8+2*k+i]);
                                                                                                 
                            serial_input(table1[j][1*8+2*k+i],table[j][1*8+2*k+i]);
                                                                                                
                            serial_input(table1[j][0*8+2*k+i],table[j][0*8+2*k+i]);
                                                                               
                        }
                }
                                                serial_output();
                        HC138_scan(k);
                                               
                                                               
       }
}


/*******************************************************************************************/
/*******************************************************************************************/

/*******************************************************************************************/
/*******************************************************************************************/
void main()
{io_init();
        while(1)
        {

                display();
                }
}
求指点



本版积分规则

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

GMT+8, 2024-6-1 18:34 , Processed in 0.059643 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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