历史上的今天
今天是:2025年03月24日(星期一)
2020年03月24日 | 单片机开发 --- 8X8LED点阵
2020-03-24 来源:eefocus
一、电路图


引脚D0 ~ D7 接的是点阵的行,引脚P0~P7接的是点阵的列
二、74HC595芯片
74HC595芯片是8位串行输入8位串行或并行输出,串行到并行的数据转换。通过SRCLK上升沿,将SER的状态(高电平为1,低电平为0)以左移的方式存到芯片的寄存器中;通过RCLK上升沿,把寄存器中的8位以并行的方式输出(D0~D7)。在此次实验,74HC59起的作用与之前数码管实验中的138译码器的作用相同,但两者功能不同。
三、电路原理
根据电路图可知,当D0~D7为高电平时,P0 ~ P7为低电平时,LED才会亮。点阵的显示与数码管显示的方式类似,能过每次点亮不同行的LED并不断切换,可以形成同时显示的错觉。
四、代码
#include "reg51.h" //此文件中定义了单片机的一些特殊功能寄存器
#include typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit SRCLK=P3^6; sbit RCLK=P3^5; sbit SER=P3^4; //0的点阵显示行列 u8 led_col[]={0xff,0xe3,0xdd,0xdd,0xdd,0xdd,0xdd,0xe3}; u8 led_row[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; /******************************************************************************* * 函 数 名 : delay * 函数功能 : 延时函数,i=1时,大约延时10us *******************************************************************************/ void delay(u16 i) { while(i--); } /******************************************************************************* * 函数名 : Hc595SendByte(u8 dat) * 函数功能 : 向74HC595发送一个字节的数据 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void Hc595SendByte(u8 dat) { u8 a; RCLK=0; for(a=0;a<8;a++) { SRCLK=0; SER=dat>>7; dat<<=1; SRCLK=1; //SRCLK的上升沿,将SER的状态(高电平为1,低电平为0)以左移的方式存到芯片的寄存器中; } RCLK=1; //RCLK的上升沿,把寄存器中的8位存放到储存器同时以并行的方式输出(D0~D7)。 } /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void main() { u8 i; while(1) { for(i=0;i<8;i++) { P0=led_col[i]; //列选 Hc595SendByte(led_row[i]); //行选 delay(100); //延时 Hc595SendByte(0x00); //因为HC595芯片会记住上次记录,所以防止下次的列选择与这次的行选择通电,将记录置0 } } }
上一篇:基于51单片机的秒表和数显时钟
下一篇:51单片机——8X8点阵显示
史海拾趣
|
近年来,移动通信的市场需求增长迅速,当前的移动通信系统已经可以使用成熟的信号处理技术来获取更 高的信息传输速率。下一代无线系统的设计难度将增大,主要体现在对多标准和可重配置性的支持。不同 的通信标准在中心频率、信号带宽、信噪比和线 ...… 查看全部问答> |
|
本人初学ARM,使用QQ2440开发板。最近在学习中断时,程序也编译通过,但发现中断代码完全没有运行,很是困惑,还请高人指点一二。 程序大概: 使用中断通过按键控制LED灯,程序下载到nor flash 下0x300000 ...… 查看全部问答> |
|
有一道工序要在小水池中进行,那么工件到位的检测就成了问题,而只有在确定夹具中有工件后才能进行下一个动作,各位大侠有耐水的传感器推荐么,这方面真的是小白啊 !… 查看全部问答> |
|
终于完成了! 看了视频在ARM体系,操作系统移植,uboot,CCS使用...方面有新的提高! 感谢鄂工和EEWorld的各位朋友的辛苦!! 上图先!感受慢慢写!!… 查看全部问答> |




