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

📄 ds18b20.lst

📁 STC51系列单片机学习板演示程序(汇编语言) 有详细注释 适合初学单片机的朋友
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.20   DS18B20                                                               03/24/2007 02:38:50 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE DS18B20
OBJECT MODULE PLACED IN DS18B20.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DS18B20.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*****************************************************************************
   2                                                          MCU8051学习板演示程序
   3                                                                  
   4                                          (c) Copyright 2007-2007,广州恒芯电子
   5                                                          All Rights Reserved
   6          *****************************************************************************/
   7          
   8          /*****************************************************************************
   9          程序说明
  10          名称: MCU8051学习板演示程序(DS18B20测试)
  11          功能: 实现在数码管上显示当前温度
  12          版本:2007-03-01
  13          *****************************************************************************/
  14          
  15          /*****************************************************************************
  16          硬件说明
  17          单片机:   兼容MCS-51单片机/STC89C51
  18          晶振频率: 12MHz
  19          *****************************************************************************/
  20          
  21          #include "regx52.h"
  22          
  23          /****************************************************************************
  24          说明: 程序预定义
  25          *****************************************************************************/
  26          #define LED7A_STATUS P1_0/*数码管第一位控制引脚(0为有效,1为无效)*/
  27          #define LED7B_STATUS P1_1/*数码管第二位控制引脚(0为有效,1为无效)*/
  28          #define LED7C_STATUS P1_2/*数码管第三位控制引脚(0为有效,1为无效)*/
  29          #define LED7D_STATUS P1_3/*数码管第四位控制引脚(0为有效,1为无效)*/
  30          
  31          #define LED7_STATUS     P0/*数码管状态引脚(0为有效,1为无效)*/
  32          
  33          #define DS18B20_IO P3_2/*DS18B20数据引脚*/
  34          
  35          #define DS18B20_ORDER_READID    0x33
  36          #define DS18B20_ORDER_JMPROM    0xcc
  37          #define DS18B20_ORDER_START             0x44
  38          #define DS18B20_ORDER_READREG   0Xbe
  39          
  40          /****************************************************************************
  41          说明: 变量定义
  42          *****************************************************************************/
  43          code unsigned char m_ucLedTab[]=
  44          {
  45                  0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90,
  46                  0x88, 0x83, 0xC6, 0xa1 ,0x86 ,0x8e, 0xff
  47          };/*数码管十六进制编码表*/
  48          
  49          unsigned char m_ucLedBuf[4];/*七段数码管显示值缓存*/
  50          
  51          /****************************************************************************
  52          名称: Delay
  53          说明: 程序延时
  54          参数: 无
  55          返回: 无
C51 COMPILER V7.20   DS18B20                                                               03/24/2007 02:38:50 PAGE 2   

  56          *****************************************************************************/
  57          void Delay();
  58          
  59          /****************************************************************************
  60          名称: Led7Scan()
  61          说明: 数码管动态扫描处理程序    
  62          参数: 无
  63          返回: 无
  64          *****************************************************************************/
  65          void Led7Scan();
  66          
  67          /****************************************************************************
  68          名称:DS18B20ReadTemp
  69          说明:DS18B20读取当前温度
  70          参数:无
  71          返回: unsigned char 温度值
  72          ****************************************************************************/
  73          unsigned char DS18B20ReadTemp();
  74          
  75          /****************************************************************************
  76          名称:DS18B20Init
  77          说明:DS18B20初始化
  78          参数:无
  79          返回: 无
  80          ****************************************************************************/
  81          unsigned char DS18B20Init();
  82          
  83          
  84          /****************************************************************************
  85          名称:DS18B20ReadBit
  86          说明:DS18B20读位操作
  87          参数:无
  88          返回: unsigned char ucData 读位
  89          ****************************************************************************/
  90          unsigned char DS18B20ReadBit();
  91          
  92          /****************************************************************************
  93          名称:DS18B20ReadChar
  94          说明:DS18B20读字节操作
  95          参数:无
  96          返回: unsigned char ucData 读字节
  97          ****************************************************************************/
  98          unsigned char DS18B20ReadChar();
  99          
 100          /****************************************************************************
 101          名称:DS18B20WriteBit
 102          说明:DS18B20写位操作
 103          参数:unsigned char ucData 写位
 104          ****************************************************************************/
 105          void DS18B20WriteBit(unsigned char ucData);
 106          
 107          /****************************************************************************
 108          名称:DS18B20WriteChar
 109          说明:DS18B20写字节操作
 110          参数:unsigned char ucData 写字节
 111          返回: 无
 112          ****************************************************************************/
 113          void DS18B20WriteChar(unsigned char ucData);
 114          
 115          /****************************************************************************
 116          名称:DS18B20Delay
 117          说明:DS18B20延时
C51 COMPILER V7.20   DS18B20                                                               03/24/2007 02:38:50 PAGE 3   

 118          参数:unsigned int uiDelay 时间延时
 119          返回: 无
 120          ****************************************************************************/
 121          void DS18B20Delay(unsigned char ucDelay);
 122          
 123          /*****************************************************************************
 124          程序开始
 125          *****************************************************************************/
 126          void main()
 127          {       
 128   1              unsigned char ucTemp=0;/*计数值置0*/
 129   1           
 130   1              /*T0中断设定*/
 131   1              TMOD=0x01;/*使用T0:GATE=0,C/T=0(定时),M1 M0=01(工作方式1)*/
 132   1              TH0=0xec;/*定时时间5毫秒*/
 133   1              TL0=0x78;
 134   1              ET0=1;/*允许T0中断*/
 135   1              TR0=1;/*使T0工作*/
 136   1              EA=1;/*总中断开启*/
 137   1      
 138   1              while(1)
 139   1              {       
 140   2                      ucTemp=DS18B20ReadTemp();/*获取当前温度*/
 141   2      
 142   2                      m_ucLedBuf[0]=16;
 143   2                      m_ucLedBuf[1]=16;
 144   2                      m_ucLedBuf[2]=(ucTemp%100)/10;/*取出十位数*/
 145   2                      m_ucLedBuf[3]=ucTemp%10;/*取出个位数*/
 146   2      
 147   2                      Delay();/*延时*/
 148   2              }
 149   1      }
 150          
 151          /*****************************************************************************
 152          名称: Interrupt1Handler
 153          说明: T0中断入口
 154          参数: 无
 155          返回 :无
 156          *****************************************************************************/
 157          void Interrupt1Handler() interrupt 1
 158          {
 159   1              Led7Scan();/*数码管动态扫描处理程序*/
 160   1              TH0=0xec;/*重新设置T0定时值*/
 161   1              TL0=0x78;
 162   1      }
 163          
 164          
 165          /****************************************************************************
 166          名称: Delay
 167          说明: 程序延时
 168          参数: 无
 169          返回: 无
 170          *****************************************************************************/
 171          void Delay()
 172          {
 173   1              unsigned char a,b;
 174   1      
 175   1              for(a=0;a<255;a++)
 176   1                      for(b=0;b<255;b++);
 177   1      }
 178          
 179          /****************************************************************************
C51 COMPILER V7.20   DS18B20                                                               03/24/2007 02:38:50 PAGE 4   

 180          名称: Led7Scan()
 181          说明: 数码管动态扫描处理程序
 182          参数: 无
 183          返回: 无

⌨️ 快捷键说明

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