标题: 单片机矩阵键盘+篮球计分+AB队,1602显示程序与PCB仿真 [打印本页]

作者: 梁廷明    时间: 2020-6-15 20:06
标题: 单片机矩阵键盘+篮球计分+AB队,1602显示程序与PCB仿真
文件里面有程序,仿真,原理图和PCB


具体模拟显示生活的篮球计分过程,按键具有加分,清除,换队的功能。
初始的界面是这里


Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
PCB可以直接打板

显示的界面:



void main()
{                          
  uchar A_B=0;        
  init_lcd();//显示屏初始化

        
        Display_String("20160192013      ",0x80);//第一页
  Display_String("55555555555      ",0xc0);//第二页
        
        delays(3);
        
        Display_String("                 ",0x80);//第一页
  Display_String("                 ",0xc0);//第二页
        
    while(1)
    {

     if(P1!=0x0f)//按键按下
                 {
       temp=Keys_Scan();                           //获取按键值

         switch(temp)
      {
         case 0: A_scop=A_scop+1;break;  //A加1分
                                 case 1: A_scop=A_scop+2;break;  //A加2分
                                 case 2: A_scop=A_scop+3;break;  //A加3分
                                 case 3: A_B=0;break;  //A对左边
                                 case 4: A_B=1;break;  //B队右边
         case 5: B_scop=B_scop+1;break;  //B队加1
                                 case 6: B_scop=B_scop+2;break;  //B队加2
                                 case 7: B_scop=B_scop+3;break;  //B队加3
                                 case 8: A_scop=0; break;  //A分数清除
                                 case 9: B_scop=0; break;  //B分数清除
                                 case 10:A_scop=0;B_scop=0;break; //AB分数清除
    }   
                        
    while(P1!=0xf0);//判断按键是否松开
               
                        if(A_B==0){
                Input_Buffer[2]=Keypad_Chars[10][0];                        
          Input_Buffer[4]=Keypad_Chars[A_scop/10][0];        
                Input_Buffer[5]=Keypad_Chars[A_scop%10][0];
                Input_Buffer[6]=Keypad_Chars[12][0];               
                Input_Buffer[7]=Keypad_Chars[B_scop/10][0];        
                Input_Buffer[8]=Keypad_Chars[B_scop%10][0];
                Input_Buffer[10]=Keypad_Chars[11][0];               
                Display_String(Input_Buffer,0x80 );
       }
                        else
                        {
                Input_Buffer[2]=Keypad_Chars[11][0];               
                Input_Buffer[4]=Keypad_Chars[B_scop/10][0];
                Input_Buffer[5]=Keypad_Chars[B_scop%10][0];
                Input_Buffer[6]=Keypad_Chars[12][0];               
                Input_Buffer[7]=Keypad_Chars[A_scop/10][0];
                Input_Buffer[8]=Keypad_Chars[A_scop%10][0];
                Input_Buffer[10]=Keypad_Chars[10][0];                        
                Display_String(Input_Buffer,0x80 );
                        
                        }
        }
                        
}
}

全部资料51hei下载地址:
矩阵键盘-计分-1602 ok.zip (5 MB, 下载次数: 68)


作者: 琪琪国王    时间: 2020-6-21 16:44
     if(A_B==0){
                Input_Buffer[2]=Keypad_Chars[10][0];                        
          Input_Buffer[4]=Keypad_Chars[A_scop/10][0];        
                Input_Buffer[5]=Keypad_Chars[A_scop%10][0];
                Input_Buffer[6]=Keypad_Chars[12][0];               
                Input_Buffer[7]=Keypad_Chars[B_scop/10][0];        
                Input_Buffer[8]=Keypad_Chars[B_scop%10][0];
                Input_Buffer[10]=Keypad_Chars[11][0];               
                Display_String(Input_Buffer,0x80 );
楼主可以解释一下这个是啥意思吗,我是新手,不太理解这个,谢谢
作者: 梁廷明    时间: 2020-10-11 11:52
琪琪国王 发表于 2020-6-21 16:44
if(A_B==0){
                Input_Buffer[2]=Keypad_Chars[10][0];                        
     ...

存放在数组里面的分数,用于显示





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1