取模軟件網盤提取
鏈接: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、用鼠標進行畫圖,左鍵點下點,右鍵取消點。然后可將下面生成的代碼復制到程序中。