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

📄 12864.lst

📁 12864串口显示显示程序
💻 LST
字号:
C51 COMPILER V9.00   12864                                                                 08/26/2013 16:22:34 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE 12864
OBJECT MODULE PLACED IN 12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864.c BROWSE DEBUG OBJECTEXTEND

line level    source

*** WARNING C500 IN LINE 1 OF 12864.C: LICENSE ERROR (R201: INVALID LICENSE ID CODE (LIC))

   1          #include<reg52.h>
   2          #include"12864.h"
   3          #include"const.h"
   4          void delay(uint us)      //delay time
   5          {
   6   1              uint i;
   7   1              for (i=1;i<=3;i++)      
   8   1           while(us--);
   9   1      }
  10          void SendByte(uchar Dbyte)
  11          {
  12   1           uchar i;
  13   1           for(i=0;i<8;i++)
  14   1           {
  15   2                 SCLK = 0;
  16   2                 Dbyte=Dbyte<<1;       
  17   2                 SID = CY;              
  18   2                 SCLK = 1;
  19   2                 SCLK = 0;
  20   2           }
  21   1      }
  22          uchar ReceiveByte(void)
  23          {
  24   1           uchar i,temp1,temp2;
  25   1           temp1 = 0;
  26   1           temp2 = 0;
  27   1           for(i=0;i<8;i++)
  28   1           {
  29   2                 temp1=temp1<<1;
  30   2                 SCLK = 0;
  31   2                 SCLK = 1;            
  32   2                 SCLK = 0;
  33   2                 if(SID)
  34   2                          temp1++;
  35   2           }
  36   1           for(i=0;i<8;i++)
  37   1           {
  38   2                 temp2=temp2<<1;
  39   2                 SCLK = 0;
  40   2                 SCLK = 1;
  41   2                 SCLK = 0;
  42   2                 if(SID) 
  43   2                         temp2++;
  44   2           }
  45   1           return ((0xf0&temp1)+(0x0f&temp2));
  46   1      }
  47          void CheckBusy(  ) 
  48          {
  49   1           do   SendByte(0xfc);         
  50   1           while(0x80&ReceiveByte());       
  51   1      }
  52          void Lcd_WriteCmd(uchar Cbyte )
  53          {
  54   1           CheckBusy();
C51 COMPILER V9.00   12864                                                                 08/26/2013 16:22:34 PAGE 2   

  55   1           SendByte(0xf8);              //11111,RW(0),RS(0),0
  56   1           SendByte(0xf0&Cbyte);        //高四位
  57   1           SendByte(0xf0&Cbyte<<4);   //低四位(先执行<<)
  58   1      }
  59          void Lcd_WriteData(uchar Dbyte )
  60          {
  61   1           CheckBusy();
  62   1           SendByte(0xfa);              //11111,RW(0),RS(1),0
  63   1           SendByte(0xf0&Dbyte);        //高四位
  64   1           SendByte(0xf0&Dbyte<<4);   //低四位(先执行<<)
  65   1      }
  66          void Lcd_pos(uchar X,uchar Y)     //行列确定
  67          {
  68   1              uchar pos;
  69   1              if(X==0)
  70   1                      X=0X80;
  71   1              else if(X==1)
  72   1                      X=0X90;
  73   1              else if(X==2)
  74   1                      X=0X88;
  75   1              else if(X==3)
  76   1                      X=0x98;
  77   1              pos=X+Y;
  78   1              Lcd_WriteCmd(pos);
  79   1      }
  80          void Lcd_Init(void)
  81          { 
  82   1          Lcd_WriteCmd(0x30);        //选择基本指令集
  83   1              delay(1);
  84   1          Lcd_WriteCmd(0x0c);          //开显示(无游标、不反白)
  85   1              delay(1);
  86   1          Lcd_WriteCmd(0x01);          //清除显示,并且设定地址指针为00H
  87   1              delay(20);      
  88   1      }
  89          void Lcd_Display()
  90          {
  91   1                      uchar num;
  92   1                      Lcd_pos(0,0);
  93   1                      while(table[num]!='\0')
  94   1                      {
  95   2                              Lcd_WriteData(table[num]);
  96   2                              num++;
  97   2                      //      delay(1);
  98   2                      }
  99   1                      num=0;
 100   1                      Lcd_pos(1,0);
 101   1                      while(table1[num]!='\0')
 102   1                      {
 103   2                              Lcd_WriteData(table1[num]);
 104   2                              num++;
 105   2                      //      delay(1);
 106   2                      }
 107   1                      num=0;
 108   1                      Lcd_pos(2,0);
 109   1                      while(table[num]!='\0')
 110   1                      {
 111   2                              Lcd_WriteData(table2[num]);
 112   2                              num++;
 113   2                      //      delay(1);
 114   2                      }
 115   1                      num=0;
 116   1                      Lcd_pos(3,0);
C51 COMPILER V9.00   12864                                                                 08/26/2013 16:22:34 PAGE 3   

 117   1                      while(table[num]!='\0')
 118   1                      {
 119   2                              Lcd_WriteData(table3[num]);
 120   2                              num++;
 121   2                      //      delay(1);
 122   2                      }
 123   1              //      Lcd_pos(0,4);
 124   1      }
 125          
 126          void Lcd_display_shu(uint S) 
 127          {
 128   1              uint a,b,c,d;
 129   1              d=S%10;
 130   1              c=S/10%10;
 131   1              b=S/100%10;
 132   1              a=S/1000%10;
 133   1              Lcd_pos(0,3);
 134   1              Lcd_WriteData(a+0x30);                   //0x30就是将变量的转换,如果没有这个显示的结果会是a,并且,改变a的值的时候,不

⌨️ 快捷键说明

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