|
- #include <STC15F2K60S2.H>
- #include "max6675.h"
- #include "shuma.h"
- #include "keys.h"
- #include "ds18b20.h"
- #include <intrins.h>
- extern uchar shuma[4];
- extern uchar wendu;
- extern uchar wen[4];
- extern uchar keyshu;
- //void Delay1000ms() //@12.000MHz
- //{
- // unsigned char i, j, k;
- // _nop_();
- // _nop_();
- // i = 46;
- // j = 153;
- // k = 245;
- // do
- // {
- // do
- // {
- // while (--k);
- // } while (--j);
- // } while (--i);
- //}
- void main()
- {
-
- MAX6675Main();
- Delay1000ms();
- while(1)
- {
- keyscan();
- if(keyshu%2==0)
- {
- MAX6675Main();
- Delay1000ms();
- }
- else if(keyshu%2==1)
- {
- wendu=temget();
- wen[3]=11;
- wen[2]=0;
- wen[1]=wendu/10;
- wen[0]=wendu%10;
- shumaxianshi(wen,4);
- Delay1000ms();
- }
- }
- }
復制代碼- #include <STC15F2K60S2.H>
- #include <intrins.h>
- #include "max6675.h"
- #include "shuma.h"
- uchar shuma[4];
- //void MAX6675Main()
- //{
- // float wendu2;
- // float wendu[4];
- //
- // float wendu3;
- // int wendu1=0;
- //
- // uchar i=0;
- // uchar j=0;
- //
- // /* wendu1= wendu1+1;
- // wendu2 = MAX_SPI();
- // wendu3 = wendu2 * 10;
- // wendu1 = (int) wendu3;
- // Writebyte(0x23) ;//′?μY1μ?????
- // ShowDate(wendu1); */
- // for ( j=0;j<3;j++)
- // {
- // wendu[j] = MAX_SPI();
- // delayMAX();//250ms
- // }
- // wendu2 = 0.5 * wendu[2] + 0.25 * wendu[1] + 0.125 * wendu[0];
- // wendu3 = wendu2 * 10;
- // wendu1 = (int) wendu3;
- // shuma[3]=10;
- // shuma[2]=wendu1/100;
- // shuma[1]=wendu1/10%10;
- // shuma[0]=wendu1%10;
- // shumaxianshi(shuma,4);
- //}
- //float MAX_SPI()
- //{
- //
- // float Temp_3;
- // uint Temp_2;
- // uchar i=0;
- // Temp_2=0 ;
- //
- // _nop_();_nop_();
- // CS = 0;
- // for ( i = 0; i<16; i++)
- // {
- // SEK = 0;
- // _nop_();
- // _nop_();
- // _nop_();
- // SEK = 1;
- // if(SO == 1)
- // {
- // Temp_2 = Temp_2 | (0x01);
- // }
- // else
- // {
- // Temp_2 = Temp_2 | (0x00);
- // }
- //
- // Temp_2 <<= 1;
- //
- // }
- // CS = 1;
- // // Temp_2>>=1;
- // Temp_2>>=4;
- // Temp_3 = Temp_2 * 0.25;
- // return (Temp_3);
- //}
- //void delayMAX(void) //?ó2? 0us
- //{
- // unsigned char a,b,c;
- // for(c=19;c>0;c--)
- // for(b=20;b>0;b--)
- // for(a=130;a>0;a--);
- //}
- /************************************************************/
- uint max6675_readRawValue(void)
- {
- uint tmp=0;
- uint i;
- SEK=0;
- CS=0;//cs低
- /*按位讀取電平*/
- for(i=0;i<16;i++)
- {
- // tmp<<=1;//按位左移
- /*創建一個沿,按沿讀取PB7的端口電平*/
- SEK=1;
- Delay10us();
- if(SO)tmp|=0x0001;
- //printf("tmp%d---:%d\n",i,tmp);/*這是為了檢查錯誤時按位打印每個數*/
- tmp<<=1;//按位左移
- SEK=0;
- Delay10us();
- }
- CS=1;//cs高
- if (tmp&0X04)
- {
- tmp = 0; //未檢測到熱電偶
- // printf("未檢測到熱電偶\n");//測試用
- }
- else
- {
- tmp<<=1;//去掉D15位
- tmp>>=4;//去掉D0、1、2位
- }
- return tmp;
- }
-
- uint max6675_readTemperature(void)
- {
- uint d;
- uint i,S;
- S=2.142857;//實驗數,用溫水和熱水 環境測得的一個實際差量
- // Delay300ms();
- DelayMs(1000);
- d=max6675_readRawValue();
-
- i=d*1023.75/4095/S/1.85;
- if(i>150)
- {
- i=d*1023.75/4095/S*1.5;
- }
- else if(i>680)
- {
- i=999;
- }
- return i;
- }
- /*****************************************************************/
- //uint MAX6675_ReadReg(void)
- //{
- // unsigned char i;
- // unsigned int dat;
- //
- // i = 0;
- // dat = 0;
- //
- // CS = 0;
- // SEK = 0;
- //
- // for(i=0; i<16; i++) //get D15-D0 from 6675
- // {
- // SEK = 1;
- // dat = dat<<1;
- // if( SO==1 )
- // dat = dat|0x01;
- // SEK = 0;
- // }
- // CS = 1;
- //
- // return dat;
- //}
- void MAX6675Main()
- {
- uint wendu;
- wendu=max6675_readTemperature();
- shuma[3]=10;
- shuma[2]=wendu/100%10;
- shuma[1]=wendu/10%10;
- shuma[0]=wendu%10;
- shumaxianshi(shuma,4);
- }
- void Delay10us() //@12.000MHz
- {
- unsigned char i;
- _nop_();
- _nop_();
- i = 27;
- while (--i);
- }
- void Delay300ms() //@12.000MHz
- {
- unsigned char i, j, k;
- _nop_();
- _nop_();
- i = 14;
- j = 174;
- k = 224;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
- void DelayMs(unsigned int i) //一個延時函數,這個函數在11.0592M晶振下的延時時間大概為1ms
- {
- unsigned int j,k;
- for(j=i; j>0; j--)
- for(k=114; k>0; k--);
- }
復制代碼
|
-
-
-
程序.rar
2021-5-27 13:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
47.63 KB, 下載次數: 21, 下載積分: 黑幣 -5
|