【Proteus仿真】开关控制系列仿真——开关控制LED/拨码开关二进制计数/开关和继电器控制灯灭

目录

0案例视频效果展示

0.1例子1:开关控制LED灯亮灭

0.2例子2:数码管显示拨码开关二进制计数(000~255)

0.3例子3:开关和继电器控制灯亮灭

1基础知识补充

1.1 74LS245双总线收发器

1.1.1 引脚及功能

1.1.2应用场景

1.1.3真值表

1.2继电器

1.2.1结构与工作原理

1.2.2关键术语

1.2.3 常见类型

1.2.4总结

2例子1:开关控制LED灯亮灭

2.1电路原理图

2.1.1电路组成及接线

2.2控制程序

2.2.1控制程序步骤

2.2.3源代码

3例子2:数码管显示拨码开关二进制计数(000~255)

3.1电路原理图

3.1.1电路组成及接线

3.2控制程序

3.2.1控制程序步骤

3.2.3源代码

4例子3:开关和继电器控制小灯亮灭

4.1电路原理图

4.1.1电路组成及接线

4.2控制程序

4.2.1控制程序步骤

4.2.3源代码

  7 硬件工程师笔试面试相关文章链接(部分链接)


摘要:本文介绍了单片机控制的三个基础案例及关键器件知识。案例1展示开关控制LED亮灭;案例2用拨码开关实现数码管二进制计数显示;案例3通过继电器控制大功率灯泡。重点讲解了74LS245总线收发器的引脚功能、真值表及应用场景,以及继电器的工作原理、类型和参数。每个案例均包含电路原理图、接线说明和C51源代码,展现了单片机I/O口输入输出控制、总线驱动及继电器隔离控制的基本原理。这些案例为单片机入门学习提供了完整的技术参考。

0案例视频效果展示

0.1例子1:开关控制LED灯亮灭

例子14:开关控制LED灯亮灭

0.2例子2:数码管显示拨码开关二进制计数(000~255)

例子15:数码管显示拨码开关二进制计数(000~255)

0.3例子3:开关和继电器控制灯亮灭

例子16:开关和继电器控制灯亮灭

1基础知识补充

1.1 74LS245双总线收发器

74LS245是一种 8 位三态双向总线收发器,用于在 A 总线B 总线 之间进行双向数据传输。

1.1.1 引脚及功能

方向控制端(AB/BA):

AB/BA = 1(高电平):数据从 A → B(发送)

AB/BA = 0(低电平):数据从 B → A(接收)

使能端(/CE):

/OE = 0(低电平有效):芯片被启用,数据传输有效

/OE = 1(高电平):芯片被禁用,A 和 B 均为 高阻态(三态输出)

数据线

A1-A8:A 总线端口(双向)

B1-B8:B 总线端口(双向)

1.1.2应用场景

总线驱动:常用于单片机(如 8051 系列)扩展总线,提升驱动能力 。

外设连接:用于连接打印机、显示器、键盘等外设,实现数据双向传输

接口电路:在微处理器与存储器(EPROM、RAM 等)之间提供数据缓冲

1.1.3真值表

/CE(使能)

AB/BA(方向)

功能描述

0

0

B → A(接收)

0

1

A → B(发送)

1

X

A 和 B 均为高阻态(禁用)

1.2继电器

继电器(Relay)是一种电控制开关器件——用小电流控制大电流电路的通断,本质上是电磁式“远程开关”。

1.2.1结构与工作原理

线圈(Coil)——通电产生磁场——>衔铁(Armature)被吸合——>触点(Contacts)闭合或断开——>外部高压/大电流回路接通或切断

线圈回路:低电压、小电流(如 5 V、12 V、24 V)

触点回路:可切换 220 VAC、10 A、30 VDC 等负载

1.2.2关键术语

名称

含义

线圈电压

继电器吸合所需额定电压(3 V、5 V、12 V、24 V…)

触点形式

SPST(1 开)、SPDT(1 开 1 闭)、DPDT(2 组开闭)

触点额定

最大切换电压、电流、功率(如 250 VAC 10 A)

吸合/释放时间

通常 5 – 15 ms

绝缘耐压

线圈-触点间耐压(一般 ≥ 1 kV)

1.2.3 常见类型

电磁继电器(经典,成本低)

固态继电器 SSR(无触点,半导体开关,寿命长,无火花)

