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

📄 miin.lst

📁 很实用的单片机例程
💻 LST
字号:
C51 COMPILER V8.06   MIIN                                                                  11/20/2011 16:35:43 PAGE 1   


C51 COMPILER V8.06, COMPILATION OF MODULE MIIN
OBJECT MODULE PLACED IN miin.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE miin.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //实验平台:HL-1 V6.1+Keil U3
   2          //开发公司:慧净电子WWW.HLMCU.COM
   3          //淘宝店铺:http://shop37031453.taobao.com
   4          //实验目的:
   5          /*-----------------------------------------------
   6            名称:LCD1602
   7            内容:通过标准程序静态显示字符
   8            引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK
   9          ------------------------------------------------*/
  10          #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
  11          #include<intrins.h>
  12          
  13          sbit RS = P1^0;   //定义端口 
  14          sbit RW = P1^1;
  15          sbit EN = P2^5;
  16          sbit DU = P2^0;
  17          sbit WE = P2^1;
  18          sbit CS88 = P2^2;
  19          
  20          #define RS_CLR RS=0 
  21          #define RS_SET RS=1
  22          
  23          #define RW_CLR RW=0 
  24          #define RW_SET RW=1 
  25          
  26          #define EN_CLR EN=0
  27          #define EN_SET EN=1
  28          
  29          #define DataPort P0
  30          
  31          void cmg88()//关数码管,点阵函数
  32          {
  33   1      DU=1;  
  34   1      P0=0X00;
  35   1      DU=0;
  36   1      }
  37          /*------------------------------------------------
  38           uS延时函数,含有输入参数 unsigned char t,无返回值
  39           unsigned char 是定义无符号字符变量,其值的范围是
  40           0~255 这里使用晶振12M,精确延时请使用汇编,大致延时
  41           长度如下 T=tx2+5 uS 
  42          ------------------------------------------------*/
  43          void DelayUs2x(unsigned char t)
  44          {   
  45   1       while(--t);
  46   1      }
  47          /*------------------------------------------------
  48           mS延时函数,含有输入参数 unsigned char t,无返回值
  49           unsigned char 是定义无符号字符变量,其值的范围是
  50           0~255 这里使用晶振12M,精确延时请使用汇编
  51          ------------------------------------------------*/
  52          void DelayMs(unsigned char t)
  53          {
  54   1           
  55   1       while(t--)
C51 COMPILER V8.06   MIIN                                                                  11/20/2011 16:35:43 PAGE 2   

  56   1       {
  57   2           //大致延时1mS
  58   2           DelayUs2x(245);
  59   2               DelayUs2x(245);
  60   2       }
  61   1      }
  62          /*------------------------------------------------
  63                        判忙函数
  64          ------------------------------------------------*/
  65           bit LCD_Check_Busy(void) 
  66           { 
  67   1       DataPort= 0xFF; 
  68   1       RS_CLR; 
  69   1       RW_SET; 
  70   1       EN_CLR; 
  71   1       _nop_(); 
  72   1       EN_SET;
  73   1       return (bit)(DataPort & 0x80);
  74   1       }
  75          /*------------------------------------------------
  76                        写入命令函数
  77          ------------------------------------------------*/
  78           void LCD_Write_Com(unsigned char com) 
  79           {  
  80   1       while(LCD_Check_Busy()); //忙则等待
  81   1       RS_CLR; 
  82   1       RW_CLR; 
  83   1       EN_SET; 
  84   1       DataPort= com; 
  85   1       _nop_(); 
  86   1       EN_CLR;
  87   1       }
  88          /*------------------------------------------------
  89                        写入数据函数
  90          ------------------------------------------------*/
  91           void LCD_Write_Data(unsigned char Data) 
  92           { 
  93   1       while(LCD_Check_Busy()); //忙则等待
  94   1       RS_SET; 
  95   1       RW_CLR; 
  96   1       EN_SET; 
  97   1       DataPort= Data; 
  98   1       _nop_();
  99   1       EN_CLR;
 100   1       }
 101          
 102          /*------------------------------------------------
 103                          清屏函数
 104          ------------------------------------------------*/
 105           void LCD_Clear(void) 
 106           { 
 107   1       LCD_Write_Com(0x01); 
 108   1       DelayMs(5);
 109   1       }
 110          /*------------------------------------------------
 111                        写入字符串函数
 112          ------------------------------------------------*/
 113           void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) 
 114           {     
 115   1       if (y == 0) 
 116   1              {     
 117   2               LCD_Write_Com(0x80 + x);     //表示第一行
C51 COMPILER V8.06   MIIN                                                                  11/20/2011 16:35:43 PAGE 3   

 118   2              }
 119   1       else 
 120   1              {      
 121   2              LCD_Write_Com(0xC0 + x);      //表示第二行
 122   2              }        
 123   1       while (*s) 
 124   1              {     
 125   2       LCD_Write_Data( *s);     
 126   2       s ++;     
 127   2              }
 128   1       }
 129          /*------------------------------------------------
 130                        写入字符函数
 131          ------------------------------------------------*/
 132           void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) 
 133           {     
 134   1       if (y == 0) 
 135   1              {     
 136   2              LCD_Write_Com(0x80 + x);     
 137   2              }    
 138   1       else 
 139   1              {     
 140   2              LCD_Write_Com(0xC0 + x);     
 141   2              }        
 142   1       LCD_Write_Data( Data);  
 143   1       }
 144          /*------------------------------------------------
 145                        初始化函数
 146          ------------------------------------------------*/
 147           void LCD_Init(void) 
 148           {
 149   1         LCD_Write_Com(0x38);    /*显示模式设置*/ 
 150   1         DelayMs(5); 
 151   1         LCD_Write_Com(0x38); 
 152   1         DelayMs(5); 
 153   1         LCD_Write_Com(0x38); 
 154   1         DelayMs(5); 
 155   1         LCD_Write_Com(0x38);  
 156   1         LCD_Write_Com(0x08);    /*显示关闭*/ 
 157   1         LCD_Write_Com(0x01);    /*显示清屏*/ 
 158   1         LCD_Write_Com(0x06);    /*显示光标移动设置*/ 
 159   1         DelayMs(5); 
 160   1         LCD_Write_Com(0x0C);    /*显示开及光标设置*/
 161   1         }
 162             
 163          /*------------------------------------------------
 164                              主函数
 165          ------------------------------------------------*/ 
 166          void main(void) 
 167          { 
 168   1      cmg88();//关数码管,点阵函数
 169   1      LCD_Init(); 
 170   1      LCD_Clear();//清屏
 171   1      while (1) 
 172   1       {  
 173   2        LCD_Write_Char(7,0,'o');
 174   2        LCD_Write_Char(8,0,'k');
 175   2        LCD_Write_String(1,1,"www.hlmcu.com");
 176   2        while(1);
 177   2       }
 178   1      }
 179          
C51 COMPILER V8.06   MIIN                                                                  11/20/2011 16:35:43 PAGE 4   



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