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

📄 main.lst

📁 lcd 1602 实现简单的字符显示,共大家学习参考.
💻 LST
字号:
C51 COMPILER V7.07   MAIN                                                                  03/29/2008 16:25:47 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          /************************芯普电子51单片机学习板*************************/
   3          /************************************程序详解************************************/
   4          //将1602液晶的1-16脚对应插上位于学习板左上的1602的插针J14的1-16脚,
   5          //板上注释了第一脚的位置,位于最右边
   6          //编译执行,下载程序,
   7          //
   8          
   9          #include <AT89X52.H>
  10          #define uchar unsigned char
  11          #define uint unsigned int
  12          #define dat_delay 200
  13          #define dat_port        P0              //1602液晶数据接口,由跳线跳接
  14          #define com_port        P2              //1602液晶控制接口,由跳线跳接
  15          
  16          sbit rs=com_port^0;                     
  17          sbit rw=com_port^1;
  18          sbit lcden=com_port^2;
  19          
  20          uchar table1[]="SIMPLE SN51A_1.1";
  21          uchar table2[]="GOOD LUCK TO YOU";
  22          
  23          void delay(uint x)
  24          {
  25   1              uint a,b;
  26   1              for(a=x;a>0;a--)
  27   1                      for(b=10;b>0;b--); 
  28   1      }
  29          
  30          void delay1(uint x)
  31          {
  32   1              uint a,b;
  33   1              for(a=x;a>0;a--)
  34   1                      for(b=600;b>0;b--); 
  35   1      }
  36          
  37          void write_com(uchar com)       ////1602液晶控制函数
  38          {
  39   1      
  40   1              rs=0;
  41   1              rw=0;
  42   1      //      lcden=0;
  43   1              dat_port=com;
  44   1              delay(dat_delay );
  45   1              lcden=1;
  46   1              delay(dat_delay );
  47   1              lcden=0;
  48   1              
  49   1      }
  50          
  51          void write_date(uchar dat)      ////1602液晶写数据函数
  52          {
  53   1      
  54   1              rs=1;
  55   1              rw=0;
C51 COMPILER V7.07   MAIN                                                                  03/29/2008 16:25:47 PAGE 2   

  56   1              dat_port=dat;
  57   1      //      lcden=0;
  58   1              delay(dat_delay );
  59   1              lcden=1;
  60   1              delay(dat_delay );
  61   1              lcden=0;
  62   1              
  63   1      }
  64          
  65          void init1602()                 //1602液晶初始化函数
  66          {
  67   1      
  68   1              write_com(0x38);        //液晶显示方式设置
  69   1              delay(dat_delay );
  70   1      //      write_com(0x0f);        //光标开 闪烁
  71   1              write_com(0x0c);        //光标不开 不闪烁
  72   1              delay(dat_delay );
  73   1              write_com(0x06);        //数据指针顺序设置
  74   1              delay(dat_delay );
  75   1              write_com(0x01);        //液晶屏幕清屏命令
  76   1              delay(dat_delay );      
  77   1      }
  78          
  79          
  80          
  81          void main()
  82          {
  83   1              uchar a=0;
  84   1              init1602();             //初始化1602液晶
  85   1              //1602液晶显示器地址:第一行从0X80开始--0X81-0X82---...0X8F
  86   1              //                                      :第二行从0XC0开始--0XC1-0XC2---...0XCF
  87   1      
  88   1              write_com(0x80);//从第一行第一个字符显示"IMPLE SN51A_1.1"
  89   1              delay(dat_delay );//#define dat_delay 200
  90   1              for(a=0;a<16;a++)
  91   1              {
  92   2              write_date(table1[a]);
  93   2              delay(dat_delay );              
  94   2              }
  95   1      
  96   1              write_com(0xc0);//从第二行第一个字符显示"GOOD LUCK TO YOU"
  97   1              delay(dat_delay );
  98   1              for(a=0;a<16;a++)
  99   1              {
 100   2              write_date(table2[a]);
 101   2              delay(dat_delay );              
 102   2              }
 103   1      
 104   1              delay1(300);
 105   1      
 106   1      
 107   1              for(a=0;a<40;a++)               //循环移位//左移16之后再移3个空位从右边出来
 108   1              {
 109   2                      write_com(0x18);        //左移位指令
 110   2                      delay1(20);
 111   2              }
 112   1      
 113   1              while(1);
 114   1              
 115   1      }
 116          

C51 COMPILER V7.07   MAIN                                                                  03/29/2008 16:25:47 PAGE 3   


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