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

📄 25-

📁 at89c51程序_51单片机LCD液晶测试
💻
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   7920_580B                                                             05/13/2009 12:40:59 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 7920_580B
OBJECT MODULE PLACED IN 7920_580b.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 7920_580b.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          /*-----------------------------------------------
   3            名称:LCD12864 字库液晶 芯片组st7920
   4            公司:上海浩豚电子科技有限公司
   5            网站:www.doflye.cn
   6            编写:师访
   7            日期:2009.5
   8            修改:无
   9            内容:
  10          ------------------------------------------------*/
  11          #include <stdio.h>
  12          #include <math.h>
  13          #include <reg52.h>
  14          #include <string.h>
  15          
  16          unsigned char code IC_DAT[];
  17          unsigned char code pic1[];
  18          unsigned char code pic2[];
  19          unsigned char code pic3[];
  20          
  21          
  22          sbit    RS =P2^4;
  23          sbit    WRD=P2^5;
  24          sbit    E=  P2^6;
  25          sbit    PSB=P2^1;
  26          sbit    RES=P2^3;
  27          
  28          
  29          void    TransferData(char data1,bit DI);
  30          void    display(void);
  31          void    display_grapic(void);
  32          void    delayms(unsigned int n);
  33          void    DisplayLine(unsigned char line1,unsigned char line2);
  34          void    DisplayGraphic(unsigned char code *adder);
  35          void    delay(unsigned int m);
  36          void    lcd_mesg(unsigned char code *adder1);
  37          
  38          
  39          unsigned char code IC_DAT[]={
  40          "上海浩豚电子科技"  
  41          "单片机开发板系列"
  42          "中文字库测试程序"
  43          "恭喜发财身体健康"
  44          };
  45          unsigned char code IC_DAT2[]={
  46          "海纳百川宽容为先"
  47          "欲成大业诚信为先"
  48          "游弋商海济世为先"
  49          "人立于世守法为先"
  50          };
  51          
  52          void     initinal(void)           //LCD字库初始化程序
  53                    {
  54   1                 delay(40);             //大于40MS的延时程序
  55   1                 PSB=1;                 //设置为8BIT并口工作模式
C51 COMPILER V7.06   7920_580B                                                             05/13/2009 12:40:59 PAGE 2   

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

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

⌨️ 快捷键说明

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