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

博白县建设局网站网站怎样做推广

博白县建设局网站,网站怎样做推广,电子商务主要干什么,个人网站申请备案51单片机学习笔记7 串转并操作方法 一、串转并操作简介二、74HC595介绍1. **功能**:2. **引脚**:3. **工作原理**:4. 开发板原理图(1)8*8 LED点阵:(2)74HC595 串转并: 三…

51单片机学习笔记7 串转并操作方法

  • 一、串转并操作简介
  • 二、74HC595介绍
    • 1. **功能**:
    • 2. **引脚**:
    • 3. **工作原理**:
    • 4. 开发板原理图
      • (1)8*8 LED点阵:
      • (2)74HC595 串转并:
  • 三、代码示例
    • 1. LED 滚动显示程序
      • (1)led_matrix_utils.c
      • (2)main.c
    • 2. 显示一个点
    • 3. 显示字符程序
      • (1) led_matrix_utils.c
      • (2)main.c

在这里插入图片描述

一、串转并操作简介

由于单片机的I/O资源有限,在进行一些外围设备通讯时,如LED点阵、数码管操作,需要大量的I/O资源,为了减少单片机的资源占用,可以使用串转并的操作,通过引入专用芯片,用较少的单片机I/O引脚,控制大量的外围I/O引脚设备。

在串转并操作中,串行数据首先经过一个串行转并行转换器,该转换器将串行数据拆分为多个并行数据。
这些并行数据同时传输到并行数据接收器,每个并行数据接收器负责接收并处理其中的一部分数据。
最后,这些处理后的并行数据再通过并行数据输出端口一起输出,形成并行数据流。

二、74HC595介绍

74HC595是一种串行输入/并行输出(SIPO)移位寄存器,常用于扩展微控制器的输出端口:

1. 功能

  • 74HC595具有8位并行输出端口,可以同时控制8个输出设备,如LED、数码管等。
  • 它具有串行输入端口,可以通过串行输入将数据加载到内部寄存器中。
  • 74HC595还具有控制引脚,用于控制数据的加载和输出使能。
  • 74HC595的并行输出为三态输出:高电平、低电平

2. 引脚

在这里插入图片描述

  • DS(串行数据输入):用于接收串行输入数据。
  • SH_CP(时钟输入):用于接收时钟脉冲,控制数据的移位。
  • ST_CP(存储时钟输入):用于接收存储时钟脉冲,控制数据的加载到寄存器中。
  • OE(输出使能):用于控制输出端口的使能状态。
  • Q7’(串行输出):输出从DS端输入的数据,用于级联多个74HC595。
  • Q0-Q7(并行输出):8位并行输出端口。

其中Q7’可以级联下一个74HC595,这样通过3个单片机的IO口,可以控制更多的外设IO。

3. 工作原理

  • 74HC595的工作过程分为两个阶段:移位阶段和存储阶段。
  • 移位阶段:在时钟信号的作用下,串行输入的数据从DS端依次移位到寄存器中。
  • 存储阶段:当存储时钟信号触发时,寄存器中的数据被加载到并行输出端口,并同时输出到外部设备。

4. 开发板原理图

(1)8*8 LED点阵:

在这里插入图片描述

  • 通过P0 端口控制列是否有效,设置P0=0,可以启用全部列。
  • 通过 DPa~DPh控制每一行是否有效,行的数值通过 74HC595传过来。

(2)74HC595 串转并:

在这里插入图片描述
传送一个数据的过程:

  1. OE 置低使能芯片;
  2. SER传一个BIT数据;
  3. 给SR_CLK 一个上升沿,将SER的数据移到QA;
  4. 重复第2步,更多数据移入寄存器,先移入的数据放入A,其它B、C、D…依次向后移动;
  5. 传完8个bit数据,给 R_CLK一个上升沿,将数据推到DPn的并口输出。

三、代码示例

1. LED 滚动显示程序

本代码实验现象是: LED 点阵从最下行向上,每次滚动显示一行。
显示到第一行后,改从最右列向左,每次滚动显示一列。

(1)led_matrix_utils.c

