找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1609|回复: 9
收起左侧

大佬帮我看看单片机程序哪里有问题啊,标红色的部分说语法错误!

[复制链接]
回帖奖励 2 黑币 回复本帖可获得 2 黑币奖励! 每人限 1 次
ID:724449 发表于 2020-4-24 11:32 | 显示全部楼层 |阅读模式
define uchar unsigned char
#define uint unsigned int
uchar a;
//定时串口输出温度的百位十位个位
uchar ge;
uchar shi;
uchar bai;
//gipo定义
sbit d = P3^7;
//第1个max6675引脚定义
sbit  SO  = P1.0;                                 
sbit  SCK = P3^5;                                 
sbit  CS1  = P3^4;
//第2个max6675引脚定义
sbit  SO_2  = P1^1;                                 
sbit  SCK_2 = P3^5;                                 
sbit  CS1_2  = P3^4;
//第3个max6675引脚定义
sbit  SO_3  = P1^2;                                 
sbit  SCK_3 = P3^5;                                 
sbit  CS1_3  = P3^4;
//第4个max6675引脚定义
sbit  SO4  = P1^3;                                 
sbit  SCK_4 = P3^5;                                 
sbit  CS1_4  = P3^4;
//第5个max6675引脚定义
sbit  SO5  = P1^4;                                 
sbit  SCK_5 = P3^5;                                 
sbit  CS1_5  = P3^4;
//第6个max6675引脚定义
sbit  SO6  = P1^5;                                 
sbit  SCK_6 = P2^2;                                 
sbit  CS1_6  = P3^4;
//第7个max6675引脚定义
sbit  SO7  = P1^6;                                 
sbit  SCK_7 = P3^5;                                 
sbit  CS1_7  = P3^4;
//第8个个max6675引脚定义
sbit  SO8  = P1^7;                                 
sbit  SCK_8 = P3^5;                                 
sbit  CS1_8  = P3^4;
//定义状态与温度变量
unsigned char Flag_connect;
unsigned int MAX6675_Temp;
unsigned int tt1,tt2,tt3,tt4,tt5,tt6,tt7,tt8;
//延时函数声明
void delay(unsigned int z);
//--------------------------------------
//串口输出换行
void say_CR_LF()
{
        SBUF = 13; while (TI == 0); TI = 0;
        SBUF = 10; while (TI == 0); TI = 0;
}
//--------------------------------------
//串口输出温度
void say_yeah()
{
        SBUF = bai;    while (TI == 0); TI = 0;
        SBUF = shi;    while (TI == 0); TI = 0;
        SBUF = ge;    while (TI == 0); TI = 0;
        say_CR_LF();
}
//--------------------------------------
//串口输出hello字符串用于测试
void say_hello()
{
        SBUF = 'H'; while (TI == 0); TI = 0;
        SBUF = 'e'; while (TI == 0); TI = 0;
        SBUF = 'l'; while (TI == 0); TI = 0;
        SBUF = 'l'; while (TI == 0); TI = 0;
        SBUF = 'o'; while (TI == 0); TI = 0;
        SBUF = '!'; while (TI == 0); TI = 0;
        say_CR_LF();
}
//--------------------------------------
//第一个max6675获取温度函数
unsigned int MAX6675_ReadReg(void)
{
        unsigned char i;   
        unsigned int dat;
        i   = 0;   
        dat = 0;   
        CS1  = 0;
        SCK = 0;   
        //从max6675循环获取16位数据
        for(i=0; i<16; i++)                //get D15-D0 from 6675  
        {      
                SCK = 1;     
                dat = dat<<1;   
                if( SO==1 )   
                        dat = dat|0x01;   
                SCK = 0;   
        }
        CS1 = 1;  
  //返回获取的值        
        return dat;   
}


