⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rd_ad2543.txt

📁 c51源程序总结
💻 TXT
字号:
硬件:小弟请教关于TLC1543的问题 [scott99] [21次] 01-9-29 上午 10:45:06
我在读取TLC1543内部标准数据:Vref+,Vref-,应当为3FF和000,实际数据总是在一定范围
内波动,而不是标准数据。请问各位是否遇到过这种情况,是否正常?


我用过2543的,一般只有+1或-1的波动。1543应该不会太远吧。另外把你的驱动程序给我一份好吗?我有个1543放在家里没用,我想利用它一下。 [傲气雄鹰] [4次] 01-9-29 下午 01:45:27 
我用过2543的,一般只有+1或-1的波动。1543应该不会太远吧。另外把你的驱动程序给我一
份好吗?我有个1543放在家里没用,我想利用它一下。 

我用的是龙版主的1543驱动程序,挺好用,只有+1,-1的波动,但是在2543上改造后,很不稳,对照时序也没找出毛病,不知你能不能贴出你的程序,让我们学学。 [半夜开车] [5次] 01-9-29 下午 06:27:53 

RD_AD2543: [傲气雄鹰] [14次] 01-9-29 下午 07:04:31 
DATA_SAM:    ; 转换结果存数据缓冲区TESTDATA中  
    PUSH 00H
    PUSH 01H
    PUSH 02H
    PUSH 03H
    MOV    R0,#TESTDATA           ;  数据缓冲区首地址#TESTDATA->R0
    MOV    R1,#00001100B    ;  0通道方式/通道数据
    LCALL  RD_AD2543           ;第一次读取的转换结果可能不准确,丢弃。
    MOV    R1,#00011100B   ;  1通道方式/通道数据
    LCALL  RD_AD2543           ;送1通道方式/通道数据并读第0通道转换结果
    0
    MOV    @R0,02H         ;R2    ;  转换结果存放到数据缓冲区,下同
    INC    R0
    MOV    @R0,03H         ;R3    ;  转换结果存放到数据缓冲区
    INC    R0
    MOV    R1,#00101100B   ;  2通道方式/通道数据
    
    CLR I_U
    LCALL DELAY02S
    LCALL DELAY02S
    LCALL  RD_AD2543           ;送2通道方式/通道数据并读第1通道转换结果
    1
    SETB I_U
    LCALL DELAY02S
    LCALL DELAY02S
    
    MOV    @R0,02H         ;R2    ;  转换结果存放到数据缓冲区,下同
    INC    R0
    MOV    @R0,03H         ;R3    ;  转换结果存放到数据缓冲区
    INC    R0
        MOV    R1,#00111100B   ;  3通道方式/通道数据
    LCALL  RD_AD2543           ;送3通道方式/通道数据并读第2通道转换结果
    2
    MOV    @R0,02H  ;R2    ;  转换结果存放到数据缓冲区,下同
    INC    R0
    MOV    @R0,03H  ;R3
    INC    R0
    MOV    R1,#4CH   ;  4通道方式/通道数据
    LCALL  RD_AD2543           ;  送4通道方式/通道数据并读第3通道转换结果
    3
    MOV    @R0,02H  ;R2    ;  转换结果存放到数据缓冲区,下同
    INC    R0
    MOV    @R0,03H  ;R3
    INC    R0
    MOV    R1,#5CH   ;  5通道方式/通道数据
    LCALL  RD_AD2543           ;  送5通道方式/通道数据并读第4通道转换结果
    4
    MOV    @R0,02H  ;R2    ;  转换结果存放到数据缓冲区,下同
    INC    R0
    MOV    @R0,03H  ;R3
    INC    R0
    MOV    R1,#6CH   ;  6通道方式/通道数据
    LCALL  RD_AD2543           ;送6通道方式/通道数据并读第5通道转换结果
    5
    MOV    @R0,02H  ;R2    ;  转换结果存放到数据缓冲区,下同
    INC    R0
    MOV    @R0,03H  ;R3
    INC    R0
    MOV    R1,#7CH   ;  7通道方式/通道数据
    LCALL  RD_AD2543           ;送7通道方式/通道数据并读第6通道转换结果
    6
    MOV    @R0,02H  ;R2    ;  转换结果存放到数据缓冲区,下同
    INC    R0
    MOV    @R0,03H  ;R3
    INC    R0
    MOV    R1,#8CH   ;  8通道方式/通道数据
    LCALL  RD_AD2543           ;送8通道方式/通道数据并读第7通道转换结果
    7
    MOV    @R0,02H  ;R2    ;  转换结果存放到数据缓冲区,下同
    INC    R0
    MOV    @R0,03H  ;R3
    INC    R0
    MOV    R1,#9CH   ;  9通道方式/通道数据
    LCALL  RD_AD2543           ;送9通道方式/通道数据并读第8通道转换结果
    8
    MOV    @R0,02H  ;R2    ;  转换结果存放到数据缓冲区,下同
    INC    R0
    MOV    @R0,03H  ;R3
    INC    R0
    MOV    R1,#0ACH   ;  10通道方式/通道数据
    LCALL  RD_AD2543           ;送10通道方式/通道数据并读第9通道转换结果
    9
    MOV    @R0,02H  ;R2    ;  转换结果存放到数据缓冲区,下同
    INC    R0
    MOV    @R0,03H  ;R3
    INC    R0
    MOV    R1,#0CH   ;  0通道方式/通道数据
    LCALL  RD_AD2543           ;送0通道方式/通道数据并读第10通道转换结果
    10
    MOV    @R0,02H  ;R2    ;  转换结果存放到数据缓冲区。0~10共11个
    INC    R0
    MOV    @R0,03H  ;R3
    INC    R0
    POP 03H
    POP 02H
    POP 01H
    POP 00H
    RET
 ;供数据采集摸块“DATA_SAM”调用。
