美文网首页
14 8x8LED点阵

14 8x8LED点阵

作者: aaa小菜鸡 | 来源:发表于2018-03-26 10:40 被阅读0次

单片机STC89C52学习——14 8x8LED点阵

汇总:00 单片机STC89C52学习
参考教程:普中科技

1 工作原理

1.1 8x8LED点阵

通过动态扫描显示。若为双色LED,只是多并联一个发光二极管

本开发板使用上图左边,ROW1 ~ 8由D7 ~ D0(74HC595的输出)控制,COL1 ~ 8由P07 ~ P00控制,通常不点亮时P0输出高电平 原理图

1.2 74HC595芯片

8 位串行输入、串行或并行输出的移位寄存器,具有高阻关断状态,三态。通过74HC595节约IO口。移位时从最高位开始

74HC595原理图 对应看时名称可能不一样,这时看引脚号即可 引脚说明 功能表 其他说明

2 程序:8x8LED点阵——1 显示左上角1个点;2 显示0

2.1 显示左上角1个点

#include "reg51.h"// 52单片机头文件有RCLK,会导致下面重定义
#include "intrins.h"// 因为用到_nop_()

typedef unsigned char u8;
typedef unsigned int u16;

// 需要控制74HC595的3个口
sbit SER = P3^4;// 串行数据输入
sbit RCLK = P3^5;// 存储寄存器时钟输入
sbit SRCLK = P3^6;// 移位寄存器时钟输入

void HC595(u8 dat)// P34的输入
{
    u8 a;
    SRCLK = 0;
    RCLK = 0;
    // 先到移位寄存器
    for (a = 0; a < 8; a ++)
    {
        SER = dat >> 7;// 移位7次,传送最高位
        dat <<= 1;// 把最高位左移换掉
        SRCLK = 1;// 上升沿,芯片手册写的是“大于几十纳秒”
        _nop_();// 延时1个机器周期。其实一条指令就有1微秒,所以也可以不延时。只是保险起见
        _nop_();
        SRCLK = 0;// 拉低回去   
    }
    // 再从移位寄存器输出
    RCLK = 1;
    _nop_();
    _nop_();
    RCLK = 0;   
}

void main()
{
    HC595(0x80);// D7高电平其余低电平,P34输入0x80,1000 0000
    P0 = 0x7f;// P07低电平其余高电平,P0输入0x7f,0111 1111
    while (1);
}

效果:并未显示...

2.2 显示0

#include "reg51.h"// 52单片机头文件有RCLK,会导致下面重定义
#include "intrins.h"// 因为用到_nop_()

typedef unsigned char u8;
typedef unsigned int u16;

// 需要控制74HC595的3个口
sbit SER = P3^4;// 串行数据输入
sbit RCLK = P3^5;// 存储寄存器时钟输入
sbit SRCLK = P3^6;// 移位寄存器时钟输入

u8 ledduan[] = {0x00, 0x00, 0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00};// 显示0,每列如何显示
u8 ledwei[] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};// 点亮每一列,0111 1111 0右移

void delay(u16 i)
{
    while(i --);
}

void HC595(u8 dat)// P34的输入
{
    u8 a;
    SRCLK = 0;
    RCLK = 0;
    // 先到移位寄存器
    for (a = 0; a < 8; a ++)
    {
        SER = dat >> 7;// 移位7次,传送最高位
        dat <<= 1;// 把最高位左移换掉
        SRCLK = 1;// 上升沿,芯片手册写的是“大于几十纳秒”
        _nop_();// 延时1个机器周期。其实一条指令就有1微秒,所以也可以不延时。只是保险起见
        _nop_();
        SRCLK = 0;// 拉低回去   
    }
    // 再从移位寄存器输出
    RCLK = 1;
    _nop_();
    _nop_();
    RCLK = 0;   
}

void main()
{
    u8 i = 0;
    while (1);
    {
        for (i = 0; i < 8; i ++)
        {
            P0 = ledwei[i];// 选择哪一列显示
            HC595(ledduan[i]);// 列如何显示
            delay(100);
            HC595(0x00);// 消隐   
        }
    }
}

效果:什么都没有...

相关文章

  • 14 8x8LED点阵

    单片机STC89C52学习——14 8x8LED点阵 汇总:00 单片机STC89C52学习参考教程:普中科技 1...

  • 单片机8×8点阵实例

    在8X8LED点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后...

  • 前端中常用的字体字号

    前端网页常用的字体字号 12 14 16---使用scss/less易成比例---windows的点阵字体只支持1...

  • 【悟兴视界】推出磁性机械翻转点阵屏-互动屏

    【悟兴视界】推出磁性机械翻转点阵屏-互动屏 【悟兴视界】推出项目“进口磁力翻转点阵屏机械翻转点阵屏”视觉装置......

  • 点阵激光祛痘需要治疗几次?

    痘坑带来的影响不言而喻,那么,要想改善痘坑,目前治疗效果比较理想的当属点阵激光了。 什么是点阵激光呢? 点阵激光(...

  • 11/30

    今天做了关于摇杆和点阵的实验,发现了点阵的灯的位置可能不对,导致点阵没按我的设想亮起来,今天会找原因

  • 2019-09-27LED点阵

    1.LED点阵简介 1.1、什么是LED点阵 内部结构原理图。点阵的优势就是8+8个IO口独立控制8*8个LED亮...

  • 字体

    点阵字库和矢量字库 最早的字库直接把这些点存储起来,就是点阵字库。点阵字库是固定分辨率的,也就是每种字库都有固定的...

  • 点阵字体与矢量字体

    点阵字体 点阵字体是把每一个字符都分成16×16或24×24个点,然后用每个点的虚实来表示字符的轮廓。点阵字体也叫...

  • 实验1—杨金钰—0114

    8*8LED点阵显示字母YJ 电教本1601 杨金钰 201612030114 一、LED显示原理 LED点阵显示...

网友评论

      本文标题:14 8x8LED点阵

      本文链接:https://www.haomeiwen.com/subject/wxxlcftx.html