单片机C语言中判断引脚是否有输入的语句是什么?
TubeChip4042011/12/16机械与工具 IP:河北
就是这个电路,当开关按下时,单片机P1.2上的灯就会亮,好像是用IF,但不太会 未命名.bmp
来自:仪器与装备 / 机械与工具
19
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
ehco
13年1个月前 IP:未同步
344916
电路有误,一般IO口接上拉电阻到VCC,开关接地
按下开关后IO变成0电平
那么可以这样写
sbit key=P1^0;
sbit LED=P1^1;
void main(void)
{
    while(1)
    {
     key=1;//先为IO赋值高电平
     if(!key)//读取IO状态,判定是否按下,按下为0电平
        LED=1;
     esle
        LED=0;
     }
}
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
血狼
13年1个月前 IP:未同步
344919
首先在程序之前对你开关的引脚尽享sbit位声明:sbit P10=P1^0(假设1^0是你的开关)
然后在你需要的时候写if语句:
if(P10==0)
  {
   P1^2=0;(这里,我默认你发光二级管为低电平有效,因为我不知道你电路是怎么接的。)
  }
需要注意的是,51单片机初始状态默认为高电平。但是有时候为了保险,会在刚进入主函数的时候加一句复位语句,确保是在高电平工作状态下。
另外,一定要先写位声明,再用你的声明的名字写在if语句里。这样if才会进行判断。
注意引脚定义的大小写问题。
+50
科创币
zhaokenb
2011-12-17
热心助人
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
myleshuzx
12年11个月前 IP:未同步
362904
按键在实际硬件中还要注意防抖,可以写一个去抖程序:
sbit key=P1^0
sbit led=P1^1
void main()
{
if(key)
   {delay(50);//加上适当的延时函数
     if(key)  //再次检查按键是否按下
      {led=1;
       while(key);//按下不放时候进入死循环
      }
   }
}
+26
科创币
血狼
2012-02-06
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
tiankong2233
12年11个月前 IP:未同步
369948
实际电路中,按键要加上拉电阻或下拉电阻,并接104电容消除高频抖动。发光二极管要串电阻。
+1
科创币
wenrui
2012-10-28
按键去抖动可以用软件去抖
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
血狼
12年11个月前 IP:未同步
369954
回 4楼(tiankong2233) 的帖子
可以程序去逗的哦~~不过能自己说说你的设计吗?我还真没听说过你的这个电路。谢谢啦~~~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
乖乖乖
12年11个月前 IP:未同步
369981
引用第1楼ehco于2011-12-16 20:42发表的  :
电路有误,一般IO口接上拉电阻到VCC,开关接地
按下开关后IO变成0电平
那么可以这样写
sbit key=P1^0;
sbit LED=P1^1;
.......




输出为嘛要上拉,不明白
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
903441710
12年6个月前 IP:未同步
418995
亲 AVR中没有 Sbit
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
tzmark2009
12年5个月前 IP:未同步
443349
悄悄地问一句,现在问问题不会被骂了吗
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
pl_014
12年5个月前 IP:未同步
443353
用的是啥编译器?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
我说要有光
12年5个月前 IP:未同步
443578
D1和P1.2之间要接一条线   过一个电阻连VCC   不过电阻应该用多少欧的我忘记了。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ghia
12年5个月前 IP:未同步
443671
51的P1口是准双向口,实际就是个OD门,内置上拉电阻。高电平输出就是靠这个上拉电阻实现的,最多只能输出几百微安的电流,因此高电平驱动不了发光管。下拉是由FET实现的,电流能力较强,所以点LED要用口线的低电平点。置于输入态的话,上拉电阻还是在起作用,可以直接接按键到地。要把电路先改合理。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ghia
12年5个月前 IP:未同步
443672
晕,原来是挖坟贴。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
最高主机泡泡
12年5个月前 IP:未同步
443729
看看这个,就都明白了,我就是看的这个
XXXXXXXXXXXXXXXXXXXX/playlist_show/id_XXXXXXXXXXml
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
路人乙
12年3个月前 IP:未同步
460120
int 按键检测函数(void)
{
     if(某引脚输入低电平)
    {
       延迟消陡;

        if(某引脚输入低电平)//在判断一次
        {
             while(低电平);//等待按键结束
             return(1);
        }
        else
              return(0);    
    }
    else
            return(0);
}
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
wubingqp
12年2个月前 IP:未同步
465030
来个不要延时的,也没有用while,独立键盘一直用这种。

#include <reg52.h>
sbit K2=P1^1;
bit  K20=0;
if(K2==0)
    {
        if(K20==0)
        {
            fen++;
            K20=1;
            if(fen==60)
            {
                fen=0;
            }
        }
    }
    else
    {
        K20=0;
    }
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
帆帆
10年0个月前 IP:北京
735677
51的单片机除了p0口  其余的默认就是高电平,内部有上拉电阻,开关应该接地, 判断是否有输入直接用if就可以, if(p0^0!=1)
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷仙
10年0个月前 IP:湖北
735691
引用 乖乖乖:
输出为嘛要上拉,不明白
像MCU,FPGA,CPLD这些其实在工作时电平时不稳定,我亲测过FPGA的引脚悬空时的情况,不加上拉或下拉电平时未知的,实际用得过程中就会发现很坑爹,当时我搞飞思卡尔时用MK60系列MCU时一队友为了省事,把判断起跑线的传感器的端口的上拉电阻去了,结果差点被坑死了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
研制
10年0个月前 IP:辽宁
737433
引用 903441710:
亲 AVR中没有 Sbit
他这个是51的啊。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
TubeChip404
进士 学者 机友 笔友
文章
61
回复
228
学术分
1
2010/01/15注册,2个月0天前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}