本文介绍用74HC165读8个按键状况
//程序称号: 用74HC165读8个按键状况
//晶振: 11.0592MHz;
//MCU类型: STC89C52RC;
//电路板类型: EBV-MV(51试验板);
//————————————————————————–
//————————————————————————–
//硬件衔接:
//EBVn-[VCC] -> MVn-[–VCC–]
//EBVn-[GND] -> MVn-[//GND//]
//MVn-{EX3}-[Y0] -> MVn-{EX2}-[L1]
//MVn-{EX3}-[Y1] -> MVn-{EX2}-[L2]
//MVn-{EX3}-[Y2] -> MVn-{EX2}-[L3]
//MVn-{EX3}-[Y3] -> MVn-{EX2}-[L4]
//MVn-{EX3}-[Y4] -> MVn-{EX2}-[L5]
//MVn-{EX3}-[Y5] -> MVn-{EX2}-[L6]
//MVn-{EX3}-[Y6] -> MVn-{EX2}-[L7]
//MVn-{EX3}-[Y7] -> MVn-{EX2}-[L8]
// -> MVn-{EX2}-(VCC)
// -> MVn-{EX3}-(VCC)
//EBVn-[P10] -> MVn-{EX3}-[A]
//EBVn-[P11] -> MVn-{EX3}-[B]
//EBVn-[P12] -> MVn-{EX3}-[C]
//EBVn-[P13] -> MVn-{EX3}-[G1]
//————————————————————————–
//————————————————————————–
//试验成果:
//操控74HC138的[A,B,C,G1]端口,使[Y0,Y1..Y7]输出预期的值,LED完成了流水灯显现
//————————————————————————–
//——————————————————
//头文件;
#include
#define HC165_nPL P3_5
#define HC165_CK P3_6
#define HC165_OUT P3_7
//——————————————————
void delay(void)
{
unsigned char i,j;
for(i = 250;i > 0;i–)
for(j = 200;j > 0;j–);
}
unsigned char HC165(void)
{
unsigned char i;
unsigned char Temp;
HC165_CK = 1;
HC165_nPL = 0; //HC165读按键
HC165_nPL = 1; //暂停HC165读按键
Temp = 0;
if(HC165_OUT == 1) Temp |= 0x01;
for(i = 0;i 7;i++)
{
HC165_CK = 0;
HC165_CK = 1;
Temp = 1;
if(HC165_OUT == 1)
{
Temp |= 0x01;
}
}
HC165_CK = 0;
return(Temp);
}
//——————————————————
//程序进口;
void main(void)
{
while(1)
{
P1 = HC165();
delay();
}
}