本帖最后由 刘前辈 于 2011-3-7 09:31 编辑
书上的连接方法都挺笨的,都是并行连接。
其实很简单的事,——串行连接!什么片子都不用加,直接连2根线就结了。
咱这篇论文,毕业设计优秀。当年查遍互联网资料都是复杂连接。所以,绝对原创。现在能查到的串行连接方式相关论文,都是俺这篇论文多少年以后才出来的了。嘻嘻……
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 ;程序结束
哪位高手看出这里程序有点小BUG?有没有差了一位(应该减1)?咱那时本科毕业,没研究出来。实验数据和表头显示总差一位。当然现在知道原因了。
、
|