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

📄 +

📁 51单片机配套C程序
💻
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   7920_580B                                                             06/09/2010 21:35:54 PAGE 1   


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

line level    source

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

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

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

 179          
 180          void    delay(unsigned int m)            //延时程序

⌨️ 快捷键说明

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