51单片机的初了解
Posted zzz2333
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机的初了解相关的知识,希望对你有一定的参考价值。
C语言循环语句学习
1、while循环(条件初始化)
while(条件)
{
//循环体,若干条代码
//循环体中包含条件增量
}
2、for循环
for(循环初始化;循环条件;循环增量)
{
//循环体
}
for(i=100;i>0;i--)
{
for(j=100;j>0;j--)
{
;
}
}
3、do while循环
流水灯效果实现
流水灯本质:不同的亮的状态相互间隔一定时间。
0x80(10000000)
0x40(01000000)
0x20(00100000)
0x10(00010000)
0x08(00001000)
0x04(00000100)
0x02(00000010)
0x01(00000001)
延时时间越长流水灯流的越慢,越短就流水越快;
8个状态执行一次,完成后从头开始,即循环。
编程实现流水灯
while(1) //1永远为真,死循环
{
}
缺陷:功能实现,写的太笨
改进思路:通过变量运算来得到合适的端口输出值
1)定义变量unsigned char a,初值等于0x80(10000000)
2)8个状态,即a依次右移0-7位
C语言移位运算
C语言移位运算符,>>可以右移,<<可以左移。(无符号数移位,空出的位用0补)
例:12345678
>>1 01234567 <<1 23456780
>>2 00123456 <<2 34567800
void main(void)
{
unsigned char i=0;
unsigned char d=0x80;
while(1)
{
for(i=0;i<0;i++)
{
P0=(d>>i); //d在正在操作中一直不变
delay();
}
}
}
或
void main(void)
{
unsigned char i=0;
while(1)
{
unsigned char d=0x80;
for(i=0;i<8;i++)
{
d=d>>1; //在每次循环时d会变化
P0=d;
delay();
}
}
}
以上是关于51单片机的初了解的主要内容,如果未能解决你的问题,请参考以下文章