51单片机8*8点阵屏、取模软件的使用

取模软件网盘提取

链接: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、用鼠标进行画图,左键点下点,右键取消点。然后可将下面生成的代码复制到程序中。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值