找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

MAX6675 51單片機(jī)程序及Proteus仿真

查看數(shù): 5841 | 評(píng)論數(shù): 8 | 收藏 2
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2020-4-10 18:11

正文摘要:

基于51單片機(jī)的MAX6675熱電偶采集程序及仿真

回復(fù)

ID:1069342 發(fā)表于 2023-4-1 11:18
QQ820270087 發(fā)表于 2020-6-22 15:36
//MAX31855 初始化函數(shù)
void MAX31855_Init(void)        //IO初始化
{

能提供具體電路圖和程序嗎?學(xué)習(xí)下,謝謝。
ID:205485 發(fā)表于 2022-4-13 10:41
現(xiàn)在有沒有比AD6675更便宜的方案呢?
ID:228452 發(fā)表于 2022-4-13 00:17

"// MAX31855 initialization function"
Is it for STM32 ?
ID:695384 發(fā)表于 2020-6-22 15:36
//MAX31855 初始化函數(shù)
void MAX31855_Init(void)        //IO初始化
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);        //使能PORTA時(shí)鐘
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);        //使能PORTC時(shí)鐘
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);        //使能PORTF時(shí)鐘


        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|
                                                  GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14;  //PF6 SCK,PF0~PF15 CS 設(shè)為推挽輸出;  
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP ;   //推挽輸出
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOF, &GPIO_InitStructure);        //初始化GPIO PF0~PF15

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;  //PF6 SCK,PF0~PF15 CS 設(shè)為推挽輸出;  
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP ;   //推挽輸出
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);        //初始化GPIO PF0~PF15

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽輸出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOC, &GPIO_InitStructure);        //初始化GPIO PF0~PF15
       
        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_5;
        //GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING ; //;PF7 MISO 設(shè)為浮空輸入 = GPIO_Mode_IPD ; //;PF7 MISO 設(shè)為下拉輸入 //GPIO_Mode_IPU 上拉輸入
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING ; //;PF7 MISO 設(shè)為浮空輸入
    GPIO_Init(GPIOC, &GPIO_InitStructure);        //初始化GPIOF 0,

//        GPIO_ResetBits(GPIOC,GPIO_Pin_0);
//        GPIO_SetBits(GPIOC,GPIO_Pin_1); //PC0 輸出高

    MAX_SCK1=0;  // PC0
        MAX_SCK2=0;  // PC0
        MAX_SCK3=0;  // PC0
        MAX_SCK4=0;  // PC0
        MAX_SCK5=0;  // PC0
        MAX_SCK6=0;  // PC0
        MAX_SCK7=0;  // PC0
        MAX_SCK8=0;  // PC0
        MAX_SCK9=0;  // PC0
        MAX_SCK10=0;  // PC0
        MAX_SCK11=0;  // PC0
        MAX_SCK12=0;  // PC0
        MAX_SCK13=0;  // PC0
        MAX_SCK14=0;  // PC0
        MAX_SCK15=0;  // PC0
        MAX_SCK16=0;  // PC0
        MAX_SCK17=0;  // PC0
               
    MAX_CS1=1; // PC1
    MAX_CS2=1;  // PC2
    MAX_CS3=1;  // PC3
    MAX_CS4=1;  // PC4
    MAX_CS5=1;  // PC5
    MAX_CS6=1;  // PF0
    MAX_CS7=1; // PC1
    MAX_CS8=1;  // PC2
    MAX_CS9=1;  // PC3
    MAX_CS10=1;  // PC4
    MAX_CS11=1;  // PC5
    MAX_CS12=1;  // PF0
        MAX_CS13=1; // PC1
    MAX_CS14=1;  // PC2
    MAX_CS15=1;  // PC3
    MAX_CS16=1;  // PC4
    MAX_CS17=1;  // PC5
}

void MAX31855_1_Read(void)
{
        int spi1;
        u32 SPI1_Data=0;
       
        MAX_CS1=0;
        delay_us(1);
    for(spi1=31; spi1>=0; spi1--)  //*也是同IIC的讀格式類似*/
        {                   
        MAX_SCK1=1;  //*第1位在CS被拉低之后產(chǎn)生,不需要時(shí)鐘,故在第1位將時(shí)鐘屏蔽       
        delay_us(1);                            
        if (MAX_MISO1) SPI1_Data|=((u32)1<<spi1);   //*第31個(gè)時(shí)鐘之后不再移位*/ //{ Dat_Out |= 1;}   
        MAX_SCK1=0;       
        delay_us(1);               
    }
        MAX_CS1=1;        //PC02,        Pin6   
        MAX31855_1.Data=SPI1_Data;            
    MAX31855_1.Thermocouple=((MAX31855_1.Data>>18)&0x1fff)*25;  //提取D31-D18,14位數(shù)據(jù)
    MAX31855_1.Internal=((MAX31855_1.Data>>4)&0x07ff)*625 ;  //提取D15-D4,12位數(shù)據(jù)  
}
ID:695384 發(fā)表于 2020-6-22 15:34
樓主寫的程序很不錯(cuò)&#128077;
不過這個(gè)max6675很貴的,而且要停產(chǎn)了,
我推薦用的max31855K 性能很好
ID:253896 發(fā)表于 2020-5-13 17:05
為什么給的溫度是760,讀出來是770呢
ID:494607 發(fā)表于 2020-4-11 17:53
songxia8013 發(fā)表于 2020-4-10 20:43
左側(cè)是770,為什么右側(cè)是505呢?不應(yīng)該是一樣的嗎?好奇怪!

應(yīng)該發(fā)送的數(shù)據(jù)有問題,程序整體思路沒問題,但是沒時(shí)間搞了,有需要的話下載后調(diào)試下就好了,
ID:102963 發(fā)表于 2020-4-10 20:43
左側(cè)是770,為什么右側(cè)是505呢?不應(yīng)該是一樣的嗎?好奇怪。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表