標(biāo)題:
16*16漢字點(diǎn)陳,多個(gè)漢字怎么一個(gè)接一個(gè)顯示出來?
[打印本頁]
作者:
努力-奮斗
時(shí)間:
2017-7-15 16:39
標(biāo)題:
16*16漢字點(diǎn)陳,多個(gè)漢字怎么一個(gè)接一個(gè)顯示出來?
#include<reg51.h>
#include<intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
void delay(u16 i)
{
while(i--);
}
u8 code ledwei[]=
{
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
};
sbit SER = P3^4; //串行數(shù)據(jù)輸入
sbit RCLK = P3^5; //存儲(chǔ)寄存器時(shí)鐘輸入
sbit SRCLK = P3^6; //移位寄存器時(shí)鐘輸入
u8 code Digital1[]=
{
/*-- 文字: 普 --*/
/*-- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 --*/
0x40,0x44,0x54,0x64,0x45,0x7E,0x44,0x44,0x44,0x7E,0x45,0x64,0x54,0x44,0x40,0x00,
0x00,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,0x00,
};
u8 code Digital2[]=
{
/*-- 文字: 我 --*/
/*-- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 --*/
0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,
0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00,
};
void HC595(u8 dat1,u8 dat2, u8 dat3, u8 dat4)
{
u8 a;
for(a=0; a<8; a++)
{
SER = dat1 >>7;
dat1 <<= 1;
SRCLK = 0;
_nop_();
_nop_();
SRCLK = 1;
_nop_();
_nop_();
}
for(a=0; a<8; a++)
{
SER = dat2 >>7;
dat2 <<= 1;
SRCLK = 0;
_nop_();
_nop_();
SRCLK = 1;
_nop_();
_nop_();
}
for(a=0; a<8; a++)
{
SER = dat3 >>7;
dat3 <<= 1;
SRCLK = 0;
_nop_();
_nop_();
SRCLK = 1;
_nop_();
_nop_();
}
for(a=0; a<8; a++)
{
SER = dat4 >>7;
dat4 <<= 1;
SRCLK = 0;
_nop_();
_nop_();
SRCLK = 1;
_nop_();
_nop_();
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
_nop_();
_nop_();
}
void main()
{
u8 i ;
while(1)
{
for(i=0;i<16;i++)
{
HC595(~ledwei[i+16],~ledwei[i],Digital2[16+i],Digital2[i]);
delay(10);
}
}
}
作者:
sldx
時(shí)間:
2017-7-15 19:21
用二維數(shù)組,譬如woshi[][]={{我};{是}}我和是是點(diǎn)陣數(shù)組
作者:
jinsheng7533967
時(shí)間:
2019-2-3 01:45
不難,建議在論壇找一個(gè)現(xiàn)實(shí)的案例調(diào)試,先開懂代碼,再改改修修,后自己寫整個(gè)代碼就掌握了
作者:
日本人孫笑川
時(shí)間:
2019-2-3 22:52
二維數(shù)組 你看看main里面的循環(huán)吧
#include "reg51.h"
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define WEI P0
sbit shcp=P3^6;
sbit stcp=P3^5;
sbit ds=P3^4;
u8 Weixuan[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
u8 Word[4][8]={{0x8a,0x7e,0x2a,0x9f,0xd5,0xff,0xd5,0x9f},
{0x40,0x44,0x44,0x7c,0x44,0x44,0x40,0x00},
{0x88,0x48,0x28,0x1e,0x28,0x48,0x88,0x00},
{0x06,0x22,0x2b,0xaa,0xfb,0x2a,0x23,0x06}};
void delay(u16 i)
{
while(i--);
}
void SendData(u8 dat)
{
u8 i;
shcp=0;stcp=0;
for(i=0;i++;i<8)
{
ds=dat>>7;
dat<<=1;
shcp=1;//上升沿時(shí)數(shù)據(jù)移位
_nop_();
_nop_();
shcp=0;
}
stcp=1;//移動(dòng)結(jié)束后產(chǎn)生正脈沖所以是在循環(huán)外上升沿
_nop_();
_nop_();
stcp=0;
}
void main()
{
u8 i,j=0;
u16 a=0;
while(1)
{
for(i=0;i<8;i++)
{
WEI=Weixuan[i];
SendData(Word[j][i]);
delay(2);SendData(0x00);
}
a++;
j++;
if(j==4)
j=0;
}
}
作者:
sheng7533967
時(shí)間:
2019-2-12 01:30
用二維數(shù)組
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1