任意时刻只有一个锁存通道会打开,附原理图见结尾
eg1:
//=================================================================
#include <STC15F2K60S2.H>
//=================================================================
//@role :锁存开关
//@detail :4——LED、5——蜂鸣器继电器、6——数码管段选、7——数码管位选
void switch_138(unsigned char location)//锁存器通道选择函数
{
switch(location)
{
case 0:{P2&=0X1F;}break;//无
case 4:{P2&=0X1F;P2|=0X80;}break;//LED*8通道
case 5:{P2&=0X1F;P2|=0XA0;}break;//蜂鸣器继电器通道
case 6:{P2&=0X1F;P2|=0XC0;}break;//数码管位选端通道
case 7:{P2&=0X1F;P2|=0XE0;}break;//数码管段选端通道
}
}
//=================================================================
void main()
{
switch_138(5);P0 &= 0XAF;//上电默认关闭蜂鸣器和继电器
while(1);
}
//=================================================================
eg2:
//=================================================================
#include <STC15F2K60S2.H>
//=================================================================
//@role :锁存开关
//@detail :4——LED、5——蜂鸣器继电器、6——数码管段选、7——数码管位选
void switch_138(unsigned char location)
{
P27 = location/2/2%2;
P26 = location/2%2;
P25 = location%2;
}
//=================================================================
void main()
{
switch_138(5);P0 &= 0XAF;switch_138(0);//上电默认关闭蜂鸣器和继电器
while(1);
}
//=================================================================