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

📄 text1.lst

📁 摇摇棒资料
💻 LST
📖 第 1 页 / 共 2 页
字号:
             -xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,
 162          0xFF,0xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,0x0F,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xFF,0
             -xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,
 163          0xFF,0xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,0xFF,0x04,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0
             -x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"油",1*/
 164          };
 165          /***********n(us)延时子程序***************/
 166          void DelayUs(uint N)
 167          {
 168   1       uint x;
 169   1       for(x=0; x<=N;x++);
 170   1      }
 171          /******************************************/
 172          void main()
 173          {       
 174   1              AUXR=0x80;      
 175   1              CLK_DIV=0;      
 176   1              EX0=1;  //开放外部中断0
 177   1              IT0=1;  //中断0为边沿触发方式
 178   1              IP=0x02;        //设置中断优先级
 179   1              TMOD=0x02;      //定时器0方式2,8位重装载
 180   1              TH0=0x80;       //设定定时器初值
 181   1              TL0=0x80;                  
 182   1              KY=0;
 183   1              EA=1;   //开放中断
 184   1              ET0=1;  //开放定时器0中断
C51 COMPILER V9.00   TEXT1                                                                 05/13/2012 02:20:58 PAGE 5   

 185   1              TR0=1;  //启动定时器0,开始计时*/
 186   1              key=0;  //初始化显示第一组文字
 187   1              keyy=0;
 188   1              P1M0=0x55;      //0101 0101     /P1.0  P1 .2 P1.4 P1.6推挽输出
 189   1          P1M1=0xAA; 
 190   1      
 191   1              while(1){//等待中断
 192   2                 
 193   2              if(key1==0){    //有键按下
 194   3               DelayUs(50);
 195   3               if(key1==0){                   
 196   4                      key++;                          //更换下一幅图片                
 197   4                      if(key>7) key=0;        //图片循环显示 根据显示的组数来定义 这里有9组 所以就要keyy>9
 198   4                      while(key1==0);         //等待按键释放                  
 199   4                      }
 200   3                      }
 201   2              if(num>10) //每中断10次切换
 202   2                      {
 203   3                      keyy++;
 204   3                      num=0;
 205   3                      }     
 206   2              if(keyy>7)keyy=0;       //图片循环显示 根据显示的组数来定义 这里有9组 所以就要keyy>9
 207   2              }       
 208   1      }
 209             
 210          /*********文字显示子程序**********/
 211          
 212          void display_word(unsigned char code *text)
 213          { 
 214   1         unsigned     char i,j=2;                     //j为图片起始位置 3 为第3个开始是图片 如果要显示高时32的大字 也属于图片格
             -式
 215   1          DelayUs(6300);      
 216   1              
 217   1              for(i=0;i<64;i++)
 218   1              {
 219   2                      
 220   2              P3M0=0x00;                      //0000 0000     //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
 221   2                  P3M1=0x1B;
 222   2                      if((key>=j)||(keyy>=j))
 223   2                      BUFF=(*(text+i*4+3));
 224   2                      else                    
 225   2                      BUFF=(*(text+128+i*2+1));
 226   2                      led4=0;
 227   2                      P1=~BUFF>>1;
 228   2                      P3M0=0x10;                      //0001 0000     //P3.4推挽输出 P3 .0 P3.3 P3.1输入高阻
 229   2                  P3M1=0x0B;          //0000 1011 
 230   2                       delay(1);
 231   2                      P3M0=0x00;                      //0000 0000     //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
 232   2                  P3M1=0x1B;                  //0001 1011
 233   2                      led4=1;
 234   2              P1=BUFF;             //01010101  1357
 235   2                      P3M0=0x10;                      //0001 0000     //P3.4推挽输出 P3 .0 P3.3 P3.1输入高阻
 236   2                  P3M1=0x0B;          //0000 1011 
 237   2                      delay(1);
 238   2                      P3M0=0x00;                      //0000 0000     //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
 239   2                  P3M1=0x1B;                  //0001 1011
 240   2                      if((key>=j)||(keyy>=j))
 241   2                      BUFF=(*(text+i*4+2));
 242   2                      else
 243   2                      BUFF=(*(text+128+i*2));
 244   2                      led3=0;
 245   2                      P1=~BUFF>>1;
C51 COMPILER V9.00   TEXT1                                                                 05/13/2012 02:20:58 PAGE 6   

 246   2                      P3M0=0x08;                      //0000 1000     //P3.3推挽输出 P3 .0 P3.1 P3.4输入高阻
 247   2                  P3M1=0x13;          //0001 0011
 248   2                      delay(1);
 249   2                      P3M0=0x00;                      //0000 0000     //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
 250   2                  P3M1=0x1B;                  //0001 1011
 251   2                      led3=1;
 252   2              P1=BUFF;             //01010101  1357
 253   2                      P3M0=0x08;                      //0000 1000     //P3.3推挽输出 P3 .0 P3.1 P3.4输入高阻
 254   2                  P3M1=0x13;          //0001 0011
 255   2                      delay(1);
 256   2                      P3M0=0x00;                      //0000 0000     //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
 257   2                  P3M1=0x1B;
 258   2                      if((key>=j)||(keyy>=j))
 259   2                      BUFF=(*(text+i*4+1));
 260   2                      else
 261   2                      BUFF=(*(text+i*2+1));
 262   2                      led2=0;
 263   2                  P1=~BUFF>>1;
 264   2                      P3M0=0x02;                      //0000 0010     //P3.1推挽输出 P3 .0 P3.3 P3.4输入高阻
 265   2                  P3M1=0x19;                  //0001 1001
 266   2                      delay(1);
 267   2                      P3M0=0x00;                      //0000 0000     //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
 268   2                  P3M1=0x1B;                  //0001 1011
 269   2                      led2=1;       
 270   2              P1=BUFF;            //01010101  1357
 271   2                      P3M0=0x02;                      //0000 0010     //P3.1推挽输出 P3 .0 P3.3 P3.4输入高阻
 272   2                  P3M1=0x19;                  //0001 1001
 273   2                      delay(1);
 274   2                      P3M0=0x00;                      //0000 0000     //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
 275   2                  P3M1=0x1B;                  //0001
 276   2                      if((key>=j)||(keyy>=j))
 277   2                      BUFF=(*(text+i*4));
 278   2                      else
 279   2                      BUFF=(*(text+i*2));
 280   2                      led1=0;
 281   2                      P1=~BUFF>>1;
 282   2                      P3M0=0x01;                      //0000 0001     //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
 283   2                  P3M1=0x1A;                  //0001 1010
 284   2                      delay(1);
 285   2                  P3M0=0x00;                  //0000 0000     //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
 286   2                  P3M1=0x1B;                  //0001 1011
 287   2                      led1=1;                 
 288   2              P1=BUFF;            //01010101  1357
 289   2                      P3M0=0x01;                      //0000 0001     //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
 290   2                  P3M1=0x1A;                  //0001 1010
 291   2                      delay(1);
 292   2      
 293   2      } }
 294          /*********显示内容选择子程序**********/
 295          void display(unsigned char t)
 296          {       keyy=0;
 297   1              switch (t){             //通过按键选择显示内容
 298   2                      case 0: {display_word(text0);}break;
 299   2                      case 1: {display_word(text1);}break;
 300   2                      case 2: {display_word(text2);}break;
 301   2                      case 3: {display_word(text3);}break;
 302   2                      case 4: {display_word(text4);}break;
 303   2                      case 5: {display_word(text5);}break;
 304   2                      case 6: {display_word(text6);}break;
 305   2                      case 7: {display_word(text7);}break;
 306   2              //      case 8: {display_word(text8);}break;            
 307   2              //      case 9: {display_word(text9);}break;
C51 COMPILER V9.00   TEXT1                                                                 05/13/2012 02:20:58 PAGE 7   

 308   2              //      case 10:{display_word(text10);}break;
 309   2                      //default:{display_word(text1);}
 310   2                      
 311   2                      
 312   2                      }}
 313          /*****************************************/
 314          void display1(unsigned char y)
 315          {
 316   1              switch (y){             //通过按键选择显示内容
 317   2                      case 0: {display_word(text0);}break;
 318   2                      case 1: {display_word(text1);}break;
 319   2                      case 2: {display_word(text2);}break;
 320   2                      case 3: {display_word(text3);}break;
 321   2                      case 4: {display_word(text4);}break;
 322   2                      case 5: {display_word(text5);}break;
 323   2                      case 6: {display_word(text6);}break;
 324   2                      case 7: {display_word(text7);}break;
 325   2              //      case 8: {display_word(text8);}break;
 326   2              //      case 9: {display_word(text9);}break;
 327   2              //      case 10:{display_word(text10);}break;
 328   2                      }
 329   1                      }
 330          /***************************************/
 331          /*********延时子程序**********/
 332          void delay(unsigned char n)
 333          {
 334   1              for(;n>0;n--){
 335   2                      DelayN=DelayTime;
 336   2                      while (DelayN);
 337   2              }
 338   1      }
 339          /*********中断子程序**********/
 340          void int0() interrupt 0 //使用外部中断0
 341          {
 342   1       KY=~KY;
 343   1       if(KY==0)
 344   1       {                      
 345   2              DelayTime=TimeCount/1580;       
 346   2              TimeCount=0;    //延时周期计数清零
 347   2              if(key==0)
 348   2              {
 349   3               num++;
 350   3               display1(keyy);        //根据按键选择循环显示文字
 351   3              }
 352   2              else
 353   2              {
 354   3              display(key);   //根据按键选择循环显示文字
 355   3              }
 356   2      }
 357   1      }
 358          void timer0() interrupt 1               //定时器0中断子程序
 359          {
 360   1              TimeCount++;
 361   1              if (DelayN!=0)
 362   1              DelayN--;
 363   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    874    ----
   CONSTANT SIZE    =   2048    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V9.00   TEXT1                                                                 05/13/2012 02:20:58 PAGE 8   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =     13       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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