信号继电器(小型,切换毫安级信号)

汽车继电器(12 V/24 V,大电流)

功率继电器(30 A 以上,空调、充电桩)

时间继电器(通电延时/断电延时)

闭锁继电器(脉冲驱动,保持状态,节能)

1.2.4总结

继电器 = “低压控高压、小电流控大电流”的电磁开关;只要需要隔离放大控制信号,就能见到它的身影。

2例子1:开关控制LED灯亮灭

实现功能:开关S1和S2分别控制LED1和LED2。

本质:控制I/O口高低电平输入,从而实现高低电平输出

2.1电路原理图

2.1.1电路组成及接线

名称

接线

AT89C51单片机

XTAL1/XTAL2—>连接晶振电路

RST—>连接复位电路

P0.0-P0.1—>共阳极LED电路

P1.0-P1.1—>开关电路

复位电路

晶振电路

开关电路

共阳极LED电路

2.2控制程序

2.2.1控制程序步骤

库文件与引脚定义

主函数(开关引脚高低电平作为输入条件,LED电路作为输出)

2.2.3源代码

//功能:开关S1和S2分别控制LED1和LED2。#include<reg51.h>sbit S1=P1^0;sbit S2=P1^1;sbit LED1=P0^0;sbit LED2=P0^1;//主程序void main(){while(1){LED1=S1;LED2=S2;}}

3例子2:数码管显示拨码开关二进制计数(000~255)

实现功能:数码管显示拨码开关所设置的编码000~255

本质:拨码开关控制I/O口高低电平输入,高电平表示1,低电平表示0,并以10进制显示到数码管

3.1电路原理图

3.1.1电路组成及接线

名称

接线

AT89C51单片机

XTAL1/XTAL2—>连接晶振电路

RST—>连接复位电路

P0.0-P0.7—>排阻/74LS245双总线收发器

P1.0-P1.7—>拨码开关

P2.0-2.3—>四位数码管

复位电路

晶振电路

拨码开关电路

四位数码管

排阻

74LS245双总线收发器

3.2控制程序

3.2.1控制程序步骤

库文件

定义数码管段码

延时函数

主函数(实现拨码开关不同状态对应不同数字输出)

3.2.3源代码

//功能:数码管显示拨码开关所设置的编码二进制数(000~255)#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//各数字的数码管段码(共阴)uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示缓冲uchar DSY_Buffer[3]={0,0,0};//延时void DelayMS(uint ms){uchar t;while(ms--)for(t=0;t<120;t++);}//主程序void main(){uchar i,m,Num;P0=0xff;P2=0xff;while(1){m=0xfe;Num=P1; //读取拨码开关的值DSY_Buffer[0]=Num/100;DSY_Buffer[1]=Num/10%10;DSY_Buffer[2]=Num%10;for(i=0;i<3;i++)        //刷新显示在数码管上{m=_crol_(m,1);P2=m;P0=DSY_CODE[DSY_Buffer[i]];DelayMS(10);}}}

4例子3:开关和继电器控制小灯亮灭

实现功能:按下K1灯点亮,再次按下时灯熄灭

本质:开关通断影响输入电压高低,从而决定输出电压高低,高电压继电器导通,低电压继电器断开。

4.1电路原理图

4.1.1电路组成及接线

名称

接线

AT89C51单片机

XTAL1/XTAL2—>连接晶振电路

RST—>连接复位电路

P0.0-P0.7—>排阻/74LS245双总线收发器

P1.0-P1.7—>拨码开关

P2.0-2.3—>四位数码管

复位电路

晶振电路

拨码开关电路

四位数码管

排阻

74LS245双总线收发器

4.2控制程序

4.2.1控制程序步骤

库文件和引脚定义

延时函数

主函数(将开关的状态与继电器的状态对应)

4.2.3源代码

//功能:按下K1灯点亮,再次按下时灯熄灭#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit K1=P1^0;sbit RELAY=P2^4;//延时void DelayMS(uint ms){uchar t;while(ms--)for(t=0;t<120;t++);}//主程序void main(){P1=0xff;RELAY=1;while(1){if(K1==0){while(K1==0);RELAY=~RELAY;DelayMS(20);}}}

  7 硬件工程师笔试面试相关文章链接(部分链接)

更多文章可前往主页观看