RD_AD2543:    ; 转换结果R3,R2中格式为标准16进制
    PUSH 04H
    PUSH ACC
    PUSH PSW
    PUSH 01H
    PUSH 00H
    MOV    A,R1             ; 把方式/通道控制字放到A
    CLR    CS               ; 设置片选为低
    JB ACC.1,LSB
MSB:    MOV    R4,#08           ; 先读高8位
LOP25431:
    MOV    C,DOUT           ; 读转换结果
    RLC    A                ; A寄存器左移,移入结果数据位,移出方式/通
道控制位
    MOV    DIN,C            ; 输出方式/通道位
    SETB    CLK              ; 设置I/O时钟为高
    CLR    CLK         ; 清I/O时钟
    DJNZ    R4,LOP25431     ; R4不为0,则反回LOP25431
    MOV    R2,A             ; 转换结果的高8位放到R2中
    MOV    A,R1             ; 复位A寄存器
    JB ACC.1,RETURN
LSB:    MOV    R4,#08H          ; 再读低4位
LOP25432:
    MOV    C,DOUT           ;  读转换结果
    RLC    A                ;  A寄存器左移,移入结果数据位,
    MOV DIN,A
    SETB    CLK              ;  设置I/O时钟为高
    CLR CLK
    DJNZ    R4,LOP25432          ;  R4不为0,则反回LOP25432
    MOV    R3,A             ;  转换结果的低4位放到R3中
    MOV A,R1
    JB ACC.1,MSB    
RETURN:    MOV A,R3    ;将R3,R2中格式转换为标准16进制
    SWAP A
    ANL A,#0FH
    MOV R0,A    ;0-3位
    MOV A,R2    ;4-7位
    SWAP A
    ANL A,#0F0H
    ORL A,R0
    MOV R0,A
    MOV A,R2    ;8-11位
    SWAP A
    ANL A,#00FH
    MOV R1,A
    MOV R2,00H
    MOV R3,01H    ;已将R3,R2中格式转换为标准16进制
    POP 00H
    POP 01H
    POP PSW
    POP ACC
    POP 04H
    RET 

 
点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2001 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -