|
发表于 2012-1-8 00:01:41
|
显示全部楼层
我按照楼主编程思路 也做了一个51程序,如下:可不知为什么好像显示出来的字亮度很低啊,怀疑是刷新率太低,请教一下如何解决类似问题
#include <reg52.h>
sbit STR=P2^1; //锁存
sbit CLK=P2^0; //时钟
sbit RData= P3^5; //红数据
sbit GData= P3^6; //绿数据
sbit E= P3^4; //使能
//16??
unsigned char code hanzi1[4][32]={
/*---------------品----------------*/
0xFF,0xFF,0x07,0xE0,0x07,0xE0,0xE7,0xE7,0xE7,0xE7,0x07,0xE0,0x07,0xE0,0xFF,0xFF,
0x81,0x80,0x81,0x80,0x99,0x9C,0x99,0x9C,0x81,0x80,0x81,0x80,0x99,0x9C,0xFF,0xFF,
/*---------------质----------------*/
0xFF,0xC1,0x03,0xC0,0x03,0xFC,0xF3,0xFC,0x03,0x80,0x03,0x80,0xF3,0xFC,0x13,0xC0,
0x93,0xCF,0x93,0xCC,0x93,0xCC,0x99,0xCC,0x79,0xF2,0x0C,0xC7,0x8E,0x9F,0xFF,0xFF,
/*---------------异----------------*/
0x03,0xE0,0x03,0xE0,0xF3,0xE7,0xF3,0xE7,0x03,0xE0,0xF3,0x9F,0x03,0x80,0x07,0xC0,
0xCF,0xF3,0x00,0x80,0x00,0x80,0xCF,0xF3,0xE7,0xF3,0xF1,0xF3,0xF9,0xF3,0xFF,0xFF,
/*---------------常----------------*/
0x67,0xE6,0x4F,0xF2,0x01,0x80,0x01,0x80,0xF9,0x9F,0x09,0x90,0xCF,0xF3,0x0F,0xF0,
0x0F,0xF0,0x7F,0xFE,0x07,0xC0,0x07,0xC0,0x67,0xCE,0x67,0xE6,0x7F,0xFE,0xFF,0xFF,
};
void delay()
{
unsigned char b;
for(b=200;b>0;b--); /*延时程序*/
}
void sendbyteR(unsigned char bbyte1)
{
SBUF = bbyte1; //数据送串口数据缓冲器
while(TI == 0); //等待发送结束
TI = 0; //手动复位中断标志
}
void main(void)
{
unsigned char i;
SCON = 0x00; // 串口模式0,即移位寄存器输入/输出方式
TI = 1; //开启TI,串口发送中断标志置1
E=0;
while(1)
{
P1=0xff;
for(i=0;i<16;i++)
{
sendbyteR(hanzi1[0][i*2]);
sendbyteR(hanzi1[0][i*2+1]);
sendbyteR(hanzi1[1][i*2]);
sendbyteR(hanzi1[1][i*2+1]);
sendbyteR(hanzi1[2][i*2]);
sendbyteR(hanzi1[2][i*2+1]);
sendbyteR(hanzi1[3][i*2]);
sendbyteR(hanzi1[3][i*2+1]);
P1=i;
STR=0;STR=1;
//delay();
}
//delay();
//delay();
}
} |
|