程序 :
/**
* 读IO, 用按钮操控点灯.
*/
#include
#include
// 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 K2 = P3^5;
void main( void )
{
while( 1 )
{
if( !K1 )// K1按下, 点亮LED
{
P10 = 0;
}
if( !K2 )// K2按下, 平息LED
{
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
#include
// 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 K2 = P3^5;
void main( void )
{
while( 1 )
{
if( !K1 )// K1按下, 点亮LED
{
P10 = 0;
P11 = 1;
}
if( !K2 )// K2按下, 平息LED
{
P10 = 1;
P11 = 0;
}
}
}