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

📄 display.lst

📁 本程序功能: DDS文件夹内的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   DISPLAY                                                               05/17/2006 14:57:10 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN display.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE display.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <absacc.h>
   2          #include <reg51.h>
   3          #include "display_drv.h"
   4          #include "font.h"
   5          #include "font2.h"
   6          
   7          #include <absacc.h>
   8          
   9          
  10          #define DWPort0 XBYTE[0x8002] 
  11          #define DRPort0 XBYTE[0x8003]
  12          #define IWPort0 XBYTE[0x8000]
  13          #define IRPort0 XBYTE[0x8001]
  14          #define DWPort1 XBYTE[0x9002] 
  15          #define DRPort1 XBYTE[0x9003]
  16          #define IWPort1 XBYTE[0x9000]
  17          #define IRPort1 XBYTE[0x9001]
  18          
  19          unsigned int data Dispointer;
  20          
  21          sbit lcd_cs0=P1^4;
  22          sbit lcd_cs1=P1^3;
  23          sbit lcd_res=P1^5;
  24          sbit lcd_rw=P3^6;
  25          sbit lcd_EN=P1^2;
  26          sbit lcd_DC=P3^7;
  27          
  28          /*void main(void){
  29                  unsigned char k;
  30                  display_on();
  31                  cls();
  32                  display_top(0);
  33          Set_Display_Add(0);
  34          for(k=128;k<255;k++)
  35          {
  36          putchar(k);
  37          }
  38          putchar(255);
  39                  display_on();
  40              cls();
  41                  display_top(0);
  42                  Set_Display_Add(0);
  43          while(1){
  44          
  45          }
  46          }
  47          */
  48          void display_init(void)
  49          {
  50   1              display_on();
  51   1              display_top(0);
  52   1              cls();
  53   1              lcd_res=1;
  54   1      }
  55          
C51 COMPILER V7.09   DISPLAY                                                               05/17/2006 14:57:10 PAGE 2   

  56          void lcddelay()
  57          {
  58   1      unsigned char k;
  59   1      for(k=0;k<10;k++);;
  60   1      }
  61          
  62          void printf(unsigned char code *screen)
  63          {
  64   1        while (*screen != '\0')
  65   1        {
  66   2          putchar(*screen++);
  67   2        }
  68   1      }
  69          
  70          bit naga=0;
  71          #if font_select
  72          void putchar(unsigned char a){
  73   1              unsigned char *p;
  74   1              if(a=='\n'){
  75   2              Set_Display_Add((Dispointer&0x380)+0x80);
  76   2              }
  77   1              else
  78   1              {
  79   2              p=font5x7+(a*5);
  80   2              if(!naga){
  81   3              Display(*p);
  82   3              p++;
  83   3              Display(*p);
  84   3              p++;
  85   3              Display(*p);
  86   3              p++;
  87   3              Display(*p);
  88   3              p++;
  89   3              Display(*p);
  90   3              }
  91   2              else
  92   2              {
  93   3              Display(~(*p));
  94   3              p++;
  95   3              Display(~(*p));
  96   3              p++;
  97   3              Display(~(*p));
  98   3              p++;
  99   3              Display(~(*p));
 100   3              p++;
 101   3              Display(~(*p));
 102   3              }
 103   2              }
 104   1      }
 105          #else
              void putchar(unsigned char a){
                      unsigned char *p;
                      if(a=='\n'){
                      Set_Display_Add((Dispointer&0x380)+0x80);
                      }
                      else
                      {
                      p=Character8x8+(a*8);
                      Display(*p);
                      p++;
                      Display(*p);
                      p++;
C51 COMPILER V7.09   DISPLAY                                                               05/17/2006 14:57:10 PAGE 3   

                      Display(*p);
                      p++;
                      Display(*p);
                      p++;
                      Display(*p);
                      p++;
                      Display(*p);
                      p++;
                      Display(*p);
                      p++;
                      Display(*p);
                      }
              }
              #endif
 132          
 133          /*
 134          void DisplayArray(Uchar s[]){
 135                  unsigned char *p;
 136                  unsigned int add;
 137                  p=s;
 138                  Set_Display_Add(0);
 139                  for(add=0;add<1024;add++){
 140                          Display(*p);
 141                          p++;
 142                  }
 143          }*/
 144          #if array_display
 145          void DisplayArray(unsigned char s[]){
 146   1              unsigned char *p;
 147   1              unsigned char k,j;
 148   1              p=s;
 149   1              for(k=0;k<8;k++){
 150   2              SetCommand(0xb8+k,0);
 151   2              SetCommand(0x40,0);
 152   2              for(j=0;j<64;j++)
 153   2                      {       
 154   3                      WriteData(*p,0);
 155   3                      p++;
 156   3                      }
 157   2              SetCommand(0xb8+k,1);
 158   2              SetCommand(0x40,1);
 159   2              for(j=0;j<64;j++)
 160   2                      {       
 161   3                      WriteData(*p,1);
 162   3                      p++;
 163   3                      }
 164   2              }
 165   1      
 166   1      }
 167          #endif
 168          
 169          
 170          static bit bdata flag;
 171          void Display(unsigned char dat){
 172   1              if((Dispointer&0x3f)==0){
 173   2                      flag=((Dispointer&0x40)==0x40);
 174   2                      SetCommand(0xb8+((Dispointer&0x380)>>7),flag);
 175   2                      SetCommand(0x40+(Dispointer&0x3f),flag);
 176   2              }
 177   1              WriteData(dat,flag);
 178   1              Dispointer++;    //此处Dispointer有可能越界,但只是用了低10位,正好利用越界让低10位以模1024循环,Dispoint
             -er只要取低10位即可,不用写限制语句
C51 COMPILER V7.09   DISPLAY                                                               05/17/2006 14:57:10 PAGE 4   

 179   1      }
 180          
 181          
 182          
 183          unsigned char GetDisplay(){
 184   1              if((Dispointer&0x3f)==0){
 185   2                      flag=((Dispointer&0x40)==0x40);
 186   2                      SetCommand(0xb8+((Dispointer&0x380)>>7),flag);
 187   2                      SetCommand(0x40+(Dispointer&0x3f),flag);
 188   2              }
 189   1              
 190   1              Dispointer++;    //此处Dispointer有可能越界,但只是用了低10位,正好利用越界让低10位以模1024循环,Dispoint
             -er只要取低10位即可,不用写限制语句
 191   1              return  ReadData(flag);
 192   1      }
 193          
 194          void GetNot(unsigned int start,unsigned int end){
 195   1      unsigned char data dis;
 196   1              while(start<=end){
 197   2              Set_Display_Add(start);

⌨️ 快捷键说明

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