51单片机用max6675采集热电偶温度 已调试成功 带电路
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include "include.h"
- #include "12864.h"
- unsigned int i,j;
- unsigned char Flag_connect;
- unsigned int MAX6675_Temp;
- /********************************************************************
- /********************************************************************
- 主函数
- *********************************************************************/
- int max6675();
- void InitTimer0(void);
- void main()
- {
- unsigned int t;
- InitTimer0();
- Ini_Lcd(); //初始化液晶
- Write_Str ( 0, 0, "温度: " );
- // unsigned char cnt = 11;
- while(1)
- {
- t=MAX6675_ReadReg();
- Flag_connect=t&0x04; //读出数据的D2位是热电偶掉线标志位,该位为1表示掉线,该位为0表示连接
- Flag_connect=Flag_connect>>2; //MAX6675是否在线
- t = t<<1; //读出来的数据的D3~D14是温度值
- t = t>>4;
- MAX6675_Temp = t/4; //测得的温度单位是0.25,所以要乘以0.25(即除以4)才能得到以度为单位的温度值
-
- for(t=0; t<200; t++) //显示温度
- {
- if(Flag_connect==0)
- LCD_DispDec ( 4, 0,MAX6675_Temp, 3, 0 );
- }
-
- }
- }
- void Timer0Interrupt(void) interrupt 1
- {
- TF0=0;
- TH0=0xfc;
- TL0=0x18;
- i++;
- if(i==500)
- { i=0;
- Key_Flag = 1;
- }
- }
- void InitTimer0(void)
- {
- TMOD = 0x01;
- TH0 = 0xfc;
- TL0 = 0x18;
-
- ET0 = 1;
- TR0 = 1;
- EA = 1;
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
见2楼
|