用单片机I/0口做按键输入实验

2012-11-13 09:50:06来源: 互联网

典型单片机I/0口都是准双向口,既可以当输出口也可以当输入口。具体操作时,我们将数据写出I/0口就是将它当作输出口使用;如果在程序中直接调用当前I/0口的状态,给我们定义的变量赋值或用于逻辑判断、分支控制等操作,就是将它当作输入口使用。

  下图是使用P2.0口读取按键控制的电路。

  从下图中可见,在该电路中P2.0口是输入应用。当按键没有按下时+5V通过上拉电阻R1接到P2.0,这时P2.0口的电压是+5V,即逻辑“1”:如果按键被按下,P2.0通过按键接到电源地,这时P2.0口的电压是OV,即逻辑“0”。

  综上所述,不按键时P2.0的状态是“1”;按键时P2.0的状态是“0”。

  如果没有电阻R1,当按键接下时+5V电源会通过按键被短路到地,严重时会损坏电源,这是绝对不允许的。

  假设单片机同时连接上图和下图的电路,用P2.0做输入口,读取按键:用P3.4控制蜂鸣器。写一个程序,当按键按下时蜂鸣器鸣响,按键没有按下时蜂鸣器停止鸣响,程序如下:

  #include

  sbitBuzzer=P3^4;sbitKey=P2^0;//【注1】

  //主程序voiDMAin(void){for(;;){if(Key==0){//【注2】

  Buzzer=0;//按键被按下,蜂鸣器鸣响}

  else{Buzzer=1;//按键没有按下,蜂鸣器停止鸣响}

  }

  【注1】:将位变量Key定义为单片机P2.0口,以后对变量Key的操作就是对P2.0口的操作;

  【注2】:条件语句,直接用Key的状态(即P2.0口的状态】来控制程序的运行。如果按键被按下P2.0的状态为0,Key=0为真,程序执行Buzzer=0,这时蜂鸣器鸣响;如果按键没有按下,P2.0的状态为1,Key=0为假,程序执行Buzzer=1,蜂鸣器停止鸣响。

关键字:单片机  I  0口

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2012/1113/article_17642.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
单片机
I
0口

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved