当前位置: 首页 > wzjs >正文

福州网站建设发布网站运营建设方案

福州网站建设发布,网站运营建设方案,app开发流程设计工具,做网站需要学会哪些第十五章 点阵LED 15.1 点阵 LED 概述 15.1.1 实物图 15.1.1 原理图 15.2 点阵 LED 静态显示 15.2.1 需求描述 使用点阵 LED 显示一排由左上到右下的斜线,具体效果如下图所示。 15.2.2 硬件设计 15.2.2.1 硬件原理图 根据内部原理可知,点阵 LED 的…

 第十五章 点阵LED

15.1 点阵 LED 概述

15.1.1 实物图

15.1.1 原理图

15.2 点阵 LED 静态显示

15.2.1 需求描述

使用点阵 LED 显示一排由左上到右下的斜线,具体效果如下图所示。

15.2.2 硬件设计

15.2.2.1 硬件原理图

根据内部原理可知,点阵 LED 的显示需要逐行或者逐列扫描,此处选择逐行扫描。由
于每次扫描只需点亮一行,所以很容易想到,行的扫描可以通过 74HC238(类似于
74HC138,与 138 输出相反)芯片完成,以达到节省 MCU 引脚的目的。
每行要显示的内容由点阵 LED 阴极的 8 个引脚控制,将 8 个引脚接入 MCU 的 8 个
GPIO 引脚即可。具体的硬件原理图如下。

15.2.2.2 74HC595 使用说明

上述原理图显示,点阵 LED 的行扫描并未使用 74HC238 芯片,而是使用了 74HC595。
该芯片的用法如下。

74HC595 芯片的相关资料如下。

15.2.3 软件设计


15.2.3.1 实现思路

15.2.3.2 具体代码

1)Int_MatrixLED.h

在 Int 中新建 Int_MatrixLED.h,写入以下内容

#ifndef __INT_MATRIXLED_H__
#define __INT_MATRIXLED_H__
#include <STC89C5xRC.H>
#include "Util.h"
/**
* @brief 点阵 LED 初始化函数
*
*/
void Int_MatrixLED_Init();
/**
* @brief 设置点阵现实图像的函数
*
* @param pic 要显示的图像,数组长度必须为 8
*/
void Int_MatrixLED_SetPic(u8 *pic);
/**
* @brief 需要不断调用下面的函数刷新点阵 LED
*
*/
void Int_MatrixLED_Refresh();
#endif // __LED_MATRIX_H__

2)Int_MatrixLED.c

在 Int 中新建 Int_MatrixLED.c,写入以下内容:

#include "Int_MatrixLED.h"
#define SER P10
#define SCK P12
#define RCK P11
#define MATRIX_LED_EN P35
// 设置缓存,每个字节代表点阵的一行,单行中每个 bit,1 为亮,0 为灭
static u8 s_led_buff[8];
void Int_MatrixLED_Init()
{u8 i;
// 打开点阵 LEDMATRIX_LED_EN = 0;
// 初始化后,全部点阵关闭for (i = 0; i < 8; i++){s_led_buff[i] = 0;}
}void Int_MatrixLED_SetPic(u8 *pic)
{u8 i;for (i = 0; i < 8; i++){s_led_buff[i] = pic[i];}
}void Int_MatrixLED_Refresh()
{u8 i;SER = 1;SCK = 0;SCK = 1;SER = 0;for (i = 0; i < 8; i++){
// 展示下一行之前,关闭P0 = 0xFF;RCK = 0;RCK = 1;
// 当前行展示想展示的数据P0 = ~s_led_buff[i];SCK = 0;SCK = 1;Delay1ms(1);}
}

3)Main.c

在主文件夹新建 Main.c,写入以下内容

#include <STC89C5xRC.H>
#include "Int_MatrixLED.h"
void main()
{u8 pic[8] = {0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80};
Int_MatrixLED_Init();
Int_MatrixLED_SetPic(pic);while (1) {Int_MatrixLED_Refresh();}
}

15.3 点阵 LED 滚动显示

15.3.1 需求描述

LED 点阵屏滚动显示“尚硅谷”三个字。

15.3.2 软件设计

15.3.2.1 实现思路

15.3.2.2 完整代码

1)Int_MatrixLED.h

#ifndef __INT_LEDMATRIX_H__
#define __INT_LEDMATRIX_H__
#include "Com_Util.h"
void Int_LEDMatrix_Init();void Int_LEDMatrix_SetPic(u8 pic[]);void Int_LEDMatrix_Refresh();void Int_LEDMatrix_Shift(u8 pic);#endif /* __INT_LEDMATRIX_H__ */

2)Int_MatrixLED.c

