在LED流水灯和LED闪烁中,学会了新的定义方法
- typedef unsigned int u16 宏定义,简化了定义变量书写,程序可以更好修改
- #define A P0(端口)例子:#define PI 3.14
这其中#define作用只是单纯替换,不承担计算职能,算是预处理
这也让我产生假设:P0可以为参数,如果A代表设置的某一功能的参数变量(例如速度变量),P0是否可以为一函数,然后改变函数参数即可改变速度变量,不知是否可行,下次找机会验证一下。 - 循环左右移 crol(a,b)左和_cror_(a.b)右,其中a表示需要移动的值,b为移动的位数
- delay(int i)延时函数,其实可以算垃圾函数吧,无聊消耗时间,有更加精确的定时后期会学到。
流水灯代码
`#include"reg52.h"
#include"intrins.h"
typedef unsigned int u16;
#define led P2
//sbit led=P2^0;
void delay(u16 i)
{
while(i–);
}
void main()
{
while(1)
{
u16 j=0;
led=0xfe;
delay(50000);
for(j;j<7;j++){
led=crol(0xfe,1);
delay(50000);
}
}
}`
闪烁其实就是加个delay()函数,代码就不贴了