急急急。。。跪求16x16点阵模块显示汉字的C语言程序

急急急。。。跪求16x16点阵模块显示汉字的C语言程序,第1张

#include <REG51H>

#include <intrinsh>

#define NOP() _nop_() // 定义空指令 ,这个函数在库 <intrinsh> 中

//--重定义函数变量--//

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

//--定义SPI要使用的 IO--//

sbit MOSIO = P3^4;

sbit R_CLK = P3^5;

sbit S_CLK = P3^6;

//---全局变量声明--//

ulong column; //点阵

ulong row; //点阵行

ulong dt;

//点阵显示数组

uchar code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,

0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00};

//你的字,这个只是举例

//uchar code tab1[] = {

//0X0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,

//0X0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF};

//函数声明

void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0);

void delay(unsigned short s)

{

for(s;s>0;s--);

}

/主函数/

void main(void)

{

int k, i, ms;

i = 80; //显示时间

while(1)

{

delay(1000);

HC595SendData(0xff,0xff,0,0);

for(ms = i; ms > 0; ms--)

{

for(k = 0; k < 16; k++)

{

//输出字

HC595SendData(~tab1[2k +1],~tab1[2k],tab0[2k],tab0[2k + 1]);

}

}

}

}

/

函 数 名 : HC595SendData

函数功能 : 通过595发送四个字节的数据

输 入 : BT3:第四个595输出数值

BT2: 第三个595输出数值

BT1:第二个595输出数值

BT0:第一个595输出数值

输 出 : 无

/

void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0)

{

uchar i;

//--发送第一个字节--//

for(i=0;i<8;i++)

{

MOSIO = BT3 >> 7 ; //从高位到低位

BT3 <<= 1;

S_CLK = 0;

S_CLK = 1;

}

//--发送第一个字节--//

for(i=0;i<8;i++)

{

MOSIO = BT2 >>7; //从高位到低位

BT2 <<= 1;

S_CLK = 0;

S_CLK = 1;

}

//--发送第一个字节--//

for(i=0;i<8;i++)

{

MOSIO = BT1 >> 7; //从高位到低位

BT1 <<= 1;

S_CLK = 0;

S_CLK = 1;

}

//--发送第一个字节--//

for(i=0;i<8;i++)

{

MOSIO = BT0 >> 7; //从高位到低位

BT0 <<= 1;

S_CLK = 0;

S_CLK = 1;

}

//--输出--//

R_CLK = 0; //set dataline low

R_CLK = 1; //片选

}

//--------------------------------------------------------------------------

//记录字模

void __fastcall TFrmHanLib::SaveFontBuf()

{

TColor dd;

char ps[MAX_BUF_SIZE];

memset(Font_array,0,sizeof(Font_array));

for(int i=0;i<size;i++)

{

memset(ps,0,sizeof(ps));

for(int j=0;j<size;j++)

{

dd = img1->Canvas->Pixels[j][i];

if(dd != clWhite) //保存非底色的点

Font_array[i][j/8] |= char(0x80 >> (j%8));

}

}

}

//---------------------------------------------------------------------------

//输出字模显示

void __fastcall TFrmHanLib::OutFontBuf()

{

AnsiString ps;

char ch;

TColor dd;

img2->Picture = NULL;

for(int i=0;i<size;i++)

{

for(int j=0;j<size/8;j++)

{

ch=Font_array[i][j];

for( int m=0;m<8;m++)

{

if(((ch>>(7-m))&1))

{

img2->Canvas->Pixels[j8 +m][i] =cbb3->SelectedColor;

}

}

}

}

}

参考这个代码。

以上就是关于急急急。。。跪求16x16点阵模块显示汉字的C语言程序全部的内容,包括:急急急。。。跪求16x16点阵模块显示汉字的C语言程序、急!C语言编写 汉字点阵字库、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9502032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存