各位大佬,本人近期搞了一個旋轉(zhuǎn)LED顯示屏。寫好程序后進行運行。發(fā)現(xiàn)顯示的字是鏡像文字,比如說“老”,顯示的就是鏡像文字。然后我就想:即然是鏡像文字,那我就在取模軟件里取鏡像模,這樣顯示的就是正常字了。
結(jié)果實踐之后不得行,電機的正轉(zhuǎn)和反轉(zhuǎn)也對文字沒影響。跪求大佬指點一下怎么解決這個問題,采用16*16,程序如下,led低電平點亮
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint num; //???????
sbit wai=P3^2; //??????
//???
void delay(uint z) //???
{
uchar x,y;
for(x=z;x>0;x--)
for(y=10;y>0;y--);
}
//?????
uchar code shuzu2[]={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",0*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",2*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",3*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",6*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",7*/
0xFD,0xEF,0xDD,0xEF,0xDD,0xDF,0xDD,0xDF,0xDD,0xBF,0xDD,0x83,0x01,0x6D,0xDC,0xED,
0xDC,0xDD,0xDD,0xDD,0xD9,0xBD,0xD5,0xBD,0x8D,0xFD,0xDD,0xF1,0xFD,0xFF,0xFF,0xFF,/*"老",8*/
0xFF,0xFD,0xC0,0x1B,0xFF,0xF7,0xFF,0x8F,0x00,0x7F,0xFF,0xFF,0xB0,0x0F,0xB7,0xFF,
0xB7,0xFF,0xB7,0xFF,0x80,0x00,0xB7,0xFF,0xB7,0xDF,0xB7,0xEF,0xB0,0x1F,0xFF,0xFF,/*"師",9*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xE5,0xFF,0xE3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",10*/
0xFE,0xFF,0xFD,0xFB,0xF3,0xE3,0xC0,0x3F,0x3F,0xE3,0xF6,0xFD,0xE9,0xFD,0x9F,0x6D,
0xDF,0xB5,0xD0,0x7D,0xDF,0xFD,0xDB,0xF1,0xDD,0xFF,0xCE,0x6F,0xDF,0xF3,0xFF,0xFF,/*"您",11*/
0xFE,0xFF,0xDE,0xDF,0xDE,0xDF,0xD6,0xDF,0xDA,0xDF,0xDC,0xDF,0x5E,0xDF,0x9E,0x00,
0xDE,0xDF,0xDC,0xDF,0xDA,0xDF,0xD6,0xDF,0xDE,0xDF,0xDE,0xFF,0xFE,0xFF,0xFF,0xFF,/*"辛",12*/
0xFD,0xFF,0xDD,0xFF,0xDD,0xFF,0xDD,0x81,0xDD,0xBB,0x05,0xBB,0xDD,0xBB,0xD0,0x3B,
0xDD,0xBB,0xDD,0xBB,0x05,0xBB,0xDD,0x81,0xDD,0xFF,0xDD,0xFF,0xDD,0xFF,0xFF,0xFF,/*"苦",13*/
0xFF,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFD,0xBF,0xFE,0xB0,0x01,
0xB7,0xFF,0xAF,0xFF,0xAF,0xFF,0x9F,0xFF,0x9F,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"了",14*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x05,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"!",15*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",16*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",17*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",18*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",19*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",20*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",21*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",22*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",23*/
};
void display(uchar *dat,uint ci)
{
uint k=0;
uint i=0;
while(k<ci)
{
if(wai==0) //當(dāng)檢測紅外開始時
{
for(i=0;i<128;i=i+2) //設(shè)置顯示寬度
{
P0=dat[i+k]; //顯示高八位
P1=dat[i+1+k]; //第八位
delay(12); //???
}
P1=0xff; //???
P0=0xff;
k+=2; //字模地址加2,滾動顯示
}
}
}
//??????
void main()
{
while(1)
{
display(shuzu2,384); //四個清屏加八個字,一共12*32=384個數(shù)據(jù),一個字32個數(shù)據(jù)
}
}
|