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

📄 ds18b20main.lst

📁 usblab usb程序开发实验 一个实例
💻 LST
字号:
C51 COMPILER V8.01   DS18B20MAIN                                                           08/05/2006 11:05:56 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE DS18B20MAIN
OBJECT MODULE PLACED IN ds18b20main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ds18b20main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2             //************************************************************************* //
   3             //                  
   4             //
   5             //           COPYRIGHT (c)   2006 BY FOSHAN LX.
   6             //                     --  ALL RIGHTS RESERVED  --
   7             //
   8             // File Name:        UFMAIN.C
   9             // Author:           guobin
  10             // Created:          2006/04/20
  11             // Modified:
  12             // Revision:         2.0
  13             //
  14             //*************************************************************************
  15          */
  16          
  17          //CPU:  P89LPC932A1             8K Flash                256+512Byte     RAM
  18          //Crystal:12MHz Fosc=12M
  19          //DIVM=0                CCLK=Fosc=12M
  20          //Single INS=6M=166ns
  21          
  22          #include "hardware.h"  
  23          
  24          unsigned char LLEDData,RLEDData;
  25          bit     bdata   CLRFlag;
  26          
  27          extern  UCHAR           ROM64Bit[8];
  28          extern  UCHAR           RAM9Byte[9];
  29          extern  RealTM  RealTimeTM;
  30          
  31          UCHAR   TXDData[14];
  32          UCHAR   TXDCount;
  33          UCHAR   TXDLength;
  34          
  35          extern  UCHAR   DS18B20_Start(void);
  36          extern  void    DS18B20_ReadTM(void);
  37          extern  void    DS18B20_WaitDQ(void);
  38          
  39          void (*ISP)();
  40          
  41          //P00(O)     P01(O)     P02(O)     P03(O)     P04(O)     P05(O)     P06(O)     P07(O)
  42          //P10(O)     P11(I)      P12(O)     P13(I/O)  P14(I)      P15(I)      P16(O)     P17(O)
  43          //P20(I/O)  P21(I/O)  P22(I/O)  P23(I/O)  P24(I/O)  P25(I/O)  P26(I/O)  P27(I/O)  
  44          void    GPIO_Initial(void)
  45          {
  46   1              P0M1=0x00;
  47   1              P0M2=0x00;
  48   1              P1M1=0x20;
  49   1              P1M2=0x00;
  50   1              P2M1=0x00;
  51   1              P2M2=0x00;
  52   1      }
  53          
  54          void    ISP_Initial(void)
  55          {
C51 COMPILER V8.01   DS18B20MAIN                                                           08/05/2006 11:05:56 PAGE 2   

  56   1              ISP=0x1F00;
  57   1              if(!Key)
  58   1                      ISP();
  59   1      
  60   1              SSTAT=0xFA;
  61   1              BRGCON=0x00;
  62   1              AUXR1=0x40;
  63   1              SCON=0x50;
  64   1              BRGR1=0x04;                     //cystal=12M            baund=9600(0x04d2)-----baund=cclk/((brgr1,brgr0)+16)
  65   1              BRGR0=0xD2;
  66   1              BRGCON=0x03;
  67   1      }
  68          
  69          /*
  70          位段编码对应关系:
  71          数码管位:a  b  c  d  e  f  g  dp
  72          74HC164:  Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
  73          Q对应输出1点亮相应的位,比如显示1---写74HC164数据01100000(0x60)  
  74          */
  75          code UCHAR      LEDCode[]=                                //数码管编码表
  76          {
  77          0xFC,   //'0'
  78          0x60,   //'1'
  79          0xDA,   //'2'
  80          0xF2,   //'3'
  81          0x66,   //'4'
  82          0xB6,   //'5'
  83          0xBE,   //'6'
  84          0xE0,   //'7'
  85          0xFE,   //'8'
  86          0xF6,   //'9'
  87          };
  88          
  89          /*
  90          写74HC164函数
  91          入口参数:写1个字节数据
  92          出口参数:无
  93          */
  94          void HC164(UCHAR Dat)
  95          {
  96   1              UCHAR i;
  97   1      
  98   1              HC164_CLK=0;
  99   1              for(i=0;i<8;i++)
 100   1              {
 101   2              if(Dat&0x01)                            //移为顺序:LSB位先移出
 102   2                      HC164_AB=1;
 103   2              else
 104   2                      HC164_AB=0;
 105   2              HC164_CLK=1;
 106   2              HC164_CLK=0;
 107   2              Dat>>=1;
 108   2              }
 109   1      }
 110          
 111          void ScanLEDOutput(void)
 112          {
 113   1              NLEDR=NLEDL=1;
 114   1              if(CLRFlag)
 115   1              {
 116   2                      CLRFlag=0;
 117   2                      HC164(LEDCode[RLEDData]);
C51 COMPILER V8.01   DS18B20MAIN                                                           08/05/2006 11:05:56 PAGE 3   

 118   2                      NLEDR=0;
 119   2              }
 120   1              else
 121   1              {
 122   2                      CLRFlag=1;
 123   2                      HC164(LEDCode[LLEDData]);
 124   2                      NLEDL=0;
 125   2              }
 126   1      }
 127          
 128          void T0_Initial(void)
 129          {
 130   1              TMOD&=0xf0;
 131   1              TMOD|=0x01;
 132   1              TH0=0x8A;                //5MS
 133   1              TL0=0xD0;
 134   1              TR0=1;
 135   1              ET0=1;
 136   1              EA=1;
 137   1      }
 138          
 139          void T0_IRQ(void)               interrupt 1
 140          {
 141   1              TH0=0x8A;
 142   1              TL0=0xD0;
 143   1      
 144   1              ScanLEDOutput();
 145   1      }
 146          
 147          char putchar (char c)  {
 148   1        if (c == '\n')  {
 149   2          while (!TI);
 150   2          TI = 0;
 151   2          SBUF = 0x0d;                         /* output CR  */       
 152   2        }
 153   1        while (!TI);
 154   1        TI = 0;
 155   1        return (SBUF = c);
 156   1      }
 157          
 158          
 159          void    main(void)
 160          {
 161   1              UCHAR i;
 162   1              UINT j;
 163   1      
 164   1              GPIO_Initial();
 165   1      
 166   1              ISP_Initial();
 167   1      
 168   1              T0_Initial();
 169   1      
 170   1              TI=1;
 171   1              printf("P89LPC932A1 DS18B20 USB BOARD\n");
 172   1      
 173   1              while(1)
 174   1              {
 175   2                      for(j=0;j<60000;j++);
 176   2              
 177   2                      EA=0;
 178   2                      i=DS18B20_Start();
 179   2                      EA=1;
C51 COMPILER V8.01   DS18B20MAIN                                                           08/05/2006 11:05:56 PAGE 4   

 180   2              
 181   2                      if(i)
 182   2                      {
 183   3                              printf("DS18B20 Initial OK!\n");
 184   3                              printf("Read DS18B20 64Bit Rom Code\n");
 185   3                              for(i=0;i<8;i++)
 186   3                                      printf("Rom[%bu]=%bx\n",i,ROM64Bit[i]);
 187   3      
 188   3                              DS18B20_WaitDQ();
 189   3                              EA=0;
 190   3                              DS18B20_ReadTM();
 191   3                              EA=1;
 192   3              
 193   3                              LLEDData=RealTimeTM.ZhengShu/10;
 194   3                              RLEDData=RealTimeTM.ZhengShu%10;
 195   3                      }
 196   2              }
 197   1      }
 198          
 199          
 200          
 201          
 202          
 203          
 204          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    332    ----
   CONSTANT SIZE    =    105    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     21       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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