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

📄 mb9002.lst

📁 楼宇对讲系统里用的文字信息接收。用可视对讲话机的TFT屏可看到从管理中心发过来的广播信息和本户的特发信息
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   MB9002                                                                06/10/2005 13:26:29 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MB9002
OBJECT MODULE PLACED IN MB9002.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MB9002.C BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS

stmt level    source

   1          
   2          /***********************************************************/
   3          /*                                                                                     */
   4          /*                CPU:AT89c55   20MHZ                      */
   5          /*                Copyright  2004.09  Comelit              */
   6          /*                AUTHOR:  LV_XIAO_LU                      */
   7          /*                                                         */
   8          /***********************************************************/
   9          /*  对于MB90092来说,行地址ROW = 0X00--0X0B ,列地址COW=0X00--0X17  */
  10          /*************    VRAM address setting                  *************/
  11          /*               bit7  bit 6  bit5  bit4  bit3  bit2  bit1  bit0     */
  12          /*first byte       1    0      0      0     0    VSL   RA8   RA7     */
  13          /*second byte      0   RA6    RA5    CA4   CA3   CA2   CA1   CA0     */
  14          /*********************************************************************/
  15          /*                   COMMAND1-1                                      */
  16          /*               bit7  bit 6  bit5  bit4  bit3  bit2  bit1  bit0     */
  17          /*first byte       1    0      0      1     1    MA    MB    AT      */
  18          /*second byte      0    CG    CR     CB     MC   BG    BR    BB      */
  19          /*                   COMMAND2-1                                      */
  20          /*first byte       1    0      0      1     0    M9    M8    M7      */
  21          /*second byte      0    M6     M5     M4    M3   M2    M1    M0      */
  22          /*********************************************************************/
  23          
  24          #include "reg52.h"
  25          #include "typedef.h"
  26          #include "define.h"
  27          #include "variable.h"
  28          #include "define.h"
  29          #include "intrins.h"
  30          #define byte unsigned char
  31          /*该系统所用字体颜色为红色,且固定*/
  32          
  33          sbit  IC_CS     =  P1^4;
  34          sbit  IC_SLK = P1^3;
  35          sbit  IC_SIN = P1^2;
  36          
  37          
  38                  typedef union{                                                                          // font data type
  39                                          unsigned int    wcode ;
  40          
  41                                                  struct {
  42                                                                          unsigned        char    high ;
  43                                                                          unsigned        char    low ;
  44                                                             } scode ;
  45                                            } TCODE ;
  46          
  47                   typedef struct{
  48                                     unsigned char row;
  49                                                     unsigned char col;
  50                                                     unsigned char size: 4 ;
  51                                                     unsigned char bc:   4 ;
  52                                                     unsigned char cc:   4 ;
  53                                                     unsigned char at:   1 ;
  54                                                     unsigned char dummy: 3 ;
  55                                                  }DISP_ATTR;
C51 COMPILER V7.06   MB9002                                                                06/10/2005 13:26:29 PAGE 2   

  56          
  57               typedef struct{
  58                                  unsigned char *str;         //待显示的字符串
  59                              DISP_ATTR str_attr;
  60                                                  }ATTR;
  61           
  62          void Turn_disp_off(void);
  63          void Turn_disp_on(void);
  64          void Vram_clear(void);
  65          void Send_byte(byte I_data);
  66          //void Delay(void);
  67          void  Disp_color(byte row);
  68          void Disp_num(byte row,byte col,unsigned int adr,byte size,byte bc,byte cc,byte at);
  69          
  70          void  Init_mb9002_ic(byte bc);
  71          void Turn_disp_off(void);
  72          int      Isascii2( int c ) ;
  73          unsigned char* Disp_next_font(unsigned char *s);
  74          unsigned char  *Disp_next_content(unsigned char *s) ;
  75          unsigned int  Dfontadr( unsigned int font_code );
  76          void Set_str_attr(byte x,byte y,byte size,byte bc,byte cc,byte at);
  77          void Set_content_attr(byte x,byte y,byte size,byte bc,byte cc,byte at);
  78          void Disp_content(unsigned char *pointer,byte x,byte y,byte size,byte bc,byte cc,byte at);
  79          void Disp_str(unsigned char *pointer,byte x,byte y,byte size,byte bc,byte cc,byte at);
  80          
  81          /*********************************************************/
  82          /*********************************************************/
  83          
  84          void Turn_disp_off(void)
  85          {
  86   1                      Send_byte(COMMAND_4+0x02);   //内同步,非隔行扫描,一般性的屏幕背景显示
  87   1                      Send_byte(0x2a);             /*区域控制:一般显示,显示颜色:彩色,放大控制:不放大*/
  88   1                                                                       /*制式:PAL制,显示控制:使能显示输出 */
  89   1      }       
  90          
  91          /*********************************************************/
  92          /*********************************************************/
  93          void Turn_disp_on(void)
  94          {
  95   1              Send_byte(COMMAND_4+0x02);   
  96   1          Send_byte(0x2b); 
  97   1      }       
  98          
  99          /*********************************************************/
 100          /*********************************************************/
 101          void Vram_clear(void)
 102          {
 103   1         register unsigned char i,j;
 104   1         for(i=0;i<13;i++)    
 105   1                      {
 106   2                              for(j=0;j<24;j++)
 107   2                              {
 108   3                                      Disp_num(i,j,0x00,3,0,0,0);
 109   3                              
 110   3                              }
 111   2                      }
 112   1      }
 113          /*********************************************************/
 114          /*********************************************************/
 115          
 116          
 117          /*********************************************************/
