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

📄 zlg7289demo1.lst

📁 使用89c51单片机实现单总线多个DS18B20测温
💻 LST
字号:
C51 COMPILER V7.07   ZLG7289DEMO1                                                          11/17/2007 15:12:40 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE ZLG7289DEMO1
OBJECT MODULE PLACED IN ZLG7289Demo1.OBJ
COMPILER INVOKED BY: E:\keil\C51\Bin\c51.exe ZLG7289Demo1.c DB OE

stmt level    source

   1          /*
   2          ZLG7289Demo1.c
   3          ZLG7289 演示程序
   4          说明:
   5          采用查询INT 引脚状态的方式读取键盘值
   6          新的版和旧的版有两处需要修改的:数组和数组变换的地方
   7          */
   8          #include "ZLG7289.h"
   9          #include<intrins.h>
  10          #define NOP() _nop_()
  11          /*
  12          函数:Delay()
  13          功能:延时0.01~655.36s
  14          参数:
  15          t>0 时,延时(t*0.01)s
  16          t=0 时,延时655.36s
  17          说明:
  18          晶振采用11.0592MHz
  19          */
  20          void Delay(unsigned int t)
  21          {
  22   1      do
  23   1      {
  24   2      TH0 = 0xDC;
  25   2      TL0 = 0x00;
  26   2      
  27   2      TR0 = 1;
  28   2      while ( !TF0 );
  29   2      TF0 = 0;
  30   2      TR0 = 0;
  31   2      } while (--t);
  32   1      }
  33          
  34          
  35          void main()
  36          {
  37   1      code char DispDat[16] =
  38   1      {//字母AbCdEFgHIJkLoPqs 的字形数据
  39   1      0x77,0x1F,0x4E,0x3D,0x4F,0x47,0x7B,0x37,
  40   1      0x06,0x38,0x07,0x0E,0x1D,0x67,0x73,0x5B
  41   1      };
  42   1      //新的版
  43   1      unsigned char ChangeSwitch[16]={0,1,2,3,7,4,5,6,8,9,10,11,15,12,13,14};
  44   1      //旧的版
  45   1      //unsigned char ChangeSwitch[16]={0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x0f,0x06,0x05,0x04,0x03,0x02,0x01,0x
             -00,0x07};
  46   1      unsigned char mod;
  47   1      unsigned char x;
  48   1      bit dp;
  49   1      unsigned char dat;
  50   1      unsigned char k;
  51   1      unsigned char n;
  52   1      
  53   1      TMOD = 0x01;
  54   1      Delay(30); //延时300ms,等待ZLG7289 复位完毕
C51 COMPILER V7.07   ZLG7289DEMO1                                                          11/17/2007 15:12:40 PAGE 2   

  55   1      ZLG7289_Init(8); //调用ZLG7289 的初始化函数
  56   1      Delay(100);
  57   1      //测试
  58   1      ZLG7289_Test();
  59   1      Delay(200);
  60   1      //复位
  61   1      ZLG7289_Reset();
  62   1      Delay(100);
  63   1      for ( x=0; x<8; x++ )
  64   1          {
  65   2            ZLG7289_Download(1,x,1,x);
  66   2          }
  67   1      //用译码方式0 和方式1 下载数据,并显示
  68   1      
  69   1      for ( mod=0; mod<2; mod++ )
  70   1      {
  71   2        for ( dat=0; dat<16; dat++ )
  72   2        {
  73   3          dp = 0;
  74   3          for ( x=0; x<8; x++ )
  75   3          {
  76   4             ZLG7289_Download(mod,x,dp,dat);
  77   4          }
  78   3          Delay(80);
  79   3          dp = 1;
  80   3          for ( x=0; x<8; x++ )
  81   3          {
  82   4             ZLG7289_Download(mod,x,dp,dat);
  83   4          }
  84   3          Delay(90);
  85   3        }
  86   2        Delay(100);
  87   2      }
  88   1      
  89   1      //用不译码的方式显示自己定义的数据
  90   1      
  91   1      for ( n=0; n<16; n++ )
  92   1      {
  93   2      dp = 0;
  94   2      dat = DispDat[n];
  95   2      for ( x=0; x<8; x++ )
  96   2      {
  97   3      ZLG7289_Download(2,x,dp,dat);
  98   3      }
  99   2      Delay(80);
 100   2      }
 101   1      Delay(100);
 102   1      //显示0.1234567
 103   1      ZLG7289_Download(1,0,1,0);
 104   1      for ( x=1; x<8; x++ )
 105   1      {
 106   2      dat = x;
 107   2      ZLG7289_Download(1,x,0,dat);
 108   2      }
 109   1      Delay(100);
 110   1      //循环左移
 111   1      for ( n=0; n<8; n++ )
 112   1      {
 113   2      ZLG7289_ROL();
 114   2      Delay(120);
 115   2      }
 116   1      Delay(100);
