取模软件网盘提取
链接:https://pan.baidu.com/s/1YYQo_tZNCXlo9uWVbtsNdg
提取码:jfbr
74HC595芯片原理图:
两片595芯片级联驱动点阵屏只需要三个IO口,串行入(一次只能传一个数据,S_CLK)并行出(一次可以传多个,R_CLK)
点阵屏内部的接线图:
显示一个点的程序
#include<reg52.h>
sbit DIO =P3^4;//串行数据口
sbit S_CLK =P3^5;//移位寄存器时钟
sbit R_CLK =P3^6;//输出寄存器时钟
void main()
{//ROW 0x80 ,COL 0xfeunsigned char i,dat;dat=0xfe;for(i=0;i<8;i++){S_CLK =0;R_CLK =0;//将电平拉低,准备产生一个上升沿if(dat & 0x01)//任何一个数&0x01 不是0就是1DIO = 1;else DIO = 0;S_CLK = 1;dat =dat>>1; }dat = 0x80;for(i=0;i<8;i++){S_CLK =0;R_CLK =0;//将电平拉低,准备产生一个上升沿if(dat & 0x01)DIO = 1;else DIO = 0;S_CLK = 1;dat>>=1;}R_CLK =1;while(1);}
显示两个字(这里是上和下)的代码
#include<reg52.h>
#include<intrins.h>
sbit DIO =P3^4;//串行数据口
sbit S_CLK =P3^5;//移位寄存器时钟
sbit R_CLK =P3^6;//输出寄存器时钟
//取模软件生成的是列选值
unsigned char code table[2][8]=
{0xFF,0x00,0xEF,0xEF,0xEF,0xE1,0xEF,0xEF,
0xEF,0xEF,0xE1,0xEF,0xEF,0xEF,0x00,0xFF};void Send_Byte(unsigned char dat)
{unsigned char i;S_CLK =0;R_CLK =0;//将电平拉低,准备产生一个上升沿for(i=0;i<8;i++){if(dat & 0x01)//任何一个数&0x01 不是0就是1DIO = 1;else DIO = 0;S_CLK = 1;dat =dat>>1;S_CLK = 0; }
} void main()
{unsigned char j,k,ROW;unsigned int z;ROW=0x80;//行选的值,先选中第一行while(1){for(k=0;k<2;k++){for(z=0;z<1000;z++){ROW=0x80;//行选的值,先选中第一行for(j=0;j<8;j++){Send_Byte(table[k][j]);Send_Byte(ROW); R_CLK =1;R_CLK =0; ROW=_cror_(ROW,1);}}}}
}
取模软件的使用
1、先打开设置按照下图进行设置(这里是51单片机)
2、新建图像
3、设置点阵的大小(我这里是8*8的)
4、用鼠标进行画图,左键点下点,右键取消点。然后可将下面生成的代码复制到程序中。