⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyscan.c

📁 主要在C8051F020的平台上实现对运放UA741的失调电压、失调电流
💻 C
字号:
#include<c8051f020.h>
#include"delay.h"

#define uchar unsigned char
//#define uint  unsigned int

uchar temp1;
extern uchar num;
uchar key_scan( )
{       
    num=0xff;
    num=0;
    P1=0xfe;
    temp1=P1;
    temp1=temp1&0xf0;
    if(temp1!=0xf0) 
    {
        delay(10,300);
        if(temp1!=0xf0)
        {
            switch (temp1)
            {
                case 0xe0: num='0';
                     break;
                case 0xd0: num='1';
                     break;
                case 0xb0: num='2';
                     break;
                case 0x70: num='3';
                     break;
            }
        }
    }
  while(temp1!=0xf0)  
        {
          temp1=P1;
          temp1=temp1&0xf0;
        }
        

    P1=0xfd;
    temp1=P1;
    temp1=temp1&0xf0;
    if(temp1!=0xf0)
    {
        delay(10,300);
        if(temp1!=0xf0)
        {
            switch (temp1)
            {
                case 0xe0: num='4';
                     break;
                case 0xd0: num='5';
                     break;
                case 0xb0: num='6';
                     break;
                case 0x70: num='7';
                     break;
            }
        }
    }
    while(temp1!=0xf0)
        {
          temp1=P1;
          temp1=temp1&0xf0;
        }


    P1=0xfb;
    temp1=P1;
    temp1=temp1&0xf0;
    if(temp1!=0xf0)
    {
        delay(10,300);
        if(temp1!=0xf0)
        {
            switch (temp1)
            {
                case 0xe0: num='8';
                     break;
                case 0xd0: num='9';
                     break;
                case 0xb0: num='A';
                     break;
                case 0x70: num='B';
                     break;
            }
        }
    }
    while(temp1!=0xf0)
        {
          temp1=P1;
          temp1=temp1&0xf0;
        } 


    P1=0xf7;
    temp1=P1;
    temp1=temp1&0xf0;
    if(temp1!=0xf0)
    {
        delay(10,300);
        if(temp1!=0xf0)
        {
            switch (temp1)
            {
                case 0xe0: num='C';
                     break;
                case 0xd0: num='D';
                     break;
                case 0xb0: num='E';
                     break;
                case 0x70: num='F';
                     break;
            }
        }
    }
    while(temp1!=0xf0)
        {
          temp1=P1;
          temp1=temp1&0xf0; 
        } 
    return(num);
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -