You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于PIC16F84A的体育场计分板代码故障排查咨询

体育场计分板PIC16F84A代码缺失功能分析

需求回顾

需实现双独立计分功能:

  • 主队(HOME)、客队(VISIT)分数0-9循环递增,初始0-0
  • RA0触发主队加分,RA1触发客队加分
  • RB0-RB3输出主队BCD码,RB4-RB7输出客队BCD码(配合7447解码器)
  • 推荐逻辑:双独立计数器,客队计数值左移4位后与主队计数值做OR运算输出至PORTB

现有代码缺失/错误部分

现有代码仅实现了单队计分的雏形,完全未满足双队独立计分需求,具体缺失内容如下:

  • 缺少客队独立计数器
    现有代码仅定义了单个Counter变量,无法分别存储主队、客队分数。需在CBLOCK中新增客队计数器变量,例如:

    CBLOCK 0X0C
        HomeCounter
        VisitCounter
    ENDC
    
  • 未配置RA1为输入引脚
    初始化时仅设置了RA0为输入(bsf TRISA,RA0),未对RA1做输入配置,需添加:

    bsf TRISA,RA1
    
  • 缺失RA1按键的检测与处理逻辑
    现有代码仅处理了RA0的触发逻辑,完全未实现RA1触发客队加分的功能。需添加与RA0逻辑对应的RA1按键检测、客队计数器递增及循环清零逻辑。

  • BCD码表错误且输出逻辑不符合要求

    1. 查表标签不匹配:代码中定义的查表段标签为BOARD,但调用时用的是call TABLE,标签名不一致会导致程序跳转错误;
    2. BCD码值错误:7447解码器需要标准BCD码(0对应0x00,1对应0x01...9对应0x09),但现有DT指令后的值为1,2,3,4,5,6,7,8,9,0,完全不符合要求;
    3. 输出逻辑错误:未实现“客队计数值左移4位后与主队计数值OR运算”的要求,现有代码直接将单队查表值写入PORTB,无法同时输出两队分数。正确逻辑应为分别获取主队、客队的BCD码,将客队值左移4位后,与主队值做OR运算再写入PORTB。
  • 初始化未覆盖客队计数器
    现有代码仅清零了Counter和PORTB,若新增客队计数器,初始化时需同步清零该变量。

内容的提问来源于stack exchange,提问作者DArkWarOP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 10:52:35