打印

使用AD转换器AD7708碰到的问题!!!

[复制链接]
2454|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fuchu12000|  楼主 | 2007-9-4 09:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

使用AD转换器AD7708碰到的问题!!!


使用AD7708与MSC89C51来测试电阻值的大小.
可是读AD数据不成功,汇编程序代码如下:
;***********************************************************
;初始化ADC转换器AD7708,
;AD7708的数据顺序是高位在前,低位在后,
;MSC89C51数据是低位在前,高位在后.
;MSC89C51使用串口工作方式0与AD7708通讯
;***********************************************************
TESTR:     MOV    SCON,    #00H                   ;设置串口的工作方式为0
           MOV    PCON,    #00H
           MOV    A,       #07H                   ;设置comunication寄存器07H,将对IOCON寄存器进行设置
           LCALL  XCHML
           LCALL  TRSER
           MOV    A,       #00H                   ;设置IOCON寄存器,写入00
           LCALL  XCHML
           LCALL  TRSER
           MOV    A,       #03H                   ;设置comunication寄存器03H,将对filter寄存器进行设置
           LCALL  XCHML
           LCALL  TRSER
           MOV    A,       #45H                   ;设置filter寄存器
           LCALL  XCHML
           LCALL  TRSER
           MOV    A,       #02H                   ;设comunication寄存器02H,将对ADCCON寄存器进行设置
           LCALL  XCHML
           LCALL  TRSER
           MOV    A,       #0FH                   ;设置ADCCON寄存器
           LCALL  XCHML
           LCALL  TRSER
           MOV    A,       #01H                   ;设置comunication寄存器02H,将对MODE寄存器进行设置
           LCALL  XCHML
           LCALL  TRSER
           MOV    A,       #03H                   ;设置MODE寄存器
           LCALL  XCHML
           LCALL  TRSER

;***********************************************************
;无需校正ADC

;***********************************************************
;多通道的读操作
READ:  MOV    A,       #01H                   ;设置comunication寄存器01H,将对MODE寄存器进行设置
           LCALL  XCHML
           LCALL  TRSER
           MOV    A,       #03H                   ;设置MODE寄存器为连续转换模式
           LCALL  XCHML
           LCALL  TRSER

           MOV    R2,      #04H
           MOV    R3,      #0F0H
           MOV    R0,      #30H



READ4:     MOV    A,       #02H                   ;设置comunication寄存器02H,将对ADCCON寄存器进行设置
           LCALL  XCHML
           LCALL  TRSER
           MOV    A,       R3
           SWAP   A                               ;设置ADCCON寄存器选择通道N和它的工作范围。
           LCALL  XCHML
           LCALL  TRSER
           JB     AD_RDY,   $
           MOV    A,       #44H                   ;设置comunication寄存器44H,将对DATA寄存器进行读操作。
           LCALL  XCHML
           LCALL  TRSER

           LCALL  RESER                           ;读串口数据
           LCALL  XCHML                           ;交换高低位数据
           MOV    @R0,     A
           INC    R0
           INC    R3
           DJNZ   R2,      READ4                  ;将四个通道数据全部读完毕后,存储到RAM中。

;***********************************************************
;串口发送数据子程序
TRSER:     MOV    SBUF,    A
TRSER1:    JNB    TI,      TRSER1                 ;输出完否
           CLR    TI                              ;完了,清TI标志,以备下次发送
           RET
;***********************************************************
;串口接收数据子程序
RESER:     SETB   REN
RESER1:    JNB    RI,      RESER1                 ;接受完否
           MOV    A,       SBUF
           CLR    RI                              ;完了,清RI标志,以备下次接受
           RET
;***********************************************************
;高低位交换子程序
XCHML:     MOV    R5,      #08H
           MOV    R7,      A
           MOV    R6,      #00H
           CLR    C
XCHML1:    MOV    A,       R7
           RRC    A
           MOV    R7,      A
           MOV    A,       R6
           RLC    A
           MOV    R6,      A
           DJNZ   R5,      XCHML1
           RET

请帮忙说明到底是哪里不对?

相关帖子

沙发
njxmh| | 2007-10-11 16:21 | 只看该作者

自己对照文档一点点看吧,单步模拟,很快会出结果的

使用特权

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

本版积分规则

1

主题

1

帖子

1

粉丝