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

📄 mykey.lst

📁 实现单片机与键盘和液晶的人机交互
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   MYKEY                                                                 05/17/2008 16:44:41 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MYKEY
OBJECT MODULE PLACED IN mykey.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE mykey.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<aduc848.h>
   2          #include<intrins.h>
   3          #include<mykey.h>
   4          #include<math.h>
   5          #include<stdio.h>
   6          #include<intrins.h>                  
   7          #include <absacc.h>
   8          #include <setjmp.h>
   9          #include<string.h>
  10          
  11          /******************************************/
  12          //主程序
  13          /******************************************/
  14          void main()
  15          {
  16   1       
  17   1         FLASHADDR=0x00FF;
  18   1         CPRST=NORM;      
  19   1         vp=0.2;
  20   1         ip=1.0;
  21   1         freq=50;
  22   1         P2=0xf0;
  23   1         _RD=1;
  24   1         _WR=1;
  25   1         RS=1;
  26   1         CS=1 ;
  27   1         LCD_BUS=0xFF;
  28   1         LCD_Initial();
  29   1         CmdWrite(0x12,0x91);          //选择page1进行读写
  30   1         CmdWrite(0x00,0xcd);          //文本模式,开显示
  31   1         FullScreenFill(0x00);        //清屏
  32   1         dis_Page2();
  33   1         Timer2_Init(58000);
  34   1         while(1)
  35   1           {
  36   2            check_key();
  37   2                if (FLASHADDR!=0x00FF)        //有闪烁
  38   2                           {
  39   3                    if (numm%2==0)
  40   3                                       DATALCD[FLASHADDR]=FLASHDATA[FLASHTAB]; 
  41   3                                else     
  42   3                                    DATALCD[FLASHADDR]=' ';  
  43   3                                        WriteTextScreen(DATALCD);  
  44   3                                }
  45   2            }
  46   1       
  47   1      }
  48          
  49          void Timer2_Init(unsigned int count)
  50          {   
  51   1      
  52   1         T2CON=0x00;
  53   1         TL2=count;
  54   1         TH2=(count>>8);
  55   1         RCAP2H=(count>>8);
C51 COMPILER V8.02   MYKEY                                                                 05/17/2008 16:44:41 PAGE 2   

  56   1         RCAP2L=count;
  57   1         CNT2=0;
  58   1         EA=1;
  59   1         ET2=1;
  60   1         TR2=1; 
  61   1      } 
  62            
  63          void Timer2_ISR(void) interrupt 5
  64          {
  65   1          TF2=0;
  66   1          num++;
  67   1         if(num%100==0)
  68   1        { numm++;}
  69   1      }
  70          
  71          void check_key(void)
  72          {         P1=0x00;
  73   1           //SETBIT(P1,keyenter);
  74   1          // SETBIT(P1,keyesc);
  75   1          // SETBIT(P1,keyadd);
  76   1          // SETBIT(P1,keysub);
  77   1               
  78   1       
  79   1               if(set==0){
  80   2                 while(!set);
  81   2                 ckey=0x80;
  82   2                          }
  83   1               if(add==0){
  84   2                 while(!add);
  85   2                 ckey=0x40;
  86   2                          }
  87   1               if(sub==0){
  88   2                 while(!sub);
  89   2                 ckey=0x20;
  90   2                          }
  91   1               if(esc==0){
  92   2                 while(!esc);
  93   2                 ckey=0x10;
  94   2                          }
  95   1      
  96   1            if(ckey!=0)        //有键按下
  97   1                {    
  98   2           if (keyenterflag==0)
  99   2              {
 100   3                     msg_key();
 101   3                 keyenterflag=1;
 102   3               }
 103   2            else
 104   2               keyenterflag=0;
 105   2             } 
 106   1      }
 107          
 108          void msg_key(void)
 109          {
 110   1         unsigned char i1;
 111   1          i1=0;
 112   1          IKEYSTUS=TBSTUS[i1];
 113   1          while  (IKEYSTUS!=CPRST) 
 114   1          {
 115   2               i1+=4;
 116   2               IKEYSTUS=TBSTUS[i1];
 117   2          }
C51 COMPILER V8.02   MYKEY                                                                 05/17/2008 16:44:41 PAGE 3   

 118   1          i1++;
 119   1          IKEYSTUS=TBSTUS[i1];
 120   1          while(IKEYSTUS!=0&&(IKEYSTUS!=ckey))
 121   1          {
 122   2               i1+=4;
 123   2               IKEYSTUS=TBSTUS[i1];
 124   2          }
 125   1          CPRST=TBSTUS[i1+2];
 126   1          CPRAMADDR=TBSTUS[i1+1];
 127   1              switch(CPRAMADDR)
 128   1              {
 129   2               case SETNEXT:set_NEXT();break;
 130   2               case SETADD1:set_ADD();break;
 131   2           case SETSUB1:set_SUB();break;
 132   2           case SETCLEAR:set_CLEAR();break;
 133   2          }
 134   1              ckey=0x00;       
 135   1      }
 136          
 137          void set_NEXT(void)
 138          {   
 139   1           
 140   1          if  (FLASHADDR==0x00FF) 
 141   1            {        
 142   2               FLASHTAB=0;
 143   2               FLASHADDR=FLASHPOS[FLASHTAB];
 144   2                       
 145   2                       DATALCD[FLASHADDR]=FLASHDATA[FLASHTAB]; 
 146   2                       WriteTextScreen(DATALCD);
 147   2                 }
 148   1          else
 149   1            {
 150   2                FLASHADDR=FLASHPOS[FLASHTAB];
 151   2                        DATALCD[FLASHADDR]=FLASHDATA[FLASHTAB]; 
 152   2                WriteTextScreen(DATALCD);
 153   2                FLASHTAB++;
 154   2                        if(FLASHDATA[FLASHTAB]=='.')
 155   2                   FLASHTAB++;
 156   2                FLASHADDR=FLASHPOS[FLASHTAB];
 157   2                DATALCD[FLASHADDR]=FLASHDATA[FLASHTAB]; 
 158   2                
 159   2                        if(FLASHTAB==7)
 160   2                        { 
 161   3                          sscanf(FLASHDATA,"%3f",&vp);
 162   3                          sscanf(FLASHDATA+3,"%3f",&ip);
 163   3                              sscanf(FLASHDATA+6,"%2d",&freq);
 164   3                               dis_Page2();
 165   3                }
 166   2                 }  
 167   1      }
 168          
 169          
 170           void set_ADD(void)
 171          {
 172   1        switch(FLASHTAB)
 173   1        {
 174   2               case 0:
 175   2               FLASHADDR=FLASHPOS[FLASHTAB];
 176   2               if((FLASHDATA[FLASHTAB]>='0')&&(FLASHDATA[FLASHTAB]<'5'))
 177   2            {
 178   3                FLASHDATA[FLASHTAB]=FLASHDATA[FLASHTAB]+1;
 179   3                return;
C51 COMPILER V8.02   MYKEY                                                                 05/17/2008 16:44:41 PAGE 4   

 180   3                }
 181   2               else return;
 182   2              
 183   2              case 2:
 184   2               FLASHADDR=FLASHPOS[FLASHTAB];
 185   2               if ((FLASHDATA[FLASHTAB]<'9')&&(FLASHDATA[FLASHTAB-2]<'5'))
 186   2            {
 187   3                FLASHDATA[FLASHTAB]=FLASHDATA[FLASHTAB]+1;
 188   3            return;
 189   3                }
 190   2               if ((FLASHDATA[FLASHTAB]=='9')&&(FLASHDATA[FLASHTAB-2]<'4'))
 191   2            {
 192   3                FLASHDATA[FLASHTAB-2]=FLASHDATA[FLASHTAB-2]+1;
 193   3                DATALCD[FLASHPOS[FLASHTAB-2]]=FLASHDATA[FLASHTAB-2];
 194   3                FLASHDATA[FLASHTAB]='0';
 195   3            return;
 196   3                }
 197   2      
 198   2               if((FLASHDATA[FLASHTAB]=='9')&&(FLASHDATA[FLASHTAB-2]=='4'))
 199   2            {
 200   3                FLASHDATA[FLASHTAB-2]='5';
 201   3                 DATALCD[FLASHPOS[FLASHTAB-2]]=FLASHDATA[FLASHTAB-2];
 202   3                FLASHDATA[FLASHTAB]='0';
 203   3                return;
 204   3                }
 205   2                if((FLASHDATA[FLASHTAB]=='0')&&(FLASHDATA[FLASHTAB-2]=='5'))
 206   2            {
 207   3                FLASHDATA[FLASHTAB-2]='0';
 208   3                 DATALCD[FLASHPOS[FLASHTAB-2]]=FLASHDATA[FLASHTAB-2];
 209   3                FLASHDATA[FLASHTAB]='0';
 210   3                return;
 211   3                }
 212   2               else return;
 213   2              
 214   2               case 3:
 215   2               FLASHADDR=FLASHPOS[FLASHTAB];
 216   2               if((FLASHDATA[FLASHTAB]>='0')&&(FLASHDATA[FLASHTAB]<'5'))
 217   2            {
 218   3                FLASHDATA[FLASHTAB]=FLASHDATA[FLASHTAB]+1;
 219   3                return;
 220   3                }
 221   2               else return;
 222   2      
 223   2          case 5:
 224   2               FLASHADDR=FLASHPOS[FLASHTAB];
 225   2               if ((FLASHDATA[FLASHTAB]<'9')&&(FLASHDATA[FLASHTAB-2]<'5'))
 226   2            {
 227   3                FLASHDATA[FLASHTAB]=FLASHDATA[FLASHTAB]+1;
 228   3            return;
 229   3                }
 230   2               if ((FLASHDATA[FLASHTAB]=='9')&&(FLASHDATA[FLASHTAB-2]<'4'))
 231   2            {
 232   3                FLASHDATA[FLASHTAB-2]=FLASHDATA[FLASHTAB-2]+1;
 233   3                DATALCD[FLASHPOS[FLASHTAB-2]]=FLASHDATA[FLASHTAB-2];
 234   3                FLASHDATA[FLASHTAB]='0';
 235   3            return;
 236   3                }
 237   2      
 238   2               if((FLASHDATA[FLASHTAB]=='9')&&(FLASHDATA[FLASHTAB-2]=='4'))
 239   2            {
 240   3                FLASHDATA[FLASHTAB-2]='5';
 241   3                 DATALCD[FLASHPOS[FLASHTAB-2]]=FLASHDATA[FLASHTAB-2];
C51 COMPILER V8.02   MYKEY                                                                 05/17/2008 16:44:41 PAGE 5   

 242   3                FLASHDATA[FLASHTAB]='0';
 243   3                return;
 244   3                }
 245   2                if((FLASHDATA[FLASHTAB]=='0')&&(FLASHDATA[FLASHTAB-2]=='5'))
 246   2            {
 247   3                FLASHDATA[FLASHTAB-2]='0';
 248   3                 DATALCD[FLASHPOS[FLASHTAB-2]]=FLASHDATA[FLASHTAB-2];
 249   3                FLASHDATA[FLASHTAB]='0';
 250   3                return;
 251   3                }
 252   2               else return;   
 253   2         
 254   2               case 6:
 255   2               FLASHADDR=FLASHPOS[FLASHTAB];
 256   2               if((FLASHDATA[FLASHTAB]>='4')&&(FLASHDATA[FLASHTAB]<'6'))
 257   2            {
 258   3                FLASHDATA[FLASHTAB]=FLASHDATA[FLASHTAB]+1;
 259   3                return;
 260   3                }
 261   2               else return;
 262   2               
 263   2               case 7:
 264   2               FLASHADDR=FLASHPOS[FLASHTAB];
 265   2               if((FLASHDATA[FLASHTAB]<'9')&&(FLASHDATA[FLASHTAB-1]<'6')&&(FLASHDATA[FLASHTAB-1]>='4'))
 266   2            {
 267   3                FLASHDATA[FLASHTAB]=FLASHDATA[FLASHTAB]+1;
 268   3            return;
 269   3                }
 270   2               if((FLASHDATA[FLASHTAB]=='9')&&(FLASHDATA[FLASHTAB-1]<'6')&&(FLASHDATA[FLASHTAB-1]>='4'))
 271   2            {
 272   3                FLASHDATA[FLASHTAB-1]=FLASHDATA[FLASHTAB-1]+1;
 273   3                DATALCD[FLASHPOS[FLASHTAB-1]]=FLASHDATA[FLASHTAB-1];
 274   3                
 275   3                FLASHDATA[FLASHTAB]='0';;
 276   3            return;
 277   3                }
 278   2               if((FLASHDATA[FLASHTAB]=='9')&&(FLASHDATA[FLASHTAB-1]=='5'))
 279   2            {
 280   3                FLASHDATA[FLASHTAB-1]='6';
 281   3                DATALCD[FLASHPOS[FLASHTAB-1]]='6';
 282   3                FLASHDATA[FLASHTAB]='0';
 283   3                return;
 284   3                }
 285   2               if((FLASHDATA[FLASHTAB]=='0')&&(FLASHDATA[FLASHTAB-1]=='6'))
 286   2            {
 287   3                FLASHDATA[FLASHTAB-1]='4';
 288   3                DATALCD[FLASHPOS[FLASHTAB-1]]=FLASHDATA[FLASHTAB-1];
 289   3                FLASHDATA[FLASHTAB]='0';
 290   3                return;
 291   3                }
 292   2               else return;
 293   2         }  
 294   1        
 295   1      }
 296          
 297          void set_SUB(void)
 298          {
 299   1        switch(FLASHTAB)
 300   1         {
 301   2               case 0:
 302   2           FLASHADDR=FLASHPOS[FLASHTAB];
 303   2           if((FLASHDATA[FLASHTAB]<='5')&&(FLASHDATA[FLASHTAB]>'0'))
C51 COMPILER V8.02   MYKEY                                                                 05/17/2008 16:44:41 PAGE 6   

 304   2               {
 305   3               FLASHDATA[FLASHTAB]=FLASHDATA[FLASHTAB]-1;
 306   3           return; 
 307   3               }
 308   2               else return;
 309   2      
 310   2              case 2:
 311   2                if((FLASHDATA[FLASHTAB-2]>='0')&&(FLASHDATA[FLASHTAB]<='9')&&(FLASHDATA[FLASHTAB]>'0'))
 312   2                {
 313   3                FLASHDATA[FLASHTAB]=FLASHDATA[FLASHTAB]-1;
 314   3            return;
 315   3                }
 316   2                if((FLASHDATA[FLASHTAB]=='0')&&(FLASHDATA[FLASHTAB-2]>'0'))
 317   2                {
 318   3                FLASHDATA[FLASHTAB]='9';
 319   3                FLASHDATA[FLASHTAB-2]=FLASHDATA[FLASHTAB-2]-1;
 320   3                DATALCD[FLASHPOS[FLASHTAB-2]]= FLASHDATA[FLASHTAB-2];
 321   3            return;
 322   3                }
 323   2            else  return;
 324   2      
 325   2                case 3:
 326   2                FLASHADDR=FLASHPOS[FLASHTAB];
 327   2            if((FLASHDATA[FLASHTAB]<='5')&&(FLASHDATA[FLASHTAB]>'0'))
 328   2                {
 329   3                 FLASHDATA[FLASHTAB]=FLASHDATA[FLASHTAB]-1;
 330   3             return; 
 331   3                }
 332   2                 else return;
 333   2      
 334   2                 case 5:
 335   2                 if((FLASHDATA[FLASHTAB-2]>='0')&&(FLASHDATA[FLASHTAB]<='9')&&(FLASHDATA[FLASHTAB]>'0'))
 336   2                 {
 337   3                 FLASHDATA[FLASHTAB]=FLASHDATA[FLASHTAB]-1;
 338   3             return;
 339   3                 }
 340   2                 if((FLASHDATA[FLASHTAB]=='0')&&(FLASHDATA[FLASHTAB-2]>'0'))
 341   2                 {
 342   3                 FLASHDATA[FLASHTAB]='9';
 343   3                 FLASHDATA[FLASHTAB-2]=FLASHDATA[FLASHTAB-2]-1;
 344   3                 DATALCD[FLASHPOS[FLASHTAB-2]]= FLASHDATA[FLASHTAB-2];
 345   3             return;
 346   3                 }
 347   2             else  return;
 348   2      

⌨️ 快捷键说明

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