⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 水温控制系统 (1).lst

📁 基于单片机的水温控制的论文设计
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   __温控制系统__1_                                                      12/06/2008 20:27:06 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE __温控制系统__1_
OBJECT MODULE PLACED IN .\水温控制系统 (1).obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\代码库\水温控制系统 (1).c BROWSE DEBUG OBJECTEXTEND PRINT(.\水温控制系统
                    - (1).lst) OBJECT(.\水温控制系统 (1).obj)

line level    source

   1          
   2          #include "Thermomete.h"
*** WARNING C318 IN LINE 2 OF ..\代码库\水温控制系统 (1).c: can't open file 'Thermomete.h'
   3          
   4          sbit DQ=P1^1;//定义数据通信端口
*** ERROR C202 IN LINE 4 OF ..\代码库\水温控制系统 (1).C: 'P1': undefined identifier
   5          bit  Negative=0;//温度负值标志位
   6          
   7          void delay_us(unsigned int x);//延时1us函数
   8          void delay(unsigned int t);//延时函数
   9          void lcd_code(unsigned char lcdcode);//向液晶写一个命令的函数
  10          void lcd_data(unsigned char lcddata);//向液晶写一个数据的函数
  11          void init_lcd(void);//初始化液晶屏函数
  12          void delay_ms(unsigned int x);//延时1ms函数
  13          void display_char(unsigned char *displaychar);//显示字符串函数
  14          void display_tem(float f);//显示温度值函数 
  15          void Reset(void);//DS18B20复位函数
  16          void Built(void);//自制摄氏温度符号函数
  17          unsigned char read_data(void);//读一个字节数据函数
  18          void write_data(unsigned char value);//写一个字节数据函数
  19          float Read_Temperature(void);//读取温度并转换函数
  20          float Set_tem(void);//设置一个我们需要的温度
  21          void keyvaule(void);//读取键盘函数
  22          bit  FunctionKey_Flag=0,ChooseKey_Flag_add=0,ChooseKey_Flag_subb=0,ReturnKey_Flag=0;//定义功能键和选择键加
             -、减标志位
  23          bit  Return=0,Error=0;
  24          sbit  p16=P1^6;
