标题:
含泪托出16×16点阵原理图及程序
[打印本页]
作者:
电子黑
时间:
2016-6-27 01:27
标题:
含泪托出16×16点阵原理图及程序
本帖最后由 电子黑 于 2016-6-27 01:28 编辑
嗯,也算是此次暑假留校在科协学习的一个小小的结束成果了。其实本来是听创新基地指导员的建议做倒车雷达的,但是那超声波的探头太贵,被迫放弃了。
另外为了让点阵恒流驱动,我用了三极管驱动(其实不用三极管也能显示的,不过亮度不均匀,不好看)我自己靠仅有的一点模电三极管知识自己把电路图给设计出来了。因为网上很难找到电路,不知道为啥16×16点阵的资料特少。
74HC595驱动电路。用的四块74HC595级联。我问过很多比较专业的人,也找过很多资料,他们都说行扫描和列扫描都用595的话不好。可是我理论分析可行,于是做出来,事实证明也行!!
这是没加三极管驱动的一样能显示,只是效果差一点
这个自己比较自豪的板子,三极管恒流驱动模块(自个设计的)。呵呵因为科协上面没有8050了。自己买3毛一个,买16个..。。也花了不少钱啊。。挺心痛
整体连接
网上的资料很少出现完整配套的16×16点阵的原理图和程序,而且这是经过桥哥实践验证了的,因此在此含泪托出。。呵呵。
成品整体照
原理图(由于图太大缩小了看不清,因此分块来发)
下面是驱动模块电路图
1、三极管部分
2、74HC595部分
3、引出接到点阵的排针
嗯硬件电路就是这样了,下面是程序。
#include<reg52.h>
#include<74HC595.h>
#define uchar unsigned char
#define uint unsigned int
//列扫描数组
uchar code table_L[]={0xff,0x7f, 0xff,0xbf, 0xff,0xdf, 0xff,0xef, 0xff,0xf7, 0xff,0xfb, 0xff,0xfd, 0xff,0xfe,
0x7f,0xff, 0xbf,0xff, 0xdf,0xff, 0xef,0xff, 0xf7,0xff, 0xfb,0xff, 0xfd,0xff, 0xfe,0xff};
//字模数组
uchar code table_H[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",1*/
0x00,0x08,0x40,0x04,0x40,0x02,0xFE,0x7F,0x20,0x01,0x20,0x02,0x00,0x40,0x20,0x49,
0x20,0x49,0xFE,0x3F,0x90,0x24,0x90,0x24,0x90,0x20,0x80,0x20,0x00,0x20,0x00,0x00,/*"桂",0*/
0x00,0x10,0x80,0x0C,0x80,0x02,0xF8,0x3F,0x40,0x01,0x40,0x0A,0x00,0x04,0x40,0x02,
0x40,0x01,0xFC,0x7F,0x20,0x01,0x20,0x02,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x00,/*"林",1*/
0x00,0x00,0x00,0x00,0xE0,0x01,0x20,0x06,0x20,0x05,0x20,0x05,0xFE,0x3F,0x90,0x42,
0x10,0x42,0x10,0x42,0xF0,0x41,0x00,0x40,0x00,0x40,0x00,0x38,0x00,0x00,0x00,0x00,/*"电",2*/
0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x88,0x00,0x88,0x20,0x88,0x20,0xE4,0x40,
0x94,0x3F,0x4C,0x00,0x44,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,/*"子",3*/
0x00,0x10,0x80,0x08,0x90,0x04,0x90,0x02,0xF0,0x7F,0x48,0x01,0x44,0x01,0x00,0x02,
0x50,0x02,0xA0,0x02,0x00,0x02,0xFE,0xFF,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,/*"科",4*/
0x00,0x04,0x40,0x04,0x40,0x22,0xFE,0x7F,0x20,0x01,0x20,0x20,0x00,0x20,0x20,0x15,
0x20,0x09,0xFE,0x08,0x90,0x16,0x90,0x21,0x00,0x60,0x00,0x40,0x00,0x40,0x00,0x00,/*"技",5*/
0x00,0x00,0x00,0x40,0x80,0x20,0x80,0x10,0x80,0x08,0x80,0x06,0xFE,0x01,0x40,0x02,
0x40,0x04,0x40,0x08,0x40,0x10,0x40,0x20,0x00,0x60,0x00,0x40,0x00,0x40,0x00,0x00,/*"大",6*/
0x00,0x00,0x80,0x09,0xE0,0x08,0x44,0x08,0x48,0x08,0x40,0x09,0xA4,0x48,0xA8,0x86,
0xA0,0x7D,0xB0,0x04,0x2E,0x04,0x20,0x04,0x60,0x04,0x20,0x00,0x00,0x00,0x00,0x00,/*"学",7*/
0x00,0x20,0x40,0x11,0x40,0x0A,0x20,0x04,0xE0,0x0B,0x00,0x40,0x80,0x20,0x70,0x18,
0x4E,0x07,0x20,0x08,0xA0,0x10,0x60,0x20,0x20,0x60,0x00,0x40,0x00,0x40,0x00,0x00,/*"欢",8*/
0x80,0x10,0x80,0x10,0x88,0x12,0x90,0x1D,0x00,0x10,0xF0,0x13,0x10,0x12,0x08,0x11,
0x0C,0x20,0xE0,0x2F,0x10,0x20,0x10,0x61,0xF0,0x61,0x00,0x20,0x00,0x20,0x00,0x00,/*"迎",9*/
0x00,0x00,0x40,0x20,0x20,0x30,0xF0,0x03,0x0C,0x18,0x40,0x20,0xA0,0x41,0x18,0x48,
0x16,0x52,0xF0,0x43,0x08,0x50,0xA8,0x60,0x18,0x45,0x00,0x08,0x00,0x00,0x00,0x00,/*"您",10*/
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x33,0xF8,0x33,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",11*/
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x33,0xF8,0x33,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",12*/
0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,/*"-",13*/
0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,/*"-",14*/
0x00,0x00,0x00,0x06,0x80,0x03,0x00,0x00,0x00,0x10,0x00,0x20,0x00,0x40,0xFC,0x3F,
0x00,0x00,0x00,0x00,0x40,0x00,0x80,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,/*"小",15*/
0x00,0x04,0x40,0x02,0x40,0x01,0xFE,0x7F,0x20,0x01,0x20,0x43,0x40,0x21,0xC8,0x1E,
0x78,0x00,0x28,0x00,0x64,0xFE,0xA4,0x00,0x20,0x01,0x00,0x02,0x00,0x02,0x00,0x00,/*"桥",16*/
0x00,0x00,0x40,0x00,0x88,0x30,0x10,0x0E,0x00,0x40,0x20,0x30,0xA0,0x0D,0x60,0x01,
0xA2,0x3E,0x94,0x00,0xD0,0x1E,0x90,0x20,0x10,0x20,0x00,0x20,0x00,0x38,0x00,0x00,/*"流",17*/
0x00,0x10,0x80,0x10,0x80,0x08,0x40,0x04,0x40,0x03,0xC0,0x20,0x00,0x40,0xFC,0x7F,
0x80,0x00,0x40,0x01,0x20,0x02,0x18,0x04,0x00,0x0C,0x00,0x08,0x00,0x08,0x00,0x00,/*"水",18*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",1*/
};
uchar L=0,H=0;
uint t=0,x=0;
#define h sizeof(table_H)
void main()
{
// extern uint h;
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-1000)/256;//1ms进一次中断刷新显示一列
TL0=(65536-1000)%256;
TR0=1;
// h=sizeof(table_H);
while(1)
{
if(L==32)
{
L=0;
H=0;
}
}
}
void T0_time() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
Input(table_L[L]);
Input(table_L[L+1]);
Input(table_H[H+x]);
Input(table_H[H+x+1]);
Output();
L=L+2;
// if(L==32)L=0;
H=H+2;
// if(H==32)H=0;
t++;
if(t==100)//移动
{
t=0;
x=x+2;
if(x>=h-32)x=0;
}
}
下面是上面程序用到的74HC595的头文件
//SCK上升沿读取数据(由高位送数据),RCK上升沿输出锁存数据 。没有严格的时间要求
sbit SI=P2^4;//数据口
sbit SCK=P2^6;//数据输入时钟线
sbit RCK=P2^5;//数据输出时钟线
void Input(unsigned char dat)
{
char i;
for(i=0;i<8;i++)
{
dat=dat<<1;
SCK=0;
SI=CY;//取出最高位
SCK=1;//上升沿
}
}
void Output()
{
RCK=0;
RCK=1;//上升沿输出锁存数据
}
至此,点阵的完整资料已经给出来了,有不足和还需改进的地方或者错误还希望看到这篇文章的达人指出。。
看到了不,实验室里唯一一台显像管显示器(俗称大屁股)。。。正是桥哥的。。很纠结。为啥他们都用液晶呢???我很疑惑,一直没搞懂。。。
作者:
苏鹏飞
时间:
2016-7-20 10:25
void T0_time() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
Input(table_L[L]);
Input(table_L[L+1]);
Input(table_H[H+x]);
Input(table_H[H+x+1]);
Output();
L=L+2;
// if(L==32)L=0;
H=H+2;
// if(H==32)H=0;
t++;
if(t==100)//移动
{
t=0;
x=x+2;
if(x>=h-32)x=0;
不理解,能解释一下吗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1