目录

【项目一】

题目

原理图

代码

【项目二】

题目

原理图

代码


【项目一】

题目

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单片机】开关状态检测相关推荐

  1. 基于51单片机甲醛浓度检测系统仿真设计(仿真+程序+原理图+报告+讲解)

    文章目录 资料下载(可点击) 功能说明 仿真图 复位电路 晶振电路 程序 原理图: 设计报告: 器件清单: 基于51单片机甲醛浓度检测系统仿真设计(仿真+程序+原理图+报告+讲解) 原理图:Altiu ...

  2. 51单片机+oled+ds18b20检测并显示温度第三篇:配置温度检测ds18b20

    51单片机+oled+ds18b20检测并显示温度第一篇:配置温度检测ds18b20 前提: DS18B20是一线总线(单总线)"接口的温度传感器.其引脚只有三个vcc,gnd和dq vcc ...

  3. matlab ds18b20 单片机,基于51单片机ds18b20温度检测————设计报告.doc

    基于51单片机ds18b20温度检测----设计报告 课程名称: 微机原理课程设计 题 目: 温度检测课程设计 摘要 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为 ...

  4. 基于51单片机的温湿度检测及调节系统

    具体实现功能 系统由STC89C52单片机+AT24c02芯片+LCD1602液晶显示屏+继电器模块+按键模块+报警模块构成. 具体实现功能: 1.LCD1602液晶显示,第一行显示当前的温度和湿度, ...

  5. 【Proteus仿真】51单片机过零检测触发控制光耦+可控硅调光电路

    [Proteus仿真]51单片机过零检测触发控制光耦+可控硅调光电路 Proteus仿真截图 可以进行仿真,但是没有预期的效果. 电路搭建注意事项 整流桥输出负极端一定要接地,不然运行仿真会报错. 程 ...

  6. 基于51单片机的废气检测I2Cproteus仿真

    目录 文章目录 前言 二.设计步骤 1.proteus设计 2.keil5代码编程设计 总结 前言 前段时间高中同学让我帮忙给她做一个数电课设,反正也没事做就随便做了做,现在总结一下,话不多说直接上效 ...

  7. 51单片机开关简单使用

    51单片机开关简单使用 文章目录 51单片机开关简单使用 实验环境 仿真图 代码实现 成果展示 实验环境 软件: Keil5+Proteus7 元件(主要): AT89C51 * 1, RESPACK ...

  8. 基于51单片机有害气体浓度检测超限报警Proteus仿真

    资料编号:157  下面是相关功能视频演示: 157-基于51单片机有害气体浓度检测超限报警Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为CPU,ADC0832作为AD转换 ...

  9. 基于51单片机的温度检测报警系统

    目录 具体实现功能 设计背景 硬件设计 软件设计 原理图 程序 仿真实现 全部资料 具体实现功能 系统由STC89C51单片机+液晶1602显示+DS18B20温度传感器+按键模块+报警模块构成. 具 ...

  10. 实物设计|基于51单片机的温湿度检测报警系统

    目录 具体实现功能: 设计介绍 51单片机简介 设计方案 资料内容 原理图和PCB(AD19) 仿真实现(protues8.7) 程序(Keil5) 全部资料(压缩文件) 具体实现功能: 由STC89 ...

最新文章

  1. 13. 微型计算机中,传送cpu发出的读/写指令的总线是,我的微机原理题库
  2. php生成表格和读取,phpexcelreader读取excel自动生成表跟字段
  3. eclipse安装Log4E插件以及简单使用
  4. 是‘登陆’还是‘登录’
  5. html页面获取服务器时间,[html]定时获取服务器时间和本地时间
  6. Android开发之RecyclerView滑动到底部的监听方法
  7. c语言图像函数怎么用,请教 怎么才能用C输出一个函数的图像?大侠 帮帮忙啊...
  8. Hexo博客的备份与恢复
  9. 16名本科生领衔的芯片公司 芯微电子要上市了?
  10. 【bzoj3530】[Sdoi2014]数数 AC自动机+数位dp
  11. linux下强行umount卸载设备
  12. 匿名函数php作用,深入理解PHP中的匿名函数
  13. ajax跨域原理以及jsonp使用
  14. 致远免费动态域名解析服务软件[永久免费]
  15. Firefox,火狐about:config设置详解
  16. 读曾仕强《管理的方与圆》笔记三
  17. 6个usb口服务器无响应,USB插口无反应怎么办?USB接口不能用解决办法
  18. 一起来学k8s 38. 二进制k8s集群安装EFK
  19. 给大家分享一款由PHP+MYSQL搭建的外卖小程序源码
  20. IIC详解以及SH367309-TWI示例应用

热门文章

  1. satisfactory 幸福工厂 118201
  2. 《J2ME手机高级编程》实机:诺基亚 5310(XpressMusic)
  3. Item 24: Distinguish universal references from rvalue references
  4. 使用 HTMLVideoElement 进行 JavaScript 操作:让你的网页视频更加生动、有趣!
  5. BUUCTF-MD5强弱比较-MD5()的万能密码-tornado框架注入-中文电码
  6. 1.4语言媒介的选用2
  7. 基于JavaSwing开发开发的打字软件(疯狂打字通)+论文 课程设计 大作业源码
  8. Machine Learning 梳理总结 L0~L6
  9. c语言strncpy函数定义,C 库函数 - strncpy()函数
  10. 如何讨论制定公司经管方案