//第2个max6675获取温度
//区别只是改变gpio
unsigned int MAX6675_ReadReg_2(void)
{
        unsigned char i;   
        unsigned int dat;
        i   = 0;   
        dat = 0;   
        CS1_2  = 0;
        SCK_2 = 0;     
        for(i=0; i<16; i++)                //get D15-D0 from 6675  
        {      
                SCK_2 = 1;     
                dat = dat<<1;   
                if( SO_2==1 )   
                        dat = dat|0x01;   
                SCK_2 = 0;   
        }
        CS1_2 = 1;   
        return dat;   
}


//第3个max6675获取温度
//区别只是改变gpio
unsigned int MAX6675_ReadReg_3(void)
{
        unsigned char i;   
        unsigned int dat;
        i   = 0;   
        dat = 0;   
        CS1_3  = 0;
        SCK_3 = 0;     
        for(i=0; i<16; i++)                //get D15-D0 from 6675  
        {      
                SCK_3 = 1;     
                dat = dat<<1;   
                if( SO_3==1 )   
                        dat = dat|0x01;   
                SCK_3 = 0;   
        }
        CS1_3 = 1;   
        return dat;  
//第4个max6675获取温度函数
unsigned int MAX6675_ReadReg_5(void)
{
        unsigned char i;   
        unsigned int dat;
        i   = 0;   
        dat = 0;   
        CS1_4 = 0;
        SCK _4= 0;   
        //从max6675循环获取16位数据
        for(i=0; i<16; i++)                //get D15-D0 from 6675  
        {      
                SCK_4 = 1;     
                dat = dat<<1;   
                if( SO_4==1 )   
                        dat = dat|0x01;   
                SCK_4 = 0;   
        }
        CS1_4 = 1;  
  //返回获取的值        
        return dat;   
//第5个max6675获取温度函数
unsigned int MAX6675_ReadReg_6(void)
{
        unsigned char i;   
        unsigned int dat;
        i   = 0;   
        dat = 0;   
        CS1_5  = 0;
        SCK_5 = 0;   
        //从max6675循环获取16位数据
        for(i=0; i<16; i++)                //get D15-D0 from 6675  
        {      
                SCK_5 = 1;     
                dat = dat<<1;   
                if( SO_5==1 )   
                        dat = dat|0x01;   
                SCK_5 = 0;   
        }
        CS1_5 = 1;  
  //返回获取的值        
        return dat;   
//第6个max6675获取温度函数
unsigned int MAX6675_ReadReg_7(void)
{
        unsigned char i;   
        unsigned int dat;
        i   = 0;   
        dat = 0;   
        CS1_6  = 0;
        SCK_6= 0;   
        //从max6675循环获取16位数据
        for(i=0; i<16; i++)                //get D15-D0 from 6675  
        {      
                SCK_6= 1;     
                dat = dat<<1;   
                if( SO_6==1 )   
                        dat = dat|0x01;   
                SCK_6 = 0;   
        }
        CS1_6 = 1;  
  //返回获取的值        
        return dat;   
//第7个max6675获取温度函数
unsigned int MAX6675_ReadReg(void)
{
        unsigned char i;   
        unsigned int dat;
        i   = 0;   
        dat = 0;   
        CS1_7  = 0;
        SCK_7 = 0;   
        //从max6675循环获取16位数据
        for(i=0; i<16; i++)                //get D15-D0 from 6675  
        {      
                SCK_7 = 1;     
                dat = dat<<1;   
                if( SO_7==1 )   
                        dat = dat|0x01;   
                SCK_7 = 0;   
        }
        CS1_7 = 1;  
  //返回获取的值        
        return dat;   
//第8个max6675获取温度函数
unsigned int MAX6675_ReadReg_8(void)
{
        unsigned char i;   
        unsigned int dat;
        i   = 0;   
        dat = 0;   
        CS1_8 = 0;
        SCK_8 = 0;   
        //从max6675循环获取16位数据
        for(i=0; i<16; i++)                //get D15-D0 from 6675  
        {      
                SCK_8 = 1;     
                dat = dat<<1;   
                if( SO_8==1 )   
                        dat = dat|0x01;   
                SCK_7 = 0;   
        }
        CS1_8 = 1;  
  //返回获取的值        
        return dat;   
}
//--------------------------------------
//串口初始化
void init()
{
        SCON = 0x50;     
        PCON &= 0x7F;
        TMOD = 0x20;     
        TH1 = 0xfd;      //波特率 9600bps @ 11.0592MHz
        TL1 = 0xfd;
        TR1 = 1;         


        ES = 1;         
        EA = 1;  
        //串口输出测试字符串hello
        //say_hello();
}


//--------------------------------------
//主函数
void main()
{
        unsigned int t;
        //串口初始化
        init();
        //开定时器
        TI = 1;
        a = '4';
        //主循环
        while(1)
        {
                //第1个max6675获取温度
                t=MAX6675_ReadReg();
                Flag_connect=t&0x04;                        
                Flag_connect=Flag_connect>>2;         


                t = t<<1;                                                   
                t = t>>4;
                tt1 = t/4;        
    //获取温度的个十百位用于输出               
//                bai = ((MAX6675_Temp%1000)/100)+'0';
//                shi = ((MAX6675_Temp%100)/10)+'0';
//                ge = ((MAX6675_Temp%10))+'0';
//                //串口输出
//    say_yeah();
                //第2个max6675获取温度
                t=MAX6675_ReadReg_2();
                Flag_connect=t&0x04;                        
                Flag_connect=Flag_connect>>2;         


                t = t<<1;                                                   
                t = t>>4;
                tt2 = t/4;
    //获取温度的个十百位用于输出               
//                bai = ((MAX6675_Temp%1000)/100)+'0';
//                shi = ((MAX6675_Temp%100)/10)+'0';
//                ge = ((MAX6675_Temp%10))+'0';
                //串口输出
    //say_yeah();
                //第3个max6675获取温度
                t=MAX6675_ReadReg_3();
                Flag_connect=t&0x04;                        
                Flag_connect=Flag_connect>>2;         


                t = t<<1;                                                   
                t = t>>4;
                tt3 = t/4;        
   //获取温度的个十百位用于输出               
//                bai = ((MAX6675_Temp%1000)/100)+'0';
//                shi = ((MAX6675_Temp%100)/10)+'0';
//                ge = ((MAX6675_Temp%10))+'0';
                //串口输出
    //say_yeah();
                //延时
                //第4个max6675获取温度
                t=MAX6675_ReadReg_4();
                Flag_connect=t&0x04;                        
                Flag_connect=Flag_connect>>2;         


                t = t<<1;                                                   
                t = t>>4;
                tt1 = t/4;        
    //获取温度的个十百位用于输出               
//                bai = ((MAX6675_Temp%1000)/100)+'0';
//                shi = ((MAX6675_Temp%100)/10)+'0';
//                ge = ((MAX6675_Temp%10))+'0';
//                //串口输出
//    say_yeah();
        //第5个max6675获取温度
                t=MAX6675_ReadReg_5();
                Flag_connect=t&0x04;                        
                Flag_connect=Flag_connect>>2;         


                t = t<<1;                                                   
                t = t>>4;
                tt1 = t/4;        
    //获取温度的个十百位用于输出               
//                bai = ((MAX6675_Temp%1000)/100)+'0';
//                shi = ((MAX6675_Temp%100)/10)+'0';
//                ge = ((MAX6675_Temp%10))+'0';
//                //串口输出
//    say_yeah();
       //第6个max6675获取温度
                t=MAX6675_ReadReg_6();
                Flag_connect=t&0x04;                        
                Flag_connect=Flag_connect>>2;         


                t = t<<1;                                                   
                t = t>>4;
                tt1 = t/4;        
    //获取温度的个十百位用于输出               
//                bai = ((MAX6675_Temp%1000)/100)+'0';
//                shi = ((MAX6675_Temp%100)/10)+'0';
//                ge = ((MAX6675_Temp%10))+'0';
//                //串口输出
//    say_yeah();
       //第7个max6675获取温度
                t=MAX6675_ReadReg_7();
                Flag_connect=t&0x04;                        
                Flag_connect=Flag_connect>>2;         


                t = t<<1;                                                   
                t = t>>4;
                tt1 = t/4;        
    //获取温度的个十百位用于输出               
//                bai = ((MAX6675_Temp%1000)/100)+'0';
//                shi = ((MAX6675_Temp%100)/10)+'0';
//                ge = ((MAX6675_Temp%10))+'0';
//                //串口输出
//    say_yeah();
      //第8个max6675获取温度
                t=MAX6675_ReadReg_8();
                Flag_connect=t&0x04;                        
                Flag_connect=Flag_connect>>2;         


                t = t<<1;                                                   
                t = t>>4;
                tt1 = t/4;        
    //获取温度的个十百位用于输出               
//                bai = ((MAX6675_Temp%1000)/100)+'0';
//                shi = ((MAX6675_Temp%100)/10)+'0';
//                ge = ((MAX6675_Temp%10))+'0';
//                //串口输出
//    say_yeah();
               
                MAX6675_Temp = (tt1+tt2+tt3+tt4+tt5+tt6+tt7+tt8)/8;        //求温度均值
    //获取温度的个十百位用于输出               
                bai = ((MAX6675_Temp%1000)/100)+'0';
                shi = ((MAX6675_Temp%100)/10)+'0';
                ge = ((MAX6675_Temp%10))+'0';
                //串口输出
    say_yeah();
                delay(1000);
                delay(1000);
        }     
}


//延时函数
void delay(unsigned int z)
{
        unsigned int x , y;
        for(x = z; z > 0; z--)
        {
                for(y = 120; y > 0; y--);        
        }
}
//--------------------------------------
//串口接收中断函数
void ser() interrupt 4
{
     if (TI == 1)
                         TI = 0;
     if (RI == 1)
                 {
       RI = 0;
}    }
//======================================

回复

使用道具 举报

ID:213173 发表于 2020-4-24 15:43 | 显示全部楼层
错漏多处,属抄写、复制不细心。现在可以通过编辑。
  1. #include <reg51.H>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar a;
  5. //定时串口输出温度的百位十位个位
  6. uchar ge;
  7. uchar shi;
  8. uchar bai;
  9. //gipo定义
  10. sbit d = P3^7;
  11. //第1个max6675引脚定义
  12. sbit  SO  = P1^0;                                 
  13. sbit  SCK = P3^5;                                 
  14. sbit  CS1  = P3^4;
  15. //第2个max6675引脚定义
  16. sbit  SO_2  = P1^1;                                 
  17. sbit  SCK_2 = P3^5;                                 
  18. sbit  CS1_2  = P3^4;
  19. //第3个max6675引脚定义
  20. sbit  SO_3  = P1^2;                                 
  21. sbit  SCK_3 = P3^5;                                 
  22. sbit  CS1_3  = P3^4;
  23. //第4个max6675引脚定义
  24. sbit  SO_4  = P1^3;                                 
  25. sbit  SCK_4 = P3^5;                                 
  26. sbit  CS1_4  = P3^4;
  27. //第5个max6675引脚定义
  28. sbit  SO_5  = P1^4;                                 
  29. sbit  SCK_5 = P3^5;                                 
  30. sbit  CS1_5  = P3^4;
  31. //第6个max6675引脚定义
  32. sbit  SO_6  = P1^5;                                 
  33. sbit  SCK_6 = P2^2;                                 
  34. sbit  CS1_6  = P3^4;
  35. //第7个max6675引脚定义
  36. sbit  SO_7  = P1^6;                                 
  37. sbit  SCK_7 = P3^5;                                 
  38. sbit  CS1_7  = P3^4;
  39. //第8个个max6675引脚定义
  40. sbit  SO_8  = P1^7;                                 
  41. sbit  SCK_8 = P3^5;                                 
  42. sbit  CS1_8  = P3^4;
  43. //定义状态与温度变量
  44. unsigned char Flag_connect;
  45. unsigned int MAX6675_Temp;
  46. unsigned int tt1,tt2,tt3,tt4,tt5,tt6,tt7,tt8;
  47. //延时函数声明
  48. void delay(unsigned int z);
  49. //--------------------------------------
  50. //串口输出换行
  51. void say_CR_LF()
  52. {
  53.         SBUF = 13; while (TI == 0); TI = 0;
  54.         SBUF = 10; while (TI == 0); TI = 0;
  55. }
  56. //--------------------------------------
  57. //串口输出温度
  58. void say_yeah()
  59. {
  60.         SBUF = bai;    while (TI == 0); TI = 0;
  61.         SBUF = shi;    while (TI == 0); TI = 0;
  62.         SBUF = ge;    while (TI == 0); TI = 0;
  63.         say_CR_LF();
  64. }
  65. //--------------------------------------
  66. //串口输出hello字符串用于测试
  67. /*
  68. void say_hello()
  69. {
  70.         SBUF = 'H'; while (TI == 0); TI = 0;
  71.         SBUF = 'e'; while (TI == 0); TI = 0;
  72.         SBUF = 'l'; while (TI == 0); TI = 0;
  73.         SBUF = 'l'; while (TI == 0); TI = 0;
  74.         SBUF = 'o'; while (TI == 0); TI = 0;
  75.         SBUF = '!'; while (TI == 0); TI = 0;
  76.         say_CR_LF();
  77. }*/
  78. //--------------------------------------
  79. //第一个max6675获取温度函数
  80. unsigned int MAX6675_ReadReg_1(void)
  81. {
  82.         unsigned char i;   
  83.         unsigned int dat;
  84.         i   = 0;   
  85.         dat = 0;   
  86.         CS1  = 0;
  87.         SCK = 0;   
  88.         //从max6675循环获取16位数据
  89.         for(i=0; i<16; i++)                //get D15-D0 from 6675  
  90.         {      
  91.                 SCK = 1;     
  92.                 dat = dat<<1;   
  93.                 if( SO==1 )   
  94.                         dat = dat|0x01;   
  95.                 SCK = 0;   
  96.         }
  97.         CS1 = 1;  
  98.   //返回获取的值        
  99.         return dat;   
  100. }


  101. //第2个max6675获取温度
  102. //区别只是改变gpio
  103. unsigned int MAX6675_ReadReg_2(void)
  104. {
  105.         unsigned char i;   
  106.         unsigned int dat;
  107.         i   = 0;   
  108.         dat = 0;   
  109.         CS1_2  = 0;
  110.         SCK_2 = 0;     
  111.         for(i=0; i<16; i++)                //get D15-D0 from 6675  
  112.         {      
  113.                 SCK_2 = 1;     
  114.                 dat = dat<<1;   
  115.                 if( SO_2==1 )   
  116.                         dat = dat|0x01;   
  117.                 SCK_2 = 0;   
  118.         }
  119.         CS1_2 = 1;   
  120.         return dat;   
  121. }


  122. //第3个max6675获取温度
  123. //区别只是改变gpio
  124. unsigned int MAX6675_ReadReg_3(void)
  125. {
  126.         unsigned char i;   
  127.         unsigned int dat;
  128.         i   = 0;   
  129.         dat = 0;   
  130.         CS1_3  = 0;
  131.         SCK_3 = 0;     
  132.         for(i=0; i<16; i++)                //get D15-D0 from 6675  
  133.         {      
  134.                 SCK_3 = 1;     
  135.                 dat = dat<<1;   
  136.                 if( SO_3==1 )   
  137.                         dat = dat|0x01;   
  138.                 SCK_3 = 0;   
  139.         }
  140.         CS1_3 = 1;   
  141.         return dat;  
  142. }
  143. //第4个max6675获取温度函数
  144. unsigned int MAX6675_ReadReg_4(void)
  145. {
  146.         unsigned char i;   
  147.         unsigned int dat;
  148.         i   = 0;   
  149.         dat = 0;   
  150.         CS1_4 = 0;
  151.         SCK_4= 0;   
  152.         //从max6675循环获取16位数据
  153.         for(i=0; i<16; i++)                //get D15-D0 from 6675  
  154.         {      
  155.                 SCK_4 = 1;     
  156.                 dat = dat<<1;   
  157.                 if( SO_4==1 )   
  158.                         dat = dat|0x01;   
  159.                 SCK_4 = 0;   
  160.         }
  161.         CS1_4 = 1;  
  162.   //返回获取的值        
  163.         return dat;
  164. }  
  165. //第5个max6675获取温度函数
  166. unsigned int MAX6675_ReadReg_5(void)
  167. {
  168.         unsigned char i;   
  169.         unsigned int dat;
  170.         i   = 0;   
  171.         dat = 0;   
  172.         CS1_5  = 0;
  173.         SCK_5 = 0;   
  174.         //从max6675循环获取16位数据
  175.         for(i=0; i<16; i++)                //get D15-D0 from 6675  
  176.         {      
  177.                 SCK_5 = 1;     
  178.                 dat = dat<<1;   
  179.                 if( SO_5==1 )   
  180.                         dat = dat|0x01;   
  181.                 SCK_5 = 0;   
  182.         }
  183.         CS1_5 = 1;  
  184.   //返回获取的值        
  185.         return dat;
  186. }  
  187. //第6个max6675获取温度函数
  188. unsigned int MAX6675_ReadReg_6(void)
  189. {
  190.         unsigned char i;   
  191.         unsigned int dat;
  192.         i   = 0;   
  193.         dat = 0;   
  194.         CS1_6  = 0;
  195.         SCK_6= 0;   
  196.         //从max6675循环获取16位数据
  197.         for(i=0; i<16; i++)                //get D15-D0 from 6675  
  198.         {      
  199.                 SCK_6= 1;     
  200.                 dat = dat<<1;   
  201.                 if( SO_6==1 )   
  202.                 dat = dat|0x01;   
  203.                 SCK_6 = 0;   
  204.         }
  205.         CS1_6 = 1;  
  206.         //返回获取的值        
  207.         return dat;
  208. }  
  209. //第7个max6675获取温度函数
  210. unsigned int MAX6675_ReadReg_7(void)
  211. {
  212.         unsigned char i;   
  213.         unsigned int dat;
  214.         i   = 0;   
  215.         dat = 0;   
  216.         CS1_7  = 0;
  217.         SCK_7 = 0;   
  218.         //从max6675循环获取16位数据
  219.         for(i=0; i<16; i++)                //get D15-D0 from 6675  
  220.         {      
  221.                 SCK_7 = 1;     
  222.                 dat = dat<<1;   
  223.                 if( SO_7==1 )   
  224.                 dat = dat|0x01;   
  225.                 SCK_7 = 0;   
  226.         }
  227.         CS1_7 = 1;  
  228.         //返回获取的值        
  229.         return dat;
  230. }   
  231. //第8个max6675获取温度函数
  232. unsigned int MAX6675_ReadReg_8(void)
  233. {
  234.         unsigned char i;   
  235.         unsigned int dat;
  236.         i   = 0;   
  237.         dat = 0;   
  238.         CS1_8 = 0;
  239.         SCK_8 = 0;   
  240.         //从max6675循环获取16位数据
  241.         for(i=0; i<16; i++)                //get D15-D0 from 6675  
  242.         {      
  243.                 SCK_8 = 1;     
  244.                 dat = dat<<1;   
  245.                 if( SO_8==1 )   
  246.                         dat = dat|0x01;   
  247.                 SCK_7 = 0;   
  248.         }
  249.         CS1_8 = 1;  
  250.   //返回获取的值        
  251.         return dat;   
  252. }
  253. //--------------------------------------
  254. //串口初始化
  255. void init()
  256. {
  257.         SCON = 0x50;     
  258.         PCON &= 0x7F;
  259.         TMOD = 0x20;     
  260.         TH1 = 0xfd;      //波特率 9600bps @ 11.0592MHz
  261.         TL1 = 0xfd;
  262.         TR1 = 1;         


  263.         ES = 1;         
  264.         EA = 1;  
  265.         //串口输出测试字符串hello
  266.         //say_hello();
  267. }


  268. //--------------------------------------
  269. //主函数
  270. void main()
  271. {
  272.         unsigned int t;
  273.         //串口初始化
  274.         init();
  275.         //开定时器
  276.         TI = 1;
  277.         a = '4';
  278.         //主循环
  279.         while(1)
  280.         {
  281.                 //第1个max6675获取温度
  282.                 t=MAX6675_ReadReg_1();
  283.                 Flag_connect=t&0x04;                        
  284.                 Flag_connect=Flag_connect>>2;         


  285.                 t = t<<1;                                                   
  286.                 t = t>>4;
  287.                 tt1 = t/4;        
  288.     //获取温度的个十百位用于输出               
  289. //                bai = ((MAX6675_Temp%1000)/100)+'0';
  290. //                shi = ((MAX6675_Temp%100)/10)+'0';
  291. //                ge = ((MAX6675_Temp%10))+'0';
  292. //                //串口输出
  293. //    say_yeah();
  294.                 //第2个max6675获取温度
  295.                 t=MAX6675_ReadReg_2();
  296.                 Flag_connect=t&0x04;                        
  297.                 Flag_connect=Flag_connect>>2;         


  298.                 t = t<<1;                                                   
  299.                 t = t>>4;
  300.                 tt2 = t/4;
  301.     //获取温度的个十百位用于输出               
  302. //                bai = ((MAX6675_Temp%1000)/100)+'0';
  303. //                shi = ((MAX6675_Temp%100)/10)+'0';
  304. //                ge = ((MAX6675_Temp%10))+'0';
  305.                 //串口输出
  306.     //say_yeah();
  307.                 //第3个max6675获取温度
  308.                 t=MAX6675_ReadReg_3();
  309.                 Flag_connect=t&0x04;                        
  310.                 Flag_connect=Flag_connect>>2;         


  311.                 t = t<<1;                                                   
  312.                 t = t>>4;
  313.                 tt3 = t/4;        
  314.    //获取温度的个十百位用于输出               
  315. //                bai = ((MAX6675_Temp%1000)/100)+'0';
  316. //                shi = ((MAX6675_Temp%100)/10)+'0';
  317. //                ge = ((MAX6675_Temp%10))+'0';
  318.                 //串口输出
  319.     //say_yeah();
  320.                 //延时
  321.                 //第4个max6675获取温度
  322.                 t=MAX6675_ReadReg_4();
  323.                 Flag_connect=t&0x04;                        
  324.                 Flag_connect=Flag_connect>>2;         


  325.                 t = t<<1;                                                   
  326.                 t = t>>4;
  327.                 tt1 = t/4;        
  328.     //获取温度的个十百位用于输出               
  329. //                bai = ((MAX6675_Temp%1000)/100)+'0';
  330. //                shi = ((MAX6675_Temp%100)/10)+'0';
  331. //                ge = ((MAX6675_Temp%10))+'0';
  332. //                //串口输出
  333. //    say_yeah();
  334.         //第5个max6675获取温度
  335.                 t=MAX6675_ReadReg_5();
  336.                 Flag_connect=t&0x04;                        
  337.                 Flag_connect=Flag_connect>>2;         


  338.                 t = t<<1;                                                   
  339.                 t = t>>4;
  340.                 tt1 = t/4;        
  341.     //获取温度的个十百位用于输出               
  342. //                bai = ((MAX6675_Temp%1000)/100)+'0';
  343. //                shi = ((MAX6675_Temp%100)/10)+'0';
  344. //                ge = ((MAX6675_Temp%10))+'0';
  345. //                //串口输出
  346. //    say_yeah();
  347.        //第6个max6675获取温度
  348.                 t=MAX6675_ReadReg_6();
  349.                 Flag_connect=t&0x04;                        
  350.                 Flag_connect=Flag_connect>>2;         


  351.                 t = t<<1;                                                   
  352.                 t = t>>4;
  353.                 tt1 = t/4;        
  354.     //获取温度的个十百位用于输出               
  355. //                bai = ((MAX6675_Temp%1000)/100)+'0';
  356. //                shi = ((MAX6675_Temp%100)/10)+'0';
  357. //                ge = ((MAX6675_Temp%10))+'0';
  358. //                //串口输出
  359. //    say_yeah();
  360.        //第7个max6675获取温度
  361.                 t=MAX6675_ReadReg_7();
  362.                 Flag_connect=t&0x04;                        
  363.                 Flag_connect=Flag_connect>>2;         


  364.                 t = t<<1;                                                   
  365.                 t = t>>4;
  366.                 tt1 = t/4;        
  367.     //获取温度的个十百位用于输出               
  368. //                bai = ((MAX6675_Temp%1000)/100)+'0';
  369. //                shi = ((MAX6675_Temp%100)/10)+'0';
  370. //                ge = ((MAX6675_Temp%10))+'0';
  371. //                //串口输出
  372. //    say_yeah();
  373.       //第8个max6675获取温度
  374.                 t=MAX6675_ReadReg_8();
  375.                 Flag_connect=t&0x04;                        
  376.                 Flag_connect=Flag_connect>>2;         


  377.                 t = t<<1;                                                   
  378.                 t = t>>4;
  379.                 tt1 = t/4;        
  380.     //获取温度的个十百位用于输出               
  381. //                bai = ((MAX6675_Temp%1000)/100)+'0';
  382. //                shi = ((MAX6675_Temp%100)/10)+'0';
  383. //                ge = ((MAX6675_Temp%10))+'0';
  384. //                //串口输出
  385. //    say_yeah();
  386.                
  387.                 MAX6675_Temp = (tt1+tt2+tt3+tt4+tt5+tt6+tt7+tt8)/8;        //求温度均值
  388.     //获取温度的个十百位用于输出               
  389.                 bai = ((MAX6675_Temp%1000)/100)+'0';
  390.                 shi = ((MAX6675_Temp%100)/10)+'0';
  391.                 ge = ((MAX6675_Temp%10))+'0';
  392.                 //串口输出
  393.     say_yeah();
  394.                 delay(1000);
  395.                 delay(1000);
  396.         }     
  397. }


  398. //延时函数
  399. void delay(unsigned int z)
  400. {
  401.         unsigned int x , y;
  402.         for(x = z; z > 0; z--)
  403.         {
  404.                 for(y = 120; y > 0; y--);        
  405.         }
  406. }
  407. //--------------------------------------
  408. //串口接收中断函数
  409. void ser() interrupt 4
  410. {
  411. if (TI == 1)
  412. TI = 0;
  413. if (RI == 1)
  414. {
  415. RI = 0;
  416. }
  417. }
复制代码
回复

使用道具 举报

ID:70069 发表于 2020-4-24 15:54 | 显示全部楼层
少了好几个}号吧
回复

使用道具 举报

ID:70069 发表于 2020-4-24 15:55 | 显示全部楼层
还没看到头文件
回复

使用道具 举报

ID:215444 发表于 2020-4-24 16:12 | 显示全部楼层
差个 "}" ,
unsigned int MAX6675_ReadReg_5(void)
{

}
回复

使用道具 举报

ID:452950 发表于 2020-4-24 16:22 | 显示全部楼层
返回值后面少了个括号吧
回复

使用道具 举报

ID:600952 发表于 2020-4-26 00:18 | 显示全部楼层
少了几个}吧,不过这种错误编译器会有明显标志吧(比如变红加框之类)
回复

使用道具 举报

ID:724449 发表于 2020-4-27 12:48 | 显示全部楼层
wulin 发表于 2020-4-24 15:43
错漏多处,属抄写、复制不细心。现在可以通过编辑。

谢谢指导
回复

使用道具 举报

ID:724449 发表于 2020-4-27 12:49 | 显示全部楼层
qujiuhe 发表于 2020-4-26 00:18
少了几个}吧,不过这种错误编译器会有明显标志吧(比如变红加框之类)

应该是的
回复

使用道具 举报

ID:724449 发表于 2020-4-27 15:17 | 显示全部楼层
wulin 发表于 2020-4-24 15:43
错漏多处,属抄写、复制不细心。现在可以通过编辑。

早些看到你这个回复就好了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表