51单片机LED矩阵结合74HC595显示“I ♥ U”图案

主要是熟悉74HC595的使用,用来扩展I/O口;

开发板:STC89C51RC板

目的:循环显示 “I ♥ U”图案,当然有对象可以给对象看;没对象好基友也不错!

实验需要知道的知识:

        LED显示:正向导通时LED亮,反之灭;

        P0端口:当向端口写0时,经过锁存器的非端输出1,此时V2导通,输出低电平,外部电路以灌电流形式流入V2再流向地

                 

        74HC595芯片:内部电路图如下所示;RCLK与端口的锁存器相接,端口锁存器数据来源于移位寄存器的值,在RCLK上升沿,移位寄存器所有数据传入端口锁存器;                移位寄存器的值来源于SER串行输入端口,在SRCLK上升沿数据依次传入移位寄存器,并且前一个寄存器的值又作为后一个寄存器的值,所有从SER输入的数据依次后移;所以要正确读取输入数据应该等SER串行数据输入完成再将SRCLK拉高,一次性读取移位寄存器数据到端口。更详细参考:74HC595使用

                 

        文字图案的取模:网盘链接:  http://链接:https://pan.baidu.com/s/1EyrXcwKhBBNB8sicw59SbQ
提取码:1250

显示图像的思路:行扫描一次列扫描一次,扫描8次即可显示一个图案;然后间隔一定时间扫描下一个图案。

实现代码:

#include<reg52.h>
unsigned short Row[][8]={{0x00,0x81,0x81,0xFF,0xFF,0x81,0x81,0x00},                        
                        {0x1C,0x3E,0x7E,0xFC,0xFC,0x7E,0x3E,0x1C},
						{0x3E,0x7E,0xE0,0xC0,0xC0,0xE0,0x7E,0x3E}};			//I 爱(LED矩阵太小,用爱心替代)  U
sbit SRCL   =P3^6;
sbit RCL    =P3^5;
sbit Data_In=P3^4;
void delay_10us(unsigned short ten_us)
{
	while(ten_us--);	
}

void Input_Dat(unsigned short dat)			//往74HC595写入数据
{
	char i=0;
	RCL=0;
	for(i=0;i<8;i++)//循环8次即可将一个字节写入寄存器中
	{	
		SRCL=0;				
		Data_In=dat&(1<<0);//取末位		
		dat>>=1;//移位到末位
		SRCL=1;		//产生上升沿将数据传入移位寄存器
	}
	RCL=1;			//在数据全部传入移位寄存器后,只需要一个RCL上升沿就可将数据全部传入端口
}
void Prin(char i){						//显示出图案
	char n=0;
	unsigned short Low=0x7f;			//01111111,用于从P0最高位循环右移扫描列
	for(n=0;n<8;n++){
		Input_Dat(Row[i][n]);			//行扫描
		P0=Low;							//列扫描
		Low=(Low<<7)|(Low>>1);		//循环右移1位
		delay_10us(100);//延时一段时间,等待显示稳定
		P0=0xff;		//消影
		}
	}
int main(){
	char i=0;
	unsigned short tep=0;
	while(1){
			Prin(i);
			tep++;
		if(tep==150){		//控制显示多少次后更换图案
			i++;	
			tep=0;
		}
		if(i==3){			//图案循环开始
			i=0;
		}
	}
}

不足之处还请指出,谢谢! 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值