8051单片机串行口扩展矩阵键盘接口与应用
时间:2023-03-14来源:佚名
|
由于8051的串行口在方式0工作状态下,可以方便地通过移位寄存器74LS164扩展并行输出口。因此,可以将这些并行口线作为列线,与P3口的行线构成行列式键盘。每占用一条P3口线可增加8个按键,用户根据需要可增减。
在8051的串行口方式0工作状态下,结合P3.4和P3.5实现2*8键盘。如图所示。 C51软件设计: #include #include #include unsigned char getkey(void); //键盘扫描函数 void proc1(void); //定义按键处理程序1 void proc2(void); //定义按键处理程序2 void proc3(void); //定义按键处理程序3 void proc4(void); //定义按键处理程序4 …… bit0=P3.4; bit1=P3.5; void delay(void); //定义延时函数 void main(void) //主函数 { unsigned char idata key; SCON=0x00; //串口初始化 ES=0; EA=0; //关闭中断 while(1) { key=getkey(); if(key!=0xff) switch (key) { case 0x00: proc0(); braek; case 0x01: proc1(); braek; case 0x02: proc2(); braek; case 0x03: proc3(); braek; …… …… …… default: break; } } } unsigned char getkey(void) //键盘扫描函数 { unsigned char idata key_code,col=0; mask=0x00; TI=0; SBUF=mask; while(TI==0); if((bit0 |








