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

📄 text1.lst

📁 LPC9XX系列的串口通讯程序
💻 LST
字号:
C51 COMPILER V7.50   TEXT1                                                                 12/26/2008 15:15:50 PAGE 1   


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

line level    source

   1          #include <reg938.h>
   2          #include <intrins.h>
   3          
   4          #define uint unsigned int
   5          #define uchar unsigned char
   6          #define ulong unsigned long
   7          #define _Nop()  _nop_()
   8          //定义变量
   9          
  10          sbit LCDC=P1^0;
  11          sbit LCDD=P1^1;
  12          
  13          
  14          uchar code byte1[20]="2008";
  15          uchar code byte2[]="ST";
  16          uchar dat11[]="888888888888888";
  17          uchar temp=0;
  18          
  19          
  20          void dally_timer1(uint data ms);
  21          void dally_timer2(uint data us);
  22          void LCD_WRITE1(uchar data TMP1);
  23          void LCD_WRITE(uchar data LCD_COMMAND,uchar data LCD_TMP);
  24          void LCDInit(void);
  25          void lcd12232_zfc(uchar row,uchar tier,uchar *puts);
  26          void clear_lcd(void);
  27          void uart_init(void);
  28          
  29          uchar code AC_TABLE[]={ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,      //第一行汉字位置
  30                                                                                                          0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,      //第二行汉字位置
  31                                                                                                          0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,      //第三行汉字位置
  32                                                                                                          0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f};           //第四行汉字位置
  33          
  34          uchar code lcd_tab[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  35                                                                                              0x41,0x42,0x43,0x44,0x45,0x46};
  36          
  37          
  38          void dally_timer1(uint data ms)
  39          {
  40   1              uint i;
  41   1              TR1=1;//启动定时器T1
  42   1        for(i=ms*25;i>0;i--)
  43   1        {
  44   2                      while(TF1==0)
  45   2          {
  46   3            _Nop();
  47   3          };
  48   2          TF1=0;//清除T1溢出标志TF1
  49   2        }
  50   1        TR1=0;//关闭定时器T1
  51   1      }
  52          
  53          void dally_timer2(uint data us)
  54          {
  55   1        do
C51 COMPILER V7.50   TEXT1                                                                 12/26/2008 15:15:50 PAGE 2   

  56   1              {
  57   2                      us--;
  58   2              }
  59   1              while (us > 0);
  60   1      }
  61          
  62          
  63          void LCD_WRITE1(uchar data TMP1)
  64          {
  65   1              uchar data m,TMP;
  66   1              for(m=8;m>0;m--)
  67   1              {
  68   2                 LCDC=0; 
  69   2                      TMP=(TMP1&(0x01<<(m-1)))>>(m-1);//取数据的第7-0位
  70   2                      if(TMP==0)
  71   2                      {
  72   3                              LCDD=0;           //?i??0,lcd???0
  73   3                      }
  74   2                      if(TMP==1)
  75   2                      {
  76   3                              LCDD=1;              //?i??1,lcd???1    
  77   3                      }       
  78   2                                     //lcd?????????
  79   2                      dally_timer2(1);
  80   2                      LCDC=1;                 
  81   2              }
  82   1      }
  83          
  84          void LCD_WRITE(uchar data LCD_COMMAND,uchar data LCD_TMP)       
  85          {
  86   1        uchar data TMP1;
  87   1        TMP1=LCD_COMMAND;                  //??lcd??
  88   1        LCD_WRITE1(TMP1);
  89   1        TMP1=LCD_TMP&0xF0;                //??lcd??????4?
  90   1        LCD_WRITE1(TMP1);
  91   1        TMP1=(LCD_TMP&0x0F)<<4;           //??lcd??????4?
  92   1        LCD_WRITE1(TMP1);
  93   1      }
  94          
  95          void LCDInit(void)
  96          {
  97   1              LCD_WRITE(0xf8,0x01);
  98   1              dally_timer1(40);
  99   1              LCD_WRITE(0xf8,0x30);
 100   1              dally_timer1(40);
 101   1              LCD_WRITE(0xf8,0x02);
 102   1              dally_timer1(40);
 103   1              LCD_WRITE(0xf8,0x04);
 104   1              dally_timer1(40);
 105   1              LCD_WRITE(0xf8,0x0c);
 106   1              dally_timer1(40);
 107   1              LCD_WRITE(0xf8,0x01);
 108   1              dally_timer1(40);
 109   1              LCD_WRITE(0xf8,0x80);
 110   1              dally_timer1(40);
 111   1      }
 112          
 113          void lcd12232_zfc(uchar row,uchar tier,uchar *puts)
 114          {
 115   1              uchar data tmp;
 116   1              tmp = AC_TABLE[8*row+tier];
 117   1              LCD_WRITE(0xf8,tmp);
C51 COMPILER V7.50   TEXT1                                                                 12/26/2008 15:15:50 PAGE 3   

 118   1              while(*puts != '\0')                                                                    //???????????
 119   1              {
 120   2                      LCD_WRITE(0xfa,*puts);                                                  //
 121   2                      puts++;
 122   2              }
 123   1      }
 124          
 125          
 126          
 127          void clear_lcd(void)
 128          {
 129   1              LCD_WRITE(0xf8,0x01);
 130   1              dally_timer1(40);
 131   1      }
 132          
 133          void uart_init(void)
 134          {
 135   1              SCON=0x50;//模式1,使能串行接受  
 136   1              SSTAT=0x60;//双缓冲禁止,组合中断使能,采用查询方式发送和接收
 137   1        BRGCON=0;  
 138   1              BRGR0=0xF0;//
 139   1              BRGR1=0x02;//
 140   1              BRGCON=0x03;//使能波特率发生器
 141   1      }
 142          
 143          void uart_send(uchar *dat)
 144          {
 145   1              uint j=0;
 146   1              
 147   1              while(dat[j] !='\0')    // send string
 148   1              {
 149   2                      SBUF=dat[j];                            // start sending one byte
 150   2                      while (!TI);                            // wait until sent
 151   2                      TI=0;   
 152   2          j++;
 153   2        
 154   2              }
 155   1      
 156   1      }
 157          
 158          
 159          
 160          void intermit ()interrupt 4
 161          { 
 162   1        if(temp>15)
 163   1        {
 164   2                      temp=0;
 165   2        }
 166   1        dat11[temp]=SBUF;     
 167   1        temp++;  
 168   1        RI=0;
 169   1      }
 170          
 171          
 172          void main()
 173          {
 174   1        uchar byte[27]="";
 175   1        P0M1=0x00;
 176   1        P0M2=0x00;
 177   1        P1M1=0x00;
 178   1        P1M2=0xC0;
 179   1        P2M1=0x00;
C51 COMPILER V7.50   TEXT1                                                                 12/26/2008 15:15:50 PAGE 4   

 180   1        P2M2=0x00;
 181   1      
 182   1        P0=0xf8;
 183   1        P1=0x3f;
 184   1        P2=0xff;
 185   1      
 186   1        SP=0x7F;
 187   1      
 188   1              TMOD=0x20;//T1工作方式2
 189   1        TAMOD=0x00;
 190   1              TL1=0x6C;//装入T1初值
 191   1        TH1=0x6C;
 192   1        //uart_init(); 
 193   1        LCDInit();
 194   1       
 195   1        //IEN0=0x90;
 196   1              while(1)
 197   1              {
 198   2          
 199   2          lcd12232_zfc(0,0,dat11);
 200   2                      //uart_send(byte);
 201   2          dally_timer1(500);
 202   2                      dally_timer1(500);
 203   2                      dally_timer1(500);
 204   2                      dally_timer1(500);
 205   2        }
 206   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    471    ----
   CONSTANT SIZE    =     98    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     17      33
   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 + -