求解一个有关继电器程序问题??
为什么程序中P2口的值不用重新赋值,就能够自动变化?主函数语句是什么意思?/*
*继电器控制照明设备*
*/
#include <reg51.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
#define K1_DOWN P1& 0x01 //K1按键定义
#define RELAY_SWITCH() P2 ^= 0x10 //继电器开关切换控制
#define LED_Light() P2 ^= 0x04
void delay(uint16 x)
{
uint16 i,j;
for(i = x; i > 0; i --)
for(j = 114; j > 0; j --);
}
int main()
{
while(1)
{
if(K1_DOWN)
{
while (K1_DOWN);
RELAY_SWITCH();
LED_Light();
delay(10);
}
}
} P2 ^= 0x10
与1异或就是取反,所以前后两次调用时,对端口取反,P2口已重新赋值 谢谢!{:smile:} 学习了.........
页:
[1]