打印

PIC12F675ad转换问题

[复制链接]
1682|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LEAD|  楼主 | 2013-11-30 15:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个AD转换结果怎么不对,请大家帮忙分析

AD      CLRWDT
          BCF  STATUS,RP1
         BSF  STATUS,RP0
         MOVLW 0X18       ;     ;B3为模拟口,其他口为数字口
         MOVWF ANSEL     ;
         BCF  STATUS,RP0
          MOVLW 0X8C       ;8c    ;选通道3  
         MOVWF ADCON0    ;结果右对齐,
         CALL YS10US
         CALL YS10US
         CALL YS10US
         BSF  ADCON0,0
         CLRWDT
         NOP
         BSF  ADCON0,1
AD2  CLRWDT
        BTFSC ADCON0,1         
        GOTO AD2
        RETURN   
沙发
Rain_King| | 2013-11-30 16:23 | 只看该作者
我勒个擦....汇编啊.....

使用特权

评论回复
板凳
Rain_King| | 2013-11-30 16:23 | 只看该作者
C语言几乎都木有人看.....汇编估计看的人更少.....

使用特权

评论回复
地板
kaavie| | 2013-12-1 22:08 | 只看该作者
         MOVLW 0X8C       ;8c    ;选通道3  
         MOVWF ADCON0    ;结果右对齐,

两句换成:
          MOVLW 0X89       ;8c    ;选通道3  
          MOVWF ADCON0    ;结果右对齐,
          BSF ADCON0,2

请先试下。

   是要将ADON=1后再GO/DONE=1。  

使用特权

评论回复
5
LEAD|  楼主 | 2013-12-5 11:04 | 只看该作者
感谢给位回复;的确是这个问题。就是不明白,877A 可以一次赋值,675就要分两步。

使用特权

评论回复
6
yewuyi| | 2013-12-5 14:38 | 只看该作者
如果是在一个寄存器里面,当然可以一次赋值了,如果不在一个寄存器里面,当然要分两次了。

只有一张嘴巴,不能同时吃着锅里和碗里的。

使用特权

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

本版积分规则

15

主题

20

帖子

0

粉丝