单片机入门之常用指令(一)
1、先介绍最简单的 if()
if是检测指令,比如
if(a==1) b=0;
这个语句的意思是如果a等于1,那么b赋值0(注意括号内,为双等号)
又或者if(a!=1)b=0; “!=”这是不等于的意思,也就是a不等于1那么b赋值0

2、else,这个指令是跟在if后面的,不允许单独存在的
if可以不带else 但else不能前面没有if
就像“如果....否则....”
if(a==1)b=1; else b=0;
这个语句的意思是,如果a是1,那么b赋值1,如果a不是1,那么b赋值0
else后面,如果只是1条指令,那么就不用“{}”大括号
如果是多条指令,则需要大括号
也可以嵌套,例如:
if(....)
{
}
else if(...)
{
if(....)
{
}else ....
}
else ....

3、 循环指令有很多种
while(1); 则表示程序停在此处,不出去了,除非中断跳去执行中断函数
while(1)
{
这样则表示一直停在这个大括号内循环
}
while(i--)
{
这样则表示除非‘i’这个变量减到0,否则就一直循环
每次进入循环,‘i’减1
}
下图是一个典型的闪灯程序

4、 do
{
这个循环是先进入循环,再判断i是否为0
不管i是否为0,他都会先进入执行1次大括号内的语句
}while(i--);
for(i=10;i>1;i--)
{
这个循环是最常用的循环
先赋值‘i’,然后每次进入循环,他都会把‘i’减1
且每次都会判断‘1’,如果大于1,进入循环,如果小于1或等于1,则跳出
这个应该灵活应用,不应该只是我这里举例的这样
}如下图

5、switch()这个指令跟if指令类似,下图举例中说明

6、(逻辑与&&)按位与“&” 规则是必须都为‘1’ 否则为‘0’
比如1&1=1,1&0=0;0&1=0;
可以用来把某个位强置为0
比如1111 1111& 0111 1111=0111 1111
逻辑与也是同理,用在判断
比如if(1&&1)那肯定是成立呀
if(1&&0)那肯定是不成立,执行else 呀
7、(逻辑或||)按位或“|” 必须都为‘0’ 否则为‘1’
比如0|0=0,0|1=1,1|0=1
可以用来把某个位强置为1
比如0000 0000&1100 0000 = 1100 0000
逻辑或同理,用在判断
比如if(0||0)成立,执行后面语句
if(0||1)不成立,执行else语句
8、左移<< 右移>>
右移,最高位补0,最低位弃掉
左移,最低位补0,最高位弃掉
比如
11111111>>1=01111111
10101010>>1=01010101
00001111>>2=00000011
