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

📄 text7.lst

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


C51 COMPILER V7.50, COMPILATION OF MODULE TEXT7
OBJECT MODULE PLACED IN Text7.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text7.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 LCDD=P0^5;
  11          sbit LCDC=P0^4;
  12          
  13          sbit YANZ1=P1^6;
  14          sbit YANZ2=P1^7;
  15          
  16          uchar code byte[20]="gnhjuju";
  17          uchar code byte1[20]="2008";
  18          uchar code byte2[]="ST";
  19          uchar tr_flag=1;
  20          
  21          
  22          void dally_timer1(uint data ms);
  23          void dally_timer2(uint data us);
  24          void LCD_WRITE1(uchar data TMP1);
  25          void LCD_WRITE(uchar data LCD_COMMAND,uchar data LCD_TMP);
  26          void LCDInit(void);
  27          void lcd12232_zfc(uchar row,uchar tier,uchar *puts);
  28          void clear_lcd(void);
  29          void uart_init(void);
  30          void uart_send(uchar *dat);
  31          uchar uart_read();
  32          //void Light1();
  33          //void Light2();
  34          
  35          
  36          
  37          uchar code AC_TABLE[]={ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,      //第一行汉字位置
  38                                                                                                          0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,      //第二行汉字位置
  39                                                                                                          0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,      //第三行汉字位置
  40                                                                                                          0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f};           //第四行汉字位置
  41          
  42          uchar code lcd_tab[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  43                                                                                              0x41,0x42,0x43,0x44,0x45,0x46};
  44          
  45          
  46          void dally_timer1(uint data ms)
  47          {
  48   1              uint i;
  49   1              TR1=1;//启动定时器T1
  50   1        for(i=ms*25;i>0;i--)
  51   1        {
  52   2                      while(TF1==0)
  53   2          {
  54   3            _Nop();
  55   3          };
C51 COMPILER V7.50   TEXT7                                                                 12/26/2008 16:22:21 PAGE 2   

  56   2          TF1=0;//清除T1溢出标志TF1
  57   2        }
  58   1        TR1=0;//关闭定时器T1
  59   1      }
  60          
  61          void dally_timer2(uint data us)
  62          {
  63   1        do
  64   1              {
  65   2                      us--;
  66   2              }                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                   
  67   1              while (us > 0);
  68   1      }
  69          
  70          
  71          void LCD_WRITE1(uchar data TMP1)
  72          {
  73   1              uchar data m,TMP;
  74   1              for(m=8;m>0;m--)
  75   1              {
  76   2                 LCDC=0; 
  77   2                      TMP=(TMP1&(0x01<<(m-1)))>>(m-1);//取数据的第7-0位
  78   2                      if(TMP==0)
  79   2                      {
  80   3                              LCDD=0;           //?i??0,lcd???0
  81   3                      }
  82   2                      if(TMP==1)
  83   2                      {
  84   3                              LCDD=1;              //?i??1,lcd???1    
  85   3                      }       
  86   2                                     //lcd?????????
  87   2                      dally_timer2(1);
  88   2                      LCDC=1;                 
  89   2              }
  90   1      }
  91          
  92          void LCD_WRITE(uchar data LCD_COMMAND,uchar data LCD_TMP)       
  93          {
  94   1        uchar data TMP1;
  95   1        TMP1=LCD_COMMAND;                  //??lcd??
  96   1        LCD_WRITE1(TMP1);
  97   1        TMP1=LCD_TMP&0xF0;                //??lcd??????4?
  98   1        LCD_WRITE1(TMP1);
  99   1        TMP1=(LCD_TMP&0x0F)<<4;           //??lcd??????4?
 100   1        LCD_WRITE1(TMP1);
 101   1      }
 102          
 103          void LCDInit(void)
 104          {
 105   1              LCD_WRITE(0xf8,0x01);
 106   1              dally_timer1(40);
 107   1              LCD_WRITE(0xf8,0x30);
 108   1              dally_timer1(40);
 109   1              LCD_WRITE(0xf8,0x02);
 110   1              dally_timer1(40);
 111   1              LCD_WRITE(0xf8,0x04);
 112   1              dally_timer1(40);
 113   1              LCD_WRITE(0xf8,0x0c);
C51 COMPILER V7.50   TEXT7                                                                 12/26/2008 16:22:21 PAGE 3   

 114   1              dally_timer1(40);
 115   1              LCD_WRITE(0xf8,0x01);
 116   1              dally_timer1(40);
 117   1              LCD_WRITE(0xf8,0x80);
 118   1              dally_timer1(40);
 119   1      }
 120          
 121          void lcd12232_zfc(uchar row,uchar tier,uchar *puts)
 122          {
 123   1              uchar data tmp;
 124   1              tmp = AC_TABLE[8*row+tier];
 125   1              LCD_WRITE(0xf8,tmp);
 126   1              while(*puts != '\0')                                                                    //???????????
 127   1              {
 128   2                      LCD_WRITE(0xfa,*puts);                                                  //
 129   2                      puts++;
 130   2              }
 131   1      }
 132          
 133          
 134          
 135          void clear_lcd(void)
 136          {
 137   1              LCD_WRITE(0xf8,0x01);
 138   1              dally_timer1(40);
 139   1      }
 140          
 141          void uart_init(void)
 142          {
 143   1              SCON=0x50;//模式1,使能串行接受  
 144   1              SSTAT=0x60;//双缓冲禁止,组合中断禁止,停止位结束产生Tx中断.采用查询方式发送和接收
 145   1        BRGCON=0;  
 146   1              BRGR0=0xF0;//
 147   1              BRGR1=0x02;//
 148   1              BRGCON=0x03;//使能波特率发生器
 149   1      }
 150          
 151          
 152          
 153          void uart_send(uchar *dat)
 154          {
 155   1              uint j=0;
 156   1              
 157   1              while(dat[j] !='\0')    // send string
 158   1              {
 159   2                      SBUF=dat[j];                            // start sending one byte
 160   2                      while (!TI);                            // wait until sent
 161   2                      TI=0;   
 162   2          j++;
 163   2        
 164   2              }
 165   1      
 166   1      }
 167          
 168          
 169          /*void Light1()
 170          {
 171            uchar i;
 172            for(i=0;i<20;i++)
 173            {
 174                          YANZ1=1;        
 175                  dally_timer1(100);
C51 COMPILER V7.50   TEXT7                                                                 12/26/2008 16:22:21 PAGE 4   

 176                  YANZ1=0;        
 177                          dally_timer1(100);
 178                  }
 179          
 180          }
 181          
 182          void Light2()
 183          {
 184            uchar i;
 185            for(i=0;i<20;i++)
 186            {
 187                          YANZ2=1;
 188                  dally_timer1(100);  
 189                  YANZ2=0;
 190                          dally_timer1(100);
 191                  }
 192          
 193          }*/
 194          
 195          uchar uart_read()
 196          {
 197   1              uchar dat1;
 198   1        
 199   1              while(RI==0);
 200   1              RI=0;
 201   1        dat1=SBUF;
 202   1        
 203   1              return dat1;
 204   1      }
 205          
 206          
 207          void main()
 208          {
 209   1        uint i;
 210   1        uchar dat11[16]="4326788600007";
 211   1        P0M1=0x00;
 212   1        P0M2=0x00;
 213   1        P1M1=0x00;
 214   1        P1M2=0x00;
 215   1        P2M1=0x00;
 216   1        P2M2=0x00;
 217   1      
 218   1        P0=0xf8;
 219   1        P1=0x3f;
 220   1        P2=0xff;
 221   1      
 222   1        SP=0x7F;
 223   1              TMOD=0x20;//T1工作方式2
 224   1        TAMOD=0x00;
 225   1              TL1=0x6C;//装入T1初值
 226   1        TH1=0x6C;
 227   1       
 228   1        LCDInit();
 229   1              uart_init();
 230   1              //IEN0=0x90;
 231   1        //Light1();
 232   1              lcd12232_zfc(0,0,dat11);
 233   1              while(1)
 234   1              {
 235   2         
 236   2          for(i=0;i<16;i++)
 237   2          {
C51 COMPILER V7.50   TEXT7                                                                 12/26/2008 16:22:21 PAGE 5   

 238   3                        dat11[i]=uart_read(); 
 239   3                }     
 240   2          clear_lcd();
 241   2                      lcd12232_zfc(0,0,dat11);
 242   2          dally_timer1(50);
 243   2        
 244   2                 uart_send(byte);
 245   2       
 246   2        }
 247   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    461    ----
   CONSTANT SIZE    =    107    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      22
   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 + -