单片机小白学习之路(十)---点阵

发布者:asa1670最新更新时间:2020-03-29 来源: eefocus关键字:单片机  点阵  循环显示 手机看文章 扫描二维码
随时随地手机看文章

目标:用点阵点亮一个灯

1. 8x8LED点阵简介

LED点阵是由发光二极管排列组成的显示器件,在我们日常生活的电器中随处可见,被广泛应用于汽车报站器,广告屏等。

13367077-1569c212aab1de6f.png

8x8点阵

13367077-6f2c85a0bdafcd55.png

生活中利用


2. 内部结构

13367077-afe23c57c7c71bb8.png

内部结构

有点数码管,矩阵按键的影子,有两种接法,都一样其实,我们是左边的那个接法。
控制和矩阵按键差不多,行为一组,列为一组。左边的列是由74HC595芯片控制的,
上面的行是P0端口控制的

13367077-58891fb058fde494.png

点阵模块电路


看看我们这个芯片的说明书:

13367077-8fcd5f541845c659.png

引脚说明


这个芯片是8 位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。

模块电路里的符号是自己可改的, 我们看引脚就知道了,
  • 模块电路中D0~D7是并行数据输出。

  • 9脚是串行的输出。

  • 10脚(/SRCLR)是主复位低电平有效,既然是低电平有效,我们不能让它一直复位 不然没法工作了,所以接电源,上升沿有效

  • 11脚(SRCLK)是移位寄存器 时钟输入端,就是把并行口SER传入的数据按规律送到输出端,上升沿有效

  • 12脚(RCLK)存储寄存器时钟输入,就是把输出端存的数据给输出出去到外界,上升沿有效

  • 13脚(/OE)输出有效(低电平),意思是是低电平时才会允许输出,不然芯片不工作了,上面的短接片我们在单片机上把OE与GND接在一起

  • 14脚(SER)就 是串行输入端了


下面就是该怎么写代码了 ,注意上面内部结构图中标注了,高低位的所在位置

3.代码

#include

#include   //提供和_nop_,他也提供左右移动函数

 

typedef unsigned int u16;

typedef unsigned char u8;

 

sbit SRCLK = P3^6;//一个上升沿把SER端的一个数据弄到输出端

sbit RCLK = P3^5; //如果是一个上升沿则准许输出端的数据输出点阵

sbit SER = P3^4; //串行输入端,输入数据

 

void HC595SendByte(u8 dat)

{

    u8 a;

    SRCLK = 0;

    RCLK = 0;

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

        SER = dat>>7; //数据dat向右移7位,最高位变最低位

        dat<<=1; //dat数据自己左移一位相当于把第二位变第一位

        //为下一次做准备

        SRCLK = 1;

        _nop_(); //一个机器周期,相当于1us

        _nop_();    

        SRCLK = 0;//为下次做准备

    }

    RCLK = 1;//把输出端所有数据给点阵

    _nop_();

    _nop_();

    RCLK = 0;

}

 

void main()

{

    while(1){

        HC595SendByte(0x80);

        P0 = 0x7f;

    }

}


SER输入数据dat是0x80(1000 0000),P0是(0111 1111),再对比内部机构的高低位所在位置是不是左上角那个灯导通了?


还要注意一下我们这个芯片移位的规则,它的规则是先移最高位的数字,但又从最低位那取,感觉有点蛋疼,但就这样没办法.


所以for循环里dat右移7位把最高位变最低,给了SER(串行输入端),下面那个意思dat不是已经完成最高位输出了吗,那就不再考虑它了,直接左移一位,把最高位挤走,次高位变最高位赋值给dat


SRCLK输入1,与前面输入的0构成上升沿于是数据移走


RCLK在for循环外,因为它想等串行输入端所有数据全部移到输出端再启动,它来一个上升沿,于是塞满的输出端得到释放(输出)

关键字:单片机  点阵  循环显示 引用地址:单片机小白学习之路(十)---点阵

上一篇:单片机小白学习之路(十二)---直流电机的控制
下一篇:单片机小白学习之路(九)---矩阵按键在数码管上显示数字

推荐阅读最新更新时间:2024-11-12 20:14

单片机红外遥控调光程序
/* 红外无线遥控LED灯 + 变亮 按- 变暗 按CH- 关灯 按CH- 开灯CH */ #include reg52.h /*==================================== 自定义类型名 ====================================*/ typedef unsigned char INT8U; typedef unsigned char uchar; typedef unsigned int INT16U; typedef unsigned int uint; /*==================================== 硬件接口位声明 ====
[单片机]
MCU风扇调速器供电的交流线路
      微控制器需要2V ~ 5.5V范围的直流工作电源,电池或次级电源很容易供应这样范围的电压。但是在特定情况下,基于微控制器的产品必须在没有降压变压器或生热降压的电阻器的场合下,直接依靠120V或220V交流电源插座工作。作为替代品,规定用于交流线路服务的聚脂/聚丙烯膜电容器可充当无耗散电抗(图1)。电容器C1是一个额定电压为150V rms的2mF AVX FFB16C0205K,提供明显的交流电压降,它可降低加到二极管桥整流器D1的电压。耐燃的金属膜电阻器R1限制了交流电源线中由闪电和突然的负载变化引发的电流尖峰和瞬间电压。在本应用中,交流电流不超过 100 mA rms,并且51Ω、1W电阻器就能提供足够的限流能力。
