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

📄 hl1.lst

📁 基于ZLGD7290的加热炉手动控制程序。采用K型温度传感器测温。
💻 LST
字号:
C51 COMPILER V7.50   HL1                                                                   12/25/2007 22:48:11 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE HL1
OBJECT MODULE PLACED IN hl1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE hl1.c BROWSE DEBUG OBJECTEXTEND PREPRINT

line level    source

   1          /*
   2                  ZLG7290演示程序
   3          */
   4          
   5          #include "I2C.h"
   6          #include "ZLG7290.h"
   7          #include "spi.h"
   8          
   9          //定义键盘中断标志,FlagINT=1表示有键按下
  10          volatile bit FlagINT = 0;
  11          uchar bdata zero_data ;
  12          sbit zero_bit=zero_data^0; //过零触发检测标志
  13          sbit power_ctrl=P2^1;
  14          sbit power_bit=zero_data^1;
  15          sbit fan_7v=zero_data^2;
  16          sbit fan_9v=zero_data^3;
  17          
  18          
  19          /*
  20          函数:INT0_SVC()
  21          功能:ZLG7290键盘中断服务程序
  22          说明:中断触发方式选择负边沿触发,因此不必等待中断请求信号恢复为高电平
  23          */
  24          void INT0_SVC() interrupt 0
  25          {
  26   1              FlagINT = 1;
  27   1      }
  28          void zero_detec() interrupt 2
  29          {
  30   1      zero_bit=1;
  31   1      } 
  32          
  33          /*
  34          函数:Delay()
  35          功能:延时10ms~655.36s
  36          参数:
  37                  t>0时,延时(t*0.01)s
  38                  t=0时,延时655.36s
  39          说明:
  40                  晶振采用11.0592MHz
  41          */
  42          void Delay(unsigned int t)
  43          {
  44   1              do
  45   1              {
  46   2                      TH0 = 0xDC;
  47   2                      TL0 = 0x00;
  48   2                      TR0 = 1;
  49   2                      while ( !TF0 );
  50   2                      TF0 = 0;
  51   2                      TR0 = 0;
  52   2              } while (--t);
  53   1      }
  54          
  55          /*
C51 COMPILER V7.50   HL1                                                                   12/25/2007 22:48:11 PAGE 2   

  56          函数:SystemInit()
  57          功能:系统初始化
  58          */
  59          void SystemInit()
  60          {
  61   1              I2C_Init();
  62   1              TMOD = 0x01;
  63   1              Delay(30);              //等待ZLG7290复位完毕
  64   1      }
  65          
  66          /*
  67          函数:ClearAll()
  68          功能:清除所有显示
  69          */
  70          void ClearAll()
  71          {
  72   1              unsigned char x;
  73   1              for ( x=0; x<8; x++ )
  74   1              {
  75   2                      ZLG7290_Download(x,0,0,31);
  76   2              }
  77   1      }
  78          
  79          /*
  80          函数:Test_DispBuf()
  81          功能:测试直接写显存
  82          
  83          void Test_DispBuf()
  84          {
  85                  code char DispDat[16] =
  86                  {//字母AbCdEFgHiJkLoPqr的字形数据
  87                          0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0xF6,0x6E,
  88                          0x20,0x70,0x0E,0x1C,0x3A,0xCE,0xE6,0x0A
  89                  };
  90                  unsigned char n;
  91                  unsigned char x;
  92                  unsigned char reg;
  93                  unsigned char dat;
  94                  for ( n=0; n<16; n++ )
  95                  {
  96                          for ( x=0; x<8; x++ )
  97                          {
  98                                  reg = ZLG7290_DpRam + x;
  99                                  dat = DispDat[n];
 100                                  ZLG7290_WriteReg(reg,dat);
 101                          }
 102                          Delay(150);
 103                  }
 104          }*/
 105          
 106          /*
 107          函数:Test_Download()
 108          功能:测试下载数据功能
 109          
 110          void Test_Download()
 111          {
 112                  unsigned char x;
 113                  bit dp;
 114                  bit flash;
 115                  char dat;
 116                  dp = 1;                                  //点亮所有数码管
 117                  flash = 0;
C51 COMPILER V7.50   HL1                                                                   12/25/2007 22:48:11 PAGE 3   

 118                  dat = 8;
 119                  for ( x=0; x<8; x++ )
 120                  {
 121                          ZLG7290_Download(x,dp,flash,dat);
 122                  }
 123                  Delay(100);
 124                  dp = 0;                                         //依次显示所有字型
 125                  flash = 0;
 126                  for ( dat=0; dat<32; dat++ )
 127                  {
 128                          for ( x=0; x<8; x++ )
 129                          {
 130                                  ZLG7290_Download(x,dp,flash,dat);
 131                          }
 132                          Delay(150);
 133                  }
 134          }*/
 135          
 136          /*
 137          函数:Test_ScanNum()
 138          功能:测试不同扫描位数
 139          说明:扫描位数越少,数码管就越亮
 140          
 141          void Test_ScanNum()
 142          {
 143                  unsigned char x;
 144                  for ( x=0; x<8; x++ )
 145                  {
 146                          ZLG7290_Download(x,1,0,8);
 147                  }
 148                  Delay(100);
 149                  for ( x=0; x<8; x++ )
 150                  {
 151                          ZLG7290_WriteReg(ZLG7290_ScanNum,x);
 152                          Delay(100);
 153                  }
 154          } */
 155          
 156          /*
 157          函数:Test_Flash()
 158          功能:测试闪烁功能
 159          
 160          void Test_Flash()
 161          {
 162                  char dat = 0x01;
 163                  unsigned char x;
 164          //显示01234567
 165                  for ( x=0; x<8; x++ )
 166                  {
 167                          ZLG7290_Download(x,0,0,x);
 168                  }
 169          //设置闪烁控制寄存器
 170                  ZLG7290_WriteReg(ZLG7290_FlashOnOff,0x11);      
 171          //闪烁演示
 172                  for ( x=0; x<8; x++ )
 173                  {
 174                          ZLG7290_Flash(dat);
 175                          dat <<= 1;
 176                          Delay(200);
 177                  }
 178          //数码管的8个位一起闪烁
 179                  ZLG7290_Flash(0xFF);
C51 COMPILER V7.50   HL1                                                                   12/25/2007 22:48:11 PAGE 4   

 180                  Delay(150);
 181          //停止闪烁
 182                  ZLG7290_Flash(0x00);
 183                  Delay(50);
 184          } */
 185          
 186          /*
 187          函数:Test_SegOnOff()
 188          功能:测试段寻址功能
 189          
 190          void Test_SegOnOff()
 191          {
 192                  unsigned char seg;
 193                  ClearAll();
 194                  Delay(100);
 195                  for ( seg=0; seg<64; seg++ )
 196                  {
 197                          ZLG7290_SegOnOff(seg,1);
 198                          Delay(15);
 199                  }
 200                  Delay(100);
 201                  for ( seg=0; seg<64; seg++ )
 202                  {
 203                          ZLG7290_SegOnOff(seg,0);
 204                          Delay(15);
 205                  }
 206                  Delay(100);
 207          } */
 208          
 209          /*
 210          函数:DispValue()
 211          功能:显示100以内的数值
 212          参数:
 213                  x:显示位置,取值0~6
 214                  dat:要显示的数据,取值0~99
 215          
 216          void DispValue(char x, unsigned char dat)
 217          {
 218                  unsigned char d;
 219                  d = dat / 10;
 220                  ZLG7290_Download(x,0,0,d);
 221                  d = dat - d * 10;
 222                  ZLG7290_Download(x+1,0,0,d);
 223          } */
 224          
 225          /*
 226          函数:DispHexValue()
 227          功能:以16进制方式显示数值
 228          参数:
 229                  x:显示位置,取值0~6
 230                  dat:要显示的数据,取值0~255
 231          
 232          void DispHexValue(char x, unsigned char dat)
 233          {
 234                  unsigned char d;
 235                  d = dat / 16;
 236                  ZLG7290_Download(x,0,0,d);
 237                  d = dat - d * 16;
 238                  ZLG7290_Download(x+1,0,0,d);
 239          } */
 240          
 241          /*
C51 COMPILER V7.50   HL1                                                                   12/25/2007 22:48:11 PAGE 5   

 242          函数:Test_Key()
 243          功能:测试按键功能
 244          
 245          void Test_Key()
 246          {
 247                  unsigned char KeyValue;
 248                  unsigned char RepeatCnt;
 249                  unsigned char FnKeyValue;
 250                  ClearAll();
 251                  EA = 0;
 252                  IT0 = 1;        //负边沿触发中断
 253                  EX0 = 1;        //允许外部中断
 254                  EA = 1;
 255                  for (;;)
 256                  {
 257                          if ( FlagINT )          //如果有键按下
 258                          {
 259                          //清除中断标志
 260                                  FlagINT = 0;
 261                          //读取键值、连击计数器值、功能键值
 262                                  ZLG7290_ReadReg(ZLG7290_Key,&KeyValue);
 263                                  ZLG7290_ReadReg(ZLG7290_RepeatCnt,&RepeatCnt);
 264                                  ZLG7290_ReadReg(ZLG7290_FunctionKey,&FnKeyValue);
 265                          //显示键值、连击计数器值、功能键值
 266                                  DispValue(0,KeyValue);
 267                                  DispHexValue(3,RepeatCnt);
 268                                  DispHexValue(6,FnKeyValue);
 269                          }
 270                          PCON |= 0x01;   //使CPU进入空闲状态,任一中断可唤醒
 271                  }
 272          }*/
 273          
 274          void main()
 275          {
 276   1      unsigned char  i; 
 277   1      bit dp;
 278   1              SystemInit();           //系统初始化
 279   1      for(;;)
 280   1              {
 281   2              for (i=0;i<240;i++)
 282   2              { 
 283   3              if ((i%5)==0) 
 284   3                      dp=!dp;
 285   3              
 286   3              ZLG7290_Download ((i%8), dp, dp, (i%32)) ;       //第几位,小数点,闪烁,译码值 //
 287   3              Delay(500);
 288   3              }
 289   2              
 290   2              //Test_Key();           //测试键盘功能
 291   2              }
 292   1              while (1);
 293   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    127    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
C51 COMPILER V7.50   HL1                                                                   12/25/2007 22:48:11 PAGE 6   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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