1、硬件工程师笔面试真题汇总(2025版本)_硬件工程师面试题-CSDN博客https://blog.csdn.net/XU157303764/article/details/140742900?spm=1011.2415.3001.5331硬件工程师笔试面试高频考点汇总——(2025版)_电容或者电感对锁存器的影响-CSDN博客https://blog.csdn.net/XU157303764/article/details/1488349782、硬件工程师笔试面试汇总(2025版本)_硬件工程师面试题-CSDN博客https://blog.csdn.net/XU157303764/article/details/1419048583、硬件工程师笔试面试学习汇总——器件篇目录(2025版本)_【【硬件工程师炼成之路】器件篇(更新中。。。)-CSDN博客https://blog.csdn.net/XU157303764/article/details/142316204

硬件工程师笔记——电子器件汇总大全-CSDN博客https://blog.csdn.net/XU157303764/article/details/147342935?spm=1011.2415.3001.5331Multisim14使用教程详尽版--(2025最新版)-CSDN博客https://blog.csdn.net/XU157303764/article/details/147197406?spm=1011.2415.3001.5331

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

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

相关文章

Q1 Top IF 18.7 | 基于泛基因组揭示植物NLR进化

文章DOI: 10.1016/j.chom.2025.07.011 标题&#xff1a;Pangenomic context reveals the extent of intraspecific plant NLR evolution 期刊&#xff1a;Cell Hose & Microbe (https://i-blog.csdnimg.cn/direct/0e31f86b94d348b0a1adb084ec4e49b7.png)(https://i-blog.cs…

技术干货|Prometheus PromQL查询语言之聚合操作内置函数

聚合操作 Prometheus还提供了下列内置的聚合操作符,这些操作符作用域瞬时向量。可以将瞬时表达式返回的样本数据进行聚合,形成一个新的时间序列。 sum (求和) min (最小值) max (最大值) avg (平均值) stddev (标准差) stdvar (标准差异) count (计数) count_values …

Redis 哨兵(Sentinel)全面解析

在2025年的数字化浪潮中&#xff0c;想象这样一个场景&#xff1a;凌晨3点&#xff0c;电商平台流量突然暴增&#xff0c;主Redis服务器因硬件故障突然宕机。几年前&#xff0c;这意味着紧急电话、慌乱的运维人员和不可避免的业务中断。而今天&#xff0c;用户甚至没有察觉任何…

【数学史冷知识】关于行列式的发展史

学习的途中会遇到一些有意思的东西&#xff0c;我想着做一个专栏《艾萨克纪行简报》&#xff0c;专门写这些知识发展历史。可以让您从繁忙的学习生活中放松&#xff0c;添些耀彩。行列式和微积分一样&#xff0c;都是两个人独立发现的。而且还都有莱布尼茨。1683 年&#xff0c…

【python】python进阶——生成器

目录 一、生成器介绍 1.1 生成器与迭代器的关系 1.2 生成器与return比较 二、创建生成器 方法1: 生成器函数 方法2: 生成器表达式 三、生成器的实际应用场景 3.1 处理大型文件 3.2 生成无限序列 3.3 数据管道处理 四、生成器的高级用法 4.1 使用send()方法传递值 …

【Pytorch】生成对抗网络实战

GAN框架基于两个模型的竞争&#xff0c;Generator生成器和Discriminator鉴别器。生成器生成假图像&#xff0c;鉴别器则尝试从假图像中识别真实的图像。作为这种竞争的结果&#xff0c;生成器将生成更好看的假图像&#xff0c;而鉴别器将更好地识别它们。 目录 创建数据集 定…

Java基础第7天总结(代码块、内部类、函数式编程)

代码块静态代码块&#xff1a;有static修饰&#xff0c;属于类&#xff0c;与类一起优先加载&#xff0c;自动执行一次实例代码块&#xff1a;无static修饰&#xff0c;属于对象&#xff0c;每次创建对象时&#xff0c;都会优先执行一次。package com.itheima.code;import java…

文献综述写作指南:从海量文献到逻辑闭环的实战模板

文献综述往往是学术写作的“第一关难题”&#xff1a;面对成百上千篇文献&#xff0c;如何避免“简单罗列”的陷阱&#xff0c;梳理出有逻辑、有洞见的论述体系&#xff1f;本文结合学术写作实践&#xff0c;总结出一套模块化的文献综述“实战模板”&#xff0c;通过结构化方法…

CuTe C++ 简介01,从示例开始

