单片K型热电偶放大与数字转换器MAX6675
MAX6675与AT89C2051单片机的接口电路如图5所示。
本文链接地址:http://www.oyaya.net/fanwen/view/155422.html
由于AT89C2051不具备SPI总线接口,故这里采用模拟SPI总线的方法来实现与MAX6675的接口。其中P1.0模拟SPI的数据输入端(MISO),P1.1模拟SPI的串行时钟输出端SCK,P1.2模拟SPI的从机选择端SSB。下面给出相应的温度值读取程序及数据转换程序。
;温度值读取程序
;位定义
SO BIT T1.0 ;数据输入
CS BIT P1.1 ;从机选择
SCK BIT P1.2 ;时钟
;数据字节定义
DATAH DATA 30H ;读取数据高位
DATAL DATA 31H ;读取数据低位
TDATAH DATA 32H ;温度高位
TDATAL DATA 33H ;温度低位
;读温度值子程序
READY:CLR CS ;停止转换并输出数据
CLR CLK ;时钟变低
MOV R2,#08H
READH:MOV C,SO
RLC A ;读D15~D8高8位数据
SETB CLK
NOP
CLR CLK
DJNZ R2,READH
MOV DATAH,A;将读取的高8位数据保存
MOV R2,#08H
READL:MOV C,SO ;读D7~D0低8位数据
RLC A
SETB CLK
NOP
CLR CLK
DJNZ R2,READL
MOV DATAL,A;将读取的低8位数据保存
SETB CS
;启动另一次转换过程
RET
;数据转换子程序,将读得的16位数据转换为12位温度值,去掉无用的位。
D16T12:MOV A,DATAL
CLR C
RLC A
MOV DATAL,A
;数据整体右移1位,
MOV A,DATAH;以去掉D15伪志位
RLC A
SWAP A ;将DATAH中的数据高低4位互换
《单片K型热电偶放大与数字转换器MAX6675(第3页)》