主机控制DS2450完成A/D转换一般必须经过以下几个步骤:初始化使DS2450准备好、发ROM功能命令和相应的64位光刻ROM数据选中特定芯片、写入工作方式控制字和高/低限值、发转换控制命令、读取转换值及状态。
例如,将D通道设定为5.1V输入范围、转换精度为12位、高报警门限为3.0V(96H)、低报警门限为2.0V(64H)、通道A和B作为报警输出、转换结果放在如下30H和31H的子程序CTLAD中。
;--------------------------
CTLAD:LCALLINIT;发复位脉冲并接收存在脉冲
MOVA,#0CCH
LCALLWRITE;发“跳过ROM”命令
;设置4个通道工作方式控制字,写入存储器地址从0008H开始
FSKZ:MOVA,#55H
LCALLWRITE;发“写存储器”命令
MOVA,#08H
LCALLWRITE;发低8位地址
MOVA,#00H
LCALLWRITE;发高8位地址
MOVA,#0C0H
;A通道漏极开路数字输出方式
LCALLWRITE;发A通道工作方式低字节
MOVA,#00H
;与报警、输入范围等设置无关
LCALLWRITE;发A通道工作方式高字节
MOVA,#0C0H
;B通道漏极开路数字输出方式
LCALLWRITE;发B通道工作方式低字节
MOVA,#00H
;与报警、输入范围等设置无关
LCALLWRITE;发B通道工作方式高字节
MOVA,#01H
;C通道不用,可随意设置
LCALLWRITE;发C通道工作方式低字节
MOVA,#00H
;C通道不用,可随意设置
LCALLWRITE;发C通道工作方式高字节
MOVA,#0CH
;D通道12位A/D转换方式
LCALLWRITE;发D通道工作方式低字节
MOVA,#0DH
;5.1V输入范围,允许高低限报警
LCALLWRITE;发D通道工作方式高字节
;设置D通道高/低限值报警值,写入存储器地址从0016H开始
BJSZ:LCALLINIT;发复位脉冲并接收存在脉冲
MOVA,#0CCH
LCALLWRITE;发“跳过ROM”命令
MOVA,#55H
LCALLWRITE;发“写存储器”命令
MOVA,#16H
LCALLWRITE;发低8位地址
MOVA,#00H
LCALLWRITE;发高8位地址
MOVA,#64H
;低门限报警值2.0V(64H)
LCALLWRITE;送D通道低门限存储器
MOVA,#96H
;高门限报警值3.0V(96H)
LCALLWRITE
;送转换控制字,启动A/D转换。
QDZH:LCALLINIT;发复位脉冲并接收存在脉冲
MOVA,#0CCH
LCALLWRITE;发“跳过ROM”命令
MOVA,#3CH
LCALLWRITE;发“转换控制”命令字
MOVA,#08H
;仅D通道参与转换
LCALLWRITE;发通道选择控制字
MOVA,#40H
;D通道转换前预置为全0
LCALLWRITE;发预置数据控制字
;读取D通道转换结果,放在31H、30H