这里先仅仅关注 C 层的介绍&#xff0c;python DSL 以后再说。在 ubuntu 22.04 X64 中&#xff0c;RTX 50801. 环境搭建1.1 安装 cuda1.2 下载源码git clone https://github.com/NVIDIA/cutlass.git1.3 编译mkdir build/ cmake .. -DCUTLASS_NVCC_ARCHS"120" -DCMAK…

Python实现异步多线程Web服务器:从原理到实践

目录Python实现异步多线程Web服务器&#xff1a;从原理到实践引言第一章&#xff1a;Web服务器基础1.1 Web服务器的工作原理1.2 HTTP协议简介1.3 同步 vs 异步 vs 多线程第二章&#xff1a;Python异步编程基础2.1 异步I/O概念2.2 协程与async/await2.3 事件循环第三章&#xff…

Deep Think with Confidence:llm如何进行高效率COT推理优化

1. 引言:大模型的推理解码优化 大型语言模型(LLM)在处理数学、编码等复杂推理任务时,一种强大但“耗能巨大”的技术是self-consistency,也称并行思考(parallel thinking)。其核心思想是让模型对同一个问题生成多条不同的“思考路径”(reasoning traces),然后通过多数…

vscode克隆远程代码步骤

一、直接使用VsCode1.复制git的https链接代码2.在vscode中点击 代码管理-克隆仓库3.粘贴&#xff08;在git里面复制的https链接&#xff09;4.选择需要存储的文件位置5.确认6.代码克隆成功二、使用命令行克隆1.确定文件放置位置&#xff0c;右键2.复制git的https链接代码3.粘贴…

spi总线

一、介绍SPI总线&#xff08;Serial Peripheral Interface&#xff0c;串行外设接口&#xff09;是一种高速全双工同步串行通信总线&#xff0c;核心通过“主从架构同步时钟”实现设备间数据传输&#xff0c;因结构简单、速率高&#xff0c;广泛用于MCU与传感器、存储芯片、显示…

COLA:大型语言模型高效微调的革命性框架

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01; 1 COLA技术概述 COLA&#xff08;Chain of LoRA&#xff09;是一种创…

数据结构与算法:线段树(三):维护更多信息

前言 这次的题思维上倒不是很难&#xff0c;就是代码量比较大。 一、开关 洛谷的这种板子题写起来比cf顺多了&#xff08;&#xff09; #include <bits/stdc.h> using namespace std;typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll&…

【LeetCode_27】移除元素

刷爆LeetCode系列LeetCode27题&#xff1a;github地址前言题目描述题目思路分析代码实现算法代码优化LeetCode27题&#xff1a; github地址 有梦想的电信狗 前言 本文用C实现LeetCode 第27题 题目描述 题目链接&#xff1a;https://leetcode.cn/problems/remove-element/ …

C++11语言(三)

一、引言上期我们介绍了C11的大部分特性。C11的初始化列表、auto关键字、右值引用、万能引用、STL容器的的emplace函数。要补充的是右值引用是不能取地址的&#xff0c;我们程序员一定要遵守相关的语法。操作是未定义的很危险。二、 仿函数和函数指针我们先从仿函数的形…

性能优化三剑客:`memo`, `useCallback`, `useMemo` 详解

性能优化三剑客&#xff1a;memo, useCallback, useMemo 详解 作者&#xff1a;码力无边各位React性能调优师&#xff0c;欢迎来到《React奇妙之旅》的第十二站&#xff01;我是你们的伙伴码力无边。在之前的旅程中&#xff0c;我们已经掌握了如何构建功能丰富的组件&#xff0…

好用的电脑软件、工具推荐和记录

固态硬盘读写测试 AS SSD Benchmark https://gitee.com/qlexcel/common-resource-backup/blob/master/AS%20SSD%20Benchmark.exe 可以测试SSD的持续读写、4K随机读写等性能。也可以测试HDD的性能。 操作非常简单&#xff0c;点击Start(开始)即可测试。 体积小&#xff0c;免安…

Spring Task快速上手

一. 介绍Spring Task 是Spring框架提供的任务调度工具&#xff0c;可以按照约定的时间自动执行某个代码逻辑&#xff0c;无需依赖额外组件&#xff08;如 Quartz&#xff09;&#xff0c;配置简单、使用便捷&#xff0c;适合处理周期性执行的任务&#xff08;如定时备份数据、定…