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

动漫制作专业是干什么的seo排名推广工具

动漫制作专业是干什么的,seo排名推广工具,建筑网片的用途,政府网站建设和使用带来哪些积极的影响内容 点亮一个点; 显示数字; 显示图像; LED点阵简介 LED 点阵是由发光二极管排列组成的显示器件 通常应用较多的是8 * 8点阵,然后使用多个8 * 8点阵可组成不同分辨率的LED点阵显示屏,比如16 * 16点阵可以使用4个8 *…

内容

点亮一个点;
显示数字;
显示图像;

LED点阵简介

LED 点阵是由发光二极管排列组成的显示器件
通常应用较多的是8 * 8点阵,然后使用多个8 * 8点阵可组成不同分辨率的LED点阵显示屏,比如16 * 16点阵可以使用4个8 * 8点阵构成;因此理解了8 * 8LED点阵的工作原理,其他分辨率的LED点阵显示屏都是一样的;

8 * 8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;

原理图

在这里插入图片描述
由图可知,点亮一个点,只需让对应行输出高电平,对应列输出低电平即可;

点亮一个点

思路

第一列置低电平,第一行置高电平;

编码

main.c

/** @Description: 点亮一个点*/
#include "reg52.h"typedef unsigned int u16; // 对系统默认数据类型进行重定义
typedef unsigned char u8;// 定义74HC595控制管脚
sbit SCK = P3 ^ 6; // 移位寄存器时钟输入
sbit RCK = P3 ^ 5; // 存储寄存器时钟输入
sbit SER = P3 ^ 4; // 串行数据输入#define LEDDZ_COL_PORT P0 // 点阵列控制端口/*** @description: 延时函数(循环一次大约10us)* @param {u16} ten_us* @return {*}*/
void delay_10us(u16 ten_us)
{while (ten_us--);
}/*** @description: 延时函数(循环一次大约1ms)* @param {u16} ms* @return {*}*/
void delay_ms(u16 ms)
{u16 i, j;for (i = ms; i > 0; i--)for (j = 110; j > 0; j--);
}/*** @description: 向74HC595写入一个字节的数据* @param {u8} dat 要写入的数据* @return {*}*/
void hc595_write_data(u8 dat)
{u8 i = 0;for (i = 0; i < 8; i++) // 循环8次即可将一个字节写入寄存器中{SER = dat >> 7; // 优先传输一个字节中的高位dat <<= 1;		// 将低位移动到高位SCK = 0;delay_10us(1);SCK = 1; // 移位寄存器SCK时钟上升沿将端口数据送入存储寄存器RCK中delay_10us(1);}RCK = 1; // 存储寄存器RCK时钟上升沿将前面写入到寄存器的数据输出delay_10us(1);RCK = 0;
}void main()
{u8 i = 0;LEDDZ_COL_PORT = 0x7f; // 将LED点阵左边第一列设置为0,即LED阴极为低电平,其余列为1,即高电平while (1){hc595_write_data(0x80); // 将LED点阵上边第一行设置为1,即LED阳极为高电平,其余行为0,即低电平}
}

编译和结果

按F7编译,无错误,生成.hex文件,使用pz-isp将hex文件下载到单片机

(注意把LED点阵旁的J24黄色跳线帽短接到GND一端)

结果:led点阵第一个点被点亮
在这里插入图片描述

显示数字

思路

利用动态扫描的思想,只要使两个点被点亮间隔不超过24ms,那么点看起来就像连续点亮一样;

把我们想要显示的数字在8 * 8点阵里用每个点表示出来(推荐使用文字取模软件)

循环扫描8行(每次让一行为1,其余行为0),显示每行需要点亮的点(行扫描法)

编码

main.c

