需外接任何的外围元件,这里为降低电源耦合噪声,在其电源引脚和接地端之前接入了1只容量为0.1μf的电容。 max6675与at89c2051单片机的接口电路如图5所示。 由于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位数据 se
reqcount++; if((freqcount%2)==1) ioclr =(1<<9);//test else ioset =(1<<9);//test } //vicintenable = bakvic; vicvectaddr = 0x00; }一开始我输入的是50hz,测p0.9是25hz很准,但数值跳变大!然后我用t0中断信号直接给t1.0捕获,数值还是跳变