51单片机行列式键盘扫描程序

来源:本站
导读:目前正在解读《51单片机行列式键盘扫描程序》的相关信息,《51单片机行列式键盘扫描程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《51单片机行列式键盘扫描程序》的详细说明。
简介:本文给大家分享了51单片机行列式键盘扫描程序。

#include#include#define uchar unsigned char#define uint unsigned intunsigned char code seg7[16]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};//0到f的字型码unsigned char code hao[4]={0x0e,0x0d,0x0b,0x07};unsigned char code key_[16]={1,2,3,15,4,5,6,14,7,8,9,13,0,10,11,12}; //决定了键盘按键布局//======================================void delay(uint n)        //延时程序{    while(n--)    {_nop_();}}//======================================//======================================uchar scan()             // 键盘扫描程序{    uchar temp,h,j,i,high,low;    bit find=0;           //定义位find标志 并赋值零    P0=0xf0;     temp=P0;           //行低电平 列高电平    if(temp!=0xf0)      //检测是否有键按下    {        delay(1000);      //去抖        if(temp!=0xf0) //确定有键按下       {            find=1;          //标志有键按下            high=(temp>>4); //将列的状态存入high            P0=0x0f;        //翻转行列电平            temp=P0;        //再次读取P0            low=(temp&0x0f); //将行的状态存入low            for(i=0;i<4;i++) //确定按键的坐标            {                if(hao[i]==high){j=i;}                if(hao[i]==low){h=i;}            }        }     }     if(find==0){return 16;}       else return(4*h+j);}//=============================================void main(){    uchar a,key=0;    while(1)    {        a=scan();        if(a!=16)        {            key=key_[a];        }     P1=seg7[key];     P2=0xfe;     delay(200);     }}

提醒:《51单片机行列式键盘扫描程序》最后刷新时间 2024-03-14 00:57:42,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51单片机行列式键盘扫描程序》该内容的真实性请自行鉴别。