标题:
闲着买了块P10(16*32)单色屏玩,程序网上找的,可不该亮的LED暗亮,怎么消隐。
[打印本页]
作者:
shuaili
时间:
2015-12-29 23:28
标题:
闲着买了块P10(16*32)单色屏玩,程序网上找的,可不该亮的LED暗亮,怎么消隐。
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define NOP _nop_()
sbit OE = P2^7; //21脚使能
sbit A1 = P2^0; //22脚行选信号
sbit B1 = P2^1; //23脚行选信号
sbit SHCP=P2^3; //25脚SHCP 移位时钟
sbit STCP=P2^4; //24脚STCP 锁存时钟
sbit DATA=P2^5; //17脚红色数据输入
uchar code table[10][32]={{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xC7,0x99,0xBB,0x99,0x39,0xF9,0x39,0xE3,0x39,
0xE3,0x39,0xF9,0x39,0xFD,0x39,0x9D,0x39,0x99,0xBB,0xC3,0xC7,0xFF,0xFF,0xFF,0xFF}, //30
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x7,0xE7,0xE3,0xE7,0xF1,0xE7,0xF1,0xE7,0xE3,
0xE0,0xF,0xE7,0xFF,0xE7,0xFF,0xE7,0xFF,0xE7,0xFF,0x81,0xFF,0xFF,0xFF,0xFF,0xFF}}; //P
/*******************************************************************************************/
//数据串行输入
void serial_input(uchar dat)
{
uint m;
for(m=0;m<8;m++)
{
if(dat & 0x80)
DATA=1;
else
DATA=0;
SHCP=0;
SHCP=1;
NOP;
NOP;
SHCP=0;
NOP;
NOP;
dat=dat<<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(table[j][3*8+2*k+i]);
serial_input(table[j][2*8+2*k+i]);
serial_input(table[j][1*8+2*k+i]);
serial_input(table[j][0*8+2*k+i]);
}
}
serial_output();
HC138_scan(k);
}
}
/*******************************************************************************************/
/*******************************************************************************************/
void main()
{
while(1)
{
display();
}
}
作者:
loost
时间:
2018-9-10 05:48
我也遇到了同样的问题,真希望有人能解决一下。
作者:
qinshuai
时间:
2018-9-10 08:33
void serial_output() { OE=1;STCP=1; NOP; NOP; STCP=0;} 然后 再在主函数里加一点延迟试一试}
作者:
qinshuai
时间:
2018-9-10 08:37
并行输出前,把之前亮的给消了,不知道令OE=0能否达到这效果。还有要加入一点延时函数,运行太快也快,人眼可能跟不上
作者:
lmn2005
时间:
2019-2-15 12:02
请问:你有P10显示屏的接口图吗
作者:
toby2006
时间:
2019-2-15 15:32
有图吗?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1