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

📄 tempsend.lst

📁 个人单片机入门程序集合 。很适合刚学单片机的人。用的是keil proteus
💻 LST
字号:
C51 COMPILER V7.20   TEMPSEND                                                              08/15/2007 15:37:07 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE TEMPSEND
OBJECT MODULE PLACED IN tempsend.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE tempsend.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #include<intrins.h>
   3          #define uint unsigned int
   4          #define uchar unsigned char
   5          #define send_bus P0     /**********************定义PT2262发射引脚P2口的低四位******/
   6          sbit DQ=P2^0;
   7          
   8          uchar  temp,tem10sb,tem01sb,temxsb;
   9          dlay(int a)
  10          {
  11   1         while(--a);
  12   1      
  13   1      
  14   1      }
  15          
  16          
  17          
  18          reset(void)
  19          {
  20   1         unsigned char x=0;
  21   1         DQ = 1;    //DQ复位
  22   1         dlay(8);  //稍做延时
  23   1         DQ = 0;    //单片机将DQ拉低
  24   1         dlay(80); //精确延时 大于 480us
  25   1         DQ = 1;    //拉高总线
  26   1         dlay(14);
  27   1         x=DQ;      //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
  28   1         dlay(20);
  29   1      }
  30          //读一个字节
  31          unsigned char read_byte(void)
  32          {
  33   1        unsigned char i=0;
  34   1        unsigned char dat = 0;
  35   1        for (i=8;i>0;i--)
  36   1        {
  37   2           DQ = 0; // 给脉冲信号
  38   2           dat>>=1;
  39   2           DQ = 1; // 给脉冲信号
  40   2           if(DQ)
  41   2              dat|=0x80;        /*LSB to MSB*/
  42   2           dlay(4);
  43   2         }
  44   1         return(dat);
  45   1      }
  46          
  47          //写一个字节
  48          write_byte(unsigned char dat)
  49          {
  50   1         unsigned char i=0;
  51   1         for (i=8; i>0; i--)
  52   1         {
  53   2            DQ = 0;
  54   2            DQ = dat&0x01;
  55   2            dlay(5);
C51 COMPILER V7.20   TEMPSEND                                                              08/15/2007 15:37:07 PAGE 2   

  56   2            DQ = 1;
  57   2            dat>>=1;
  58   2         }
  59   1      }
  60          
  61          //读取温度
  62          unsigned char read_temperature(void)
  63          {
  64   1         uchar  tplsb,pp;
  65   1         uchar  tpmsb;
  66   1        // uchar  xstemp;小数
  67   1      
  68   1         reset();
  69   1         write_byte(0xCC); // 跳过读序号列号的操作
  70   1         write_byte(0x44); // 启动温度转换
  71   1         reset();
  72   1         write_byte(0xCC); //跳过读序号列号的操作
  73   1         write_byte(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
  74   1         tplsb=read_byte();
  75   1         tpmsb=read_byte();
  76   1        // xstemp=tplsb&0x0f;小数
  77   1         tpmsb=tpmsb<<4;
  78   1         tplsb=tplsb>>4;
  79   1              pp=tplsb|tpmsb;
  80   1          return(pp);
  81   1      }
  82          void dellay()
  83          { 
  84   1          int i;
  85   1      
  86   1        for(i=0;i<25;i++)
  87   1         dlay(105);
  88   1        
  89   1      
  90   1      }
  91          
  92          void send_temp(void)
  93          { 
  94   1       
  95   1      temp=read_temperature();
  96   1        
  97   1        
  98   1        
  99   1        temxsb= temp&0x03;
 100   1        temxsb=temxsb|0x0c;   //di两位
 101   1      
 102   1      
 103   1        tem10sb=temp;
 104   1        tem10sb=tem10sb&0x30;
 105   1        tem10sb>>=4;
 106   1        tem10sb=tem10sb|0x08;//次高位
 107   1      
 108   1      
 109   1        tem01sb=temp;
 110   1        tem01sb=tem01sb&0x0c;
 111   1        tem01sb>>=2;
 112   1        tem01sb=tem01sb|0x04;  //00001100              
 113   1      
 114   1      
 115   1       
 116   1      
 117   1         
C51 COMPILER V7.20   TEMPSEND                                                              08/15/2007 15:37:07 PAGE 3   

 118   1       
 119   1      
 120   1      
 121   1        
 122   1       send_bus=tem10sb;
 123   1                dellay();
 124   1                dellay();
 125   1                       
 126   1      
 127   1      
 128   1         send_bus=tem01sb;
 129   1           dellay();
 130   1               dellay();      
 131   1               
 132   1                                       
 133   1         send_bus=temxsb;
 134   1           dellay();
 135   1                dellay();
 136   1      
 137   1               send_bus=temxsb;
 138   1           dellay();
 139   1                dellay();
 140   1              
 141   1      
 142   1               send_bus=tem01sb;
 143   1           dellay();
 144   1               dellay();
 145   1               
 146   1                
 147   1        send_bus=tem10sb;
 148   1                dellay();
 149   1                dellay();
 150   1                       
 151   1      
 152   1          
 153   1          
 154   1         
 155   1              
 156   1        
 157   1        
 158   1       
 159   1      } 
 160          
 161          main()
 162          { 
 163   1        
 164   1       
 165   1        
 166   1        while(1)    
 167   1       {  
 168   2          
 169   2          send_temp();
 170   2      
 171   2      
 172   2       }        
 173   1                
 174   1      }
 175          
 176          
 177              
 178            
 179             
C51 COMPILER V7.20   TEMPSEND                                                              08/15/2007 15:37:07 PAGE 4   

 180          
 181          
 182          
 183          
 184          
 185          
 186          
 187          
 188          
 189          
 190          
 191          
 192          
 193          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    264    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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