急急急。。。跪求16x16点阵模块显示汉字的C语言程序 30
四块8*8的点阵模块组成一个字74LS138进行译码驱动行595驱动列CPU是C8051F020汉字最好是“南京”非常感谢四块8*8的点阵模块组成一个16*16的点阵一共...
四块8*8的点阵模块组成一个字 74LS138进行译码驱动行 595驱动列
CPU是C8051F020 汉字最好是“南京” 非常感谢
四块8*8的点阵模块组成一个16*16 的点阵 一共八个字
非常急 急候佳音 跪求各位高手大大帮帮忙 非常非常感谢 展开
CPU是C8051F020 汉字最好是“南京” 非常感谢
四块8*8的点阵模块组成一个16*16 的点阵 一共八个字
非常急 急候佳音 跪求各位高手大大帮帮忙 非常非常感谢 展开
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; //片选
}
#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; //片选
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询