51 led点阵显示任意字符

举例:51 led点阵显示0

#include "reg51.h"		
#include "intrins.h"

typedef unsigned int u16;	  
typedef unsigned char u8;


sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
/****************************************************
按列确定段选,此数组决定了显示的字符0,如果想显示其他的文字,
可使用51字模提取工具 ,把字符码放到ledduan[]={}中
****************************************************/
u8 ledduan[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00};
u8 ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

//延时函数
void delay(u16 i)
{
 while(i--);
}
//595芯片发送段选
void Hc595SendByte(u8 dat)
{
	u8 a;
	SRCLK=0;
	RCLK=0;
	for(a=0;a<8;a++)
	{
		//传送最高位
	    SER=dat>>7;  
		//左移一位
		 dat<<=1;     //0011 0010
		 SRCLK=1;
		 _nop_();
		 _nop_();
		 SRCLK=0;
	}
		RCLK=1;
		_nop_();
		_nop_();
	   RCLK=0;
}

void main()
{	
	u16 i;
	while(1)
	{
		 P0=0x7f;
		 for(i=0;i<8;i++)
		 {
		     P0=ledwei[i];
			 Hc595SendByte(ledduan[i]);
			 //视觉暂留
			 delay(100);
			 //消隐
			 Hc595SendByte(0x00);
		 }
	}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1-0-1 C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值