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

📄 7920_580b.lst

📁 单片机开发板配套52个程序(c语言源代码)
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   7920_580B                                                             12/20/2012 21:15:03 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 7920_580B
OBJECT MODULE PLACED IN 7920_580b.OBJ
COMPILER INVOKED BY: F:\Program Files\keil\C51\BIN\C51.EXE 7920_580b.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          /*-----------------------------------------------
   3            名称:LCD12864 字库液晶 芯片组st7920
   4            日期:2009.5
   5            修改:无
   6            内容:
   7          ------------------------------------------------*/
   8          #include <stdio.h>
   9          #include <math.h>
  10          #include <reg52.h>
  11          #include <string.h>
  12          /******************************************************************/
  13          /*                    定义数组                                    */
  14          /******************************************************************/
  15          unsigned char code IC_DAT[];
  16          unsigned char code pic1[];
  17          unsigned char code pic2[];
  18          unsigned char code pic3[];
  19          
  20          /******************************************************************/
  21          /*                    定义接口信息                                */
  22          /******************************************************************/
  23          sbit    RS =P2^4;
  24          sbit    WRD=P2^5;
  25          sbit    E=  P2^6;
  26          sbit    PSB=P2^1;
  27          sbit    RES=P2^3;
  28          
  29          /******************************************************************/
  30          /*                    函数声明                                    */
  31          /******************************************************************/
  32          void    TransferData(char data1,bit DI);
  33          void    display(void);
  34          void    display_grapic(void);
  35          void    delayms(unsigned int n);
  36          void    DisplayLine(unsigned char line1,unsigned char line2);
  37          void    DisplayGraphic(unsigned char code *adder);
  38          void    delay(unsigned int m);
  39          void    lcd_mesg(unsigned char code *adder1);
  40          
  41          
  42          unsigned char code IC_DAT[]={
  43          "中原海翔电子科技"  
  44          "单片机开发板系列"
  45          "中文字库测试程序"
  46          "恭喜发财身体健康"
  47          };
  48          unsigned char code IC_DAT2[]={
  49          "海纳百川宽容为先"
  50          "欲成大业诚信为先"
  51          "游弋商海济世为先"
  52          "人立于世守法为先"
  53          };
  54          /******************************************************************/
  55          /*                   液晶初始化-字库                              */
C51 COMPILER V8.02   7920_580B                                                             12/20/2012 21:15:03 PAGE 2   

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

 117   2                DisplayGraphic(pic3);  //显示图片3
 118   2                delayms(200);
 119   2      
 120   2                initinal();                    //调用LCD字库初始化程序
 121   2                delay(100);            //大于100uS的延时程序
 122   2                lcd_mesg(IC_DAT);      //显示中文汉字1
 123   2                delayms(240);
 124   2                delayms(240);
 125   2                
 126   2                initinal();                    //调用LCD字库初始化程序
 127   2                delay(100);            //大于100uS的延时程序 
 128   2                lcd_mesg(IC_DAT2);     //显示中文汉字2
 129   2                delayms(240);
 130   2                        delayms(240);
 131   2              }
 132   1            }
 133          
 134          /******************************************************************/
 135          /*                    函数声明                                    */
 136          /******************************************************************/
 137          
 138          void   lcd_mesg(unsigned char code *adder1)
 139          {
 140   1              unsigned char i;
 141   1              TransferData(0x80,0);  //Set Graphic Display RAM Address
 142   1              delay(100);
 143   1              for(i=0;i<32;i++)
 144   1                      {
 145   2                              TransferData(*adder1,1);
 146   2                              adder1++;
 147   2                      }
 148   1      
 149   1              TransferData(0x90,0);  //Set Graphic Display RAM Address
 150   1              delay(100);
 151   1              for(i=32;i<64;i++)
 152   1                      {
 153   2                              TransferData(*adder1,1);
 154   2                              adder1++;
 155   2                      }
 156   1      }
 157          
 158          
 159          
 160          /******************************************************************/
 161          /*                    函数声明                                    */
 162          /******************************************************************/
 163          void    TransferData(char data1,bit DI)  //传送数据或者命令,当DI=0是,传送命令,当DI=1,传送数据.
 164                    {
 165   1                  WRD=0;
 166   1                  RS=DI;
 167   1                  delay(1);
 168   1                  P0=data1;
 169   1                  E=1;
 170   1                  delay(1);
 171   1                  E=0;
 172   1                 }
 173          
 174          void    delayms(unsigned int n)            //延时10×n毫秒程序
 175                             {
 176   1                            unsigned int i,j;
 177   1                            for(i=0;i<n;i++)
 178   1                               for(j=0;j<2000;j++);
C51 COMPILER V8.02   7920_580B                                                             12/20/2012 21:15:03 PAGE 4   

 179   1                         }
 180          

⌨️ 快捷键说明

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