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

📄 lcd1.lst

📁 单片机通过L297和L298驱动两项步进电机
💻 LST
字号:
C51 COMPILER V7.09   LCD1                                                                  01/08/2007 09:46:11 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE LCD1
OBJECT MODULE PLACED IN LCD1.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE LCD1.c DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #include<absacc.h>
   3          
   4          sbit RS=P2^0;
   5          sbit RW=P2^1;
   6          sbit EN=P2^2;
   7          sbit clock=P2^7;
   8          sbit cc=P1^0;
   9          sbit cc1=P2^6;
  10          sbit high=P3^2;
  11          sbit low=P3^3;
  12          
  13          unsigned char Counter=1;Flag1=0;Flag2=0;ccFlag=1;
  14          unsigned int Timerlow;Timerhigh;Counter1=100;
  15          void delay(unsigned long delay_count)
  16          {
  17   1              while(delay_count--);
  18   1      }
  19          
  20          void enable(char c)
  21          {
  22   1              unsigned char temp;
  23   1              do
  24   1              {
  25   2                      RS=0;RW=1;EN=1;
  26   2                      temp=P0;
  27   2                      temp&=0x80;
  28   2                      EN=0;
  29   2              }while(temp);
  30   1              P0=c;
  31   1              RS=0;RW=0;EN=1;
  32   1              delay(20);
  33   1              EN=0;
  34   1      }
  35          
  36          void WriteCharToLCD(unsigned char c2)
  37          {
  38   1              unsigned char temp;
  39   1              do
  40   1              {
  41   2                      RS=0;RW=1;EN=1;
  42   2                      temp=P0;
  43   2                      temp&=0x80;
  44   2                      EN=0;
  45   2          }while(temp);
  46   1              if(c2==0x0D)return;
  47   1              P0=c2;
  48   1              RS=1;RW=0;EN=1;
  49   1              EN=0;
  50   1              delay(300);
  51   1      }
  52          
  53          void InitialLCD(void)
  54          {
  55   1              enable(0x01);delay(200);
C51 COMPILER V7.09   LCD1                                                                  01/08/2007 09:46:11 PAGE 2   

  56   1              enable(0x38);
  57   1              enable(0x0c);
  58   1              enable(0x14);
  59   1              delay(2000);
  60   1      }
  61          
  62          void ClearLCD(void)
  63          {
  64   1              enable(0x01);
  65   1              delay(200);
  66   1              enable(0x0c);
  67   1      }
  68          
  69          void WriteStrToLCD(unsigned char row,unsigned char col,unsigned char *c)
  70          {
  71   1              unsigned char count=0,tempAC;
  72   1              switch(col)
  73   1              {
  74   2                      case 1:enable(0x80+row-1);break;
  75   2                      case 2:enable(0xC0+row-1);break;
  76   2                      default:
  77   2                              break;
  78   2              }
  79   1              count=0;
  80   1              while(*c!=0)
  81   1              {
  82   2                      delay(20);
  83   2                      WriteCharToLCD(*c);
  84   2                      c++;
  85   2                      P0=0xFF;
  86   2                      delay(100);
  87   2                      RS=0;RW=1;EN=1;
  88   2                      tempAC=P0;
  89   2                      EN=0;
  90   2                      tempAC&=0x7F;
  91   2                      if(tempAC==0x14)
  92   2                      enable(0x80+0x40);
  93   2                      if(tempAC==0x54)
  94   2                      enable(0x80+0x14);
  95   2                      if(tempAC==0x40)
  96   2                      enable(0x80+0x54);
  97   2              }
  98   1      }
  99          /*
 100          void InitialTC(void)
 101          {
 102                  TMOD=0x1F;
 103                  TH1=0x0;TL1=0x68; //T1=1000;
 104                  EA=1;
 105                  ET1=1;
 106                  TR1=1;
 107                  EX0=1;EX1=1;
 108                  TF1=0;
 109                  IE0=0;
 110                  IE1=0;
 111          }
 112          
 113          void InterruptEX0 (void) interrupt 0
 114          {
 115                  if(Counter<=3)
 116                  {
 117                          ++Counter;
C51 COMPILER V7.09   LCD1                                                                  01/08/2007 09:46:11 PAGE 3   

 118                  }
 119          }
 120          void InterruptEX1 (void) interrupt 2
 121          {
 122                  if(Counter>=1)
 123                  {
 124                          --Counter;
 125                  }
 126          }
 127          
 128          /*void InterruptT1 (void) interrupt 3
 129          {
 130                  clock=(~clock);
 131                  switch(Counter)
 132                  {
 133                          case 1: Timerhigh=0x27;Timerlow=0x10; //T1=10000,--100Hz
 134                          case 2: Timerhigh=0x13;Timerlow=0x88; //T1=5000,--200Hz
 135                          case 3: Timerhigh=0x07;Timerlow=0xD0; //T1=2000,--500Hz
 136                          case 4: Timerhigh=0x03;Timerlow=0xE8; //T1=1000,--1000Hz
 137                          default: Timerhigh=0x03;Timerlow=0xE8;
 138                                  break;
 139                  }
 140                  TH1=Timerhigh;TL0=Timerlow;
 141          } */
 142          
 143          void main(void)
 144          {
 145   1      //      InitialTC();
 146   1              InitialLCD();
 147   1              delay(100);
 148   1              ClearLCD();
 149   1              delay(100);
 150   1              WriteStrToLCD(1,1,"  Motor Driver");
 151   1              WriteStrToLCD(1,2,"Design by:IC lab");
 152   1              delay(20000);
 153   1              WriteStrToLCD(1,2,"   Speed:high   ");
 154   1              P2=(P2|0x0F8);
 155   1              while(1)
 156   1              {
 157   2              /*      switch(Counter)
 158   2                      {
 159   2                      case 1: Counter1=1000;WriteStrToLCD(1,2,"Frequency:100 Hz"); //T1=10000,--100Hz
 160   2                      case 2: Counter1=500;WriteStrToLCD(1,2,"Frequency:200 Hz"); //T1=5000,--200Hz
 161   2                      case 3: Counter1=200;WriteStrToLCD(1,2,"Frequency:500 Hz"); //T1=2000,--500Hz
 162   2                      case 4: Counter1=100;WriteStrToLCD(1,2,"Frequency:1000Hz"); //T1=1000,--1000Hz
 163   2                      default: 
 164   2                              break;
 165   2                      } */
 166   2                      if(high==0)
 167   2                      {
 168   3                              Counter1=100;
 169   3                              WriteStrToLCD(1,2,"   Speed: high  ");
 170   3                      }
 171   2                      if(low==0)
 172   2                      {
 173   3                              Counter1=1000;
 174   3                              WriteStrToLCD(1,2,"   Speed: low   ");
 175   3                      }
 176   2                      delay(Counter1);
 177   2                      clock=(~clock);
 178   2              
 179   2                      if(cc==0)
C51 COMPILER V7.09   LCD1                                                                  01/08/2007 09:46:11 PAGE 4   

 180   2                      {
 181   3                              delay(50);
 182   3                              cc1=(~cc1);
 183   3                              delay(50);
 184   3                              ccFlag=1;
 185   3                      }
 186   2                      if(ccFlag==1)
 187   2                      {       
 188   3                              ccFlag=0;
 189   3                              if(cc1==1)
 190   3                              {
 191   4                                      WriteStrToLCD(1,1,"  direction: +  ");  
 192   4                              }
 193   3                              else
 194   3                              {
 195   4                                      WriteStrToLCD(1,1,"  direction: -  ");
 196   4                              }
 197   3                      }        
 198   2              
 199   2              }
 200   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    431    ----
   CONSTANT SIZE    =    117    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     13       7
   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 + -