[电源管理]
为<font color='red'>MCU</font>风扇调速器供电的交流线路
基于单片机实现微波频率测量系统的设计
1、概述 在通信系统中,频率测量具有重要地位。近几年来频率测量技术所覆盖的领域越来越广泛,测量精度越来越高,与不同学科的联系也越来越密切。与频率测量技术紧密相连的领域有通信、导航、空间科学、仪器仪表、材料科学、计量技术、电子技术、天文学、物理学和生物化学等。 频率测量一般都是由计数器和定时器完成,将两个定时/计数器一个设置为定时器,另一个设置为计数器,定时时间到后产生中断,在中断服务程序中处理结果,求出频率。这种方法虽然测量范围较宽,但由于存在软件延时,尽管在高频段能达到较高的精度,而低频段的测量精度较低。所以利用单片机测频时,如果选择不好的测量方法,可能会引起很大的误差。测量频率时如果不是真正依靠硬件控制计数或定时,而是由软
[单片机]
基于<font color='red'>单片机</font>实现微波频率测量系统的设计
如何利用STM32单片机串口发送字符串
最近由于要调试一个SMS发送短信的模块,该模块需要发送一系列AT指令,且需要字符串发送,但是STM32官方给的usart.c中并没有直接发送字符串的函数,因此写了一个发送字符串的函数。 其实发送字符串的本质还是发送一个个字符,所以只需在字符串结束标志之前,循环发送字符即可。不罗嗦,上程序。 //程序功能:利用串口发送一个字符串 // 参数:USARTx USART编号 可取 USART1、USART2、USART3、USART4、 USART5(STM32F103ZET6) str 需要发送的字符串 #include “stm32f10x.h” void Usart_SendString(USART_TypeDef* US
[单片机]
基于MSP430F149单片机为核心的展馆人员登记与录入系统设计
文章主要阐述了一种运用视频图像分析技术进行人员登记与录入系统的设计。通过红外线采集人们入馆和出馆的信号并将其送入单片机MSP430F149中,单片机对信号进行处理统计入馆、出馆人数并在LCD12864液晶显示屏上显示出来,同时对进出馆的人进行拍照并存储。通过人员登记与录入系统可以及时得到馆内准确的人数和照片,有利于博物馆更高效的组织工作,它可与第三方软件系统进行集成,为科学决策提供数据支持。 人数统计系统在不同的应用场合可以发挥不同的作用。它可以为商场或零售点获取商场内部按不同时段分布的人数统计、人群流动方向等信息,有利于评估商品对于顾客的吸引力,以及评估商场选址是否适当;对于大型建筑,管理者可利用人数统计系统了解人群的行
[单片机]
基于MSP430F149<font color='red'>单片机</font>为核心的展馆人员登记与录入系统设计
单片机MSP430程序跑飞原因和解决方式积累
1.中断或主函数中有死循环,现象是程序停在某处。 2.堆栈溢出。现象是程序跑飞。 ***************************************************************************** 3、是否开了中断但是没有用。如: 开了中断: TA0CCTL0 = CCIE;// CCR0 interrupt enabled TA0CCTL1 = CCIE;// CCR1 interrupt enabled//时间周期1使能 TA0CCTL2 = CCIE;// CCR2 interrupt enabled//时间周期2使能 TA0CCTL3= CCIE;// CCR3
[单片机]
C8051F020单片机在海水淡化装置海水预处理上的应用
引言 在对海水淡化装置实际使用过程中发现,装置实际工作参数一般不同于设计工作参数,使得装置无法发挥原设计系统流程特点,性能不佳;这种情况是由于实际进入装置的海水温度很难与设计温度一致造成的。此类现象对于海岛用海水淡化装置影响尤其明显:由于其特殊使用环境和条件,在不同季节和海域,海水入口温度变化很大,造成装置运行不稳定,产水量不足、水质下降严重,甚至不能工作。 为克服此类问题,本项目开展了海水进口调节模块设计技术研究,使控制器具有海水进口温度、流量的调节作用,始终保证进入装置的海水进口温度在设定值,使得装置的流程参数在不断变化的外界环境条件下保持在设定工况参数不变,从而保证淡水产量和水质,也使得装置易于控制和维护。 1
[单片机]
C8051F020<font color='red'>单片机</font>在海水淡化装置海水预处理上的应用
为工业应用提供更高安全性,Renesas RA6M4 MCU贸泽开售
拥有海量库存的电子元器件全球授权分销商贸泽电子 (Mouser Electronics) 即日起备货Renesas Electronics的RA6M4 32位微控制器。RA6M4微控制器结合出色的连接能力、安全性和性能,能加速边缘和终端物联网 (IoT) 设备以及电表、HVAC、增强型物业安全性和工业设备等应用的开发。 贸泽电子供应的Renesas RA6M4微控制器采用高效率的40 nm制程工艺,在工作模式下提供99 μA/MHz的出色电源效率。此款控制器搭载一个200 MHz Arm® Cortex®-M33内核,采用Armv8-M架构和Arm TrustZone®技术,并内置1 MB的代码闪存、256 KB的SRAM以及
[嵌入式]
为工业应用提供更高安全性,Renesas RA6M4 <font color='red'>MCU</font>贸泽开售
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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