C51 COMPILER V7.06   MB9002                                                                06/10/2005 13:26:29 PAGE 3   

 118          /*    发送字节到90092  I_data:待发送的数                 */
 119          /*********************************************************/
 120          void Send_byte(byte I_data)
 121          {
 122   1              register char i;
 123   1              IC_CS = 0;
 124   1              for(i=0;i<8;i++)
 125   1              {
 126   2                      IC_SLK = 0 ;
 127   2                      if(I_data&0x01)
 128   2                 IC_SIN = 1;
 129   2                      else
 130   2                         IC_SIN = 0; 
 131   2      
 132   2                      I_data >>= 1;
 133   2                      IC_SLK = 1;     
 134   2              }
 135   1      
 136   1              IC_CS = 1;
 137   1      }
 138          
 139          /**********************************************************/
 140          /*  延时程序                                              */
 141          /**********************************************************/
 142          /*void Delay(void)
 143          {
 144                  byte i;
 145                  for(i=0;i<0xff;i++)
 146                  {
 147                    i++;
 148                    i--;
 149                  }
 150          }*/
 151          /**********************************************************/
 152          /*                                                        */
 153          /*      在屏幕上显示字符                                      */
 154          /*      row:行地址                                            */
 155          /*      col:列地址                                            */
 156          /*      addr:要显示的字符的地址                               */
 157          /*      flag:标志位,主要字符状态                              */
 158          /**********************************************************/
 159          
 160          void  Disp_color(byte row)
 161          {
 162   1              register byte temp1,temp2;
 163   1              
 164   1      
 165   1      
 166   1          temp1=((row >> 2)&0x3)+0x84;
 167   1              temp2=((row<<5)&0x60)+1;
 168   1              
 169   1      /* COMMAND0:VSL=1,CA0=1 */
 170   1              Send_byte(temp1);
 171   1              Send_byte(temp2);
 172   1      /*  COMMAND1-3*/
 173   1              Send_byte(0x88);
 174   1              Send_byte(0x0);
 175   1      /*  COMMAND2-3*/        
 176   1              Send_byte(0x90);
 177   1              Send_byte(0x0);
 178   1      }
 179          
C51 COMPILER V7.06   MB9002                                                                06/10/2005 13:26:29 PAGE 4   

 180          
 181          /***************************************************************/
 182          /*vram row:行,vram col:列,addr:字体地址,size:尺寸,bc:背景颜色,*/
 183          /*cc:前景颜色,at:特殊显示标记                                  */
 184          /***************************************************************/
 185          
 186          //void  Disp_num(byte row,byte col,int addr,byte size,byte bc,byte cc,byte ff)
 187          //{
 188          //      byte temp1,temp2,color;
 189                  /* VRAM ADDRESS SET :COMMAND0 */
 190          //      temp1=((row>>2)&0x3)+CAMMAND_0;     /* Get VRAM SET COMMAND0 :first byte   */
 191          //      temp2=((row<<5)&0x60)+col;     /* Get VRAM SET COMMAND0 :second byte  */        
 192          //      send_byte(temp1);   
 193          //      send_byte(temp2);
 194                  
 195                  /* command 6 用于指定字体大小和行的位置 */
 196          //      send_byte(COMMAND_6+size);/* command 6 */
 197          //      send_byte(0x20+row);
 198                  
 199          //      if (singal==4)   
 200          //      {
 201          //              cc=7;
 202          //              bc=0;
 203          //      }
 204          
 205          /*   command1-1   */
 206          //      color=((cc<<4)&0x70)+bc;        
 207          //      Send_byte(0x88+ff);
 208          //      Send_byte(color);
 209                  
 210          /* command2-1 */
 211          //      Send_byte(0x90+addr/128);
 212          //      Send_byte(addr%128);
 213          //}
 214          
 215          
 216          
 217          /***************************************************************/
 218          /*   at:特殊显示标记                                           */
 219          /***************************************************************/
 220          void  Disp_num(byte row,byte  col,unsigned int  adr,byte  size,byte  bc,byte  cc,byte  at)
 221          {
 222   1         
 223   1              register byte  temp1,temp2,high_adr;
 224   1      /* VRAM ADDRESS SET :COMMAND0 */
 225   1              temp1=((row >> 2)&0x3) + COMMAND_0 ;     /* Get VRAM SET COMMAND0 :first byte   */
 226   1              temp2=((row << 5)&0x60) + col ;          /* Get VRAM SET COMMAND0 :second byte  */      
 227   1              Send_byte(temp1);   
 228   1              Send_byte(temp2);
 229   1              
 230   1      /* command 6 用于指定字体大小和行的位置 */
 231   1              Send_byte(COMMAND_6+size);/* command 6 */
 232   1              Send_byte(0x20+ row);
 233   1              
 234   1      
 235   1      /*   command1-1   */
 236   1      
 237   1      /* 先做如下地址变换: 
 238   1       将font->code_addr =  XX XX XX MC MB MA BIT9 BIT8 BIT7 BIT6 BIT5 BIG4 BIT3 BIT2 BIT1 BIT0
 239   1          ----> temp1 =                                  0     0    0    0   0    MC    MB   MA   
 240   1      */                                               
 241   1          temp1=(unsigned char)(adr>>10);
C51 COMPILER V7.06   MB9002                                                                06/10/2005 13:26:29 PAGE 5   

 242   1          high_adr = temp1 & 0x03 ;
 243   1      /*再做如下变换              BIT7  BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 */
 244   1      /*            将temp1    =       0     0    0    0    0     MC    MB   MA   
 245   1           ---->      high_adr =           0     0    0    0    0     MA    MB   0  */
 246   1      
 247   1              if(high_adr == 1)
 248   1                 high_adr = 4;

⌨️ 快捷键说明

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