#include "Int_LEDMatrix.h"
#include "Dri_Timer0.h"
#include <STC89C5xRC.H>
#define LED_MATRIX_EN P35
#define LED_EN        P34#define SER           P10
#define SCK           P12
#define RCK           P11static u8 s_buffer[8];
void Int_LEDMatrix_RefreshByTimer0();
void Int_LEDMatrix_Init()
{LED_MATRIX_EN = 0;LED_EN        = 0;Dri_Timer0_RegisterCallback(Int_LEDMatrix_RefreshByTimer0);
}void Int_LEDMatrix_SetPic(u8 pic[])
{u8 i;for (i = 0; i < 8; i++) {s_buffer[i] = pic[i];}
}void Int_LEDMatrix_Refresh()
{u8 i;for (i = 0; i < 8; i++) {P0 = 0xFF;// 1.设置显示哪行if (i == 0) {SER = 1;} else {SER = 0;}SCK = 0;SCK = 1;RCK = 0;RCK = 1;// 2.设置当前行的显示内容P0 = ~s_buffer[i];Com_Util_Delay1ms(1);}
}void Int_LEDMatrix_Shift(u8 pic)
{u8 i=7;for ( i = 0; i >=1 ; i--){s_buffer[i]=s_buffer[i-1];s_buffer[0]= pic ;}}void Int_LEDMatrix_RefreshByTimer0()
{static u8 i = 0;P0          = 0xFF;// 1.设置显示哪行if (i == 0) {SER = 1;} else {SER = 0;}SCK = 0;SCK = 1;RCK = 0;RCK = 1;// 2.设置当前行的显示内容P0 = ~s_buffer[i];i++;if (i == 8) {i = 0;}
}

3)Main.c

#include"Dri_Timer0.h"
#include"Int_LEDMatrix.h"
void main()
{u8 i;u8 picture[26] = {0xF8, 0x0A, 0xEC, 0xAF, 0xEC, 0x8A, 0xF8, 0x00,0x10, 0xF9, 0x97, 0xF1, 0x88, 0xAA, 0xFF, 0xAA,0x88, 0x00, 0x14, 0x0A, 0xF5, 0x92, 0x92, 0xF5,0x0A, 0x14};Dri_Timer0_Init();Int_LEDMatrix_Init();while(1){for ( i = 0; i < 26; i++){Int_LEDMatrix_Shift(picture[26]);Com_Util_Delay1ms(200);}}
}


文章转载自:

http://TcrpFeqH.rqqmd.cn
http://npOiQOgn.rqqmd.cn
http://ekCM52Bx.rqqmd.cn
http://s5Thpk9E.rqqmd.cn
http://0yLSfwru.rqqmd.cn
http://TLmud453.rqqmd.cn
http://GRyK32X5.rqqmd.cn
http://YSSNssA6.rqqmd.cn
http://CzkKCfua.rqqmd.cn
http://ULdnHK8Y.rqqmd.cn
http://unMPscC2.rqqmd.cn
http://baNUVLG2.rqqmd.cn
http://RIKYekj2.rqqmd.cn
http://8FKunFCi.rqqmd.cn
http://mcuE5fr1.rqqmd.cn
http://9rKI8fUL.rqqmd.cn
http://6onSLIPc.rqqmd.cn
http://Mdh0sfbH.rqqmd.cn
http://B5ybNys1.rqqmd.cn
http://JL7tfcha.rqqmd.cn
http://oGR9c9cY.rqqmd.cn
http://SKKdk4Si.rqqmd.cn
http://45AeuRWJ.rqqmd.cn
http://AFU9wUQu.rqqmd.cn
http://73FzvBUA.rqqmd.cn
http://swqhvstj.rqqmd.cn
http://yT1Kb0q8.rqqmd.cn
http://NtV9EN3P.rqqmd.cn
http://mwNlkUa1.rqqmd.cn
http://bVy77Y3l.rqqmd.cn
http://www.dtcms.com/wzjs/714935.html

相关文章:

  • 专业网站开发公司nike建设网站的目的
  • 网站模板 首饰预定网站后台栏目根据什么做的
  • 一个最简单的产品展示的asp网站应该如何做教育咨询
  • 企业网站找谁做优化关键词软件
  • 一个网站的二级目录在另一台服务器上_怎么做17做网店广州货源网
  • 大庆油田建设集团网站零代码自助建站平台
  • 上海网站建设__永灿品牌建站国外购买域名网站
  • 如何购买虚拟主机做网站网站建设 指标
  • 如何用自己电脑做网站服务器营销型企业网站的功能有哪些
  • 网站开发建设准备工作企业网站手机版模板
  • 记的网站域名网站如何优化关键词排名
  • 简单的网站设计图线上推广100种方式
  • 顺德品牌网站建设价位西安市城乡与住房建设厅网站
  • 律师事务所手机网站我有域名怎么做网站
  • 高端网站设计欣赏网站开发商城实例
  • 继续网站建设dz建站与wordpress
  • 有没有外包活的网站wordpress升级报错
  • 安徽徐州网站建设公司中山网站seo关键词
  • 成品网站怎么被百度收录安装配置wordpress
  • 做网站 分辨率应该是多少南阳网网站建设
  • 网站优化应该怎么做云伙伴小程序开发公司
  • 邯郸移动网站建设报价城阳网站制作
  • 济宁网站建设 优化培训网站硬件建设方案
  • 万维网站续费多少一年网页版梦幻西游金色伙伴推荐
  • 产品网站定制汕头有几个区
  • 怎样建设网站北京公司注册地址多少钱一年
  • 做的网站没法本地上传图片白云百度seo公司
  • 在线网站分析工具中国站长
  • 网站建设wesnowsat怎么做网站 高中信息技术
  • 帮熟人做网站如何收费济南哪家做网站