点阵显示

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//点阵显示数组
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};



//单个显示中文(用生成器生成字模,然后套用数组,搭配点整显示数组使用)
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(0xff,0xff,0,0);


//595配置的函数

void hc595()

for(i=0;i<8;i++) //一个595,还需要3个
{
MOSIO = BT3 >> 7 ; //把得到的二进制位右移动7位赋值,即低位与高位换转
BT3 <<= 1;
//经过前两步,bt3 = 0000 0001, 而mosio = 1000 0000
S_CLK = 0;
S_CLK = 1;
}

········

//--输出--//
R_CLK = 0; //set dataline low
R_CLK = 1; //片选
R_CLK = 0; //set dataline low




//刷行刷列扫屏
//利用变量b1的移位
//搭配595配置函数

while(1)
{
//--全亮--//
HC595SendData(0x00, 0x00, 0xFF, 0xFF);
for(j=0; j<50000; j++);

//--刷行--//
b1 = 0x01;
for(i = 0; i<8; i++)
{
HC595SendData(0x00, 0x00, 0x00, b1);
b1 <<= 1;
for(j=0; j<20000; j++);
}

b1 = 0x01;
for(i = 0; i<8; i++)
{
HC595SendData(0x00, 0x00, b1, 0x00);
b1 <<= 1;
for(j=0; j<20000; j++);
}

//--刷列--//
b1 = 0x01;
for(i = 0; i<8; i++)
{
HC595SendData(0xFF, ~b1, 0xFF, 0xFF);
b1 <<= 1;
for(j=0; j<20000; j++);
}

b1 = 0x01;
for(i = 0; i<8; i++)
{
HC595SendData(~b1, 0xFF, 0xFF, 0xFF);
b1 <<= 1;
for(j=0; j<20000; j++);
}


}

相关文档
最新文档