原创 BK1080自动搜台参数FREQD为12位的,8位单片机用汇编语言如何用最短的程序判断.

2012-4-6 10:45 1979 13 15 分类: 消费电子

FREQD(Frequency deviation.):  频率偏差 (reg7, bit4~15)

一般我们设置的范围是100~200,以150为例, 用C语言时表达为:
if( (FREQD>=150)&&(FREQD<=(0xfff-150)))
用C表达相当简单,但是汇编实现起来确实相当麻烦.

此句的意思为:
当FREQD小于等于150,或freqd大于等于0fff-150,当前台才为真台.

我们可以发现一个规律, 小于等于150时,12位的最高4位一定全为0. 大于等于offf-150时, 最高4位一定全为1. 因为低8位的范围就达到了0~255了.
所以,我们可以把12位的高4位作为标志位来判断,只有全为0,或全为1时,我们才进行下一步的判断.
用汇编表示如下:

//省略I2C读过程, 假设FREQD的值已存入寄存器R0,R1. R0的高4位已清零,低4位存了FREQD的高4位, R1存了FREQD的低8位.

        MOV A, R0              //把含有FREQD的高4位值R0寄存器的值传入A
        DECA   14              //高4位减去14,如果是4位全1减去14不用借位.
        BTFSS  Cy              //判断是否有借位
        GOTO  0XFFDEC150       //没借位,说明全1,进入判断低8位是否>=(0xfff-150)
        GOTO  ALLZERODET       //有借位,进入全0判断.

 

0XFFDEC150                 //判断低8位是否>=(0xfff-150),由于高4位已经确实,我们只要确定低8位是否>=(0xff-150)
        MOV A,R1               //把低8位传入A
        INC  150               //低8位加150,
        BTFSS Cy               //判断是否有进位
        GOTO  ERRORSTATION     //没进位,说明<(0xff-150),是假台.
        GOTO  REALSTATION      //有进位,说明>=(0xff-150),是真台.


ALLZERODET                //高4位全零判断.
        MOV A,R0              //把含有FREQD的高4位值R0寄存器的值传入A
        INCA 255              //判断高4位是否全0,非全零的任何数加255都有进位
        BTFSS Cy              //判断是否有进位
        GOTO  LESS150DET      //没有进位,说明全0,高4位符合条件,进入低8位<150判断
        GOTO  ERRORSTATION    //有进位,说明高4位不为零,进入假台设置.

 

LESS150DET                //判断低8位是否小于150
        MOV A,R1              //把低8位传入A
        DECA 150              //低8位减150,
        BTFSS Cy              //判断是否有借位
        GOTO  ERRORSTATION    //没借位,说明大于150,是假台.
        GOTO  REALSTATION     //有借位,说明小于150,是真台.


ERRORSTATION               //假台设置
           ........
          RETLW 0               //返回假台返回值0

 

REALSTATION                //真台设置
           ........
          RETLW  1              //返回真台返回值1

 

 

关联博文:

http://forum.eet-cn.com/BLOG_ARTICLE_9882.HTM
43. BK1080自动搜台参数FREQD为12位的,8位单片机用汇编语言如何用最短的程序判断.


http://forum.eet-cn.com/view_comments***pa?entry_id=9135&from=RSS
3.BK1080自动搜台几个参数代表什么意思,如何调整自动搜台参数? BK1080搜台指标的作用? BK1080自动搜台判据的意思?

 

文章评论2条评论)

登录后参与讨论

meng_411698409 2012-12-18 15:04

暂时没有.

用户1675231 2012-12-17 09:38

你好,请问有bk1086 pic汇编参考程式吗?有的话请发于我下,感激不尽!
相关推荐阅读
meng_411698409 2013-07-26 17:15
BK1086/88/88E技术支持问题汇总 -2012-9-18更新
为方便客户快捷的的找到各应用问题的解决方法,现将前期的博文在此作一个总结: 1.软件问题 1.1  I2C通信问题 1.1.1 BK1086/88 i2c通信正常但初...
meng_411698409 2013-07-26 17:14
BK1088E在电台立体声导频信号低时如何实现立体声点灯?
可以通过设置REG4,BIT6~8来调整,以实现低导频信号点灯。...
meng_411698409 2013-03-30 21:38
BK1088E技术资料下载 2013-3-30更新
各代理请直接通过本文附件下载,暂不对直接客户开放.   2013-3-30. 增加磁棒天线供应商资料及规格书   ...
meng_411698409 2013-03-30 21:24
1080H与1080E区别
  1.不使用1080H新增功能时,1080H与BK1080E软件完全兼容   2.1080H支持单Pin独立晶体功能.单独晶体请设置REG2<12>=1,共用MCU晶体请...
meng_411698409 2013-03-28 22:12
BK1080/80E/80H技术支持问题汇总 -2012-12-18更新
为方便客户快捷的的找到各应用问题的解决方法,现将前期的博文在此作一个总结: 1.软件问题 1.1 I2C通信问题 1.1.1 适用于BK1080/85/86/88 如果您的I2C通信时...
meng_411698409 2013-01-15 17:18
授权代理专用下载连接(凭密码):BK1080技术资料
BK1080E数据手册v1.0  http://group.eet-cn.com/FILE_DOWNLOAD_DETAIL_480801_3000007440_4000026373.HTM ...
我要评论
2
13
关闭 站长推荐上一条 /2 下一条