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

📄 _main.lst

📁 mp3设计原理图 设计思想 设计思路 设计步骤 明确清晰
💻 LST
字号:
C51 COMPILER V8.05a   _MAIN                                                                11/26/2008 17:29:25 PAGE 1   


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

line level    source

   1          #include <reg51.h>
   2          #include "intrins.h"
   3          
   4          #define  uint unsigned int
   5          #define  uchar unsigned char
   6          
   7          #define TRUE  1
   8          #define FALSE 0
   9          #define nop _nop_()
  10          
  11          
  12          #define PtData P1  //定义连接口线,
  13          #define PtContr P3
  14          sbit RS=PtContr^5;
  15          sbit RW=PtContr^6;
  16          sbit E=PtContr^7;
  17          
  18          void InitialLcd();
  19          void WriteLcdInstr(uchar);
  20          void WriteLcdData(uchar);
  21          void CheckLcdBusy();
  22          uchar HexToDdram(uchar);
  23          void PutChar(uchar x,uchar y,uchar c);
  24          void PutStr(uchar x,uchar y,uchar *str);
  25          void Delay(unsigned int);
  26          
  27           
  28          
  29          main()
  30          {Delay(1000);
  31   1      
  32   1      InitialLcd();
  33   1      PutStr(2,0,"www.znmcu.cn");
  34   1      PutStr(1,1,"4 Bits Mode!!!");
  35   1      while(1);
  36   1      
  37   1      }
  38          
  39          
  40          //----------------LCD1602函数---------------------//
  41          //---初始化
  42          void InitialLcd()
  43          {Delay(600);//延时应大于15ms,不同的晶振使需要修改,本程序再6M下调试通过
  44   1      RS=0;
  45   1      RW=0;nop;
  46   1      E=0;nop;
  47   1      
  48   1      E=1;nop;
  49   1      PtData=0x20;//   
  50   1      nop;
  51   1      E=0;
  52   1      Delay(200);//延时应大于4.1ms
  53   1      
  54   1      E=1;nop;
  55   1      PtData=0x20;//   
C51 COMPILER V8.05a   _MAIN                                                                11/26/2008 17:29:25 PAGE 2   

  56   1      nop;
  57   1      E=0;
  58   1      Delay(5);//延时应大于100us
  59   1      
  60   1      E=1;nop;
  61   1      PtData=0x20;//  
  62   1      nop;
  63   1      E=0;//设置4位操作;
  64   1      
  65   1      WriteLcdInstr(0x01);//清屏
  66   1      WriteLcdInstr(0x28);//设置4位操作,1行显示,5x8
  67   1      WriteLcdInstr(0x02);//光标归位
  68   1      WriteLcdInstr(0x06);//AC自动加1,画面不动
  69   1      WriteLcdInstr(0x0f);//0x0f:光标闪烁开;  
  70   1      
  71   1      }
  72          //---写指令
  73          void WriteLcdInstr(uchar Temp)
  74          {CheckLcdBusy();
  75   1      RS=0;
  76   1      RW=0;
  77   1      E=0;nop;
  78   1      E=1;nop;
  79   1      PtData=Temp;
  80   1      nop;
  81   1      E=0;nop;
  82   1      E=1;nop;
  83   1      PtData=(Temp<<4);
  84   1      nop;
  85   1      E=0;nop;
  86   1      }
  87          
  88          
  89          //---写数据
  90          void WriteLcdData(uchar Temp)
  91          {
  92   1      CheckLcdBusy();
  93   1      RS=1;
  94   1      RW=0;
  95   1      E=0;nop;
  96   1      E=1;nop;
  97   1      PtData=Temp;
  98   1      nop;
  99   1      E=0;nop;
 100   1      E=1;nop;
 101   1      PtData=(Temp<<4);
 102   1      nop;
 103   1      E=0;nop;
 104   1      }
 105          
 106          
 107          //---查忙
 108          void CheckLcdBusy()
 109          {uchar Temp,t;
 110   1      PtData=0xff;
 111   1      
 112   1      RW=1;
 113   1      RS=0;nop;
 114   1      E=0;nop;
 115   1      do
 116   1       {nop;
 117   2       E=1;nop;
C51 COMPILER V8.05a   _MAIN                                                                11/26/2008 17:29:25 PAGE 3   

 118   2       Temp=PtData;
 119   2       nop;nop;nop;
 120   2       E=0;nop;nop;
 121   2      
 122   2       E=1;nop;
 123   2       t=PtData;
 124   2       nop;nop;nop;
 125   2       E=0;nop;nop;
 126   2      
 127   2       Temp&=0x80;
 128   2       }while(Temp==0x80);
 129   1      }
 130          
 131           
 132          
 133          //---delay
 134          void Delay(unsigned int N)
 135          {unsigned int i;
 136   1      for(i=0;i<N;i++){i=i;}
 137   1      }
 138          
 139          void PutChar(uchar x,uchar y,uchar c)
 140          {
 141   1       if(y)
 142   1        WriteLcdInstr(0xc0+x);
 143   1       else
 144   1        WriteLcdInstr(0x80+x);
 145   1       WriteLcdData(c);
 146   1      }
 147          
 148          void PutStr(uchar x,uchar y,uchar *str)
 149          {
 150   1       uchar i=0;
 151   1       while(str[i])
 152   1       {
 153   2        PutChar(x+i,y,str[i++]);
 154   2       }
 155   1      }
 156          


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