51微控制器8*8點陣屏、取模軟體的使用

FHNCSDN發表於2020-11-21

取模軟體網盤提取

連結: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 0xfe
	unsigned char i,dat;
	dat=0xfe;
	for(i=0;i<8;i++)
	{
	   S_CLK =0;
	   R_CLK =0;//將電平拉低,準備產生一個上升沿
	   if(dat & 0x01)//任何一個數&0x01 不是0就是1
			DIO = 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就是1
			DIO = 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、用滑鼠進行畫圖,左鍵點下點,右鍵取消點。然後可將下面生成的程式碼複製到程式中。

在這裡插入圖片描述

相關文章