找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 936|回复: 0
打印 上一主题 下一主题
收起左侧

单片机蓝球记份牌程序

[复制链接]
跳转到指定楼层
楼主
ID:598450 发表于 2019-8-26 08:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自编写并仿真通过,可以记1分,2分,3分,并可删除输入错误分值。
  1. #include <pic.h>
  2. #define INT8U unsigned char
  3. #define _xtal_freq 1000000ul
  4. #define k1_down()  (RB4==0)
  5. #define k2_down()  (RB5==0)
  6. #define k3_down()  (RB6==0)
  7. #define k4_down()  (RB7==0)
  8.         INT8U count=0;
  9. INT8U t,num=0;

  10. const INT8U SEG_CODE[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
  11. void display()
  12. {
  13.         /*if(!show_on)
  14.         {
  15.                 PORTC=0x00;PORTD=0xFF;
  16.                 return;
  17.         }*/
  18.         /*PORTD=0xFF;
  19.         PORTC=SEG_CODE[count/10];
  20.         PORTD=~(1<<0);
  21.         __delay_ms(2);
  22.         PORTD=0xFF;
  23.         PORTC=SEG_CODE[count%10];
  24.         PORTD=~(1<<1);
  25.         __delay_ms(2);*/

  26.         t=count;
  27.         for(INT8U i=0;i<2;i++)
  28.         {
  29.         PORTD=0xFF;
  30.         PORTC=SEG_CODE[t%10];
  31.         PORTD=0X01<<i;
  32.         __delay_ms(2);
  33.         t/=10;
  34.         }
  35. }
  36. void main(void)
  37. {
  38.         TRISC=0x00;TRISD=0x00;
  39.         PORTC=0xFF;PORTD=0xFF;

  40.         GIE=1;
  41.         RBIE=1;
  42.         TRISB=0xFF;
  43.         RBPU=0;
  44.    while (1)
  45.       {
  46.                 display();


  47.                 }
  48. }
  49. void interrupt RB_port_change()
  50. {

  51.         if(RBIF==1)
  52.         {
  53.                
  54.                 __delay_ms(5);

  55.                 if(k1_down())
  56.                 {if(count<99) count++;num=1;}
  57.                 if(k2_down())
  58.                 {if(count<99) count+=2;num=2;}
  59.                 if(k3_down())
  60.                 {if(count<99) count+=3;num=3;}
  61.                 if(k4_down())
  62.                         {
  63.                         switch (num)
  64.                                 {
  65.                                 case 1: count -=1;break;
  66.                                 case 2: count -=2;break;
  67.                                 case 3: count -=3;break;

  68.                                 }
  69.                                 num=0;
  70.                         }       
  71.                 RBIF=0;       
  72.         }
  73. }
复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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