打印

PIC单片机求平均值问题

[复制链接]
5003|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jwwhy|  楼主 | 2009-10-29 16:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,想问个单片机求平均值问题,如下程序
ADD8         BCF       STATUS,RP0
               
                MOVF       TEMP0,0    ;AD中暂存的值送W
                ADDWF      TEMP7,1  ; AD+TEMP7
                BTFSC      STATUS,0 ;看是否有进位
                CALL       ADDONE  ;有
                GOTO       GO_ON  ;没有 
ADDONE:         
                MOVLW      01H
                ADDWF      TEMP1,1 ;有进位,TEMP1加一
                RETURN
GO_ON:
                DECFSZ     COUNT0,1  ;看是否采样8次
                GOTO       ADC      ;没有到8次
                MOVLW      02H      ;到8次,准备求平均值
                MOVWF      COUNT3
GO1:            
                BCF       STATUS,0
                RRF       TEMP1,1    ;求8次的平均值
                RRF       TEMP7,1
                DECFSZ    COUNT3,1 ;
                GOTO      GO1
                GOTO      DISP4  ;
就是想采样8次AD值先累加,然后除以4得到平均值
但是最后得出来的结果值不对,不知道那里有问题??
发现单次采样的值是对的.

相关帖子

沙发
凡格| | 2009-10-29 19:34 | 只看该作者
看不懂汇编

使用特权

评论回复
板凳
doob| | 2009-10-29 23:13 | 只看该作者
赶快换c吧;看的头痛

使用特权

评论回复
地板
程序匠人| | 2009-10-30 08:48 | 只看该作者
就是想采样8次AD值先累加,然后除以4得到平均值——为什么是除以4,而不是8?是特意为了扩展分辨率吗?

但是最后得出来的结果值不对,不知道那里有问题??——如何不对了?请给出数据来。

发现单次采样的值是对的.

另请问你有没有对COUNT0赋初值?

使用特权

评论回复
5
jwwhy|  楼主 | 2009-10-31 16:16 | 只看该作者
就是想采样8次AD值先累加,然后除以4得到平均值——为什么是除以4,而不是8?是特意为了扩展分辨率吗? (这个是在一个书上看见的,具体不太清楚)
但是最后得出来的结果值不对,不知道那里有问题??——如何不对了?请给出数据来。
TEMP7为0X70  TEMP1为 0X01 TEMP0 为0XBB  TEMP3 为0X22 我的实际电压为3.68V 可以对应到0XBB
另请问你有没有对COUNT0赋初值?  有对COUNT0赋初值.
请帮忙看下.

另外看看我的程序这样写有没有什么错误?

使用特权

评论回复
6
ZRL700424| | 2009-10-31 16:23 | 只看该作者
RETURN
这条指令不能要!

使用特权

评论回复
7
ZRL700424| | 2009-10-31 16:27 | 只看该作者
另外,既然8次的平均值就必须除以8(右移三次),否则结果大一倍

使用特权

评论回复
8
jwwhy|  楼主 | 2009-11-2 10:36 | 只看该作者
哦 那意思就我要除于8(右移三次),其它地方没有问题了吧.

使用特权

评论回复
9
ZRL700424| | 2009-11-2 11:33 | 只看该作者
哦 那意思就我要除于8(右移三次),其它地方没有问题了吧.
jwwhy 发表于 2009-11-2 10:36


因为只贴出了部分程序,所以无法判断上面的程序还有没有问题

使用特权

评论回复
10
jwwhy|  楼主 | 2009-11-3 07:59 | 只看该作者
那有没有关于pIC单片机AD采样累加然后求平均值的子程序,给个参考参考下,谢谢了 ,要汇编的哦 .

使用特权

评论回复
11
e掾木| | 2009-11-3 08:11 | 只看该作者
www.piclist.com有几个平均值滤波算法的代码,你看懂了会诧异汇编跟C简直就是天地之差,8条汇编就搞定256平均值滤波!

使用特权

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

本版积分规则

83

主题

281

帖子

0

粉丝