您现在的位置: 主页 > MCU > 单片机技术应用 > 51 单片机使用串入并出芯片 164 以及矩阵键盘 -
本文所属标签:
为本文创立个标签吧:

51 单片机使用串入并出芯片 164 以及矩阵键盘 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]
硬件:74HC164驱动四个数码管,矩阵键盘。设计要求:第一次按按键1显示1- - -、按按键2显示2- - -,以此类推,按1~9都是这样显示。第二次按按键(如果第一次按的是1)(第二次按的是2)显示12-- ;第

硬件:74HC164驱动四个数码管,矩阵键盘

本文引用地址: http://www.21ic.com/app/mcu/201806/764379.htm

设计要求:

第一次按按键1显示1- - -、按按键2显示2- - -,以此类推,按1~9都是这样显示。

第二次按按键(如果第一次按的是1)(第二次按的是2)显示12-- ;

第三次按按键(如果第一次是1第二次是2第三次试3)显示123-;

按键第四次(如果第一次是1第二次是2第三次是3第四次是4)显示1234。


C语言编程如下:

//=======================================================

#include 51.H>

char disp_buff [4] = {0}; //显示缓冲单元.

//-------------------------------------------------------

delay(unsigned int t) //1ms延时函数

{

unsigned int i, j;

for(i = 0; i < t; i++) for(j = 0; j < 120; j++);

}

//-------------------------------------------------------

void display(void) //显示函数

{

char code table[] = { //共阳段码 0 ~ 9

0xC0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};

char i;

for (i = 0; i < 4; i++) {

SBUF = table[disp_buff [i]];//输出段码

while(!TI);

TI = 0;

}

}

//-------------------------------------------------------

unsigned char keyboard(void) //扫描键盘函数

{

unsigned char i, tmp1, tmp2;

for(i = 0; i < 4; i++) {

P1 = ~(1 << i); //i = 0 : P1 = 1111 1110

tmp1 = P1 & 0xF0;

if(tmp1 != 0xF0) { //有键按下

delay(10); //延时

tmp2 = P1 & 0xF0; //再读

if(tmp1 == tmp2) { //两次相等,即不是抖动

if (tmp1 == 0x70) return i * 4 + 0; //键值

if (tmp1 == 0xb0) return i * 4 + 1;

if (tmp1 == 0xd0) return i * 4 + 2;

if (tmp1 == 0xe0) return i * 4 + 3;

} } }

return 16; //没有键按下

}

//-------------------------------------------------------

void main(void)

{

unsigned char key;

display(); //初始显示.

while(1) { //无限循环.

key = keyboard(); //读出一遍键盘.

if (key < 10) { //如果0~9

//--------------------进行按键处理.

disp_buff [3] = disp_buff [2];

disp_buff [2] = disp_buff [1];

disp_buff [1] = disp_buff [0];

disp_buff [0] = key;

display(); //显示.

//--------------------处理结束,去等待按键释放.

while(key < 16) key = keyboard();//等待按键释放.

} } //无限循环.

}

//=======================================================


仿真截图如下:




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > 51 单片机使用串入并出芯片 164 以及矩阵键盘 -
 

"51 单片机使用串入并出芯片 164 以及矩阵键盘 -"的相关文章

网站地图

围观()