No.36605 作者:xiao_die 邮件:zhy_2003_3_26@163.com ID:10469 登陆:12次 文章数:50篇 最后登陆IP:221.217.187.168 最后登陆:2004/11/2 17:19:56 注册:2003/3/24 11:18:03 财富:232 发帖时间:2003/7/9 14:39:09 发贴者IP:202.108.235.206 标题:xiao_die:请问:谁用过温度传感器AD7416! 摘要:No.36605请问:谁用过温度传感器AD7416! 问题:在数据处理程序怎样把读出来的数据变成两个字节的二进制数呢? (数据放在ADCH,ADCL中) 温度值寄存器 温度值寄存器是一个16位只读寄存器,它的高10位D15~D6由A/D转换器送来的数字量以补码格式储存,低6位D5~D0未用. 温度数据格式见表4(小数点在D8、D7之间)。该表中显示了A/D转换器的全部理论范围-128℃至+127℃。实际应用中,温度的测量范围将取决于器件的正常工作温度范围. 利用单片机测量温度: ad7416的地址A0A1A2为111: ADSCL BIT P1.1 ADSDL BIT P1.7 ............. ;程序初始化 ............ ;AD7416的采样参考程序: SAMPLE74:MOV ADCNUM,#8 ;连续采样8次 SEO74: MOV R6,#9EH ;片选AD7416的地址写操作 MOV R5,#1 ;选中配置寄存器 MOV R4,#28H ;给配置寄存器赋值 LCALL WRCOM ;三字节写操作 MOV R6,#10011110B MOV R5,#3 ;选中温度上限寄存器 MOV R4,#40H ;上限温度=64 LCALL WRCOM MOV R6,#10011110B MOV R5,#2 ;选中温度下限寄存器 MOV R4,#20H ;下限温度=32 LCALL WRCOM MOV R6,#10011110B MOV R5,#0 ;选中温度寄存器 LCALL WREXE ;两字节写操作 MOV DATA1,#10011110B ;片选AD7416.读操作 LCALL RDCOM ................ ;数据处理 ............... DJNZ ADCNUM,SE074 ;采样没完,返回 RET WRCIM: LCALL BEGIN ;三字节的写操作 MOV DATA1,R6 LCALL OUTBYTE ;输出字节 MOV DATA1,R5 LCALL OUTBYTE MOV DATA1,R4 LCALL OUTBYTE LCALL STOP RET WREXE: LCALL BEGIN ;两字节的写操作 MOV DATA1,R6 LCALL OUTBYTE MOV DATA1,R5 LCALL OUTBYTE LCALL STOP RET RDCOM: LCALL BEGIN ;读操作 LCALL OUTBYTE LCALL INBYTE ;输入字节 MOV ADCH,DATA1 LCALL NACK ;MCU使ADSDA数据线变为低电平 LCALL INBYTE MOV ADCL,DATA1 LCALL ACK ;MCU使ADSDA数据线变为高电平 LCALL STOP RET OUTBYTE: MOV R7,#8 ;输出字节 OE1: MOV A,DATA1 RLC A MOV ADSDA,C MOV DATA1,A LCALL CLOCK ......
>>返回讨论的主题
|