找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2986|回复: 2
收起左侧

单片机矩阵键盘+篮球计分+AB队,1602显示程序与PCB仿真

[复制链接]
ID:235954 发表于 2020-6-15 20:06 | 显示全部楼层 |阅读模式
文件里面有程序,仿真,原理图和PCB
([6%AT[]3H9NWA3XY@V]6_4.png

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

A初始场面.png
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
PCB可以直接打板
PCB.png
显示的界面:
分数显示屏幕.png


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, 下载次数: 67)

评分

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

查看全部评分

回复

使用道具 举报

ID:721871 发表于 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 );
楼主可以解释一下这个是啥意思吗,我是新手,不太理解这个,谢谢
回复

使用道具 举报

ID:235954 发表于 2020-10-11 11:52 | 显示全部楼层
琪琪国王 发表于 2020-6-21 16:44
if(A_B==0){
                Input_Buffer[2]=Keypad_Chars[10][0];                        
     ...

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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