4位半A/D转换器ICL7135与8031单片机的接口方法 ICL7135A/D转换器由于其成本低、分辨率(14位)高而获得广泛应用。本实验采用了由它构成的面板表。为将面板显示数据送入8031单片机,利用7135的串行输出数据功能和8031的T0计数器来实现简单的接口方法。 图1是7135的转换时序图。BUSY引脚电平为高表示转换开始,前10001个脉冲是积分阶段,以后所记录的脉冲数即为Vi 对应值。Vi最大为20000个脉冲,相当于二进制14位,因此16位计数器T0足够用来记录Vi 值。由于积分阶段前10001个脉冲与Vi值无关,所以T0计数应从-10001开始。这样当7135积分段结束时,T0计数器溢出清零,并继续记录以后的脉冲数,当转换结束BUSY变为无效时,低电平自动关闭T0,(见图2),这时T0记录的就是Vi值。
T7135.ASM是8031以查询方式采集数据时的子程序。10进制10001等于16进制2711H,用T0溢出值减去这个数,为10000-2711=D8EFH,即—10001值。程序如下:
T7135.ASM L0: MOV TMOD, #0DH ;T0按模式1操作 MOV TCON, #00H ;关闭T0 L1: MOV TH0, #0D8H ;T0置初值 MOV TL0, #0EFH JB P3.2, $ ;寻找BUSY无效点 SETB TR0 ;打开T0 JNB P3.2, $ ;等待BUSY有效 JB P3.2, $ ;等待BUSY无效 CLR TR0 ;关闭T0 RET ;程序结束
这是查询测试程序,如果采用中断就更简单了。
|