8乘8led点阵显示数字_8乘以8点阵显示依次从左往右全部点亮,有老哥有51编程语言吗?...

这篇博客介绍了如何利用51单片机和74HC595芯片来实现8乘8LED点阵依次从左往右全部点亮的程序。博主提供了详细的C语言代码,包括延时函数、向74HC595发送字节数据的函数以及主函数。通过位选和段选操作,展示了LED点阵的显示过程。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

***************************************************************************************/#include "reg51.h" //此文件中定义了单片机的一些特殊功能寄存器

#includetypedef unsigned int u16; //对数据类型进行声明定义

typedef unsigned char u8;sbit SRCLK=P3^6;

sbit RCLK=P3^5;

sbit SER=P3^4;u8 ledduan[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00};

u8 ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

/*******************************************************************************

* 函 数 名 : delay

* 函数功能 : 延时函数,i=1时,大约延时10us

*******************************************************************************/

void delay(u16 i)

{

while(i--);

}/*******************************************************************************

* 函数名 : Hc595SendByte(u8 dat)

* 函数功能 : 向74HC595发送一个字节的数据

* 输入 : 无

* 输出 : 无

*******************************************************************************/

void Hc595SendByte(u8 dat)

{

u8 a;

SRCLK=0;

RCLK=0;

for(a=0;a<8;a++)

{

SER=dat>>7;

dat<<=1; SRCLK=1;

_nop_();

_nop_();

SRCLK=0;

} RCLK=1;

_nop_();

_nop_();

RCLK=0;

}/*******************************************************************************

* 函 数 名 : main

* 函数功能 : 主函数

* 输 入 : 无

* 输 出 : 无

*******************************************************************************/

void main()

{

u8 i;

while(1)

{

P0=0x7f;

for(i=0;i<8;i++)

{

P0=ledwei[i]; //位选

Hc595SendByte(ledduan[i]); //发送段选数据

delay(100); //延时

Hc595SendByte(0x00); //消隐

}

}

}

硬件不同也没用呀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值