max6675得到的数据老是有错误,请高手指导一下
做了一个max6675测温的验证电路,将max6675测得的数据通过p1.2输入到单片机中,并通过单片机p2和p3口上所接的16个led显示出来,但是老是得不到正确的数据,并且当热电偶断路时D2位应该由0变化为1报警,也不变,搞了很久都搞不定,我怀疑是读数据时在clk上产生的时钟信号是不是有问题,造成数据串行输入到单片机中时出现了数据错位,还请各位大侠多多指导,不胜感谢!!
org 0030H
CS BIT P1.0 ;片选
CLK BIT P1.1 ;时钟
SO BIT P1.2 ;数据输入
MAIN: L4:CLR CS
CLR CLK
MOV R7,#08H
RD_DATAH:MOV C,SO
RLC A
SETB CLK
NOP
CLR CLK
DJNZ R7,RD_DATAH
MOV 40H,A ;高8位测试数据存于40H中
MOV R7,#08H
RD_DATAL:MOV C,SO
RLC A
SETB CLK
NOP
CLR CLK
DJNZ R7,RD_DATAL
MOV 41H,A ;低8位测试数据存于41H中
setb CLK
SETB CS
lcall delay
lcall delay
lcall delay
mov p2,41h ;低8位数据显示在P2上的8个led上
mov p3,40h ;高8位数据显示在P3上的8个led上
ljmp main
DELAY:MOV R2,#70 ;延时70ms子程序
LOOP2:MOV R3,#250
LOOP1:NOP
NOP
DJNZ R3,LOOP1
DJNZ R2,LOOP2
RET
end
发表时间:2009年8月25日18:42:27