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

四块8*8的点阵模块组成一个字74LS138进行译码驱动行595驱动列CPU是C8051F020汉字最好是“南京”非常感谢四块8*8的点阵模块组成一个16*16的点阵一共... 四块8*8的点阵模块组成一个字 74LS138进行译码驱动行 595驱动列
CPU是C8051F020 汉字最好是“南京” 非常感谢
四块8*8的点阵模块组成一个16*16 的点阵 一共八个字

非常急 急候佳音 跪求各位高手大大帮帮忙 非常非常感谢
展开
 我来答
神帝盟主
2013-10-20
知道答主
回答量:40
采纳率:0%
帮助的人:22.2万
展开全部
#include <REG51.H>
#include <intrins.h>
#define NOP() _nop_() // 定义空指令 ,这个函数在库 <intrins.h> 中

//--重定义函数变量--//
#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[2*k +1],~tab1[2*k],tab0[2*k],tab0[2*k + 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; //片选
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
影红类
2009-06-01 · TA获得超过356个赞
知道答主
回答量:302
采纳率:0%
帮助的人:0
展开全部
是LED吗,这个区大虾电子网看看,里面好多高手,说不定还能找到源码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式