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

📄 duziku.lst

📁 程序是基于STC89C58的点阵屏显示程序
💻 LST
字号:
C51 COMPILER V8.02   DUZIKU                                                                04/10/2008 10:43:46 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE DUZIKU
OBJECT MODULE PLACED IN .\xiazai\duziku.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE daima\duziku.c BROWSE DEBUG OBJECTEXTEND PRINT(.\duziku.lst) OBJECT(.\xiaza
                    -i\duziku.obj)

line level    source

   1          #include"reg51.h"
   2          //#include "INTRINS.H"
   3          
   4          extern void sendcmd(unsigned char cmd);
   5          extern void sendaddress(unsigned long address);
   6          
   7          
   8          sbit LA=P1^0;
   9          sbit LD=P1^3;
  10          
  11          sbit Data=P2^5; //595数据线
  12          sbit CS=P3^3;   //595输出线
  13          sbit CLK=P3^2;  //595移位时钟线
  14          sbit OE=P3^5;     //138的使能
  15          sbit Data1=P3^4;         
  16          bit gundong=0;//16点阵汉字向左滚动显示切换标志(功能键F11实现切换)
  17          bit shangfan=0;//16点阵汉字上翻显示切换标志(功能键F10实现切换)
  18          
  19          
  20          
  21          
  22          //      读字库芯片****************************************
  23          sbit GT32_CS=P1^4;         //字库芯片使能
  24          sbit GT32_CLK=P1^5;        //字库芯片时钟线
  25          sbit GT32_SI=P1^7;         //字库芯片输入数据线
  26          sbit GT32_SO=P1^6;         //字库芯片输出数据线
  27          
  28          extern  unsigned char xdata zimoku[3][128];
  29          extern unsigned char page;
  30          
  31          
  32          
  33          
  34          
  35          
  36          //*********************8X16 点扩展字符在芯片中的字节地址的计算***********
  37          unsigned long kuozimuaddress(unsigned char LSB)
  38          {
  39   1      unsigned long Address;
  40   1      if (LSB>=0x20&&LSB<=0x7E)  //内码为20H~7E 的95 个ASC 字符
  41   1      Address=(LSB-0x20)*16+0x1DD780;
  42   1      return(Address);
  43   1      }
  44          //******************************************************************
  45          
  46          
  47          //****************读一个8x16国际音标字符字母字模(16个字节)********
  48          void jiegjzimu_fun(unsigned char zishu) 
  49          {
  50   1      unsigned i,j,DATA=0;
  51   1      
  52   1      GT32_CS=0;
  53   1      GT32_CLK=1;
  54   1      GT32_CLK=0;
C51 COMPILER V8.02   DUZIKU                                                                04/10/2008 10:43:46 PAGE 2   

  55   1      
  56   1      
  57   1      for(i=0;i<16;i++)
  58   1              {       
  59   2                      for(j=0;j<8;j++)
  60   2                      {       
  61   3                              GT32_CLK=0;
  62   3                              if(GT32_SO) 
  63   3                                      DATA=DATA|0x01;
  64   3                              if(i==0&&j==0)DATA=DATA&0xfe;
  65   3      
  66   3                              GT32_CLK=1;                     
  67   3                              if(j!=7) DATA=DATA<<1;
  68   3                      }
  69   2                      
  70   2                      zimoku[page][zishu/2*32+i*2+zishu%2]=DATA;
  71   2                      
  72   2              
  73   2                      DATA=0;
  74   2                      
  75   2              }       
  76   1      
  77   1      GT32_CS=1;
  78   1      }
  79          //*******************************************************************
  80          /*消除某一个字母的显示字模库*/
  81          void Clear_one_zimu(unsigned char ge)
  82          {
  83   1              xdata unsigned char i=0;
  84   1              for(i=0;i<16;i++)
  85   1                      zimoku[page][ge/2*32+i*2+ge%2]=0;       
  86   1      }
  87          
  88          
  89          
  90          
  91          
  92          
  93          //********************* //15x16点阵汉字字模地址计算**********************
  94          unsigned long getaddress(unsigned char MSB,unsigned char LSB)   
  95          {
  96   1      unsigned long BaseAdd=0x02C9D0; 
  97   1      unsigned long Address;
  98   1      if(MSB>=0xA1&&MSB<=0xAB&&LSB>=0xA1)
  99   1              Address=(((unsigned long)MSB-0xA1)*94+((unsigned long)LSB-0xA1))*32+BaseAdd;
 100   1      else if(MSB>=0xB0&&MSB<=0xF7&&LSB>=0xA1)
 101   1              Address=(((unsigned long)MSB-0xB0)*94+((unsigned long)LSB-0xA1)+846)*32+BaseAdd; 
 102   1      return(Address);
 103   1      
 104   1      }
 105          //************************************************************
 106          
 107          //*读一个15x16汉字字模(32个字节)*********************
 108          void jiehanzi_fun(unsigned char zishu)  
 109          {
 110   1      unsigned char i,j,DATA=0;
 111   1      GT32_CS=0;
 112   1      GT32_CLK=1;
 113   1              for(i=0;i<32;i++)
 114   1              {       
 115   2                      for(j=0;j<8;j++)
 116   2                      {       
C51 COMPILER V8.02   DUZIKU                                                                04/10/2008 10:43:46 PAGE 3   

 117   3                              GT32_CLK=0;
 118   3                              if(GT32_SO) 
 119   3                                      DATA=DATA|0x01;
 120   3                              else DATA=DATA|0x0;
 121   3      
 122   3                              GT32_CLK=1;                     
 123   3                              if(j!=7) DATA=DATA<<1;
 124   3                      }
 125   2                      zimoku[page][zishu*32+i]=DATA;
 126   2                      DATA=0;
 127   2              }       
 128   1      
 129   1      GT32_CS=1;
 130   1      }
 131          //*******************************************************************
 132          
 133                   
 134          
 135          
 136          
 137          //*****************将一个8x16的拼音字母读到显示缓冲区disp_down***************
 138          void Readtodisp_kuodown(unsigned char ASCIICode,unsigned char count)
 139          {
 140   1              unsigned long kuozimuAdd=0;
 141   1              kuozimuAdd=kuozimuaddress(ASCIICode);
 142   1              sendcmd(0x03);
 143   1              sendaddress(kuozimuAdd);                                                                                 
             -                                                                                                                        
             -                                                             
 144   1              jiegjzimu_fun(count);
 145   1      }       
 146          
 147          void Readtodisp_hanzi(unsigned char *hzstr)
 148          {
 149   1              int i=0;
 150   1              for(i=0;i<4;i++)
 151   1              {
 152   2              
 153   2                      sendcmd(0x03);
 154   2                      sendaddress(getaddress(*(hzstr+i*2),*(hzstr+i*2+1)));
 155   2                      jiehanzi_fun(i);        
 156   2              }
 157   1      }
 158          
 159          void Clear_all(void)
 160          {
 161   1              unsigned char  i=0,j=0;
 162   1              for(i=0;i<3;i++)
 163   1                      for(j=0;j<128;j++)
 164   1                              zimoku[i][j]=0x00;      
 165   1      }
 166          
 167          
 168            


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    776    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----       1
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      26
C51 COMPILER V8.02   DUZIKU                                                                04/10/2008 10:43:46 PAGE 4   

   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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