STC89C52学习笔记(四)

STC89C52学习笔记(

综述:本文讲述了在STC89C51中数码管、模块化编程、LCD1602的使用。

一、数码管

1.数码管显示原理

位选:对74HC138芯片的输入端的配置(P22、P23、P24),来选择实现位选(哪个数码管显示数字)。

段选:对74LS245芯片的输入端进行配置(P00、P01、P02、P03、P04、P05、P06、P07),来实现段选(显示什么数字)。

数码管连接方式:共阳极时配置0则点亮,共阴极配置1则点亮。

2.显示方式

1)直接配置
P2_4=1;
P2_3=0;
P2_2=1;
P0=0x7d;

即可实现第三个数码管显示数字6

2)撰写子函数
unsigned char NixieTable[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x3e,0x79,0x71,0x00};void Nixie(unsigned char Location,Number)
{switch(Location){case 1:P2_4=1;P2_3=1;P2_2=1;break;case 2:P2_4=1;P2_3=1;P2_2=0;break;case 3:P2_4=1;P2_3=0;P2_2=1;break;case 4:P2_4=1;P2_3=0;P2_2=0;break;case 5:P2_4=0;P2_3=1;P2_2=1;break;case 6:P2_4=0;P2_3=1;P2_2=0;break;case 7:P2_4=0;P2_3=0;P2_2=1;break;case 8:P2_4=0;P2_3=0;P2_2=0;break;}P0=NixieTable[Number];Delay(1);//稳定显示P0=0x00;//清零}void main()
{Nixie(7,2);while(1){	}
}

二、模块化编程

传统方式的编程直接放在main函数里面,不利于代码的组织、管理、移动和查找错误。模块化编程将各个模块的代码放在不同的c文件里面,在h文件里面提供外部可调用函数的声明,需要代码时,只需要#include “xxx.h”

①建立.c文件和.h文件

②攥写.c文件,记得添加头文件

③攥写.h文件

前两行是为了防止重复定义,第三行的函数末尾记得加分号,否则会报错。

三、LCD1602

注意:LCD1602与数码管和LED引脚冲突,当使用LCD1602时,一般不使用数码管和LED。

①LCD1602的相关函数和作用

②函数的使用和演示结果

先将LCD1602的.c和.h文件复制到当前的项目文件夹下,然后在项目中添加LCD1602的.c和.h文件

在main函数中调用LCD1602.h,并使用相关函数

LCD1602演示结果


参考视频:51单片机学习视频

侵权联系删除!

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

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

相关文章

大话设计模式——17.状态模式(State Pattern)

简介 对象的行为依赖于它的状态(属性),可以根据状态的改变而改变相关行为。 UML图: 应用场景: 对象的行为取决于其状态,并且必须要在运行时刻根据状态而改变行为代码中包含大量与对象状态有关的条件语句 …

嵌入式Linux:Linux库函数

目录 1、Linux库函数简介 2、标准C语言库函数 1、Linux库函数简介 Linux 提供了丰富的库函数,涵盖了各种领域,从文件操作到网络编程、图形界面、数学运算等。这些库函数大多数都是标准的 C 库函数,同时也包括一些特定于 Linux 系统的库。 …

GlusterFS分布式文件系统

前言 存储可分为文件存储和对象存储,常见的文件存储相关技术有:nfs、lvm、raid;常见的对象存储相关技术有:gfs、ceph、fdfs、nas、oss、s3、switch。GlusterFS 归类为文件存储系统,它提供了一种强大的方式来管理和存储…

ubuntu系统逻辑卷Logical Volume扩容根分区

Linux LVM详解 https://blog.csdn.net/qq_35745940/article/details/119054949 https://blog.csdn.net/weixin_41891696/article/details/118805670 https://blog.51cto.com/woyaoxuelinux/1870299 LVM(Logical Volume Manager)逻辑卷管理&#xff0c…

【网安小白成长之路】5.MySQL漏洞扫描工具Scuba

🐮博主syst1m 带你 acquire knowledge! ✨博客首页——syst1m的博客💘 🔞 《网安小白成长之路(我要变成大佬😎!!)》真实小白学习历程,手把手带你一起从入门到入狱🚭 &…

Ethernet 汇总

Ethernet系统 硬件最小系统 CPU:可以是复杂的芯片,也可以是小的单片机DMA:用于减轻CPU负担,搬运数据系统Memory<->FIFOMAC:可以集成在芯片里面,用于CPU和PHY之间的通信MII:接口用于MAC和PHY的通信,包括控制MDIO和数据DataPHY:模拟器件,最底层,数据收发源头软件…

Qt Creator 界面

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;QT❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、认识 Qt Creator 界面 1、总览 2、左边栏 3、代码编辑区 4、UI设计界面 5、构建区 一、认识 …

HarmonyOS 开发-底部抽屉滑动效果案例

介绍 本示例主要介绍了利用List实现底部抽屉滑动效果场景&#xff0c;并将界面沉浸式&#xff08;全屏&#xff09;显示&#xff0c;及背景地图可拖动。 效果图预览 使用说明 向上滑动底部列表&#xff0c;支持根据滑动距离进行分阶抽屉式段滑动。 实现思路 本例涉及的关键…

Redis部署之主从

使用两台云服务器&#xff0c;在 Docker 下部署。 Redis版本为&#xff1a;7.2.4 下载并配置redis 配置文件 下载 wget -c http://download.redis.io/redis-stable/redis.conf配置 master节点配置 bind 0.0.0.0 # 使得Redis服务器可以跨网络访问,生产环境请考虑…

AI技术在金融领域/银行业的应用和风险

前言 随着科技的不断发展&#xff0c;人工智能&#xff08;AI&#xff09;技术已经在各行各业得到了广泛的应用&#xff0c;其中包括银行业。银行业作为经济的重要组成部分&#xff0c;一直在不断地探索和应用新技术&#xff0c;以提升服务效率、风险管理和客户体验。然而&…

力控机器人原理及力控制实现

力控机器人原理及力控制实现 力控机器人是一种能够感知力量并具有实时控制能力的机器人系统。它们可以在与人类进行精准协作和合作时&#xff0c;将力传感技术&#xff08;Force Sensing Technology&#xff09;和控制算法&#xff08;Control Algorithm&#xff09;结合起来&a…

每日一题 — 最大连续 1 的个数III

解法一&#xff1a;暴力枚举 先定义left和right双指针&#xff0c;left先固定在起始位置&#xff0c;遍历right当值等于1的时候&#xff0c;直接跳过&#xff0c;等于0的时候&#xff0c;zero计数器加一当zero等于k的时候&#xff0c;就开始记录此时最大长度是多少然后left加一…

unity数组

数组的定义 动态初始化:在定义数组时只指定数组的长度&#xff0c;由系统自动为元素赋初值的方式。 静态初始化:定义数组的同时就为数组的每个元素赋值 数组的静态初始化有两种方式 1、类型门数组名new 类型[]{元素&#xff0c;元素&#xff0c;…}; 2、类型[数组名{元素&am…

【MATLAB源码-第29期】基于matlab的MIMO,MISO,SIMO,SISO瑞利rayleigh信道容量对比。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. SISO&#xff08;单输入单输出&#xff09;&#xff1a; - SISO 是指在通信系统中&#xff0c;只有一个天线用于传输信号&#xff0c;也只有一个天线用于接收信号的情况。这是最简单的通信方式。 2. SIMO&#xff08;单…

实战webSocket压测(二)jmeter配置webSocket连接

背景 我们可以通过Jmeter添加插件实现webSocket脚本编写。WebSocket的插件较多&#xff0c;我选择以WebSocket Samplers by Peter Doornbosch为例来进行配置。 步骤1、WebSocket Samplers插件安装 下载地址&#xff1a;JMeter WebSocket Samplers&#xff0c;建议下载最新版本…

基于SpringBoot + Vue实现的智能无人仓库管理系统设计与实现+毕业论文

介绍 本系统包含管理员、员工两个个角色。 管理员&#xff1a;创建管理员账户、编辑管理员账户、删除管理员账户、分配管理权限、记录员工出勤、分配工作任务、监控员工工作效率、进行绩效评估、查看补货提醒、审批补货申请、维护基础数据。 员工&#xff1a;查看个人操作记…

基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析教程

原文链接&#xff1a;基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247600473&idx6&sn431e9408a42862d29fe4f4ef7703595b&chksmfa8208becdf581a820d9479d2aa61b88e96612c4ab72b0…

【VScode】同时编辑多处

【VScode】同时编辑多处 1. 多光标自定义批量编辑2. 选择多个&#xff0c;同时操作(批量选中局部匹配项)3. 取消选择4. 在不移动光标的情况下滚动屏幕5. 批量选中全局匹配项6.重点6.1 通过上下键选择多行6.2 同时选中所有行的末尾6.3 选中多列另一种方式6.4 通过正则的方式配置…

94岁诺奖得主希格斯去世,曾预言「上帝粒子」的存在

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 一位用诗意的语言揭示宇宙秘密的人。 一位 94 岁伟大科学家的逝世&#xff0c;引发了人们广泛…

蓝桥杯Python B组练习——矩阵乘法

一、题目 问题描述   给定一个N阶矩阵A&#xff0c;输出A的M次幂&#xff08;M是非负整数&#xff09;   例如&#xff1a;   A   1 2   3 4   A的2次幂   7 10   15 22 输入格式   第一行是一个正整数N、M&#xff08;1<N<30, 0<M<5&#xff0…