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

典型单片机的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,蜂鸣器停止鸣响。

小米6 Plus渲染图曝光:背部完爆小米5 美翻了!
生物电势模拟前端MAX30004
利用国产纯硅可编程振荡器可增强FPGA的应用优势
华为平板M5青春版体验 平板融合AI智能终端本应如此
传蔚来汽车将进一步裁员,比例扩大至20%~30%
用单片机I/0口做按键输入实验
英特尔开发SDI II知识产权(IP)核支持多种SDI变体和数据速率
中科院杨裕生院士:靠补贴发展电动汽车是一剂毒药
亮相BTF 2023,康耐视机器视觉赋能动力电池制造
材料与工艺突破在望,可弯曲AMOLED量产在即?
DAC如何达到32位分辨率
黑客不停搞事勒索,比特币勒索病毒怕怕怕!或许它能帮你挽回损失
直接驱动继电器和电磁阀电路设计及原理分析
智能手表糖尿病侦测准确度率达85%,未来或将更高
Nexperia正式启动全新达拉斯设计中心
使用RealSense D455的空间识别操作myCobot
苹果新款Macbook Pro,Touch Bar取代了原有的功能键
中国仪器仪表产业发展现状分析
电池片现阶段性短缺 光伏辅料盈利或将改善
三星GalaxyNote10有哪些值得期待的地方