4.1.按键--按下按键使LED点亮
2016-06-01 16:17
288 查看
实验目的:按键–按下按键使LED点亮
预备知识:(1)按键原理图
(2)上拉电阻。
从独立按键的原理图可以看出,每一个按键的一极接在IO引脚地上,一极接在GND上。当按键被按下的时候,按键两极接通,相应的按键的IO引脚变成0(低电压),其实按键还会接一个上拉电阻,当按键弹起的状态下,上拉电阻拉高按键的点评,也就是说,按键弹起的时候,相应的按键对应的IO引脚是高电平。我么可以通过每个按键对应的IO引脚的电平高低来判断按键是否被按下。
(3)轮询式、中断式。轮询式:CPU每隔一段时间就去读按键对应的IO引脚的电平。中断后面再讲。
(4)独立按键可以同时按下多个按键,而矩阵按键同一时间只能按下一个按键。
实验过程:
(1)分析原理图对应接线按键和LED灯
(2)led1是led的正极
实验代码:
#include<reg51.h> sbit led1 = P0^0; //定义位变量 一个led sbit key1 = P1^0; //定义位变量一个按键 void main(void) { while(1) { if(key1 == 1) //按键处于弹起状态时,上拉电阻使该IO引脚为高电平 { //按键弹起状态 led1 = 0; // 熄灭led } else { //按键被按下 led1 = 1; // 点亮led } } }
/********************************************************************/ 上面是只有一个按键对用一个led,现在多写几个看看好不好使 /********************************************************************/ #include<reg51.h> sbit led1 = P0^0; sbit led2 = P0^1; sbit led8 = P0^7; sbit key1 = P1^0; sbit key2 = P1^1; sbit key8 = P1^7; void main(void) { while(1) { if(key1 == 1) //按键处于弹起状态时,上拉电阻使该IO引脚为高电平 { //按键弹起状态 led1 = 0; // 熄灭led } else { //按键被按下 led1 = 1; // 点亮led } if(key2 == 1) { led2 = 0; } else { led2 = 1; } if(key8 == 1) { led8 == 0; } else { led8 == 1; } } }
相关文章推荐
- 《图解TCP/IP》读书笔记(5)
- ie下不打开控制台js无法执行
- 初识java.util.concurrent.CountDownLatch
- 欢迎使用CSDN-markdown编辑器
- 数据结构_P10
- 12 打印1到最大的N位数(递归和非递归解法)
- Swift开篇009->方法
- 删除字符串中的指定字符(23)
- 在jdbc中使用properites文件进行使用
- Oracle数据库DOC命令导入导出(2014-3-10记)
- 通过http流发送post请求
- 练习2.21 2.23
- 88----oracle大对象,boolean,date的处理
- 1025. 反转链表 (25)
- 【54】Java反射机制剖析
- list接口
- 解决 .gitignore无效,不能过滤某些文件
- Linux信号说明列表
- 【54】Java反射机制剖析
- 【54】Java反射机制剖析