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

【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.xdnf.cn/news/19489.html

相关文章:

  • 第3章 乱码的前世今生-字符集和比较规则
  • 常见线程池的创建方式及应用场景
  • 将基于 Spring Boot 3.0.0 的 JavaWeb 应用部署到腾讯云并配置域名
  • Iterative loop of ML development|机器学习的迭代发展
  • C#基础(②音乐播发器MCI(Media Control Interface))
  • MySQL 常用语法
  • PortSwigger靶场之Stored XSS into HTML context with nothing encoded通关秘籍
  • Spring Boot 3.x 微服务架构实战指南
  • k8s中 discovery-token和token 的区别
  • Openstack Eproxy 2025.1 安装指南
  • 基于OpenCv做照片分析应用一(Java)
  • 学习记录(二十二)--Overleaf中生成的PDF左上角1.5em问题
  • 【AI编程工具】使用Cursor快速搭建一套小型项目管理系统
  • Elasticsearch vs Solr vs OpenSearch:搜索引擎方案对比与索引设计最佳实践
  • 微服务的编程测评系统18-判题功能-Rabbitmq-用户拉黑
  • 7.2elementplus的表单布局与模式
  • 从零到一:使用anisble自动化搭建kubernetes集群
  • 代码随想录算法训练营五十三天|图论part11
  • 物理气相沉积(PVD)技术及应用现状和发展趋势
  • 【线性代数基础 | 那忘算9】基尔霍夫(拉普拉斯)矩阵 矩阵—树定理证明 [详细推导]
  • unity3d 中 R3 实际使用 安装方法
  • 7.3 el-menu
  • 螺旋曲面交线投影切线角度计算与分析
  • 深度学习数据加载实战:从 PyTorch Dataset 到食品图像分类全流程解析
  • React前端开发_Day11
  • 响应式编程框架Reactor【7】
  • Spring —— 数据源配置和注解开发
  • Uniapp 项目创建与目录结构解析
  • 网站漏洞早发现:cpolar+Web-Check安全扫描组合解决方案
  • Elasticsearch面试精讲 Day 3:分片与副本策略详解