MCU学习3--按键控制LED
来源:互联网 发布:淘宝买家真人秀 编辑:程序博客网 时间:2024/06/05 04:39
程序 :
/**
* 读IO, 用按钮控制点灯.
*/
#include <stdio.h>
#include <reg52.h>
// 10个LED
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
// 定义开关. 低电平有效.
sbit K1 = P3^2;
sbit
void main( void )
{
while( 1 )
{
if( !K1 ) // K1按下, 点亮LED
{
P10 = 0;
}
if( !
{
P10 = 1;
}
}
}
总结 :
1. 对于MCU来说, 所有的端口永远都提供高电平(低电平有效), 如果你想让某个端口提供低电平, 必须手工设定(仅仅是猜测).
2. 上面的K1, K2在开发板上是以按钮形式出现, 按下就是提供低电平, 弹起就是提供高电平
对于第2点,可以通过程序来考证 :
while( 1 )
{
// 当K1被按下, 此时P3^2提供低电平, 弹起后P3^2依然是低电平.
if( !K1 )
{
P10 = 0;
P11 = 1;
}
else
{
P10 = 1;
P11 = 0;
}
}
仿真的时候, 很明白的看到是P11点亮, P10熄灭. 说明执行的是else, 也就是K1一直处于电平状态.
当按下K1之后, P10点亮 P11熄灭, 说明K1提供了低电平, 按钮按下起了作用. 然后松手弹起K1, 看看到P10熄灭 P11点亮. 说明K1又恢复了高电平.
由此可见按钮是onPress时改变了管脚电平, onRelease的时候又恢复了.
作业 :
把程序改为: 按K1,P10灯亮,P11灯灭。按K2,P10灯灭,P11灯亮。
/**
* 读IO, 用按钮控制点灯.
*/
#include <stdio.h>
#include <reg52.h>
// 10个LED
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
// 定义开关
sbit K1 = P3^2;
sbit
void main( void )
{
while( 1 )
{
if( !K1 ) // K1按下, 点亮LED
{
P10 = 0;
P11 = 1;
}
if( !
{
P10 = 1;
P11 = 0;
}
}
}
- MCU学习3--按键控制LED
- MCU学习4--利用一个按键控制两个LED与防抖
- FPGA学习之按键控制led
- 按键控制led
- 按键控制led驱动
- 按键控制led驱动
- 按键控制led应用程序
- 按键控制LED
- ARM按键控制LED
- 按键控制led亮灭
- ok6410学习笔记(16.按键中断控制led驱动)
- STM32F407学习笔记——GPIO_按键控制LED亮灭
- 树莓派学习笔记-按键控制LED灯-WiringPi
- arduino学习系列——按键控制LED灯
- 按键控制显示LED亮度
- mini2440 按键控制LED 驱动
- 3.按键控制LED灯亮灭
- S3C2440 用按键控制LED
- html标签学习
- [从架构到设计]第二回:对象的旅行---对象和人,两个世界,一样情怀
- Fedora软件包管理器system-config-packages
- web服务器和应用服务器的区别
- 六月份学习规划
- MCU学习3--按键控制LED
- Linux下推荐应用程序列表【不全】
- DotLucene源码浅读: Lucene.Net.Analysis
- 公司现招募sharepoint开发人员
- CET6 作文热身2
- 服务器获得客户端时间的方法
- HSQLDB简介
- ASP 中健壮的页结构的异常处理
- JS操作Xml