一、进制
二进制:0和1 前缀0b 十六进制:四个二进制为一位,0~9加上A~F(或a~f) 前缀0x
二、C语言变量类型和范围
字符型、整型、长整型、浮点型。每一种又分为有符号/无符号。
前三种除了长度不一样外,都只能表达整数,无符号只能表示正整数。
表示小数必须用浮点型。
三、C语言基本运算符
+ - * / % ++ -- == != ……
区分:++a(先加后执行),a++(先执行后加)
eg: b=a++;a=1、b=0;
b=++a;a=1、b=1;
四、for循环语句
for(;判断语句;)
for(;;); 死循环
五、while语句
while(表达式),若表达式为真则执行语句
while(1); 死循环
六、Keil软件延时
精确延时:(1)定时器定时 (2)利用库函数 _nop_(); ,一个 NOP为一个机器周期
非精确延时:(1)for(i=0;i<100;i++) (2)i=100;while(i--);
七、流水灯程序
将例题程序进行修改实现从花样流水灯。
/*P52 点亮流水灯*/
#include<reg52.h>
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
void main()
{
unsigned int i=0; //定义循环变量用于软件延时
unsigned char flag,cnt=0;//定义计数变量cnt用于移位 flag用来判断左右移位
ENLED=0;
ADDR3=1;
ADDR2=1;
ADDR1=1;
ADDR0=0;
while(1)
{
/*左移位*/
while(flag==0&&cnt<8)
{
P0=~(0x01<<cnt);
for(i=0;i<20000;i++);
cnt++;
}
flag=1;
cnt=1;
/*右移位*/
while(flag==1&&cnt<8)
{
P0=~(0x80>>cnt);
for(i=0;i<20000;i++);
cnt++;
}
flag=0;
cnt=1;
}
}