C51 COMPILER V7.07   ZLG7289DEMO1                                                          11/17/2007 15:12:40 PAGE 3   

 117   1      //循环右移
 118   1      for ( n=0; n<8; n++ )
 119   1      {
 120   2      ZLG7289_ROR();
 121   2      Delay(120);
 122   2      }
 123   1      //左移2 位
 124   1      for ( n=0; n<2; n++ )
 125   1      {
 126   2      ZLG7289_SHL();
 127   2      Delay(150);
 128   2      }
 129   1      //右移3 位
 130   1      for ( n=0; n<3; n++ )
 131   1      {
 132   2      ZLG7289_SHR();
 133   2      Delay(150);
 134   2      }
 135   1      //显示01234567
 136   1      for ( x=0; x<8; x++ )
 137   1      {
 138   2      dat = x;
 139   2      ZLG7289_Download(1,x,0,dat);
 140   2      }
 141   1      Delay(100);
 142   1      //闪烁控制
 143   1      dat = 0xFE;
 144   1      for ( n=0; n<8; n++ ) //逐位闪烁
 145   1      {
 146   2      ZLG7289_Flash(dat);
 147   2      dat <<= 1; dat++; //数据0xFE 循环左移
 148   2      Delay(150);
 149   2      }
 150   1      ZLG7289_Flash(0x5A); //多位可以同时闪烁
 151   1      Delay(200);
 152   1      ZLG7289_Flash(0xFF); //停止闪烁
 153   1      Delay(100);
 154   1      //消隐控制
 155   1      dat = 0xFE;
 156   1      for ( n=0; n<8; n++ )
 157   1      {
 158   2      ZLG7289_Hide(dat);
 159   2      dat <<= 1; dat++; //数据0xFE 循环左移
 160   2      Delay(150);
 161   2      }
 162   1      ZLG7289_Hide(0x5A); //多位可以同时消隐
 163   1      Delay(200);
 164   1      ZLG7289_Hide(0xFF); //停止消隐
 165   1      Delay(100);
 166   1      //复位
 167   1      ZLG7289_Reset();
 168   1      Delay(100);
 169   1      //段点亮
 170   1      for ( n=0; n<64; n++ )
 171   1      {
 172   2      dat = n;
 173   2      ZLG7289_SegOn(dat);
 174   2      Delay(30);
 175   2      
 176   2      }
 177   1      //段关闭
 178   1      for ( n=0; n<64; n++ )
C51 COMPILER V7.07   ZLG7289DEMO1                                                          11/17/2007 15:12:40 PAGE 4   

 179   1      {
 180   2      dat = n;
 181   2      ZLG7289_SegOff(dat);
 182   2      Delay(30);
 183   2      }
 184   1      //键盘测试
 185   1      ZLG7289_Reset();
 186   1      for (;;)
 187   1      {
 188   2              if ( ZLG7289_pinINT == 0 ) //有键按下
 189   2              {
 190   3                      //读取按键值
 191   3                      k = ZLG7289_Key();
 192   3                      //显示按键值
 193   3                      //char ChangeSwitch[16]={0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x0f,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x07
             -};
 194   3                      //int ChangeSwitch[16]={14,13,12,11,10,9,8,15,6,5,4,3,2,1,0,7};
 195   3                      //新的版
 196   3                      k=ChangeSwitch[k];
 197   3                      //旧的版
 198   3                      //k=ChangeSwitch[k-48]; 
 199   3                      dat = k / 10;
 200   3                      ZLG7289_Download(1,1,0,dat);
 201   3                      dat = k - dat * 10;
 202   3                      ZLG7289_Download(1,0,0,dat);
 203   3                      //等待按键抬起
 204   3                      while ( !ZLG7289_pinINT );
 205   3              }
 206   2              Delay(5);
 207   2      }
 208   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    696    ----
   CONSTANT SIZE    =     32    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      21
   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 + -