图4-46 是AD574和CPU原理性连接图。图中,来自CPU的IOR#和IOW#分别连接一个双端与非门的输入端,形成对AD574 ‘片使能’
CE信号的控制,当且仅当IOR#或IOW#有效时CE信号才有效。IOW#连接AD574的R/C#,利用IOW#信号在执行I/O写指令时发出负脉冲而在其它时刻均为高电平的特性,控制AD574的启动转换和数据读出。地址译码器将地址信号译码,它的Y1产生对AD574的片选择信号CS#。AD574的时序图说明,只有在CE、IOW#、CS#同时有效时,才能启动A/D转换;CE、IOR#、CS#同时有效时,才能读出A/D转换结果。这样,利用IOW#的非写即读特性,在执行OUT
(AD574地址),A 指令时就能使CE、IOW#、CS#同时有效,启动A/D转换。执行IN A, (AD574地址) 指令时就能使CE、IOR#、CS#同时有效,读出A/D转换结果。AD574的转换状态信号STS经过三态门连接数据总线的D0端,利用译码器的Y2控制三态门的输出。通过不断测试STS的状态,判断A/D转换是否结束,当读出STS状态为0时,表示转换结束,便可读取转换结果数据。驱动AD574转换的程序如下: OUT Y1,AL ; state AD574 to convert, ; the address of AD is Y1 STS1:IN AL,Y2 ; read the state of STS, ; the address of STS is Y2 TEST AL,01 ; conversion is over? JNZ STS1 ; not over MOV DX,Y1 ; data address of AD754 is Y1 IN AX,DX ; read the result … |