7920_580b.lst

来自「单片机的实用程序代码」· LST 代码 · 共 337 行 · 第 1/2 页

LST
337
字号
C51 COMPILER V7.50   7920_580B                                                             11/10/2010 11:24:28 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 7920_580B
OBJECT MODULE PLACED IN 7920_580b.OBJ
COMPILER INVOKED BY: E:\Program Files\KEIL\C51\BIN\C51.EXE 7920_580b.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************
   2          * 文件名  : 12864液晶显示
   3          * 描述    :  
   4          * 创建人  : 东流,2009年4月8日
   5          * 版本号  : 2.0
   6          ***********************************************************************/
   7          #include <reg52.h>
   8          #include <string.h>
   9          
  10          #define uchar unsigned char
  11          #define uint  unsigned int
  12          
  13          uchar code IC_DAT[];
  14          uchar code pic1[];
  15          uchar code pic2[];
  16          uchar code pic3[]; 
  17          
  18          sbit RS  = P2^5;
  19          sbit WRD = P2^6;
  20          sbit E   = P2^7;
  21          sbit PSB = P2^2;
  22          sbit RES = P2^4;
  23          
  24          void TransferData(char data1,bit DI);
  25          void display(void);
  26          void display_grapic(void);
  27          void delayms(uint n);
  28          void DisplayLine(uchar line1,uchar line2);
  29          void DisplayGraphic(uchar code *adder);
  30          void delay(uint m);
  31          void lcd_mesg(uchar code *adder1);
  32          
  33          uchar code IC_DAT[]={
  34          "     HOT-51     "  
  35          "                "
  36          "  单片机开发板  "
  37          "    东流电子    "
  38          };
  39          
  40          uchar code IC_DAT2[]={
  41          "  白日依山尽,  "                      //0x80
  42          "  欲穷千里目,  "                      //0x90
  43          "  黄河入海流。  "                      //0x88
  44          "  更上一层楼。  "                      //0x98
  45          };
  46          
  47          
  48          
  49          void initinal(void)           //LCD字库初始化程序
  50          {
  51   1                 delay(40);             //大于40MS的延时程序
  52   1                 PSB=1;                 //设置为8BIT并口工作模式
  53   1                 delay(1);              //延时
  54   1                 RES=0;                 //复位
  55   1                 delay(1);              //延时
C51 COMPILER V7.50   7920_580B                                                             11/10/2010 11:24:28 PAGE 2   

  56   1                 RES=1;                 //复位置高
  57   1                 delay(10);
  58   1                 TransferData(0x30,0);  //Extended Function Set :8BIT设置,RE=0: basic instruction set, G=0 :grap
             -hic display OFF
  59   1                 delay(100);            //大于100uS的延时程序
  60   1                 TransferData(0x30,0);  //Function Set
  61   1                 delay(37);             ////大于37uS的延时程序
  62   1                 TransferData(0x08,0);  //Display on Control
  63   1                 delay(100);            //大于100uS的延时程序
  64   1                 TransferData(0x10,0);  //Cursor Display Control光标设置
  65   1                 delay(100);            //大于100uS的延时程序
  66   1                 TransferData(0x0C,0);  //Display Control,D=1,显示开
  67   1                 delay(100);            //大于100uS的延时程序
  68   1                 TransferData(0x01,0);  //Display Clear
  69   1                 delay(10);             //大于10mS的延时程序
  70   1                 TransferData(0x06,0);  //Enry Mode Set,光标从右向左加1位移动
  71   1                 delay(100);            //大于100uS的延时程序
  72   1                }
  73          
  74          /********************************************************************
  75          * 名称 : Main()
  76          * 功能 : 主函数
  77          * 输入 : 无
  78          * 输出 : 无
  79          ***********************************************************************/
  80          void     initina2(void)           //LCD显示图片(扩展)初始化程序
  81                    {
  82   1                 delay(40);             //大于40MS的延时程序
  83   1                 PSB=1;                 //设置为8BIT并口工作模式
  84   1                 delay(1);              //延时
  85   1                 RES=0;                 //复位
  86   1                 delay(1);              //延时
  87   1                 RES=1;                 //复位置高
  88   1                 delay(10);
  89   1      
  90   1                 TransferData(0x36,0);  //Extended Function Set RE=1: extended instruction
  91   1                 delay(100);            //大于100uS的延时程序
  92   1                 TransferData(0x36,0);  //Extended Function Set:RE=1: extended instruction set
  93   1                 delay(37);             ////大于37uS的延时程序
  94   1                 TransferData(0x3E,0);  //EXFUNCTION(DL=8BITS,RE=1,G=1)
  95   1                 delay(100);            //大于100uS的延时程序
  96   1                 TransferData(0x01,0);  //CLEAR SCREEN
  97   1                 delay(100);            //大于100uS的延时程序
  98   1                }
  99          
 100          /********************************************************************
 101          * 名称 : Main()
 102          * 功能 : 主函数
 103          * 输入 : 无
 104          * 输出 : 无
 105          ***********************************************************************/
 106          void    main(void)
 107               {
 108   1               while(1)
 109   1                  {
 110   2                        initina2();            //调用LCD显示图片(扩展)初始化程序
 111   2        
 112   2                DisplayGraphic(pic2);  //显示图片2
 113   2                delayms(200);                   
 114   2      
 115   2                initinal();                    //调用LCD字库初始化程序
 116   2                delay(100);            //大于100uS的延时程序
C51 COMPILER V7.50   7920_580B                                                             11/10/2010 11:24:28 PAGE 3   

 117   2                lcd_mesg(IC_DAT);      //显示中文汉字1
 118   2                delayms(240);
 119   2                delayms(240);
 120   2                
 121   2                initinal();                    //调用LCD字库初始化程序
 122   2                delay(100);            //大于100uS的延时程序 
 123   2                lcd_mesg(IC_DAT2);     //显示中文汉字2
 124   2                delayms(240);
 125   2                        delayms(240);
 126   2                        initinal();  
 127   2              }
 128   1            }
 129          
 130          /********************************************************************
 131          * 名称 : Main()
 132          * 功能 : 主函数
 133          * 输入 : 无
 134          * 输出 : 无
 135          ***********************************************************************/
 136          void   lcd_mesg(unsigned char code *adder1)
 137          {
 138   1              unsigned char i;
 139   1              TransferData(0x80,0);  //Set Graphic Display RAM Address
 140   1              delay(100);
 141   1              for(i=0;i<32;i++)
 142   1                      {
 143   2                              TransferData(*adder1,1);
 144   2                              adder1++;
 145   2                      }
 146   1      
 147   1              TransferData(0x90,0);  //Set Graphic Display RAM Address
 148   1              delay(100);
 149   1              for(i=32;i<64;i++)
 150   1                      {
 151   2                              TransferData(*adder1,1);
 152   2                              adder1++;
 153   2                      }
 154   1      }
 155          

⌨️ 快捷键说明

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