数据子程序 ;==== ADC0832 读数据子程序====РADCONV:РSETB ADDI ;初始化通道选择РNOPРNOPРCLR ADCS ;拉低/CS 端РNOPРNOPРSETB ADCLK ;拉高 CLK 端РNOPРNOPРCLR ADCLK ;拉低 CLK 端,形成下降沿РMOV A,BРMOV C,ACC.1 ; 确定取值通道选择РMOV ADDI,CРNOPРNOPРSETB ADCLK ;拉高 CLK 端РNOPРNOPРCLR ADCLK ;拉低 CLK 端,形成下降沿 2РMOV A,BРMOV C,ACC.0 ; 确定取值通道选择РMOV ADDI,CРРNOPРNOPРSETB ADCLK ;拉高 CLK 端РNOPРNOPРCLR ADCLK ;拉低 CLK 端,形成下降沿 3РSETB ADDIРNOPРNOPРMOV R7,#8 ;准备送下后 8 个时钟脉冲РAD_1:РMOV C,ADDO ;接收数据РMOV ACC.0,CРRL A ;左移一次РSETB ADCLKРNOPРNOPРCLR ADCLK ;形成一次时钟脉冲РNOPРNOPРDJNZ R7,AD_1 ;循环 8 次РMOV C,ADDO ;接收数据?接收数据的最后一位РMOV ACC.0,CРMOV B,AРMOV R7,#8РAD_13:РMOV C,ADDO ;接收数据РMOV ACC.0,CРRR A ;右移一次РSETB ADCLKРNOPРNOPРCLR ADCLK ;形成一次时钟脉冲РNOPРNOPРDJNZ R7,AD_13 ;循环 8 次РCJNE A,B,ADCONV ;数据校验РSETB ADCS ;拉高/CS 端РCLR ADCLK ; 拉低 CLK 端РРSETB ADDO ; 拉高数据端,回到初始状态РRETР;==== 子程序结束 ====