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

📄 blcon.lst

📁 单片机开发板配套52个程序(c语言源代码)
💻 LST
字号:
C51 COMPILER V7.06   BLCON                                                                 06/02/2010 22:40:29 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE BLCON
OBJECT MODULE PLACED IN BLcon.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE BLcon.c BROWSE DEBUG OBJECTEXTEND

stmt 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            日期:2009.5
   7            修改:无
   8            内容:通过标准程序静态显示2行字符
   9          ------------------------------------------------*/
  10          #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
  11          #include<stdio.h> //标准输入输出
  12          #include<intrins.h>
  13          
  14          
  15          sbit RS = P2^4; //Pin4
  16          sbit RW = P2^5; //Pin5
  17          sbit E  = P2^6; //Pin6
  18          
  19          sbit BLCtrl = P2^7;//背光控制端口
  20          sbit KEY    = P3^3;//按键端口
  21          
  22          #define Data  P0   //数据端口
  23          
  24          char data TimeNum[]="                ";
  25          char data Test1[]="                  ";
  26          /******************************************************************/
  27          /*                    函数声明                                    */
  28          /******************************************************************/
  29          /******************************************************************/
  30          /*                    微秒延时函数                                */
  31          /******************************************************************/
  32          void DelayUs(unsigned char us)//delay us
  33          {
  34   1       unsigned char uscnt;
  35   1       uscnt=us>>1;        /*12MHz频率*/
  36   1       while(--uscnt);
  37   1      }
  38          /******************************************************************/
  39          /*                    毫秒函数声明                                */
  40          /******************************************************************/
  41          void DelayMs(unsigned char ms)
  42          {
  43   1       while(--ms)
  44   1         {
  45   2           DelayUs(250);
  46   2           DelayUs(250);
  47   2               DelayUs(250);
  48   2               DelayUs(250);
  49   2         }
  50   1      }
  51          /******************************************************************/
  52          /*                   写入命令函数                                 */
  53          /******************************************************************/
  54          void WriteCommand(unsigned char c)
  55          {
C51 COMPILER V7.06   BLCON                                                                 06/02/2010 22:40:29 PAGE 2   

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

 118          void main(void)
 119          
 120          {
 121   1      
 122   1      
 123   1      InitLcd();//初始化液晶
 124   1      DelayMs(15);
 125   1      
 126   1      sprintf(Test1,"haixiang MCU ");  //第一行
 127   1      ShowString(0,Test1);
 128   1      
 129   1      sprintf(TimeNum,"LCM1602 Test ok!");//第二行
 130   1      ShowString(1,TimeNum);
 131   1      
 132   1      while(1){
 133   2      if(!KEY)
 134   2        {
 135   3        DelayMs(10);   //按下去抖 
 136   3        while(!KEY);
 137   3        if(KEY)
 138   3          {
 139   4           DelayMs(10);//释放去抖
 140   4               if(KEY)
 141   4           BLCtrl=!BLCtrl; //背光关掉或者打开
 142   4          }
 143   3       }
 144   2      }
 145   1      
 146   1      }
 147          
 148          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    277    ----
   CONSTANT SIZE    =     31    ----
   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 + -