|
51單片機(jī)用max6675采集熱電偶溫度 已調(diào)試成功 帶電路
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (27.82 KB, 下載次數(shù): 127)
下載附件
2018-3-25 01:46 上傳
0.png (57.8 KB, 下載次數(shù): 96)
下載附件
2018-3-25 01:47 上傳
單片機(jī)源程序如下:
- #include "include.h"
- #include "12864.h"
- unsigned int i,j;
- unsigned char Flag_connect;
- unsigned int MAX6675_Temp;
- /********************************************************************
- /********************************************************************
- 主函數(shù)
- *********************************************************************/
- 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; //讀出數(shù)據(jù)的D2位是熱電偶掉線標(biāo)志位,該位為1表示掉線,該位為0表示連接
- Flag_connect=Flag_connect>>2; //MAX6675是否在線
- t = t<<1; //讀出來的數(shù)據(jù)的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黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
見2樓
|
評分
-
查看全部評分
|