单片机开发 --- 8X8LED点阵

2020-03-24来源: eefocus关键字:单片机开发  8X8  LED点阵

一、电路图

在这里插入图片描述

引脚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

}

}

}

关键字:单片机开发  8X8  LED点阵 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic492472.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于51单片机的秒表和数显时钟
下一篇:51单片机——8X8点阵显示

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

MSP430教程17:MSP430单片机开发总结
1.#i nclude<>指要在编辑器设定目录下,#i nclude""指的是在当前工程目录下。2.要调用另一个文件中的函数,要把这个函数文件放到当前工程目录下,并且在工程中添加此文件。3.命名中不能有-,比如:byq-ee会认为是错误的,要用下划线。4.用IAR软件仿真时,可以加入变量,如果是查看I/O信息只需加入PXIN,PXOUT即可。5.IAR在处理字符时,要注意,是字符处理结尾标志,他和其他编辑软件是不同的。比如我们长用字符处理回自动在结尾处加,但IAR有些是不加的,这就要十分注意。6.如果只用到LFX1的低速时钟,9600bit/s传输的话,接收会出现问题,原因是误差太大,可以设置到480
发表于 2020-03-26
初尝Linux下的AVR单片机开发
此前接触过AVR单片机,发现无论是书店里面的教材,还是网上一大堆的中文资料,无一例外都是说windows下使用WinAVR、ICCAVR之类的,Linux方面的简直只字不提,难道这就是传说中的中国国情?外国情况可很不一样,玩单片机的Geek一般都很哈Linux,做单片机开发的软件一应俱全,当然还是开源的。昨天从淘宝重新买了条USB的下载线,回来一看是USBasp的设计,附送的光盘当然也是win下的驱动和说明了,忽略。插上下载器,lsusb,认倒是认出来了,叫做VOIT,那怎么用呢?上网一搜,原来USBasp是德国人的设计http://www.fischl.de/usbasp/,GPL的,其中提到AVRDUDE支持USB
发表于 2020-03-17
PIC单片机开发的一些经验和技巧解析
PIC单片机在国内日益流行,本文介绍MicroChipPIC系列单片机开发过程中软、硬件设计的一些经验、技巧。由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者在PIC单片机开发过程中的一些经验、技巧,供同行参考。1 怎样进一步降低功耗功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工
发表于 2020-03-11
PIC单片机开发的一些经验和技巧解析
PIC单片机开发需了解的简单问题
简介:PIC单片机在国内日益流行,本文介绍Microchip PIC系列单片机开发过程中软、硬件设计的一些经验、技巧。由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者在PIC单片机开发过程中的一些经验、技巧,供参考。1 怎样进一步降低功耗功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz
发表于 2020-02-15
PIC单片机开发存在的几个问题
1 怎样进一步降低功耗功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用RC电路形式时,可以采用中途提高工作频率的办法来解决。具体做法是在闲置的一个I/O脚(如RB1)和OSC1管脚之间跨接一电阻(R1),如图1所示。低速状态置RB1=0。需进行快速运算时先置RB1
发表于 2020-02-12
MPLAB X IDE和Proteus联调方法
1.使用的工具MPLAB X IDE v3.15 Proteus 7.8 SP22.体步骤a.MPLABX IDE安装插件。打开Tools->Plugins菜单,在AvailablePlugins选项卡下,可以看到MPLAB支持多种插件,选中ProteusVSM Viwer插件,然后Install。(此步需要联网,MPLAB自动从Microchip官网下载插件)安装完成后,MPLABX IDE会提示软件需要重启,重启后在Installed选项卡下可以看到已安装的插件ProteusVSM Viwer。b.设置工程参数打开一个项目工程,这里以PIC16F877A工程为例,打开工程属性,可以从File->
发表于 2020-03-29
MPLAB X IDE和Proteus联调方法
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved