打印
[应用相关]

为什么矩阵键盘用不了

[复制链接]
470|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bbapple|  楼主 | 2017-8-23 20:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "keyscan.h"
#define uchar unsigned char
unsigned char JP()
{
unsigned char x=0x00;
  bit i=0;
  x=P2;   //é¨ÃèY×ø±ê
  delay(125);  //Ïû¶¶
  P2=0x0f;
  delay(2);
  x+=P2;    //é¨ÃèX×ø±ê
  switch(x)
  {
   case 0xee:x=0x30;break;    //°′ÏÂ0
   case 0xed:x=0x31;break;    //°′ÏÂ1
   case 0xeb:x=0x34;break;    //°′ÏÂ4
   case 0xe7:x=0x37;break;    //°′ÏÂ7
   case 0xde:x=0x46;break;       //°′ÏÂF/.
   case 0xdd:x=0x32;break;    //°′ÏÂ2
      case 0xdb:x=0x35;break;    //°′ÏÂ5
   case 0xd7:x=0x38;break;    //°′ÏÂ8
   case 0xbe:x=0x45;break;    //°′ÏÂE
   case 0xbd:x=0x33;break;    //°′ÏÂ3
   case 0xbb:x=0x36;break;    //°′ÏÂ6
   case 0xb7:x=0x39;break;    //°′ÏÂ9
   case 0x7e:x=0x44;break;    //°′ÏÂD
   case 0x7d:x=0x43;break;    //°′ÏÂC
   case 0x7b:x=0x42;break;    //°′ÏÂB
   case 0x77:x=0x41;break;    //°′ÏÂA
   default:x=0xff;break;
   }
   while(i==0)    //°′¼üËé¿a
   {
    P2=0xf0;
    delay(150);
    if(P2==0xf0)
    {
     i=1;
    }
    else{i=0;}
   }
  return x;    //·μ»Øx(ASCIIÂë)
}
//--------------------Ñóê±oˉêy--------//
void delay(unsigned char m)
{
  uchar i,j;
  for(i=0;i<m;i++)
  {
   for(j=0;j<121;j++)
   {;}
  }
}
#include "main.h"
#include "LCD12864.h"
#include "HX711.h"
#include "keyscan.h"
#define uchar unsigned char
#define uint unsigned int
unsigned long HX711_Buffer = 0;

//****************************************************
//Ö÷oˉêy
//****************************************************
   void main(void)
{
   uchar  LCD[16]={"0123456789ABCDEF"};
   code uchar JM1[]={0xb5,0xda,0xc8,0xfd,0xd7,0xe9,0xb5,0xe7,0xd7,0xd3,0xb3,0xc6};
   code uchar JM2[]={"μ¥¼Û: 00.0    "};
   code uchar JM3[]={"ÖØá¿: 00.000KG  "};
   code uchar JM4[]={"×ü¼Û: 0000.0Ôa  "};
   uchar DJ[3];       //μ¥¼Û
   uchar ZL[5];       //ÖØá¿
   uchar QPZL[5];   //è¥ƤoóμÄÖØá¿
   uchar ZJ[5];       //×ü¼Û
   unsigned long J1;
   uint J2,J3,J6=0;
   bit J5=1;
   uint J7;
   uchar i;
   uchar JM5[]={5679};
  LCD12864_Reset();  //3õê¼»ˉ
  for(i=0;i<3;i++)  //μ¥¼Ûêäèë
  {
   DJ[i]=0;
  }
  for(i=0;i<5;i++)   //ÖØá¿
  {
   ZL[i]=0;
  }
  for(i=0;i<5;i++)   //¾»ÖØ
  {
   QPZL[i]=0;
  }
  for(i=0;i<5;i++)   //×ü¼Û
  {
   ZJ[i]=0;
  }
LCD12864_COM_Write(0x81);  //¶¨Î»        
  for(i=0;i<12;i++)
{
  LCD12864_Data_Write(JM1[i]);  //ÏÔê¾μúèy×éμç×ó3ó
}
LCD12864_COM_Write(0x90);  //¶¨Î»
for(i=0;JM2[i]!='\0';i++)
{
LCD12864_Data_Write(JM2[i]);    //ÏÔê¾μ¥¼Û:00.0Ôa
}
LCD12864_COM_Write(0x88);  //¶¨Î»
for(i=0;JM3[i]!='\0';i++)
{
  LCD12864_Data_Write(JM3[i]);  //ÏÔê¾ÖØá¿: 00.000KG
}
LCD12864_COM_Write(0x98);    //¶¨Î»
for(i=0;JM4[i]!='\0';i++)
{
  LCD12864_Data_Write(JM4[i]);   //×ü¼Û: 0000.0Ôa
}
P2=0xf0;
while(1)
{
   while(P2==0xf0)      //μ±Ã»óD°′¼ü°′ÏÂê±½øè룬óD°′¼ü°′ÏÂê±ìø3öà′
   {
   J1=HX711_Read();    //¶áè¡ADÖμ
   J3=((J1-8388608)/150)-11;  //è¡Öμ
   ZL[0]=(J3/10000)%10;   //ÖØá¿ê®Î»
   if(ZL[0]>3){FMQ=0;}     //3¬Öر¨¾ˉ
   else{FMQ=1;}
   ZL[1]=(J3/1000)%10;       //ÖØῸöλ
   ZL[2]=(J3/100)%10;     //¼ÆËãλ
   ZL[3]=(J3/10)%10;
   ZL[4]=J3%10;
   J7=ZL[4];
   J7+=ZL[3]*10;
   J7+=ZL[2]*100;
   J7+=ZL[1]*1000;
   J7+=ZL[0]*10000;
   J3=QPZL[4];
   J3+=QPZL[3]*10;
   J3+=QPZL[2]*100;
   J3+=QPZL[1]*1000;
   J3+=QPZL[0]*10000;
   J7-=J3;
   ZL[0]=J7/10000;
   J7%=10000;
   ZL[1]=J7/1000;
   J7%=1000;
   ZL[2]=J7/100;
   J7%=100;
   ZL[3]=J7/10;
   J7%=10;
   ZL[4]=J7;
   LCD12864_COM_Write(0x8b); //¶¨Î»
   LCD12864_Data_Write(LCD[ZL[0]]);    //ËíÏÔê¾£¬ÏÂí¬
  LCD12864_Data_Write(LCD[ZL[1]]);   
  LCD12864_Data_Write(0x2e);   
  LCD12864_Data_Write(LCD[ZL[2]]);   
   LCD12864_Data_Write(LCD[ZL[3]]);   
   LCD12864_Data_Write(LCD[ZL[4]]);   
   J7=DJ[2]*ZL[3];
   J7+=DJ[2]*ZL[2]*10;
   J7+=DJ[2]*ZL[1]*100;
   J7+=DJ[2]*ZL[0]*1000;
   J7/=10;
   J7+=DJ[1]*ZL[3];
   J7+=DJ[1]*ZL[2]*10;
   J7+=DJ[1]*ZL[1]*100;
   J7+=DJ[1]*ZL[0]*1000;
   J7/=10;
   J7+=DJ[0]*ZL[3];   
   J7+=DJ[0]*ZL[2]*10;
   J7+=DJ[0]*ZL[1]*100;
   J7+=DJ[0]*ZL[0]*1000;

ZJ[0]=J7/10000;
J7%=10000;
ZJ[1]=J7/1000;
J7%=1000;
ZJ[2]=J7/100;
J7%=100;
ZJ[3]=J7/10;
J7%=10;
ZJ[4]=J7;
  LCD12864_COM_Write(0x9b);
  i=ZJ[0];
  i=LCD[i];
LCD12864_Data_Write(i);   
   i=ZJ[1];
  i=LCD[i];
  LCD12864_Data_Write(i);   
   i=ZJ[2];
  i=LCD[i];
LCD12864_Data_Write(i);   
   i=ZJ[3];
  i=LCD[i];
LCD12864_Data_Write(i);   
  LCD12864_Data_Write(0x2e);   
    i=ZJ[4];
  i=LCD[i];
  LCD12864_Data_Write(i);   
   P2=0xf0;
   delay(1);
   }
   J2=JP();
   if(J6>2){J6=0;}
   if(J2<0x40)
   {
   J2-=0x30;
   DJ[J6]=J2;
   J2=0xff;
   J6++;
   }
   else
   {
    switch(J2)
   {
case 0x41:P2=0xf0;while(P2==0xf0);J2=0xff;break;    //°′ÏÂAËø¶¨½çÃæ
    case 0x42:J2=0xff;break;         //½a3yËø¶¨
case 0x43:HX711_Read();          //è¥Ƥ
           J3=((J1-8388608)/150)-11;
     QPZL[0]=(J3/10000)%10;
     QPZL[1]=(J3/1000)%10;
     QPZL[2]=(J3/100)%10;
     QPZL[3]=(J3/10)%10;
     QPZL[4]=J3%10;
     J2=0xff;
     break;
case 0x44:DJ[0]=0;DJ[1]=0;DJ[2]=0;J6=0;J2=0xff;break;    //μ¥¼Û¸′λ
    case 0x45:QPZL[0]=0;QPZL[1]=0;QPZL[2]=0;QPZL[3]=0;QPZL[4]=0;J2=0xff;break;   //ÖØῸ′λ
    case 0x46:DJ[0]=0;DJ[1]=0;DJ[2]=0;J6=0;QPZL[0]=0;QPZL[1]=0;QPZL[2]=0;QPZL[3]=0;QPZL[4]=0;J2=0xff;break;    //μ¥¼ÛÖØá¿ ¸′λ
default:break;
   }
   }
   LCD12864_COM_Write(0x93);
   i=DJ[0];
   i=LCD[i];
   LCD12864_Data_Write(i);
沙发
handleMessage| | 2017-8-23 20:56 | 只看该作者
你把仿真图发上来看看也。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

1811

帖子

1

粉丝