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

📄 main.lst

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


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

line level    source

   1          #include"reg52.h"
   2          sfr WDT_CONTR=0xe1;
   3          #define zimushuru 0
   4          #define pinyinchazhao 1
   5          #define hazixianshi 2
   6          #define xunhuan_xianshi 3
   7          #define write_to_eprom 4
   8          #define read_of_eprom 5
   9          #define yiwei_xianshi 6
  10          
  11          extern void display(void);
  12          extern bit keyread(unsigned char *keyborad);
  13          extern unsigned char translatekeytoasc(key);
  14          
  15          extern void Readtodisp_kuodown(unsigned char ASCIICode,unsigned char count);
  16          extern void Clear_one_zimu(unsigned char ge);
  17          extern void Pre_hz();
  18          extern void Next_hz();
  19          extern void Choose_hz(unsigned char no);
  20          extern void pyInit();
  21          extern void Pageup();
  22          extern void Pagedown();
  23          extern void pinyinchazi(unsigned char *py);
  24          extern void Clear_one_hanzi(void);
  25          extern unsigned char page;
  26          extern void Save_eprom();
  27          extern void Read_eprom();
  28          extern void Choose_eprom();
  29          extern void Init();
  30          extern void Clear_all(void);
  31          extern void flash_disply(void);
  32          extern void flash_this_page(void);
  33          extern void begin(void);
  34          xdata unsigned char key;
  35          unsigned char zhuangtai=zimushuru;
  36          
  37          sbit OE=P3^5;     //138的使能
  38          
  39          unsigned char zi_mu_ge_shu=0,zimu[7]="";
  40          bit flag_begin=0;
  41          
  42          
  43          void main()
  44          {
  45   1      
  46   1              pyInit();
  47   1              zhuangtai=1;
  48   1              begin();
  49   1              TMOD=0x01;
  50   1          TH0=0xf8;
  51   1              TL0=0x00; 
  52   1              EA=1;
  53   1              ET0=1;
  54   1              TR0=1;
C51 COMPILER V8.02   MAIN                                                                  04/10/2008 10:43:45 PAGE 2   

  55   1              OE=0; 
  56   1              
  57   1              while(1)
  58   1              {       
  59   2                      if(keyread(&key))
  60   2                      {
  61   3                              key=translatekeytoasc(key);
  62   3                              if(flag_begin==0&&key!=24)
  63   3                                      continue;
  64   3                              if(flag_begin==0&&key==24) 
  65   3                              {
  66   4                                      flag_begin=1;
  67   4                                      Init(); 
  68   4                              }
  69   3                              if(key>='a'&&key<='z')
  70   3                              {
  71   4                                      if(zhuangtai<=hazixianshi)
  72   4                                      {
  73   5                                              if(zhuangtai!=zimushuru)
  74   5                                                      Clear_all();
  75   5                                              zhuangtai=zimushuru;
  76   5                                      
  77   5                                              if(zi_mu_ge_shu<=5)
  78   5                                              {
  79   6                                                      zimu[zi_mu_ge_shu]=key;
  80   6                                                      Readtodisp_kuodown(key,zi_mu_ge_shu);
  81   6                                                      zi_mu_ge_shu++;
  82   6                                              }
  83   5                                      }
  84   4                              }
  85   3                              else if(key==12)    //撤消键    
  86   3                              {       
  87   4                                      if(zhuangtai==zimushuru&&zi_mu_ge_shu!=0)
  88   4                                      {
  89   5                                              zi_mu_ge_shu--;
  90   5                                              zimu[zi_mu_ge_shu]='\0';
  91   5                                              Clear_one_zimu(zi_mu_ge_shu);           
  92   5                                      }
  93   4                                      else if(zhuangtai==hazixianshi) 
  94   4                                      {
  95   5                                              Clear_one_hanzi();
  96   5                                      }
  97   4                              }
  98   3                              else if(key==29)
  99   3                              {
 100   4                                      if(zhuangtai==zimushuru)        //空格键
 101   4                                      {       
 102   5                                              pinyinchazi(zimu);
 103   5                                              zhuangtai=pinyinchazhao;
 104   5                                              zi_mu_ge_shu=0;
 105   5                                              zimu[0]='\0';
 106   5                                              zimu[1]='\0';
 107   5                                              zimu[2]='\0';
 108   5                                              zimu[3]='\0';
 109   5                                              zimu[4]='\0';
 110   5                                              zimu[5]='\0';
 111   5                                              zimu[6]='\0';      
 112   5                                      }
 113   4                              }
 114   3                              else if(key==18)
 115   3                              {
 116   4                                      if(zhuangtai==pinyinchazhao)   //拼音下翻字
C51 COMPILER V8.02   MAIN                                                                  04/10/2008 10:43:45 PAGE 3   

 117   4                                      {       
 118   5                                              Next_hz();                              
 119   5                                      }
 120   4                              }
 121   3                              else if(key==17)
 122   3                              {
 123   4                                      if(zhuangtai==pinyinchazhao)   //拼音上翻字
 124   4                                      {
 125   5                                              Pre_hz();
 126   5                                      }
 127   4                              }
 128   3                              else if(key>=49&&key<=52)
 129   3                              {
 130   4                                      if(zhuangtai==pinyinchazhao) //选字
 131   4                                      {
 132   5                                              zhuangtai=hazixianshi;
 133   5                                              Choose_hz(key-49);
 134   5                                      }
 135   4                              } 
 136   3                              else if(key==15)  //上翻页
 137   3                              {
 138   4                                      if(zhuangtai<=hazixianshi)      
 139   4                                              {
 140   5                                                      zhuangtai=hazixianshi;
 141   5                                                      Pageup();
 142   5                                              }
 143   4                              }                        
 144   3                              else if(key==16)           //下翻页
 145   3                              {
 146   4                                      if(zhuangtai<=hazixianshi)
 147   4                                      {
 148   5                                              zhuangtai=hazixianshi;
 149   5                                              Pagedown();
 150   5                                      }
 151   4                              } 
 152   3                              else if(key==24)   //ESC
 153   3                              {
 154   4                                      if(zhuangtai==hazixianshi)
 155   4                                      {       
 156   5                                              flash_disply();
 157   5                                              zhuangtai=xunhuan_xianshi; //组循环显示
 158   5                                              page=0;
 159   5                                      }
 160   4                                      else 
 161   4                                      {
 162   5                                              zhuangtai=hazixianshi;
 163   5                                              if(zhuangtai==xunhuan_xianshi)
 164   5                                                      page=0;
 165   5                                              flash_this_page();
 166   5                                      }
 167   4                              }
 168   3                              else if(key==27)  //ctrl
 169   3                              {               
 170   4                                      if(zhuangtai!=xunhuan_xianshi&&zhuangtai!=yiwei_xianshi)
 171   4                                              zhuangtai=write_to_eprom; //保存词组状态
 172   4                              }
 173   3                              else if(key==32)         //enter
 174   3                              {
 175   4                                      if(zhuangtai==read_of_eprom)
 176   4                                      {
 177   5                                              Choose_eprom(); 
 178   5                                              zhuangtai=hazixianshi;  
C51 COMPILER V8.02   MAIN                                                                  04/10/2008 10:43:45 PAGE 4   

 179   5                                      }
 180   4                              }
 181   3                              else if(key==21)         //del键
 182   3                              {
 183   4                                      if(zhuangtai!=xunhuan_xianshi)
 184   4                                              zhuangtai=yiwei_xianshi;        
 185   4      
 186   4                              }
 187   3                              else 
 188   3                              {       if(zhuangtai!=xunhuan_xianshi&&zhuangtai!=yiwei_xianshi)   //在循环和移位显示状态不能进入
 189   4                                      {
 190   5                                              if(zhuangtai==write_to_eprom)
 191   5                                              {
 192   6                                                      zhuangtai=hazixianshi;
 193   6                                                      Save_eprom();    //保存字
 194   6                                              }
 195   5                                              else
 196   5                                              {
 197   6                                                      Read_eprom();
 198   6                                              zhuangtai=read_of_eprom;   //读取已存的字
 199   6                                              }
 200   5                                      }
 201   4                              }                  
 202   3                                 
 203   3                                      
 204   3      
 205   3                      }         
 206   2      
 207   2              }
 208   1      
 209   1      
 210   1      }
 211          
 212          
 213          void dis(void) interrupt 1
 214          {
 215   1              TH0=0xf0;
 216   1              TL0=0x00;
 217   1              display();      
 218   1      
 219   1      }  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    585    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      1    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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