目录

  • 一、前言
  • 二、先点一个灯看看
  • 三、显示复杂的数字
  • 四、使用取字模软件

一、前言

我手里用的是普中科技的A2开发板,它的 8*8 的LED单射点阵是采用的是下图左边的构造。

它采取的动态扫描是列扫描

使用到的芯片有74HC595,74HC595主要用来扩展 io 口,它可以把串行的输入变成并行的输出,它具有三态。

注意74HC595的功能,把串行的输入变成并行的输出,这很重要,这会在代码中体现出来。


先不要管右边的接线,我们看下74HC595的端口

OE非:使能端,给低电平的时候才工作

所以如果你烧录了没反应,你需要见检查在上图位置是否给使能端一个低电平让它正常工作。

SRCLK,当上升沿信号时,把输入的串行数据移位并且保存到寄存器里

RCLK, 当上升沿信号时,把寄存器里保存的数据 output

二、先点一个灯看看

//点亮第一行第一列的点
#include<reg51.h>
#include<intrins.h>typedef unsigned char u8;
typedef unsigned int u16;sbit SRCLK = P3^6; //SRCLK 在上升沿时,串行输入的数据移位并且保存到寄存器中
sbit RCLK = P3^5;  //RCLK 在上升沿时,寄存器中的数据输出
sbit SER = P3^4;void hc595sendbyte(u8 a)
{SRCLK = 0;RCLK = 0;//(1)for (int i = 0; i < 8; i++) {SER = a >> 7; //(2)a <<= 1;     // (3)SRCLK = 1;_nop_();_nop_();SRCLK = 0;}RCLK = 1; //(4)_nop_(); // 延时函数_nop_();RCLK = 0;
}void main() {hc595sendbyte(0x80); // 1000 0000 D7~D0 第一行到第八行P0 = 0x7f ; //列这边接的是阴极,所以 0111 1111  P7~P0 第一列到第八列。while (1)  ; //把单片机困在这里,避免它到处跑(乱跑,确信!)
}

注释:

(1)需要循环8次才能把八行都给一个状态。但是 因为列是直接P0的8位给状态,所以只需要一次就给了八列一列一个状态。

(2)输入的a是一个八位二进制数,但是它向右移了7位,即被截取了低七位 ,这个最高位赋给了SER (SER只有一位),所以一次循环寄存器保存一位。

(3)把a的最高位截掉,最低位添加一个零 ,下次循环保存的是次高位。

(4)把寄存器中保存的data给出去。

三、显示复杂的数字

