找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3428|回复: 0
收起左侧

单片机矩阵按键的应用,16个按键对应输出16种状态 Proteus仿真代码

[复制链接]
ID:911048 发表于 2021-4-24 10:57 | 显示全部楼层 |阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
屏幕截图 2021-04-24 104022.jpg 屏幕截图 2021-04-24 101914.jpg
单片机源程序如下:
//功能:晶振11.0592M,矩阵按键应用,16种按键对用16种输出//作者: 康晓龙

//版本号:1.0

#include<reg51.h>

unsigned char code duan[]={0xc0,0xf9,0xa4,0xb0,

                              0x99,0x92,0x82,0xf8,0x80,0x90};//0~9的数码

void delay(unsigned int i)

{while(i--);}



/**************************************

函数名:jianzhi()

函数功能:当有按键按下时,判断是哪一个按键按下,16个按键对应16种输出

返回值:  result. result=0 忙,result=1 不忙。

***************************************/

void jianzhi()

{

  switch(P2)

    {

        //判断第一行哪一个按键按下,让P0口输出

        case 0xee:P0=duan[0];break;

        case 0xed:P0=duan[1];break;

        case 0xeb:P0=duan[2];break;

        case 0xe7:P0=duan[3];break;

        //判断第二行哪一个按键按下,让P0口输出

        case 0xde:P0=duan[4];break;

        case 0xdd:P0=duan[5];break;

        case 0xdb:P0=duan[6];break;

        case 0xd7:P0=duan[7];break;

        //判断第三行哪一个按键按下,让P0口输出

        case 0xbe:P0=duan[8];break;

        case 0xbd:P0=duan[9];break;

        case 0xbb:P0=0xbb;break;

        case 0xb7:P0=0xb7;break;

        //判断第四行哪一个按键按下,让P0口输出

        case 0x7e:P0=0x7e;break;

        case 0x7d:P0=0x7d;break;

        case 0x7b:P0=0x7b;break;

        case 0x77:P0=0x77;break;

        }

}

void main()

{

while(1)

  {

   P2=0xef;                                                  //对第一行进行扫描,判断是否有按键按下

   if(P2!=0xef){jianzhi();}



   P2=0xdf;                                                  //对第二行进行扫描,判断是否有按键按下

   if(P2!=0xdf){jianzhi();}



   P2=0xbf;                                                  //对第三行进行扫描,判断是否有按键按下

   if(P2!=0xbf){jianzhi();}



   P2=0x7f;                                                 //对第四行进行扫描,判断是否有按键按下

   if(P2!=0x7f){jianzhi();}

}

}

51hei.png

全部资料51hei下载地址:
矩阵键盘电路的控制与应用.zip (196.07 KB, 下载次数: 37)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表