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

📄 main.lst

📁 这是一个厅在DS18B20数字温度计的C程序
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  01/26/2007 15:56:55 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: E:\Program Files\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //==================================================================================
   2          //预定义包含文件
   3          //==================================================================================
   4          #include <reg51.h>
   5          #include <intrins.h>
   6          #include <ds18b20.c>
   7          //=================================================================================================
   8          sbit clk_led=P0^3;//定义数码管时钟线
   9          sbit dat_led=P0^2;//定义数码管数据线
  10          //=================================================================================================
  11          code unsigned char number[]={0x11,0xD7,0x32,0x92,      /* 0 1 2 3  */
  12                                                                     0xD4,0x98,0x18,0xD3,      /* 4 5 6 7  */
  13                                                                     0x10,0x90,0x50,0x1C,      /* 8 9 A B  */
  14                                                     0x39,0x16,0x38,0x78,      /* C D E F  */
  15                                                                    };
  16          
  17          //==================================================================================================
  18          void shift(unsigned char b)//数码管送数程序,依次向送数码管送8bit数
  19          {
  20   1        unsigned char i;
  21   1        for(i=0;i<8;i++)
  22   1        {
  23   2        clk_led=0;                   //时钟线清零
  24   2        if(!(b&0x80))dat_led=0;      //数据线送0,与、判断,往数据线送最高位 0x80为二进制数:10000000
  25   2        else dat_led=1;                          //数据线送1
  26   2        clk_led=1;                   //上跳
  27   2        clk_led=0;                   //下跳
  28   2        dat_led=0;                   //dat清零,确保数据的准确性
  29   2        b=b<<1;                  //左移一位
  30   2        }
  31   1      }
  32          //==================================================================================================
  33          
  34          //数码管送数子程序
  35          //例如要向数码管送10000,则调用方式为:shiftn(10000);
  36          void shiftn(unsigned long int c)//
  37          {
  38   1              shift(number[(int)(c%10)]);//送个位
  39   1              if(c>9){shift(number[(int)(c%100/10)]);}//送十位
  40   1              if(c>99){shift(number[(int)(c%1000/100)]);}//送百位
  41   1              if(c>999){shift(number[(int)(c%10000/1000)]);}//送千位
  42   1              if(c>9999){shift(number[(int)(c%100000/10000)]);}//送万位
  43   1              if(c>99999){shift(number[(int)(c%1000000/100000)]);}//送十万位
  44   1              if(c>999999){shift(number[(int)(c%10000000/1000000)]);}//送百万位
  45   1              shift(0xff);//送暗
  46   1      }
  47          
  48          main()
  49          {
  50   1      long int i;
  51   1      while(1)
  52   1              {
  53   2              shiftn(readtemp());
  54   2              for(i=0;i<10000;i++);
  55   2              }
C51 COMPILER V8.02   MAIN                                                                  01/26/2007 15:56:55 PAGE 2   

  56   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    703    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       8
   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 + -