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

📄 51

📁 51单片机大量源码
💻
字号:
C51 COMPILER V8.02   12864                                                                 07/23/2009 10:51:47 PAGE 1   


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

line level    source

   1          #include <REG51.H>
   2          #include <intrins.h>
   3          #define uint unsigned int
   4          #define uchar unsigned char
   5          //延时子程序模块
   6          //**********************************************
   7          void mdelay(uint delay)
   8          {       uint i;
   9   1              for(;delay>0;delay--)
  10   1                      {for(i=0;i<80;i++) //1ms延时.
  11   2                      {;}
  12   2                      }
  13   1      }
  14          
  15          //************************************************
  16          
  17          void show();   //液晶显示程序
  18          //****************************************
  19          //12864液晶显示部分子程序模块
  20          //****************************************
  21          sbit rs         = P2^0;
  22          sbit rw         = P2^1;
  23          sbit e          = P2^2;
  24          #define lcddata P0
  25          sbit busy=P0^7;   //lcd busy bit
  26          void wr_d_lcd(uchar content);
  27          void wr_i_lcd(uchar content);
  28          void clrram_lcd (void);
  29          void init_lcd(void);
  30          void busy_lcd(void);
  31          void rev_row_lcd(uchar row);
  32          void rev_co_lcd(uchar row,uchar col,uchar mode);
  33          void clr_lcd(void);
  34          void wr_co_lcd(uchar row,uchar col,uchar lcddata1,uchar lcddtta2);
  35          void wr_row_lcd(uchar row,char *p);
  36          //**********************************
  37          //液晶初始化
  38          //**********************************
  39          void init_lcd(void)
  40          {
  41   1              wr_i_lcd(0x06);  /*光标的移动方向*/
  42   1              wr_i_lcd(0x0c);  /*开显示,关游标*/
  43   1      }
  44          //***********************************
  45          //填充液晶DDRAM全为空格
  46          //**********************************
  47          void clrram_lcd (void)
  48          {
  49   1              wr_i_lcd(0x30);
  50   1              wr_i_lcd(0x01);
  51   1      }
  52          //***********************************
  53          //对液晶写数据
  54          //content为要写入的数据
  55          //***********************************
C51 COMPILER V8.02   12864                                                                 07/23/2009 10:51:47 PAGE 2   

  56          void wr_d_lcd(uchar content)
  57          {
  58   1              busy_lcd();
  59   1              rs=1;
  60   1          rw=0;
  61   1              lcddata=content;
  62   1              e=1;
  63   1              ;
  64   1              e=0;
  65   1      }
  66          //********************************
  67          //对液晶写指令
  68          //content为要写入的指令代码
  69          //*****************************
  70          void wr_i_lcd(uchar content)
  71          {
  72   1              busy_lcd();
  73   1              rs=0;
  74   1          rw=0;
  75   1              lcddata=content;
  76   1              e=1;
  77   1              ;
  78   1              e=0;
  79   1      }
  80          //********************************
  81          //液晶检测忙状态
  82          //在写入之前必须执行
  83          //********************************
  84          void busy_lcd(void)
  85          {
  86   1        lcddata=0xff;
  87   1        rs=0;
  88   1        rw=1;
  89   1        e =1;
  90   1        while(busy==1);
  91   1        e =0;
  92   1      }
  93          //********************************
  94          //指定要显示字符的坐标
  95          //*******************************
  96          void gotoxy(unsigned char y, unsigned char x)
  97          {
  98   1              if(y==1)
  99   1                      wr_i_lcd(0x80|x);
 100   1              if(y==2)
 101   1              wr_i_lcd(0x90|x);
 102   1              if(y==3)
 103   1                      wr_i_lcd((0x80|x)+8);
 104   1              if(y==4)
 105   1              wr_i_lcd((0x90|x)+8);
 106   1      }
 107          //**********************************
 108          //液晶显示字符串程序
 109          //**********************************
 110          void print(uchar *str)
 111          {
 112   1              while(*str!='\0')
 113   1              {
 114   2                      wr_d_lcd(*str);
 115   2                      str++;
 116   2              }
 117   1      }
C51 COMPILER V8.02   12864                                                                 07/23/2009 10:51:47 PAGE 3   

 118          
 119          
 120          
 121          
 122          
 123          
 124          
 125          
 126          //***************************************
 127          //液晶显示主程序模块
 128          //***************************************
 129          void show()   
 130          {
 131   1        
 132   1        gotoxy(1,0);
 133   1        print("欢迎光临锐志电子");
 134   1          mdelay(200);             
 135   1        gotoxy(2,0);
 136   1        print("【锐志电子】");
 137   1        mdelay(200);                 //扫描延时
 138   1      
 139   1      gotoxy(3,0);
 140   1        print("WWW.RICHMCU.COM");
 141   1        mdelay(200);                 //扫描延时
 142   1      gotoxy(4,0);
 143   1        print("12864 液晶测试");
 144   1        mdelay(200);                 //扫描延时
 145   1      }
 146          
 147          
 148          //************************************
 149          //主程序
 150          //*************************************
 151          main()
 152          {
 153   1        
 154   1              init_lcd();
 155   1              clrram_lcd();
 156   1              
 157   1              while(1)
 158   1              {   
 159   2              
 160   2                  show();                //液晶显示数据
 161   2                                      
 162   2                      }               
 163   1              
 164   1      }
 165          
 166          
 167          
 168          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    291    ----
   CONSTANT SIZE    =     61    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.

C51 COMPILER V8.02   12864                                                                 07/23/2009 10:51:47 PAGE 4   


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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