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

📄 cs23-1.lst

📁 《手把手教你学单片机的C程序设计》及实验程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   CS23_1                                                                02/21/2007 13:19:05 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CS23_1
OBJECT MODULE PLACED IN CS23-1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CS23-1.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <REG51.H>                              
   2          #define uchar unsigned char     
   3          #define uint unsigned int
   4          sbit CS1=P2^4;                  
   5          sbit CS2=P2^3;
   6          sbit RS=P2^7;           
   7          sbit RW=P2^6;                   
   8          sbit EN=P2^5;                           
   9          sbit RST=P2^2;                  
  10          #define DataPort P0     
  11          
  12          /************************函数列表**************************/
  13          void delay(unsigned long v);
  14          void wcode(uchar c,uchar csl,uchar csr);
  15          void wdata(uchar c,uchar csl,uchar csr);
  16          void set_startline(uchar i);
  17          void set_xy(uchar x,uchar y);
  18          void dison_off(uchar o);
  19          void reset();
  20          void lcd_init(void);
  21          void lw(uchar x, uchar y, uchar dd);
  22          void display_hz(uchar x, uchar y, uchar n, uchar fb);
  23          uchar code hz[];
  24          /*******************************************************/
  25          void main(void)
  26          {
  27   1      uchar loop;                             
  28   1      lcd_init();                                     
  29   1      delay(1000);                            
  30   1      while(1)                                        
  31   1      {
  32   2      /************显示第一行(8个字)***********/
  33   2      for(loop=0;loop<8;loop++)
  34   2              {display_hz(2*loop,0,loop,0);
  35   3              display_hz(2*loop,0,loop,0);
  36   3              display_hz(2*loop,0,loop,0);
  37   3              display_hz(2*loop,0,loop,0);
  38   3              display_hz(2*loop,0,loop,0);
  39   3              display_hz(2*loop,0,loop,0);
  40   3              display_hz(2*loop,0,loop,0);
  41   3              display_hz(2*loop,0,loop,0);}
  42   2      /*************显示第二行(8个字)**********/
  43   2      for(loop=0;loop<8;loop++)
  44   2              {display_hz(2*loop,2,loop+8,0);
  45   3              display_hz(2*loop,2,loop+8,0);
  46   3              display_hz(2*loop,2,loop+8,0);
  47   3              display_hz(2*loop,2,loop+8,0);
  48   3              display_hz(2*loop,2,loop+8,0);
  49   3              display_hz(2*loop,2,loop+8,0);
  50   3              display_hz(2*loop,2,loop+8,0);
  51   3              display_hz(2*loop,2,loop+8,0);}
  52   2      /**************显示第三行(8个字)*************/
  53   2      for(loop=0;loop<8;loop++)
  54   2              {display_hz(2*loop,4,loop+16,1);
  55   3              display_hz(2*loop,4,loop+16,1);
C51 COMPILER V7.06   CS23_1                                                                02/21/2007 13:19:05 PAGE 2   

  56   3              display_hz(2*loop,4,loop+16,1);
  57   3              display_hz(2*loop,4,loop+16,1);
  58   3              display_hz(2*loop,4,loop+16,1);
  59   3              display_hz(2*loop,4,loop+16,1);
  60   3              display_hz(2*loop,4,loop+16,1);
  61   3              display_hz(2*loop,4,loop+16,1);}
  62   2      /*************显示第四行(8个字)*************/
  63   2      for(loop=0;loop<8;loop++)
  64   2              {display_hz(2*loop,6,loop+24,1);
  65   3              display_hz(2*loop,6,loop+24,1);
  66   3              display_hz(2*loop,6,loop+24,1);
  67   3              display_hz(2*loop,6,loop+24,1);
  68   3              display_hz(2*loop,6,loop+24,1);
  69   3              display_hz(2*loop,6,loop+24,1);
  70   3              display_hz(2*loop,6,loop+24,1);
  71   3              display_hz(2*loop,6,loop+24,1);}
  72   2      /*************************/
  73   2      delay(10000);                           
  74   2      }
  75   1      }
  76          /*---------------------------------------------------------*/
  77          void delay(unsigned long v) 
  78          {                      
  79   1      while(v!=0)v--;          
  80   1      }                                       
  81          /*----------------------------------------------------------*/
  82          void lcd_busy(void)      
  83          {                     
  84   1      RS=0;RW=1;DataPort=0xff; 
  85   1      while(1){                       
  86   2      EN=1;                            
  87   2      if(DataPort<0x80) break;      
  88   2      EN=0;                   
  89   2      }                    
  90   1      EN=0;                
  91   1      }                    
  92          /*-----------------------------------------------------------*/
  93          void wcode(uchar c,uchar csl,uchar csr) 
  94          {                                                       
  95   1      CS1=csl;                       
  96   1      CS2=csr;
  97   1      lcd_busy();                                     
  98   1      RS=0;                                           
  99   1      RW=0;                                           
 100   1      DataPort=c;                                             
 101   1      EN=1;                                                   
 102   1      EN=0;                                           
 103   1      }                                                       
 104          /*------------------------------------------------------*/
 105          void wdata(uchar c,uchar csl,uchar csr) 
 106          {                               
 107   1      CS1=csl;                       
 108   1      CS2=csr;
 109   1      lcd_busy();                                     
 110   1      RS=1;                                           
 111   1      RW=0;                           
 112   1      DataPort=c;                         
 113   1      EN=1;                                           
 114   1      EN=0;                                           
 115   1      }                                                       
 116          /*------------------------------------------------------*/
 117          void lw(uchar x, uchar y, uchar dd) 
C51 COMPILER V7.06   CS23_1                                                                02/21/2007 13:19:05 PAGE 3   

 118          {                                               
 119   1      if(x>=64)                                       
 120   1      {set_xy(x-64,y);                                
 121   2      wdata(dd,0,1);}                         
 122   1      else                                            
 123   1      {set_xy(x,y);                                   
 124   2      wdata(dd,1,0);}                         
 125   1      }                                               
 126          /*---------------------------------------------------*/
 127          void set_startline(uchar i) 
 128          {                                                       
 129   1      i=0xc0+i;                                               
 130   1      wcode(i,1,1);                                   
 131   1      }                                                       
 132          /*----------------------------------------------*/
 133          void set_xy(uchar x,uchar y) 
 134          {                               
 135   1      x=x+0x40;                      
 136   1      y=y+0xb8;                    
 137   1      wcode(x,1,1);                    
 138   1      wcode(y,1,1);                    
 139   1      }                             
 140          /*-------------------------------------------------------------*/
 141          void dison_off(uchar o) 

⌨️ 快捷键说明

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