宏定义与逻辑运算学习笔记
宏定义
宏定义又称为宏代换、宏替换,简称“宏”。
格式:#define标识符 字符串
其中的标识符就是所谓的符号常量,也称为“宏名”。
掌握“宏”概念的关键是“换”。
即在对相关命令或语句的含义和功能作具体分析之前就要换
例:
#define PI 3.1415926
把程序中出现的PI全部换成3.1415926
实验例程,实验程序讲解
先包含头文件,然后进行宏定义:将标识符led_q1、led_qm、led_jg1、led_jg2分别等同于0x00、0xff、0x55、0xaa。然后一个延时函数,接下来一个main函数,while(1)无条件循环,可把while(1)里面的定义的标识符等于对应的16进制数。
编译烧录,最后观察到全亮-全灭-(D4-D7灭亮灭亮)-(亮灭亮灭)然后不停地循环。
宏定义在c语言编程中是一种用得比较多的用法,能够减轻工作量,能让程序更简单简洁。
逻辑运算
“与”运算、有0得0:1&1=1;1&0=0;0&0=0; 10110001&00101110=00100000
“或”运算、有1得1:1|1=1;1|0=1;0|0=0; 00100001|10000010=10100011
“非”运算、1的非得0,0的非得1:~1=0;~0=1; ~00100001=11011110
“异或”运算必须不同、否则没有1:1∧1=0;1∧0=1;0^0=0;11000011∧01000101=10000110
实验例程,实验程序
首先将开发板的4个按键对应单片机的四个管脚,然后main函数中定义了两个变量i和j,再执行while(1)循环当按下S3键的时候将i&j的值赋值给P1(0000.0001&0000.0010)
即0000.0000,D4-D7全亮。按下S4的时候将i&&j的值赋值给P1(逻辑与,只要i.j均不为0,则结果为真(1)即0000.0001)所以D4灭,D5-D6全亮。按下S5.S6分别是按位或和逻辑或,以此类推能得出结果。如果无按键按下就P1=0xff所有的等全灭。
所以综上所述比程序运行结果是。按下S3执行按位与D4-D7全亮,按下S4执行逻辑与D4灭D5-D6全灭,按下S5执行按位或D4.D5灭D6.D7亮,按下S6执行逻辑或D4灭D5-D7亮。无按键按下所有的灯全灭。
编译-烧录可看到预期结果。