串转并74hC595控制流水灯

#include <reg51.h>

//重新定义系统数据类型
typedef unsigned int u16;
typedef unsigned char u8;

//宏定义数据端口
#define LEDDZ_COL_PORT     P0
#define SER_AP_PORT           P1

 //定义数据存储端口
sbit SER=P3^4;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;


//依次闪烁每行灯数组
u8 ghc595_buf[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

//函数名:delay_10us,延时函数ten_us=1时,大约延时10us,输入:ten_us,输出无
 void delay_10us(u16 ten_us)
 {
   while(ten_us--);
 }

//函数名:delay_ms,延时函数ms=1时,大约延时1ms,输入ten_us,输出无
void delay_ms(u16 ms)
{
  u16 i,j;
  for(i=ms;i>0;i--)                         //ms=1时,下一个for循环110次,ms=>1,两循环一次走ms次,多少次就是多少毫秒
     for(j=110;j>0;j--);                //ten-us=1延时10us,循环110,大约1100us大约1ms
}


void hc595_write_data(u8 dat)             //位移寄存器主函数,把一个字节的数据按高位到低位的方式依次送入(芯片要求高位至低位的顺序)
{
  u8 i=0;                                 //定义一个字符型变量并赋初值
  for(i=0;i<8;i++)                          //循环8次可将一个字节写吧位移寄存器中,无符号型不考虑符号
  {
     SER=dat>>7;                           //优先传输数据高位后右移动7位,就把数据移入了右边最低位
     dat<<=1;                                //把数据从最右边最低位往左向高位移动一位,最右边最低位补0
     SRCLK=0;                                //赋予位移时钟初值为低电平
     delay_10us(1);                         //消抖延时10us,根据芯片说明来定义时长
     SRCLK=1;                               //给位移时钟赋高电平,送出一个上升沿电流
     delay_10us(1);                           //消抖延时10us,根据芯片说明来定义时长
  }
  RCLK=0;                      //给寄存存储器时钟赋初值0低电平
  delay_10us(1);               //消抖延时10us
  RCLK=1;                      // 给寄存存储器时钟赋1高电平,发送一个时钟信号,并输出信号
  delay_10us(1);               //消抖延时10us
}


//主函数,
void main()
{
  u8 i=0;
  LEDDZ_COL_PORT=0x00;                                      //将LED点阵列全部设置为0,即LED阴极为低电平
  while(1)
  {
    for(i=0;i<8;i++)                                      //依次循环点亮8行,o对应最低位的代码行点亮
    {
      hc595_write_data(0x00);                              //清除前寄存器缓存数据
      hc595_write_data(ghc595_buf[i]);                       //写如新的数据
      delay_ms(500);                                       //延时500ms
    }
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPS表格:对比少于1万的两列数据

当我们需要对于A、B两列乱序的数据&#xff0c;找出A列中某一项B列有没有&#xff0c;或者找出B列中的某一项A列有没有&#xff0c;都可以先将这两列数据放入WPS表格中&#xff1a; 1.选中C列的第一行的单元格&#xff0c;在函数区输入函数 如果我们以A为基准&#xff0c;找A中…

SQL语句优化技巧

目录 1、sql语句规范 2、sql语句优化 1、sql语句规范 MySQL在Linux系统下数据库名&#xff0c;表名&#xff0c;存储过程名&#xff0c;函数名称&#xff0c;触发器名称等区分大小写&#xff0c;列名不区分大小写&#xff0c;原因是这些操作系统下文件名称区分大小写。 MySQL…

19、案例实战:上亿请求轻松应对,老年代垃圾回收参数调整技巧大公开

19.1、前文回顾 在上一篇文章中,我们已经向大家介绍了一个日活跃用户百万级别,处理请求量上亿的电商系统案例。我们选择了这个中型电商系统在大促期间的瞬时高峰下单场景,作为我们的JVM优化分析的场景。通过预测,我们得出在大促高峰期,每台机器每秒需要处理300个订单请求…

蓝桥杯-线性动态规划问题背包问题进阶策略详解-

题目&#xff1a;蓝桥云课-青蛙吃虫 解题代码&#xff1a; #include <iostream> #include<cstring> #include<algorithm> using namespace std;const int N106;int f[N][N]; int a[N]; int t,l,r,k,n;int main() {cin>>t;while(t--){scanf("%d%…

云计算第十二课

安装虚拟机 第一步新建虚拟机 选择自定义安装 下一步 选择稍后安装操作系统 选择系统类型和版本 选择虚拟机文件路径&#xff08;建议每台虚拟机单独存放并且路径不要有中文&#xff09;点击下一步 选择bios下一步 选择虚拟机处理器内核数量 默认硬盘或者自行调大硬盘 选择虚…

win10建立共享文件夹和ipad共享文件

win10端设置 查看自己的局域网IP 在任意地方新建一个文件夹 打开文件夹的属性,点到共享的地方 点击高级共享 然后点击应用,确认 再回到之前哪个地方,点击共享 把Everyone的权限改为读取/写入 最后点击共享就欧克了 失败的可能原因 ipad端设置 然后回出现一个要输入用户名和…

MySQL查询篇-模式匹配

文章目录 多个字符模糊查询确定长度单个字符模糊查询转义下查询 like 和 %&#xff0c;_&#xff0c;# 多个字符模糊查询 select * from table where version like %abc% -- 查询version列里含abc的数据 select * from table where version like %abc -- 查询version列里abc结…

【2024新版】龙年新版ui周易测算网站H5源码/在线起名网站源码/运势测算网站系统源码

>>>功能说明&#xff1a; 1、系统配置&#xff1a;系统基本配置、测算价格配置、在线预约配置、系统信息配置、代理分成配置、推广积分配置、VIP价格配置、账号管理 2、推广管理&#xff1a;我的信息、推广链接、订单管理、体现管理 3、付费应用&#xff0c;订单管…

如何学好Django?

Django作为一个高级的Python Web框架&#xff0c;已经成为了许多Web开发者的首选工具。无论是初学者还是有一定经验的开发者&#xff0c;都可以通过Django快速构建功能强大的Web应用。那么&#xff0c;如何学好Django呢&#xff1f;本文将给出一些建议&#xff0c;帮助你更好地…

SQL语言:完整性约束

完整性约束 数据完整性是指存储在数据库中的数据要能正确反映实际情况&#xff0c;规定输入的数据不能是无效值、错误值 或者乱码等。 一、非空约束&#xff1a; 非空约束关键字&#xff1a; not null 1、非空约束的创建 create table teacher( t_id int not null, -- 为教…

[数据集][目标检测]电力场景安全帽检测数据集VOC+YOLO格式295张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;295 标注数量(xml文件个数)&#xff1a;295 标注数量(txt文件个数)&#xff1a;295 标注类别…

【OceanBase 系列】—— 什么是冻结和转储

文章出处&#xff1a;OceanBase分布式数据库-海量数据 笔笔算数 本文主要介绍什么是冻结和转储。 适用版本 OceanBase 数据库所有版本。 冻结 冻结是指将 Active MEMTable 转化为 Frozen MEMTable 的过程。 冻结的触发方式 手动触发&#xff1a;alter system minor freeze…

机器学习---朴素贝叶斯

朴素贝叶斯是一种用于分类和预测任务的算法&#xff0c;他的原理是基于贝叶斯定理。其中朴素的意思是假设各特征之间相互独立。这个实验我是用的老师课后作业的题目预测某天是否会打网球&#xff0c;假设每个特征独立。 目录 贝叶斯公式&#xff1a; 训练集&#xff1a; 处理…

最新版★重大升级★神点云连锁餐饮V2独立版点餐系统★公众号/h5/小程序前后端全套源码

提醒&#xff1a; 市场上流通很多老版本代码&#xff0c;一大堆问题且无法保证售后的源码&#xff0c;请各位买家一定要睁大眼睛&#xff0c;以防上当受骗&#xff01;&#xff01;&#xff01;本系统源码全是经本人亲自测试与修复的完好版本&#xff0c;且本人用此版本源码已…

Java | Leetcode Java题解之第86题分隔链表

题目&#xff1a; 题解&#xff1a; class Solution {public ListNode partition(ListNode head, int x) {ListNode small new ListNode(0);ListNode smallHead small;ListNode large new ListNode(0);ListNode largeHead large;while (head ! null) {if (head.val < x…

第 1 天_二分查找【算法基础】

第 1 天_二分查找 前言34. 在排序数组中查找元素的第一个和最后一个位置题解官方33. 搜索旋转排序数组题解官方74. 搜索二维矩阵 前言 这是陈旧已久的草稿2021-11-09 19:33:44 当时在学习数据结构&#xff0c;然后再LeetCode上找了一个算法基础。 但是后来又没做了。 现在20…

使用LLaMA Factory来训练智谱ChatGLM3-6B模型

使用LLaMA Factory来训练智谱ChatGLM3-6B模型时&#xff0c;以下是一个训练过程&#xff1a; 1. 环境搭建 a. 安装Python和Anaconda 下载并安装适合你操作系统的Python版本&#xff08;推荐Python 3.10或更高版本&#xff09;。安装Anaconda&#xff0c;以管理Python环境和依…

【STM32+k210项目】基于AI技术智能语音台灯的设计(完整工程资料源码)

视频演示 基于AI技术智能语音台灯的设计 前言&#xff1a; 随着社会的快速发展&#xff0c;人们对家用电器智能化程度的要求越来越高。不管是对于学生人群还是对于工作加班者&#xff0c;台灯是每家每户必不可少的工具&#xff0c;长期处于光线太强或者过弱的环境中学习和一系列…

FreeRTOS二值信号量

目录 一、信号量的概念 1、信号量的基本概念 2、信号量的分类 二、二值信号量简介 三、二值信号量相关API 1、创建二值信号量 2、释放二值信号量 3、获取二值信号量 四、二值信号量实操 1、实验需求 2、CubeMX配置 3、代码实现 一、信号量的概念 1、信号量的基本概…

如何学会发表人工智能学术论文

对于拼论文&#xff0c;我也经历过迷茫&#xff0c;不知道应该如何选题&#xff0c;也不知道如何开始做研究&#xff0c;因为导师不可能手把手的教学生&#xff0c;大多数情况下就是把握一下方向&#xff0c;具体的流程都要请教师兄们&#xff0c;所以如果有个非常厉害又热心的…