实验内容

此次实验为利用单片机读取开关的状态从而控制LED的亮灭。

实验环境

  • 仿真软件
    Protue 8.9 sp2
  • IDE
    Keil5 C51
  • 单片机
    AT89C51

Protues仿真图

所用器件

  • VCC
  • VDD
  • LED红灯
  • 开关
  • 排阻(后面用到)

仿真图介绍

LED1的一端接VCC,一端接P0.0
开关的一端接VDD,一端接P0.1

Keil工程

项目结构

代码

#include <REG52.H>//用P0.0控制LED1
sbit led1 = P0 ^ 0;
//用P0.1获取开关状态
sbit sw= P0 ^ 1;int main(void)
{//关闭LED1led1=1;//将开关的控制口P0.1拉高以备输入sw=1;while (1){//获得开关的状态并控制LED1的相应亮灭led1=sw;}
}

结果

从上图可以看出并没有达到我们想要的效果,这是为什么呢?请看下面

问题的提出

问题描述

我们程序写的并没有错误,而仿真接法也无误,可是为什么LED1是一直亮着的呢?

问题解决

于是我百度了一下AT89C51这款单片机,发现他是这样描述P0 ~ P4 IO的

P0口

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0
口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

是的,P0口为一个8位漏级开路双向I/O口

什么又是漏级开路双向I/O口?
漏极开路型指的是漏极没有接上拉电阻也没与电源正级相连,我们还是看一个通俗易懂的图吧,如下所示

一看发现这样输入不始终为0了,即接在VDD上,于是我们手动给它加上不就行了呗

更新后的仿真电路

将P0接一个上拉电阻

最终结果

51 单片机 (1) I/O口 按键控制LED之P0口排坑篇相关推荐

  1. 51单片机(三)独立按键控制LED

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分:建议先学习51单片机,其是STM32等高级单片机的基础:这样再学习STM32时才能融会贯通. ☀️ 专栏适 ...

  2. 51单片机入门教程_独立按键控制系列

    一.老规矩 先上代码 #include <REGX52.H>void main() {while(1){if(P3_1==0 || P3_0==0) //如果K1按键或K2按键按下{P2_ ...

  3. 基于51单片机的秒表,单独按键控制启动,暂停,复位。

    实验功能 1.程序运行开始时显示"00",随后显示数值逐渐增大.待计数到59后,自动从"00"开始. 2.第一次按下按键计数启动,第二次按下按键计数暂停,如此循 ...

  4. 51单片机+ESP8266实现局域网内WiFi控制LED

    写在前面   这篇博客是我初探物联网,东西简陋代码简陋,让各位看官见笑了哈.话不多说直接进入正题.   首先大致介绍下ESP8266,我用的是ESP-01这款,安信可的,具体参数大家可以直接上安信可官 ...

  5. 用51单片机实现按键控制LED灯亮灭

    用51单片机实现按键控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k1=P3^1;//位定义按键 void de ...

  6. 51单片机(二十五)—— 独立按键控制LED

    在51单片机的前面的文章中,我们主要讲述了单片机IO口的输出功能的应用,如LED控制.数码管控制等.这篇文章我们来讲解如何用单片机的IO口读取按键的状态,并根据按键的状态来控制LED.关于51单片机按 ...

  7. 51单片机-独立按键控制LED

    1.   51单片机独立按键的位置: 独立按键的定义:独立按键相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开: 在整个51开发板的左下 ...

  8. 51单片机入门学习------独立按键控制LED亮灭

    一.独立按键 1.特点:同侧导通,异侧断开 2.独立按键的I/O口  单片机上电后,所有I/O口默认都是高电平.没有按开关时都是高电平,按下后变成低电平. 寄存器通过检测高低电平检测按键是否被按下 1 ...

  9. 51单片机 4个独立按键控制LED灯 (protues仿真)(C语言版)

    51单片机 4个独立按键控制LED灯 仿真操作及代码展示 _ (protues仿真)_(C语言版) 一.思路及相关问题 1.逻辑思路: 当按下key1时 led1亮起来 因为按下去具有瞬时性不用whi ...

最新文章

  1. 面试官:一千万数据,怎么快速查询?
  2. oracle认证都需要考哪几个方面,Oracle OCP认证要通过哪些考试
  3. vue element form 默认校验
  4. 《LaTeX写作》——LaTeX编写环境的安装笔记
  5. sparkTransformation算子
  6. 动态规划的关键 —— 子问题 公式化
  7. python语言入门-Python语言入门.pdf
  8. 解决zipfile压缩的文件路径太深,直接调用即可
  9. 自制电吉他效果器 DIY PCB(三)原理图与封装 上
  10. Altium Designer(AD)软件绘图一般步骤
  11. 按键精灵手机助手错误:at tempt to compare nu11 with number
  12. Java使用ffmpeg将视频转为Mp4格式
  13. 【213】《原则》Principles摘抄+读后感一--做个有原则的人
  14. 使用python调整图片大小
  15. Android 仿朋友圈,文字图片视频多条目,自动播放暂停
  16. yolov2模型导入keras方法及问题
  17. 服务器系统报错sam,sam 云服务器
  18. Thinkpad自动安装驱动
  19. Android平板开发
  20. Nacos2.2使用PostgreSQL数据源插件存储数据手把手教程

热门文章

  1. 中国鲜花电商行业及用户研究报告
  2. 如何免费将PDF转换为Excel格式
  3. java操作ffmpeg为视频添加背景音乐
  4. 创新奇智公布2021年财报:近三年亏损超4亿元,徐辉对不住投资人
  5. 日历运用模式嵌套 布局 定位
  6. vscode please install clang or check configuration 解决办法
  7. linux关闭ipv6显示以及开启ipv4地址
  8. 2021-10-22 ACML概念与应用
  9. 2.7 实现强大的单元格左右滑动效果并添加功能按钮 [iOS开发中的神兵利器]
  10. 【网络】IP地址和MAC地址