怎样做网站导航界面/百度高级搜索入口
目录
目的/效果
一,STC单片机模块
二,8*8 LED点阵模块
2.1 电路图
2.1.1 8*8 点阵模块电路图
2.1.2 74HC595(串转并)模块 电路图
2.1.3 芯片引脚
2.2 引脚电平分析
2.3 74HC595 串转并模块
2.3.1 装弹(移位寄存器)
2.3.2 发弹(存储寄存器)
2.4 STC89C52RC 中的sfr、sbit
2.4.1 sfr(special function register):特殊功能寄存器声明
2.4.2 sbit(special bit):特殊位声明
2.4.3 可位寻址/不可位寻址:
三,创建Keil项目
四,代码
五,代码编译、下载到51单片机
目的/效果
程序控制,点亮点阵LED 第1行第一列LED
一,STC单片机模块
二,8*8 LED点阵模块
2.1 电路图
2.1.1 8*8 点阵模块电路图
2.1.2 74HC595(串转并)模块 电路图
2.1.3 芯片引脚
2.2 引脚电平分析
我们要点亮左下角 第一个 LED,需要将P70和DPa接通,其他引脚不管,如下图
将LED点阵左边第一列设置为0,即LED阴极为低电平,其余列为1,即高电平
将LED点阵上边第一行设置为1,即LED阳极为高电平,其余行为0,即低电平
对于74HC595模块的电平如下
这里要注意跳线帽:OE 输出有效(低电平),我们直接可以拔掉或者接GND上
DP上的HEX=0x80=1000 0000(二进制)
那么对于引脚P35(RCLK)、P36(SRCLK)、P34(SER)输入怎样的数据,DPa-DPh 才会输出1000 0000 的电平呢?我们就要详细分析这个74HC595译码器。
2.3 74HC595 串转并模块
74HC595 是一个 8 位串行输入、并行输出的位移缓存器,其中并行输出为三 态输出(即高电平、低电平和高阻抗)
移位寄存器工作方式就像手枪弹夹,但是子弹的发射(移位寄存器中的数据转储到存储寄存器),又像是【散弹】(因为是并行输出嘛)。
具体的装弹和发弹如下
2.3.1 装弹(移位寄存器)
上升沿:电平从低到高的那个过程。移位寄存器时钟在上升沿这个过程中才起作用。
先把数据放到针脚P34(SER)上(SER=1低电平 或者SER=0 高电平)
然后将 将P36(SRCLK) 针脚 先置低电平(SRCLIK=1)再置高电平(SRCLK=0)。这样就是实现了由上升沿 移位寄存(装弹)的效果。不过要注意这里不能立即置0,机器也需要处理时间。这里我们需要将程序延时10微秒后再做处理。
2.3.2 发弹(存储寄存器)
数据从位移寄存器转移到存储寄存器,也是需要时钟脉冲驱动的,这就是P35(RCLK)脚的作用。它也是上升沿有效。
2.4 STC89C52RC 中的sfr、sbit
2.4.1 sfr(special function register):特殊功能寄存器声明
例:sfr P0 = 0x80; 声明P0口寄存器,物理地址为0x80
2.4.2 sbit(special bit):特殊位声明
例:sbit P0_1 = 0x81; 或 sbit P0_1 = P0^1; 声明P0寄存器的第1位
比如本节我们用到了下面几个,我们把针脚P34、P35、P36定义用对应申明,在使用时不在写针脚地址寄存器(当然也可以继续使用针脚,作用一样)。
//定义74HC595控制管脚
sbit _SRCLK=P3^6; //移位寄存器时钟输入
sbit _RCLK=P3^5; //存储寄存器时钟输入 注意:在 REGX52.H 中已经申明了RCLK
sbit _SER=P3^4; //串行数据输入
2.4.3 可位寻址/不可位寻址:
在单片机系统中,操作任意寄存器或者某一位的数据时,必须给出其物理地址,又因为一个寄存器里有8位,所以位的数量是寄存器数量的8倍,单片机无法对所有位进行编码,故每8个寄存器中,只有一个是可以位寻址的。对不可位寻址的寄存器,若要只操作其中一位而不影响其它位时,可用“&=”、“|=”、“^=”的方法进行位操作
三,创建Keil项目
详细参考:51单片机STC89C52RC——创建Keil项目-CSDN博客
四,代码
main.c
#include <REGX52.H>
#include "74HC595.h"
/*** 函 数:主函数* 参 数:无* 返 回 值:无*/
void main()
{ while(1){_74HC595_Show(0,0x80);//点亮第一行,第一个LED}
}
Delay.c
/*** 函 数:延时函数 毫秒* 参 数:ms 延时多少毫秒* 返 回 值:无*/
void Delay_ms(int ms) //@12.000MHz
{unsigned char data i, j;while(ms--){ i = 2;j = 239;do{while (--j);} while (--i);}
}
/*** 函 数:延时函数 毫秒* 参 数:ms 延时多少毫秒* 返 回 值:无*/
void Delay_us(int ms) //@12.000MHz
{unsigned char data i, j;while(ms--){ i = 2;j = 239;do{while (--j);} while (--i);}
}
/*** 函 数:延时函数 10微秒* 参 数:无* 返 回 值:无*/
void Delay_10us(int _10us) //@11.0592MHz
{unsigned char data i;while(_10us--){i = 2;while (--i);}
}
Delay.h
#ifndef __DELAY_H_
#defind __DELAY_H_
void Delay_ms(int ms);
void Delay_10us(int _10us);
#endif
74HC595.c
#include <REGX52.H>
#include "Delay.h"//定义74HC595控制管脚
sbit _SRCLK=P3^6; //移位寄存器时钟输入
sbit _RCLK=P3^5; //存储寄存器时钟输入 注意:在 REGX52.H 中已经申明了RCLK
sbit _SER=P3^4; //串行数据输入 /*** 函 数:74HC595写入一个字节* 参 数:Byte 要写入的字节* 返 回 值:无*/
void _74HC595_WriteByte(unsigned int Byte)
{ unsigned char i;for(i=0;i<8;i++){_SER=Byte&(0x80>>i); //将1000 0000 右移i位后 & Byte_SRCLK=0; //移位寄存器置搞电平Delay_10us(1);_SRCLK=1; //移位寄存器置低电平/*这里有需要可以延时10微秒*/Delay_10us(1);}_RCLK=1; //存储寄存器置低电平Delay_10us(1);_RCLK=0; //存储寄存器置搞电平
}
/*** 函 数:LED点阵屏显示一列数据* 参 数:Column 要选择的列,范围:0~7,0在最左边,Data 选择列显示的数据,高位在上,1为亮,0为灭* 返 回 值:无*/
void _74HC595_Show(unsigned char Column,Byte)
{_74HC595_WriteByte(Byte); //向行写入数据P0=~(0x80>>Column); //向列写入数据Delay_10us(1); //等待显示稳定
}
74HC595.h
#ifndef __74HC595_H_
#defind __74HC595_H_
void _74HC595_WriteByte(unsigned int Byte);
void _74HC595_Show(unsigned char Column,Byte);
#endif
五,代码编译、下载到51单片机
代码编译请参考
《51单片机STC89C52RC——代码编译-CSDN博客》
代码下载请参考
《51单片机STC89C52RC——STCAI-ISP代码下载-CSDN博客》
相关文章:

51单片机STC89C52RC——8.1 8*8 LED点阵模块(点亮一个LED)
目录 目的/效果 一,STC单片机模块 二,8*8 LED点阵模块 2.1 电路图 2.1.1 8*8 点阵模块电路图 2.1.2 74HC595(串转并)模块 电路图 2.1.3 芯片引脚 2.2 引脚电平分析 2.3 74HC595 串转并模块 2.3.1 装弹(移位…...

2024最新免费版轻量级Navicat Premium Lite 下载和安装教程
2024最新免费版轻量级Navicat Premium Lite 下载和安装教程 关于猫头虎 大家好,我是猫头虎,别名猫头虎博主,擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发工具教程、前沿科技资讯、产品评…...

PHP+laravel 生成word
此功能较为繁琐我会从源头讲起 首先是数据库设置,下面是我的数据库结构 合同模版表 CREATE TABLE contract_tpl (id bigint unsigned NOT NULL AUTO_INCREMENT,name varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 合同名称,file varchar(191) COLL…...

redis集群简单介绍及其搭建过程
Redis集群 1、哨兵模式 哨兵可以有多个,从服务器也可以有多个,从服务器也可以有多个,在Redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会实现主从切换&#x…...

linux桌面运维----第五天
1、创建用户命令useradd: 作用:创建用户 语法:useradd [选项名] 用户名 选项: -d<登入目录> 指定用户登入时的起始目录。 【掌握】 -g<群组> 指定用户所属的群组(基本组)。【掌握】…...

【SQL Server数据库】简单查询
目录 用SQL语句完成下列查询。使用数据库为SCHOOL数据库 1. 查询学生的姓名、性别、班级名称,并把结果存储在一张新表中。 2. 查询男生的资料。 3. 查询所有计算机系的班级信息。 4.查询艾老师所教的课程号。 5. 查询年龄小于30岁的女同学的学号和姓名。…...

Docker 从入门到精通(大全)
一、概述 1.1 基本概念 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。…...

基于JSP的在线教育资源管理系统
开头语: 你好呀,我是计算机学长猫哥!如果你对在线教育资源管理系统感兴趣或者有相关需求,欢迎在文末找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:IDE、N…...

在java中代理http请求,如何避免陷入循环?
在 Java 中,代理 HTTP 请求时,如果不小心配置不当,可能会导致循环请求。循环请求通常发生在代理服务器将请求再次发送回自己,形成一个死循环。为了避免这种情况,可以采取以下几种方法: 将域名设置为指定的…...

国内镜像源网址
腾讯:腾讯软件源 (tencent.com) 阿里:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com) 清华:清华大学开源软件镜像站 | Tsinghua Open Source Mirror...

合适的智能猫砂盆到底怎么挑?开放式封闭式一次说清!
想当初我也是在网上看了各种测评,纠结了好久才下定决心入手了智能猫砂盆。封闭式和开放式都用过,各有各的利与弊,不过最后的我还是选择了开放式的智能猫砂盆,因为开放式的设计结构会更加方便我观察小猫,哪个铲屎官不喜…...

阿里云开启ssl证书过程记录 NGINX
🤞作者简介:大家好,我是思无邪,2024 毕业生,某厂 Go 开发工程师.。 🐂我的网站:https://www.yishanicode.top/ ,持续更新,希望对你有帮助。 🐞如果文章或网站…...

C语言程序设计 9.37 调用随机函数为5x4的矩阵置 100以内的整数,输出该矩阵,求出每行元素之和,并把和的最大的那一行与第一行的元素对调
void count_sum(int sum[]) {int i;printf("每行相加的情况如下\n");for (i 0;i < 5; i){printf("%d ", sum[i]);}printf("\n"); } void test(int arr[5][4]) {int i, j;srand((unsigned)time(NULL));//添加这个可以每次不同的随机数&#x…...

Webpack: 借助 Babel+TS+ESLint 构建现代 JS 工程环境
概述 Webpack 场景下处理 JavaScript 的三种常用工具:Babel、TypeScript、ESLint 的历史背景、功能以及接入 Webpack 的步骤借助这些工具,我们能构建出更健壮、优雅的 JavaScript 应用 使用 Babel ECMAScript 6.0(简称 ES6) 版本补充了大量提升 JavaSc…...

孩子不想上学,父母应如何教育?“强迫教育”会激起孩子反抗心理
上周末朋友聚会,都是家有上学娃的年纪,闲聊中,话题自然少不了孩子的上学问题。其中,不少朋友都有抱怨过同一个问题:孩子不想上学,即使人到了学校,心也不在学校。 事实上,孩子出现…...

Python深度学习技术
原文链接:Python深度学习技术 近年来,伴随着以卷积神经网络(CNN)为代表的深度学习的快速发展,人工智能迈入了第三次发展浪潮,AI技术在各个领域中的应用越来越广泛。Transformer模型(BERT、GPT-…...

ECharts 雷达图案例002 - 诈骗性质分析
ECharts 雷达图案例002 - 诈骗性质分析 📊 ECharts 雷达图案例002 - 诈骗性质分析 深入挖掘数据背后的故事,用可视化手段揭示诈骗行为的模式和趋势。 🔍 案例亮点 创新的数据展示方式,让复杂的诈骗数据一目了然。定制化的雷达图…...

想远程控制手机,用哪个软件好?
很多人都想知道安卓系统或iOS系统要如何实现手机远程控制手机、电脑远程控制手机,分别需要用到什么软件,这篇文章一次说清楚。 注意,安卓系统需要是7.0及以上版本,iOS系统需要是11及以上版本。具体使用步骤请点击关注,…...

数字内容“遍地开花”,AI技术如何创新“造梦”?
文 | 智能相对论 作者 | 陈泊丞 这是春晚舞台西安分会场《山河诗长安》的一幕:“李白”现世,带领观众齐颂《将进酒》,将中国人骨子里的豪情与浪漫演绎得淋漓尽致。 这又是浙江义乌商品市场里的另一幕:只会说几个英文单词的女老板…...

MySQL集群如何实现读写分离
数据源配置:定义了主从数据库的连接池。读写分离规则:通过MasterSlaveRuleConfiguration定义了主从数据库的读写分离规则。负载均衡算法:定义了从数据库的负载均衡算法。创建ShardingDataSource:使用数据源和读写分离规则创建了Sh…...

一分钟剪辑1000条视频的云微客矩阵,怎么做到的?
当我们打开短视频软件时,就会有大量风格迥异的短视频犹如潮水般涌现在我们面前,这些短视频不仅配置了加粗的标题,下方还配置了字幕,中间则播放着视频,就是这样简易的视频,往往总能获得较高的播放量…...

简单案例比较Lambda和方法引用的差别
1.打印列表元素 正常使用 List<String> list Arrays.asList("a", "b", "c");for (String str: list){System.out.println(str);}Lambda表达式 list.forEach(e -> System.out.println(e));方法引用 list.forEach(System.out::println…...

10 个最佳 AI 代码生成器
人工智能的兴起极大地影响了编码和开发领域。 人工智能驱动的代码生成器有助于简化编码流程、自动化日常任务,甚至预测和建议代码片段。 下面,我们介绍一些最好的人工智能代码生成器、它们的独特功能,以及它们如何彻底改变您的编程体验。 1.…...

Eureka服务发现机制解析:服务实例的唯一标识
引言 Eureka是Netflix开源的服务发现框架,它是Spring Cloud体系中的核心组件之一。在微服务架构中,服务实例的动态注册与发现是实现服务间解耦和通信的关键。Eureka通过提供服务注册中心,使得各微服务实例能够注册自己并发现其他服务实例。本…...

操作系统实训复习笔记(基于命名管道与信号的进程间通信)
目录 基于命名管道与信号的进程间通信 第1关:命名管道与信号IPC操作考查 基于命名管道与信号的进程间通信 第1关:命名管道与信号IPC操作考查 (没啥好说的,不会的操作系统考试就靠记呗!!) slee…...

数字化转型第三步:数字化业务创新与发展,提升收入和利润
引言:之前笔者的文章发布了企业数字化转型业务部分,如【开源节流】如何通过数字化转型增强盈利能力?企业供应链数字化转型如何做?让企业盈利能力增强再飞一会 【财务数字化转型之底座】集团企业财务数据中台系统建设方案 等文章&a…...

SSM爱心捐赠物资维护系统-计算机毕业设计源码09536
摘要 随着信息技术的快速发展,计算机应用已经进入成千上万的家庭。随着物资数量的增加,物资库存管理也存在许多问题。物资数据的处理量正在迅速增加,原来的手工管理模式不适合这种形式。使用计算机可以完成数据收集、处理和分析,减…...

中国9大流域地图SHP数据
九大流域片区是指中国境内九个主要流域片区。 分别包括东南诸河区、内陆河区、松辽河流区、海河流域区、淮河流域区、珠江流域片、西南诸河片、长江流域片和黄河流域片等。 如果这九大流域数据对你有用,请在文末查看该数据的领取方法。 中国9大流域图 流域&…...

android Switch/case with R.id.XXXX in android doesn‘t work 错误: 需要常量表达式解决方案
出现需要常量表达式 R.id.xxx 表达式错误的处理方法 出现的原因是因为: 使用 Android Gradle 插件 8.0.0 时,默认情况下,您的所有 R 类资源都不再声明为 final/constant(因此在 switch 语句中不起作用)。 如果您在 Android Studi…...

vue3-openlayers marker 光晕扩散(光环扩散)(postrender 事件和 render 方法)
本篇介绍一下使用 vue3-openlayers marker 光晕扩散(光环扩散)(postrender 事件和 render 方法) 1 需求 marker 光晕扩散(光环扩散) 2 分析 marker 光晕扩散(光环扩散)使用 post…...