/** @Description: 显示数字*/
#include "reg52.h"typedef unsigned int u16; // 对系统默认数据类型进行重定义
typedef unsigned char u8;// 定义74HC595控制管脚
sbit SCK = P3 ^ 6; // 移位寄存器时钟输入
sbit RCK = P3 ^ 5; // 存储寄存器时钟输入
sbit SER = P3 ^ 4; // 串行数据输入#define LEDDZ_COL_PORT P0 // 点阵列控制端口u8 gled_row[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; // LED点阵显示数字6的行数据
u8 gled_col[8] = {0xff, 0x83, 0xbf, 0xbf, 0x83, 0xbb, 0xbb, 0x83}; // LED点阵显示数字6的列数据/*** @description: 延时函数(循环一次大约10us)* @param {u16} ten_us* @return {*}*/
void delay_10us(u16 ten_us)
{while (ten_us--);
}/*** @description: 延时函数(循环一次大约1ms)* @param {u16} ms* @return {*}*/
void delay_ms(u16 ms)
{u16 i, j;for (i = ms; i > 0; i--)for (j = 110; j > 0; j--);
}/*** @description: 向74HC595写入一个字节的数据* @param {u8} dat 要写入的数据* @return {*}*/
void hc595_write_data(u8 dat)
{u8 i = 0;for (i = 0; i < 8; i++) // 循环8次即可将一个字节写入寄存器中{SER = dat >> 7; // 优先传输一个字节中的高位dat <<= 1;		// 将低位移动到高位SCK = 0;delay_10us(1);SCK = 1; // 移位寄存器SCK时钟上升沿将端口数据送入存储寄存器RCK中delay_10us(1);}RCK = 1; // 存储寄存器RCK时钟上升沿将前面写入到寄存器的数据输出delay_10us(1);RCK = 0;
}void main()
{u8 i = 0;while (1){for (i = 0; i < 8; i++) // 循环8次扫描8行、列{hc595_write_data(gled_row[i]); // 传送行选数据LEDDZ_COL_PORT = gled_col[i];  // 传送列选数据delay_10us(100);			   // 延时一段时间,等待显示稳定hc595_write_data(0x00);		   // 消影}}
}

编译和结果

按F7编译,无错误,生成.hex文件,使用pz-isp将hex文件下载到单片机

结果:显示数字6
在这里插入图片描述

显示图像

思路

与显示数字相同,但是我们这里用列扫描法;

编码

main.c

/** @Description: 显示图像*/
#include "reg52.h"typedef unsigned int u16; // 对系统默认数据类型进行重定义
typedef unsigned char u8;// 定义74HC595控制管脚
sbit SCK = P3 ^ 6; // 移位寄存器时钟输入
sbit RCK = P3 ^ 5; // 存储寄存器时钟输入
sbit SER = P3 ^ 4; // 串行数据输入#define LEDDZ_COL_PORT P0 // 点阵列控制端口u8 gled_row[8] = {0x38, 0x7C, 0x7E, 0x3F, 0x3F, 0x7E, 0x7C, 0x38}; // LED点阵显示数字6的行数据
u8 gled_col[8] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe}; // LED点阵显示数字6的列数据/*** @description: 延时函数(循环一次大约10us)* @param {u16} ten_us* @return {*}*/
void delay_10us(u16 ten_us)
{while (ten_us--);
}/*** @description: 延时函数(循环一次大约1ms)* @param {u16} ms* @return {*}*/
void delay_ms(u16 ms)
{u16 i, j;for (i = ms; i > 0; i--)for (j = 110; j > 0; j--);
}/*** @description: 向74HC595写入一个字节的数据* @param {u8} dat 要写入的数据* @return {*}*/
void hc595_write_data(u8 dat)
{u8 i = 0;for (i = 0; i < 8; i++) // 循环8次即可将一个字节写入寄存器中{SER = dat >> 7; // 优先传输一个字节中的高位dat <<= 1;		// 将低位移动到高位SCK = 0;delay_10us(1);SCK = 1; // 移位寄存器SCK时钟上升沿将端口数据送入存储寄存器RCK中delay_10us(1);}RCK = 1; // 存储寄存器RCK时钟上升沿将前面写入到寄存器的数据输出delay_10us(1);RCK = 0;
}void main()
{u8 i = 0;while (1){for (i = 0; i < 8; i++) // 循环8次扫描8行、列{LEDDZ_COL_PORT = gled_col[i];  // 传送列选数据hc595_write_data(gled_row[i]); // 传送行选数据delay_10us(100);			   // 延时一段时间,等待显示稳定hc595_write_data(0x00);		   // 消影}}
}

编译和结果

按F7编译,无错误,生成.hex文件,使用pz-isp将hex文件下载到单片机

结果:显示一个爱心
在这里插入图片描述

http://www.hengruixuexiao.com/news/53446.html

相关文章:

  • 李沧区网站服务公司低价刷赞网站推广
  • 网站提升流量百度seo优化教程
  • 重庆网站公司百度搜索工具
  • 做赌博网站是什么案件网络推广求职招聘交流群
  • 网站后台数据应该怎么做北京网站优化经理
  • 电子书籍网站开发广州seo外包多少钱
  • 燃气行业网站建设方案免费广告投放网站
  • 建设厅网站的投诉可以哪里查网站优化公司开始上班了
  • 乐山网站建设公司引擎seo如何优化
  • 龙岩网站优化电商平台推广方式有哪些
  • wordpress live spaceseo百度站长工具
  • 政府网站手机版模板软文推广文章案例
  • 中国网站建设20强国内重大新闻
  • 嘉兴 做网站 推广网址域名查询
  • 热门软件排行榜深圳seo教程
  • 电信网站备案委托书企业如何网络推广
  • 网站o2o官网设计公司
  • 北京好的做网站的公司成都专门做网络推广的公司
  • 广州网站改版 网站建设开淘宝店铺怎么运营推广
  • 承德网站建设流程徐州百度推广公司
  • 香港云服务器推荐seoyoon
  • 做网站建设有哪些公司好营销运营主要做什么
  • 带数据库的网站模板个人在百度上发广告怎么发
  • 用jsp做的网站源代码下载线下推广有哪些渠道
  • 旅游网站建设功能意义北海百度seo
  • 一流的镇江网站建设网络营销的职能有哪些
  • 中职网站建设与管理专业网络营销的核心
  • 用织梦系统做网站产权深圳抖音seo
  • 定制wordpress后台seo站长综合查询工具
  • 网络设置的网站适合中层管理的培训