|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2009-1-1 20:37:58
|
显示全部楼层
//下面是MAX 6675 端口定义
DDRB.4 =1;
PORTB.4 =1; //定义第一个 MAX 6675 CS片 选端口(输出)
DDRB.6 =0;
PORTB.6 =0; //定义MAX 6675 SO端口(输入)
DDRB.7 =1;
PORTB.7 =0; //定义MAX 6675 SCK端口(输出)
}
void read_6675()
{
i=0;
dat_temp=0;
dat_6675=0;
//ready
PORTB.4 =0; //CS=0
//get D15-D0 from 6675
for(i=0;i<16;i++)
{
PORTB.7 =0; //SCK=0
PORTB.7 =1; //SCK=1
dat_temp=dat_temp<<1;
if(PINB.6==1)
dat_temp=dat_temp|0x01;
}
PORTB.4 =1; //CS=1
PORTB.7 =0; //SCK=0
dat_temp = (dat_temp & 0x7fff)>>3; //Drop dummy sign bit D15
dat_temp>>= 2; //Accuracy xxxx.xx -- yyyy
dat_6675 = dat_temp;
lcd_disp(); //显示
}
******************
搞定了,大家注意一下哈
if(PINB.6==1)
dat_temp=dat_temp|0x01;
应该用pinb.6检测,而不是
if(PORTB.6==1)
dat_temp=dat_temp|0x01;
改了这个就好用了,希望对今后的朋友有所帮助。
后经调试,把11.0592晶振去掉用内部的1M晶振也很好用。
本贴被 ytspc 编辑过,最后修改时间:2009-01-01,21:00:49. |
|