【51单片机】开关状态检测
目录
【项目一】
题目
原理图
代码
【项目二】
题目
原理图
代码
【项目一】
题目
4个开关的状态反映在4个发光二级管上,开关闭合,对应的发光二极管点亮。
原理图
代码
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned intvoid delay(uint n)
{uchar i;uint j;for(j=0;j<n;j++)for(i=0;i<123;i++);
}void main (void)
{while(1){uchar temp;P1=0xff;//每次循环都将P1初始化,相当于设置刷新,实时关注开关的动态temp=P1&0xf0;temp=temp>>4;P1=temp;delay(500);}
}
代码分析
开关状态 | P1=0xff | temp=P1&0xf0 | temp=temp>>4 | 现象 |
开关S0闭合 | 1111 1111 |
XXX0 0000= XXX0 1111&1111 0000 |
0000 XXX0 | D1亮 |
开关S1闭合 | 1111 1111 |
XX0X 0000= XX0X 1111&1111 0000 |
0000 XX0X | D2亮 |
开关S2闭合 | 1111 1111 |
X0XX 0000= X0XX 1111&1111 0000 |
0000 X0XX | D3亮 |
开关S3闭合 | 1111 1111 |
0XXX 0000= 0XXX 1111&1111 0000 |
0000 0XXX | D4亮 |
【项目二】
题目
2个开关S0和S1分别接在单片机的2个引脚上,其高低电平共有4种组合,这4种组合分别点亮4个引脚控制的4个LED,即LED0~LED3。当S0、S1均闭合时,LED0亮,其余灭;S0打开、S1闭合时,LED1亮,其余灭;S0闭合、S1打开时,LED2亮,其余灭;S0、S1均打开时,LED3亮,其余灭。
原理图
代码
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned intvoid delay(uint n)
{uchar i;uint j;for(j=0;j<n;j++)for(i=0;i<123;i++);
}void main (void)
{do{char state;P1=0xff;//等价于刷新的功能state=P1;state=state&0x30;state=state>>4;switch (state){case 0: P1=0x08;delay(500);break;case 1: P1=0x04;delay(500);break;case 2: P1=0x02;delay(500);break;case 3: P1=0x01;delay(500);break;}}while(1);
}
代码分析
开关状态 | state=P1 | state=state&0x30 | state>>4 | case | 现象 |
S0断开 S1断开 |
1111 1111 | 0011 0000 | 0000 0011 | 3 | LED0亮 |
S0闭合 S1断开 |
1110 1111 | 0010 0000 | 0000 0010 | 2 | LED1亮 |
S0断开 S1闭合 |
1101 1111 | 0001 0000 | 0000 0001 | 1 | LED2亮 |
S0闭合 S1闭合 |
1100 1111 | 0000 0000 | 0000 0000 | 0 | LED3亮 |
【51单片机】开关状态检测相关推荐
- 基于51单片机甲醛浓度检测系统仿真设计(仿真+程序+原理图+报告+讲解)
文章目录 资料下载(可点击) 功能说明 仿真图 复位电路 晶振电路 程序 原理图: 设计报告: 器件清单: 基于51单片机甲醛浓度检测系统仿真设计(仿真+程序+原理图+报告+讲解) 原理图:Altiu ...
- 51单片机+oled+ds18b20检测并显示温度第三篇:配置温度检测ds18b20
51单片机+oled+ds18b20检测并显示温度第一篇:配置温度检测ds18b20 前提: DS18B20是一线总线(单总线)"接口的温度传感器.其引脚只有三个vcc,gnd和dq vcc ...
- matlab ds18b20 单片机,基于51单片机ds18b20温度检测————设计报告.doc
基于51单片机ds18b20温度检测----设计报告 课程名称: 微机原理课程设计 题 目: 温度检测课程设计 摘要 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为 ...
- 基于51单片机的温湿度检测及调节系统
具体实现功能 系统由STC89C52单片机+AT24c02芯片+LCD1602液晶显示屏+继电器模块+按键模块+报警模块构成. 具体实现功能: 1.LCD1602液晶显示,第一行显示当前的温度和湿度, ...
- 【Proteus仿真】51单片机过零检测触发控制光耦+可控硅调光电路
[Proteus仿真]51单片机过零检测触发控制光耦+可控硅调光电路 Proteus仿真截图 可以进行仿真,但是没有预期的效果. 电路搭建注意事项 整流桥输出负极端一定要接地,不然运行仿真会报错. 程 ...
- 基于51单片机的废气检测I2Cproteus仿真
目录 文章目录 前言 二.设计步骤 1.proteus设计 2.keil5代码编程设计 总结 前言 前段时间高中同学让我帮忙给她做一个数电课设,反正也没事做就随便做了做,现在总结一下,话不多说直接上效 ...
- 51单片机开关简单使用
51单片机开关简单使用 文章目录 51单片机开关简单使用 实验环境 仿真图 代码实现 成果展示 实验环境 软件: Keil5+Proteus7 元件(主要): AT89C51 * 1, RESPACK ...
- 基于51单片机有害气体浓度检测超限报警Proteus仿真
资料编号:157 下面是相关功能视频演示: 157-基于51单片机有害气体浓度检测超限报警Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为CPU,ADC0832作为AD转换 ...
- 基于51单片机的温度检测报警系统
目录 具体实现功能 设计背景 硬件设计 软件设计 原理图 程序 仿真实现 全部资料 具体实现功能 系统由STC89C51单片机+液晶1602显示+DS18B20温度传感器+按键模块+报警模块构成. 具 ...
- 实物设计|基于51单片机的温湿度检测报警系统
目录 具体实现功能: 设计介绍 51单片机简介 设计方案 资料内容 原理图和PCB(AD19) 仿真实现(protues8.7) 程序(Keil5) 全部资料(压缩文件) 具体实现功能: 由STC89 ...
最新文章
- 13. 微型计算机中,传送cpu发出的读/写指令的总线是,我的微机原理题库
- php生成表格和读取,phpexcelreader读取excel自动生成表跟字段
- eclipse安装Log4E插件以及简单使用
- 是‘登陆’还是‘登录’
- html页面获取服务器时间,[html]定时获取服务器时间和本地时间
- Android开发之RecyclerView滑动到底部的监听方法
- c语言图像函数怎么用,请教 怎么才能用C输出一个函数的图像?大侠 帮帮忙啊...
- Hexo博客的备份与恢复
- 16名本科生领衔的芯片公司 芯微电子要上市了?
- 【bzoj3530】[Sdoi2014]数数 AC自动机+数位dp
- linux下强行umount卸载设备
- 匿名函数php作用,深入理解PHP中的匿名函数
- ajax跨域原理以及jsonp使用
- 致远免费动态域名解析服务软件[永久免费]
- Firefox,火狐about:config设置详解
- 读曾仕强《管理的方与圆》笔记三
- 6个usb口服务器无响应,USB插口无反应怎么办?USB接口不能用解决办法
- 一起来学k8s 38. 二进制k8s集群安装EFK
- 给大家分享一款由PHP+MYSQL搭建的外卖小程序源码
- IIC详解以及SH367309-TWI示例应用
热门文章
- satisfactory 幸福工厂 118201
- 《J2ME手机高级编程》实机:诺基亚 5310(XpressMusic)
- Item 24: Distinguish universal references from rvalue references
- 使用 HTMLVideoElement 进行 JavaScript 操作:让你的网页视频更加生动、有趣!
- BUUCTF-MD5强弱比较-MD5()的万能密码-tornado框架注入-中文电码
- 1.4语言媒介的选用2
- 基于JavaSwing开发开发的打字软件(疯狂打字通)+论文 课程设计 大作业源码
- Machine Learning 梳理总结 L0~L6
- c语言strncpy函数定义,C 库函数 - strncpy()函数
- 如何讨论制定公司经管方案