*** ERROR C202 IN LINE 24 OF ..\代码库\水温控制系统 (1).C: 'P1': undefined identifier
  25          float num_2=0;
  26          unsigned char num_0=0,num_1=0,num;
  27          
  28          void main(void)
  29          {
  30   1            float temp,temp_1;  
  31   1             EA=0;
*** ERROR C202 IN LINE 31 OF ..\代码库\水温控制系统 (1).C: 'EA': undefined identifier
  32   1             init_lcd();
  33   1             Built();
  34   1             lcd_code(0x80);
  35   1            display_char("CurTem:");
  36   1             delay(50);
  37   1             lcd_code(0xc0);
  38   1             display_char("Set_Tem:");
  39   1            
  40   1                 
  41   1        aa:     while(1)
  42   1             {
  43   2                   temp=Read_Temperature();//温度转换
  44   2                   lcd_code(0x88);
  45   2                   display_tem(temp);//显示当前温度
  46   2                   //delay_us(10); 
  47   2                   if(temp_1<=temp)
  48   2                   {
  49   3                          p16=0;          
C51 COMPILER V7.09   __温控制系统__1_                                                      12/06/2008 20:27:06 PAGE 2   

*** ERROR C202 IN LINE 49 OF ..\代码库\水温控制系统 (1).C: 'p16': undefined identifier
  50   3                   }
  51   2                   else
  52   2                   {
  53   3                         p16=1;
*** ERROR C202 IN LINE 53 OF ..\代码库\水温控制系统 (1).C: 'p16': undefined identifier
  54   3                    }
  55   2                   keyvaule();
  56   2                   if(FunctionKey_Flag==1)
  57   2                   {
  58   3                        break;
  59   3                   }
  60   2             }
  61   1            
  62   1                  
  63   1                        FunctionKey_Flag=0;
  64   1                        Set_tem();
  65   1                        
  66   1                        lcd_code(0xc9);
  67   1                        lcd_data(num_1+0x30);
  68   1                        lcd_data(num_0+0x30);
  69   1                        delay_us(20); 
  70   1                        temp_1=Set_tem();
  71   1                         goto aa;
  72   1                   
  73   1      
  74   1            
  75   1      }
  76          
  77          
  78          /***************延时1us函数*************/
  79          void delay_us(unsigned int x)
  80          {
  81   1            while(x--);
  82   1      }//x<255时,精确延时为(6*x)us
  83          
  84          
  85          
  86          /***************延时1ms函数*************/
  87          void delay_ms(unsigned int x)
  88          { 
  89   1             unsigned char i;
  90   1             while(x--)
  91   1             {
  92   2                     for(i=0;i<125;i++);
  93   2             }
  94   1      }
  95          
  96          
  97          /****************DS18B20复位函数******************/
  98          void  Reset(void)
  99          {
 100   1               unsigned char ch=0;
 101   1               DQ = 1;//DQ复位
*** ERROR C202 IN LINE 101 OF ..\代码库\水温控制系统 (1).C: 'DQ': undefined identifier
 102   1               delay_us(8);//延时
 103   1               DQ = 0;//DQ拉低
*** ERROR C202 IN LINE 103 OF ..\代码库\水温控制系统 (1).C: 'DQ': undefined identifier
 104   1               delay_us(80); //精确延时大于480us
 105   1               DQ = 1;
*** ERROR C202 IN LINE 105 OF ..\代码库\水温控制系统 (1).C: 'DQ': undefined identifier
 106   1               //控制器应该将数据单总线拉高,以便于在15~60uS后接收存在脉冲
C51 COMPILER V7.09   __温控制系统__1_                                                      12/06/2008 20:27:06 PAGE 3   

 107   1               delay_us(14);//延时,存在脉冲为一个60~240uS的低电平信号
 108   1               ch=DQ;//接收存在脉冲
*** ERROR C202 IN LINE 108 OF ..\代码库\水温控制系统 (1).C: 'DQ': undefined identifier
 109   1               delay(20);
 110   1      }    
 111          
 112          
 113          /****************读一个字节数据函数******************/
 114          unsigned char read_data(void)
 115          {
 116   1             unsigned char i;
 117   1             unsigned char value = 0;
 118   1             for (i=0;i<8;i++)
 119   1             {
 120   2                   DQ = 0; //给脉冲信号
*** ERROR C202 IN LINE 120 OF ..\代码库\水温控制系统 (1).C: 'DQ': undefined identifier
 121   2                       value=value>>1;//产生至少1uS的低电平,表示读时间的起始
 122   2                               DQ = 1; //给脉冲信号,在总线被释放后的15uS中DS18B20会发送内部数据位
*** ERROR C202 IN LINE 122 OF ..\代码库\水温控制系统 (1).C: 'DQ': undefined identifier
 123   2                   if(DQ)
*** ERROR C202 IN LINE 123 OF ..\代码库\水温控制系统 (1).C: 'DQ': undefined identifier
 124   2                               {
 125   3                        value=value|0x80;
 126   3                   }
 127   2                       delay_us(4);
 128   2             }
 129   1             return(value);
 130   1      }
 131          
 132          
 133          /****************写一个字节数据函数******************/
 134          void write_data(unsigned char value)
 135          {
 136   1              unsigned char i;
 137   1              for(i=0;i<8;i++)
 138   1              {
 139   2                  DQ=0;
*** ERROR C202 IN LINE 139 OF ..\代码库\水温控制系统 (1).C: 'DQ': undefined identifier
 140   2                      //写数据时间隙的前15uS总线需要是被控制器拉置低电平
 141   2                  DQ=value&0x01;
*** ERROR C202 IN LINE 141 OF ..\代码库\水温控制系统 (1).C: 'DQ': undefined identifier
 142   2                  delay_us(5);//芯片对总线数据的采样时间,采样时间在15~60uS
 143   2                  DQ=1;
*** ERROR C202 IN LINE 143 OF ..\代码库\水温控制系统 (1).C: 'DQ': undefined identifier
 144   2                  value=value>>1;
 145   2              }//字节的读写是从低位开始的
 146   1              delay(4);
 147   1      }
 148          
 149          
 150          /****************读取温度并转换函数******************/
 151          //DS18b20一线工作协议流程为:
 152          //复位 发送ROM指令 发送存储器指令 数据通信
 153          float Read_Temperature(void)
 154          {
 155   1              unsigned char first_byte,second_byte,num=0;
 156   1              float Temperature_value;
 157   1              unsigned int buf;
 158   1              Reset();//复位
 159   1              write_data(0xcc);//跳跃ROM指令,跳过读序列号
 160   1              write_data(0x44);//启动温度转换
 161   1              delay_ms(750);//延时大于转换时间
C51 COMPILER V7.09   __温控制系统__1_                                                      12/06/2008 20:27:06 PAGE 4   

 162   1              Reset();//复位
 163   1              write_data(0xcc);//跳跃ROM指令,跳过读序列号
 164   1              write_data(0xbe);//从RAM中读数据,前两个字节为温度值
 165   1              first_byte=read_data();//读取温度值低八位
 166   1              second_byte=read_data();//读取温度值高八位
 167   1              //Reset();//复位中止读数
 168   1              num=second_byte&0x80;//判断温度值的正负
 169   1              buf=second_byte;
 170   1              buf=buf<<8;//温度值高八位存放在整型变量buf高八位
 171   1              buf=buf|first_byte;//相或运算将温度值低八位存放在整型变量buf低八位
 172   1              if(num!=0)
 173   1              {
 174   2                   buf=(~buf)+1;
 175   2                   Negative=1;
 176   2              }//温度值为负数,取反后加一
 177   1              Temperature_value=buf*0.0625;//分辨率为12位,LSB=0.0625
 178   1              return(Temperature_value);
 179   1      }
 180          
 181          
 182          
 183          /*****************设置温度值***********************/
 184          float Set_tem(void)
 185          {
 186   1             
 187   1             
 188   1             lcd_code(0xc9);
 189   1             lcd_data(num_1+0x30);
 190   1             lcd_data(num_0+0x30); 
 191   1             while(1)
 192   1             {
 193   2                      keyvaule();  
 194   2                      if(ChooseKey_Flag_subb==1)
 195   2               {
 196   3                              ChooseKey_Flag_subb=0;
 197   3                              if(num_0==0)
 198   3                              {
 199   4                                    num_0=9;
 200   4                              }
 201   3                              else
 202   3                              {
 203   4                                     num_0--;
 204   4                              }//减选择键按下,判断计时器是否越界
 205   3                              lcd_code(0xc9);
 206   3                              lcd_data(num_1+0x30);
 207   3                              lcd_data(num_0+0x30);
 208   3                      }
 209   2                      else if(ChooseKey_Flag_add==1)
 210   2                      {
 211   3                              ChooseKey_Flag_add=0;
 212   3                              if(num_0==9)
 213   3                              {
 214   4                                     num_0=0;
 215   4                              }
 216   3                              else
 217   3                              {
 218   4                                     num_0++;
 219   4                              }//加选择键按下,判断计时器是否越界
 220   3                              lcd_code(0xc9);
 221   3                              lcd_data(num_1+0x30);
 222   3                              lcd_data(num_0+0x30);
 223   3                     }
C51 COMPILER V7.09   __温控制系统__1_                                                      12/06/2008 20:27:06 PAGE 5   

 224   2                     else if(FunctionKey_Flag==1)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -