请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 7474|回复: 3

求助~关于16X16点阵的代码和连线方式。

[复制链接]

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2015-12-29 17:57:48 | 显示全部楼层 |阅读模式
#include <reg51.h>
#include <intrins.h>  
#define uchar unsigned char
#define uint unsigned int
#define BLKN 2
sbit SDATA_595=P0^0;
sbit SCLK_595 =P2^7;
sbit RCK_595 =P0^2;
sbit G_74138 =P2^4;
uchar data dispram[32];
uchar temp;
void delay(uint );
uchar code Bmp[][32]=
{ { 0x10,0x10,0x08,0x20,0x04,0x48,0x3F,0xFC,
0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,
0x21,0x08,0x3F,0xF8,0x21,0x00,0x01,0x04,
0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00},
{0x00,0x80,0x20,0x80,0x20,0x80,0x20,0x80,
0x20,0x84,0x3F,0xFE,0x20,0x00,0x20,0x00,
0x3F,0xC0,0x20,0x40,0x20,0x40,0x20,0x40,
0x20,0x40,0x20,0x40,0x40,0x40,0x80,0x40},
{0x10,0x00,0x10,0x10,0x11,0xF8,0x11,0x10,
0xFD,0x10,0x11,0x10,0x31,0x10,0x39,0x10,
0x55,0x10,0x51,0x10,0x91,0x10,0x11,0x10,
0x11,0x12,0x12,0x12,0x14,0x0E,0x18,0x00},
{0x01,0x00,0x02,0x00,0x04,0x10,0x1F,0xF8,
0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,

0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,
0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10},
{0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,
0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,
0x00,0x40,0x01,0x84,0xFF,0xFE,0x01,0x00,
0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00},
{0x03,0xF8,0x40,0x10,0x30,0xA0,0x10,0x48,
0x03,0xFC,0x02,0x48,0xF2,0x48,0x13,0xF8,
0x12,0x48,0x12,0x48,0x13,0xF8,0x12,0x48,
0x12,0x68,0x2A,0x50,0x44,0x06,0x03,0xFC}
};

void delay(uint dt)
{
uchar bt;
for(;dt;dt--)
for(bt=0;bt<255;bt++);
}

void WR_595(void)
{ uchar x;
for (x=0;x<8;x++)
{
temp=temp<<1;
SDATA_595=CY;
SCLK_595=1; //???????
_nop_();
_nop_();
SCLK_595=0;
}
}

void main(void)
{ uchar i,k;
TMOD = 0x01; //???T0????1
TH0 = 0xFC; //1ms????
TL0 = 0x66;
IE = 0x82; //????0??
TR0=1; //?????
P2=0XF0; //????,????
while(1)
{ for(k=0;k<6;k++) //??"??????"

{
for(i=0;i<32;i++)
{
dispram[i]= Bmp[k][i];//????????????????dispram[32]??
}
delay(1500); //????????????????????????????
}
}
}
/*****************??????(??dispram[32]??????)*******************/
void led_dis(void) interrupt 1 using 1
{
uchar i,j=BLKN;
TH0 = 0xFC; //1ms????
TL0 = 0x66;
i=P2; //?????????
i=++i & 0x0f; //???1,???4?,????16???
do{
j--;
temp = ~dispram[i*BLKN+j];//??????????,??????????
WR_595(); //??????
}while(j);
G_74138=1; //????
P2 &= 0xf0; //??????
RCK_595 = 1; //?????????????
P2 |=i; //????
RCK_595 = 0; //??????
G_74138=0; //????
}



这是写的代码,编译通过,烧录也成功了,但是点阵就是不能正常显示。怀疑是连线方式有问题,但是不知道怎么连才对。。。有哪位知道可以告知一下吗谢谢~~

回复

使用道具 举报

139

主题

382

帖子

1531

积分

金牌会员

Rank: 6Rank: 6

积分
1531
发表于 2015-12-31 08:49:17 | 显示全部楼层
595控制端接上单片机,输出端对应接行列点阵引脚
回复 支持 反对

使用道具 举报

0

主题

1

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2019-9-6 10:32:08 | 显示全部楼层
应该是P0脚的问题,在上面加上拉电阻就可以了,我也这样成功。
回复 支持 反对

使用道具 举报

0

主题

38

帖子

100

积分

禁止发言

积分
100
发表于 2022-5-30 11:13:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-29 16:33 , Processed in 0.090455 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表