打印

触摸程序有问题还是硬件问题?

[复制链接]
5139|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hopewise|  楼主 | 2011-7-8 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人之前用1个BS804B和1个BS808B(都是单线串口输出,共用到12个keys),分别用计数器模式(下降沿触发)和外中断(下降沿触发)来检测有没有按键按下,有的话,则分别置位BSINT1和BSINT2.
    我的主程序周期是固定不变的,如4ms就能执行完所有程序,如果按键扫描子程序发现位变量BSINT1或BSINT2为1,则进入按键扫描。之前做的几个触摸产品都没问题.
    近来搞一个锄摸产品,要用到14个keys,故要用2个BS808B,其它的都与之前的相同,除了这2个BS808B的读表略有不同外.
    发现采用外中断的8个keys中只有1个key能正常工作(这个key接到BS808B的key0脚),其它7个keys几乎没反应.而采用计数器模式的第2个BS808B的所有6个keys都正常.后来对调一下这2个BS808B的单线串口输出----即第1个BS808B改用计数器模式来检测,则这8个keys都正常.反而第2个BS808B改用外中断来检测,则这6个keys也只有1个key正常,剩下的5个keys都不正常.
    这好像是采用外中断方式的有问题,但为何会有1个KEY正常?因为它们的按键扫描子程序都是一样的.如下面:
    ;************************************************************
;***********************************按键扫描管理*************
key_scan_man:
        mov    a,keydwn_t
      sub     a,251
       snz     c
      inc    keydwn_t     ;按键扫描计数:1~251
        sz      BSINT1
        jmp     READ_BS804
        sz      BSINT2
        jmp     READ_BS808
        clr    keydwn_t                 ;都没有按键按下,则清相关变量
        clr     sw_bz
        set     scd1c
        set     scd2c
        set     tmr1c.4                  ;都没有触摸芯片的按下标志位,则启动定时器进行外部计数
        ret

;***************主程序区**************
main:   
  mov      a,t_125us
  sub      a,40
  snz      c                    ;到了5mS吗   
  jmp      main                           ;没到,则跳到main
main1:
  clr      t_125us      ;到了,则清t_125us变量
     snz      halt_b                         ;halt_b 等于1则进入睡眠状态
     jmp      $+2          ;为0则正常执行指令
  jmp      sleep_man                     ;睡眠管理
     clr      wdt                            ;喂狗
     call     IC_TM1637_driver_man           ;IC_TM1637驱动管理         
  call     key_scan_man                   ;按键扫描管理
  call     led_out_man                    ;按键led灯输出管理   
  call     open_inspection_man            ;马达开门行程开关检测管理  
  call     close_inspection_man           ;马达关门行程开关检测管理
  call  voltage_chk                    ;电池电压检测管理
  call  time_man                       ;时间管理
     call     motor_man                      ;马达驱动管理(开门)                                 
  call     buz_work                       ;蜂鸣器管理
  call     baojing_man                    ;报警输出管理
  call     HM_inspect_man                 ;换码开关管理
  call     shuiyin_man                    ;水银开关检测管理
  call     key_deal_man                   ;按键处理管理  
  call     disp_man                       ;显示管理
  call     door_man                       ;门行程开关管理
  call     auto_man                       ;自动锁门管理(关门)
  jmp   main

;**********************************************
;**************************外部中断0***********
ext0_interrupt:
        mov  acc_bak,a
        mov  a,status
        mov  status_bak,a
        set     BSINT2
        mov   a,status_bak
        mov    status,a
        mov  a,acc_bak
        reti  
;***********************************************
;***************************定时0中断区*********
t0_isr:
        mov   acc_bak,a
        mov   a,status
        mov   status_bak,a
        inc     t_125us
        snz    f_buzact
        jmp   t0_isr_buzoff
        sz      buz_num.1     
        jmp   t0_isr_buzout
        jmp     t0_isr_buzout
t0_isr_buzoff:
        clr  buzzer
        jmp  t0_isr_exit
t0_isr_buzout:
        sz      buzzer
        jmp     clr_buzp
        jmp     set_buzp
clr_buzp:
        clr     buzzer
        jmp     t0_isr_exit
set_buzp:
        set     buzzer
t0_isr_exit:
        mov  a,status_bak
        mov  status,a
        mov  a,acc_bak
        reti
;***********************************************
;***************************定时1中断区*********
t1_isr:
        mov  acc_bak,a
        mov  a,status
        mov  status_bak,a
        set     BSINT1
        mov  a,status_bak
        mov  status,a
        mov  a,acc_bak
        clr     tmr1c.4
        reti

相关帖子

沙发
alphal| | 2011-7-21 16:31 | 只看该作者
BS804B价格怎样?

我们用CY8C20110,QT60240超贵。

使用特权

评论回复
板凳
hopewise|  楼主 | 2011-7-21 17:16 | 只看该作者
2.5元

使用特权

评论回复
地板
yewuyi| | 2011-7-21 17:39 | 只看该作者
BS804B价格怎样?

我们用CY8C20110,QT60240超贵。
alphal 发表于 2011-7-21 16:31


不是一个档次的东西。

拿黄金和沙子比价格,显然没法比。

使用特权

评论回复
5
moy226| | 2011-7-22 08:47 | 只看该作者
这个有点问题吧

使用特权

评论回复
6
hb923| | 2013-1-10 17:16 | 只看该作者
估计是BS80XB IC工作不正常,建议查到IO口的波形,扫描按键的时候,是否有考虑全部按键一起反应的情况?在一个KEY起作用的情况下,扫描按键最好确认所有按键再决定按键值

使用特权

评论回复
7
zf_015820| | 2013-1-10 17:39 | 只看该作者
LZ用C语言加IDE软件STEP调试吧,这样找问题容易 多了

使用特权

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

本版积分规则

46

主题

468

帖子

3

粉丝