//显示一个零
#include<reg51.h>
#include<intrins.h>typedef unsigned char u8;
typedef unsigned int u16;sbit SRCLK = P3^6;
sbit RCLK = P3^5;
sbit SER = P3^4;u16 led_x[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
u8 led_y[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00};void delay(u16 i)
{while(i--);
}void hc595sendbyte(u8 a)
{    u16 i ;SRCLK = 0;RCLK = 0;for (i = 0; i < 8; i++) {SER = a >> 7;  a <<= 1;    SRCLK = 1;_nop_();_nop_();SRCLK = 0;}RCLK = 1;  _nop_();_nop_();RCLK = 0;
}void main()
{   u16 i;while(1){for (i = 0; i < 8; i++){P0=led_x[i]; //(1)hc595sendbyte(led_y[i]); //(2)delay(100);  //(3)hc595sendbyte(0x00);  // (4)}}
}

注释:

  1. P0控制阴极,我们从左到右进行扫描,依次给每一列阴极低电平。
  2. 当列阴极是低电平时,我们就响应给以列提供预设号的状态。
  3. 把延时函数加大,你将看到led灯从左边第一列依次向右亮起。
  4. 这就是消除拖影的操作。 很简单,不多说了。

四、使用取字模软件

下载链接:led文字取模软件2.1版本.zip

使用取字模你可以自由的选择,发挥你想象力

51单片机 之 8*8 LED点阵(解决程序烧录没反应、显示拖影问题、取字模软件)相关推荐

  1. 三、51单片机用74HC595控制LED点阵

    1.LED点阵简介 1.1.什么是LED点阵 (1)外观 (2)作用 LED点阵通过LED(发光二极管)组成,以灯珠亮灭来显示文字.图片等,LED点阵显示被广泛应用于各种公共场合,如汽车报站器.广告屏 ...

  2. 【51单片机】串口通信/LED点阵

    目录 一.串口介绍 1.双向串口通信 2.电平标准 3.常用通信协议 4.时序图 二.串口收发数据(模式1) 1.串行控制(模式选择)寄存器SCON(可位寻址&#x

  3. 51单片机 | LED点阵实验 | 点亮一个点 | 显示数字 | 显示图像

    文章目录 一.LED点阵介绍 二.硬件设计 三.软件设计 1.LED点阵(点亮一个点) 2.LED点阵(显示数字) 3.LED点阵(显示图像) 四.实验现象 1.LED 点阵(点亮一个点) 2. LE ...

  4. 51单片机教程:8*8 点阵显示字符、数字、简单汉字

    点阵显示实验 一.什么是点阵? 我们用之前的方法一个IO口只能控制一个led,如果需要用更少的IO口控制更多的led怎么办呢,于是就有了点阵. 8X8点阵共由64个发光二极管组成,且每个发光二极管是放 ...

  5. 51单片机点阵和取字模软件的使用方法(显示心形图案)

    点阵 首先来介绍一下8*8 点阵共由 64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置 1 电平,某一列置 0 电平,则相应的二极管就亮: 如要将第一个点点亮,则 ...

  6. 【51单片机Task】:led十六进制控制led灯详解、按键控制流水灯、跑马灯等任务

    学习目标: 学习普中51单片机的按键控制led灯. 电路图:                      学习内容:         LED灯的十六进制怎么算???         在这给大家算一下:首 ...

  7. 51单片机入门 第一篇:LED灯

    文章目录 前言 一.LED原理图 二.创建keil5工程 三.代码的编写 四.程序的烧录 总结 前言 本篇文章讲正式带大家开始学习51单片机,希望这些文章能够很好的帮助到大家学习51单片机. 一.LE ...

  8. 用51单片机实现按键控制LED灯亮灭

    用51单片机实现按键控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k1=P3^1;//位定义按键 void de ...

  9. 基于51单片机的wifi智能led灯的毕业设计

    基于51单片机的wifi智能led灯的毕业设计 摘要 系统基于STC89C52RC单片机设计,拥有自动与手动两种模式,自动模式下可以过热释红外传感器检测是否有人,采用光敏电阻构成的电路检测环境光的强度 ...

  10. 10.4.4 51单片机控制系统8个LED“跑马灯”实验

    10.4.4 51单片机控制系统8个LED"跑马灯"实验 仿真+代码 方法一 利用数组 #include"reg52.h"#define u8 unsigned ...

最新文章

  1. MyBatis 插入数据库返回主键
  2. Java 面试知识点解析(一)——基础知识篇
  3. 4、Java Swing JLable:标签组件
  4. 登錄CentOS出現-bash-4.1#
  5. 百度编辑器ueditor 字符限制
  6. 30个php操作redis常用方法代码例子
  7. java获取本机所有可用字体
  8. layer mvc json 中文乱码处理
  9. lua java 传参_java和lua交互方法(1)
  10. 国内游戏产业现状十一谈
  11. Linux学习笔记之秋水BBR一键部署
  12. php 上传图片 裁剪,thinkphp_图片上传裁剪功能_已迁移
  13. VBlog项目代码理解之前后端交互
  14. STM32-面试题及答案
  15. Prime triplets (Project Euler 196)
  16. usb Android gentoo,gentoo usb 鼠标
  17. 无线射频专题《协议类,IEEE 802.11/802.11b/802.11a/802.11g/802.11n/802.11ac标准简介》
  18. 水果店开业前尝试做地推活动
  19. wave.Error: unknown format: 3解决方法
  20. 2014年8月英语总结

热门文章

  1. Matlab实现和使用神经网络的几种方式详细讲解--附代码可下载
  2. 腾讯地图和百度地图经纬度的相互转换
  3. linux arm 携程,如何安装ARM toolchain
  4. 什么是车辆识别代码(VIN)
  5. Flash游戏开发技术分析(下)
  6. python判断是否有弹出窗口_使用Python爬取弹出窗口信息的实例
  7. 南京地图全图 南京卫星地图下载 百度高清卫星地图含道路、标签信息叠加
  8. 如何破解锐捷支持多网卡
  9. CEIWEI CommMonitor 串口监控精灵v11.0 串口过滤 串口驱动
  10. 思岚科技A1,A2雷达驱动安装