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

【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.dtcms.com/a/359906.html

相关文章:

  • Java试题-选择题(26)
  • zkML-JOLT——更快的ZK隐私机器学习:Sumcheck +Lookup
  • 【iOS】MVC架构
  • OpenCL C 内核(Kernel)
  • 在实践中学Java(中)面向对象
  • Elasticsearch vs Solr vs OpenSearch:搜索引擎方案对比与索引设计最佳实践
  • [光学原理与应用-353]:ZEMAX - 设置 - 可视化工具:2D视图、3D视图、实体模型三者的区别,以及如何设置光线的数量
  • 设计模式概述:为什么、是什么与如何应用
  • Ethers.js vs Wagmi 的差异
  • 如何利用AI IDE快速构建一个简易留言板系统
  • Playwright Python 教程:实战篇
  • 外贸服装跟单软件怎么选才高效?
  • C++ 迭代器的深度解析【C++每日一学】
  • 从零到一:使用anisble自动化搭建kubernetes集群
  • Openstack Eproxy 2025.1 安装指南
  • isat将标签转化为labelme格式后,labelme打不开的解决方案
  • IO_hw_8.29
  • TRELLIS:从多张图片生成3D模型
  • 【ACP】2025-最新-疑难题解析- 练习一汇总
  • Go学习1:常量、变量的命名
  • 一个投骰子赌大小的游戏
  • 内核等待队列以及用户态的类似机制
  • Chrome DevTools Performance 是优化前端性能的瑞士军刀
  • CD73.【C++ Dev】map和set练习题1(有效的括号、复杂链表的复制)
  • 嵌入式C学习笔记之编码规范
  • Nginx实现P2P视频通话
  • 现代C++特性 并发编程:线程管理库 <thread>(C++11)
  • 狂神说--Nginx--通俗易懂
  • 【秋招笔试】2025.08.31饿了么秋招笔试题
  • Linux基本工具(yum、vim、gcc、Makefile、git、gdb)