if (dout==1) x |= 0x01表示如何dout==1那么x的值为x和0x01的逻辑或
x在内存中以二进制存储,占1字节即为0b00000000,b后边数字不确定,但只能为0或1,0x80是16进制,在内存中以二进制存储为0b10000000,x和0x80相与,使x的后7位清0;x |= 0x01:等价于x=x|0x01;使x最后一位置1;
呵呵 还是俺来为你解答吧:参考程序:
AD7705转换器的编程方法
WT_ D EQUP1.0
DRDY EQUP1.1
RD_D EQUP1.2
SCLK EQUP1.3
⑴AD7705转换子程序
功能:对AD7705复位初始化,进行模数转换。
入口: (R4)(R5)= AD7705转换的16位数据。
KK0:MOVA, #0FFH 复位
LCALL OUTCOM
MOVA, #0FFH 复位
LCALL OUTCOM
MOVA, #0FFH 复位
LCALL OUTCOM
MOVA, #0FFH 复位
LCALL OUTCOM
MOVA, #20H 控制字 选通信寄存器 下次写时钟寄存器
LCALL OUTCOM
MOVA, #04H 写时钟寄存器
LCALL OUTCOM
MOVA, #10H 选通信寄存器 下次写设置寄存器
LCALL OUTCOM
MOVA, #44H 写设置寄存器
LCALL OUTCOM
SETBDRDY
KK1:JB DRDY,KK1 查询状态线
AD7705: NOP
MOVA ,#38H 选通信寄存器 下次读数据寄存器
LCALL OUTCOM
KK2: SETBDRDY
JB DRDY,KK2
LCALL INDATA
RET
呵呵 给加分吗? 有点少啊 给的话 还可以帮助你
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)