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

📄 +

📁 51单片机配套C程序
💻
字号:
C51 COMPILER V7.50   LCD1602                                                               06/09/2010 20:46:35 PAGE 1   


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

line level    source

   1          
   2          /*1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK*/
   3          
   4          /*-----------------------------------------------
   5            名称:LCD1602
   6            内容:通过标准程序静态显示2行字符
   7          ------------------------------------------------*/
   8          #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
   9          #include<stdio.h> //标准输入输出
  10          #include<intrins.h>
  11          
  12          
  13          sbit RS = P2^4; //Pin4
  14          sbit RW = P2^5; //Pin5
  15          sbit E  = P2^6; //Pin6
  16          
  17          #define Data  P0//数据端口
  18          
  19          char data TimeNum[]="                ";
  20          char data Test1[]="                  ";
  21          /******************************************************************/
  22          /*                    函数声明                                    */
  23          /******************************************************************/
  24          /******************************************************************/
  25          /*                    微秒延时函数                                */
  26          /******************************************************************/
  27          void DelayUs(unsigned char us)//delay us
  28          {
  29   1       unsigned char uscnt;
  30   1       uscnt=us>>1;        /*12MHz频率*/
  31   1       while(--uscnt);
  32   1      }
  33          /******************************************************************/
  34          /*                    毫秒函数声明                                */
  35          /******************************************************************/
  36          void DelayMs(unsigned char ms)
  37          {
  38   1       while(--ms)
  39   1         {
  40   2           DelayUs(250);
  41   2           DelayUs(250);
  42   2               DelayUs(250);
  43   2               DelayUs(250);
  44   2         }
  45   1      }
  46          /******************************************************************/
  47          /*                   写入命令函数                                 */
  48          /******************************************************************/
  49          void WriteCommand(unsigned char c)
  50          {
  51   1       DelayMs(5);//操作前短暂延时,保证信号稳定
  52   1       E=0;
  53   1       RS=0;
  54   1       RW=0;
  55   1       _nop_();
C51 COMPILER V7.50   LCD1602                                                               06/09/2010 20:46:35 PAGE 2   

  56   1       E=1;
  57   1       Data=c;
  58   1       E=0;
  59   1      }
  60          /******************************************************************/
  61          /*                   写入数据函数                                 */
  62          /******************************************************************/
  63          void WriteData(unsigned char c)
  64          {
  65   1       DelayMs(5);  //操作前短暂延时,保证信号稳定
  66   1       E=0;
  67   1       RS=1;
  68   1       RW=0;
  69   1       _nop_();
  70   1       E=1;
  71   1       Data=c;
  72   1       E=0;
  73   1       RS=0;
  74   1      }
  75          /******************************************************************/
  76          /*                   写入字节函数                                 */
  77          /******************************************************************/
  78          void ShowChar(unsigned char pos,unsigned char c)
  79          {
  80   1       unsigned char p;
  81   1       if (pos>=0x10)
  82   1          p=pos+0xb0; //是第二行则命令代码高4位为0xc
  83   1       else 
  84   1          p=pos+0x80; //是第二行则命令代码高4位为0x8
  85   1       WriteCommand (p);//写命令
  86   1       WriteData (c);   //写数据
  87   1      }
  88          /******************************************************************/
  89          /*                   写入字符串函数                               */
  90          /******************************************************************/
  91          void ShowString (unsigned char line,char *ptr)
  92          {
  93   1       unsigned char l,i;
  94   1       l=line<<4;
  95   1       for (i=0;i<16;i++)
  96   1        ShowChar (l++,*(ptr+i));//循环显示16个字符
  97   1      }
  98          /******************************************************************/
  99          /*                   初始化函数                                   */
 100          /******************************************************************/
 101          void InitLcd()
 102          {
 103   1       DelayMs(15);
 104   1       WriteCommand(0x38); //display mode
 105   1       WriteCommand(0x38); //display mode
 106   1       WriteCommand(0x38); //display mode
 107   1       WriteCommand(0x06); //显示光标移动位置
 108   1       WriteCommand(0x0c); //显示开及光标设置
 109   1       WriteCommand(0x01); //显示清屏
 110   1      
 111   1      }
 112          
 113          
 114          /******************************************************************/
 115          /*                   主函数                                       */
 116          /******************************************************************/
 117          void main(void)
C51 COMPILER V7.50   LCD1602                                                               06/09/2010 20:46:35 PAGE 3   

 118          
 119          {
 120   1      InitLcd();         //初始化LCD
 121   1      DelayMs(15);       //延时保证信号稳定
 122   1      
 123   1      sprintf(Test1,"    Welcome!    "); //打印输出第一行信息
 124   1      ShowString(0,Test1);
 125   1      
 126   1      sprintf(TimeNum,"LCM1602 Test ok!");//打印输出第二行信息
 127   1      ShowString(1,TimeNum);
 128   1      
 129   1      while(1);
 130   1      
 131   1      }


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