#include "led_matrix_utils.h"
#include "common_utils.h"// 时钟输入引脚,用于控制数据的移位操作
sbit SR_CLK = P3^6;
// 数据数据推到输出寄存器的引脚
sbit R_CLK = P3^5;
// 串行数据输入
sbit SER = P3^4;u8 gc595_buf[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};// 低电平有效,开启列
#define LED_MATRIX_PORT P0void hc595_show_data(u8 show_data)
{u8 i = 0;for (i = 0; i < 8; i++){SER = show_data >> 7 ;show_data <<= 1;// 移位寄存器时钟上升沿,进行移位操作SR_CLK = 0;delay_10us(1);SR_CLK = 1;delay_10us(1);}// 输出寄存器时钟上升沿,将移位寄存器的数据复制到输出寄存器R_CLK = 0;delay_10us(1);R_CLK = 1;delay_10us(1);
}
void hc595_show_row(void){u8 i=0;LED_MATRIX_PORT = 0;for(i=0;i<8;i++){hc595_show_data(0x00);hc595_show_data(gc595_buf[i]);delay_ms(500);}
}
void hc595_show_column(void){u8 i=0;hc595_show_data(0xFF);for(i=0;i<8;i++){LED_MATRIX_PORT = ~gc595_buf[i];delay_ms(500);}
}

(2)main.c

#include <reg52.h>
#include "led_utils.h"
#include "common_utils.h"
#include "led_matrix_utils.h"/**
* @brief 主函数
*/
main()
{// 关闭所有ledled_all_off();while(1){hc595_show_row();hc595_show_column();}
}

2. 显示一个点

void hc595_show_point(u8 x, u8 y){// 把 LED_MATRIX_PORT 对应的x位置设置为0x = 8-x;y = 8-y;LED_MATRIX_PORT = ~(0x01 << x);hc595_show_data(gc595_buf[x]);delay_ms(1000);
}

3. 显示字符程序

(1) led_matrix_utils.c

#include "led_matrix_utils.h"
#include "common_utils.h"
#include <reg52.h>// 时钟输入引脚,用于控制数据的移位操作
sbit SR_CLK = P3^6;
// 数据数据推到输出寄存器的引脚
sbit R_CLK = P3^5;
// 串行数据输入
sbit SER = P3^4;u8 gled_column[8] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};// 低电平有效,开启列
#define LED_MATRIX_PORT P0void led_matrix_init(void){LED_MATRIX_PORT = 0x00;
}
void hc595_show_data(u8 show_data)
{u8 i = 0;for (i = 0; i < 8; i++){SER = show_data >> 7 ;show_data <<= 1;// 移位寄存器时钟上升沿,进行移位操作SR_CLK = 0;delay_10us(1);SR_CLK = 1;}// 输出寄存器时钟上升沿,将移位寄存器的数据复制到输出寄存器R_CLK = 0;delay_10us(1);R_CLK = 1;
}
void hc595_show_char(u8* gled_row){u8 i =0;for(i=0;i<8;i++){LED_MATRIX_PORT = gled_column[i];hc595_show_data(gled_row[i]);delay_10us(280);hc595_show_data(0x00);}
}

(2)main.c

#include <reg52.h>
#include "led_utils.h"
#include "common_utils.h"
#include "led_matrix_utils.h"
#include "types.h"
// 数据0
u8 gled_row[8] = {0x00, 0x7c, 0x82, 0x82, 0x82, 0x7c, 0x00, 0x00};
/**
* @brief 主函数
*/
main()
{// 关闭所有ledled_all_off();led_matrix_init();while(1){hc595_show_char(gled_row);}
}

本文开源地址:https://gitee.com/xundh/learn51

http://www.hkea.cn/news/112504/

相关文章:

  • wordpress初始登录seo排名赚app靠谱吗
  • 软件外包保密协议seo相关岗位
  • 后台网站开发文档下载班级优化大师app
  • 辛集城乡建设管理局网站网络营销网络推广
  • 阿里云部署一个自己做的网站吗电商网站搭建
  • 免费汽车租赁网站模板网站域名解析ip查询
  • 企业解决方案官网国内seo排名分析主要针对百度
  • 变态版手游石景山区百科seo
  • 阿里云控制台登录入口seo矩阵培训
  • wordpress苗木模板网站搜索排优化怎么做
  • 网站图片引导页怎么做重庆seo招聘
  • 如何做属于自己的领券网站郑州百度网站优化排名
  • 建设银行益阳市分行桃江支行网站公司页面设计
  • vps 网站上传网站seo优化是什么意思
  • wordpress cos腾讯云seo网站优化收藏
  • 鹤岗商城网站建设免费域名申请
  • 江苏三个地方疫情严重抖音视频排名优化
  • 竞价排名广告东莞关键词排名快速优化
  • 做视频网站要什么格式好网络营销公司怎么注册
  • 企业专业网站建设快速网站搭建
  • 武威建设网站的网站google谷歌搜索
  • 长沙公司做网站多少钱推广平台怎么做
  • 现在大家做电商网站用什么源码营销策略都有哪些
  • 可以做试卷的网站英语怎么说seo关键词排名优化系统源码
  • 网站怎么设置支付功能企业网站的主要类型有
  • 成都圣都装饰装修公司北京搜索优化排名公司
  • 境外建设网站贴吧互联网域名注册查询
  • 广州建站工作室淘客推广怎么做
  • 中国最大的网站建设公司百度广告联盟点击一次多少钱
  • wordpress单页主题营销seo手机关键词网址