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

📄 1602-miaobiao.lst

📁 2010年新增TX-1C程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 187          *                                                         *
 188          *  设定显示位置                                           *
 189          *                                                         *
 190          **********************************************************/
 191          
 192          void lcd_pos(uchar pos)
 193          {                          
 194   1        lcd_wcmd(pos | 0x80);  //数据指针=80+地址变量
 195   1      }
 196          
 197          /********************************************************
 198           显示函数
 199          *********************************************************/
 200          void play()
 201          {
 202   1         uchar  i;
 203   1         for(i=0;i<6;i++)
 204   1         {
 205   2          display2[i]=display[i]+0x30;  
 206   2         }
 207   1      
 208   1         display2[7]=display[6]/10+0x30;   //时单位数据处理
 209   1         display2[6]=display[6]%10+0x30;
 210   1         
 211   1         lcd_pos(0x45);
 212   1         lcd_wdat(display2[7]);   //显示时
 213   1         lcd_wdat(display2[6]);
 214   1         lcd_wdat(0x3a);          //显示':'
 215   1        
 216   1         lcd_wdat(display2[5]);   //显示分
 217   1         lcd_wdat(display2[4]);
 218   1         lcd_wdat(0x3a);          //显示':'
 219   1      
 220   1         lcd_wdat(display2[3]);   //显示秒
 221   1         lcd_wdat(display2[2]);
 222   1         lcd_wdat(0x3a);          //显示':'
 223   1      
 224   1         lcd_wdat(display2[1]);   //显示毫秒
 225   1         lcd_wdat(display2[0]);  
 226   1      }
 227          
 228          /********************************************************
 229           主函数
 230          *********************************************************/
 231          main()
 232          {
 233   1         uchar m;
 234   1        
 235   1         TMOD=0x01; 
 236   1         TH0=0xdc; TL0=0x00;      //50ms定时   
 237   1         EA=1; ET0=1;
 238   1      
 239   1         lcd_init();
 240   1         
 241   1         lcd_pos(0x00);             //设置显示位置为第一行
C51 COMPILER V8.02   1602_MIAOBIAO                                                         06/29/2010 13:14:05 PAGE 5   

 242   1         for(m=0;m<16;m++) 
 243   1         lcd_wdat(cdis1[m]);        //显示字符 
 244   1      
 245   1         lcd_pos(0x40);             //设置显示位置为第二行
 246   1         for(m=0;m<16;m++)
 247   1         {
 248   2          lcd_wdat(cdis2[m]);        //显示字符
 249   2          delay1(60);
 250   2         }
 251   1      
 252   1         delay1(1000);
 253   1      
 254   1         lcd_pos(0x40);             //设置显示位置为第二行
 255   1         for(m=0;m<16;m++)
 256   1         lcd_wdat(cdis3[m]); 
 257   1      
 258   1         while(1)
 259   1         {   
 260   2           if(K3==0)
 261   2           {
 262   3                 KeyCount++;          //计数
 263   3             beep();
 264   3                 delay1(100);    
 265   3           
 266   3             switch (KeyCount)
 267   3             {
 268   4              case 1: 
 269   4              TR0=1;              //启动中断
 270   4              lcd_pos(0x00);
 271   4                  for(m=0;m<16;m++)
 272   4              lcd_wdat(cdis4[m]);     
 273   4              break;
 274   4        
 275   4              case 2: 
 276   4              TR0=0;              //停止中断
 277   4              lcd_pos(0x00);
 278   4                  for(m=0;m<16;m++)
 279   4              lcd_wdat(cdis5[m]);     
 280   4              break;
 281   4            
 282   4                      case 3: 
 283   4              TR0=1;              //启动中断
 284   4              lcd_pos(0x00);
 285   4                  for(m=0;m<16;m++)
 286   4              lcd_wdat(cdis6[m]);     
 287   4              break;
 288   4      
 289   4              case 4: 
 290   4              TR0=0;              //停止中断
 291   4              lcd_pos(0x00);
 292   4                  for(m=0;m<16;m++)
 293   4              lcd_wdat(cdis7[m]);     
 294   4              break;
 295   4           
 296   4              default:  
 297   4              TR0=0;                   //停止中断 
 298   4              break;
 299   4             }
 300   3           }
 301   2           if(K4==0)
 302   2           {
 303   3                 TR0=0;                     //停止中断
C51 COMPILER V8.02   1602_MIAOBIAO                                                         06/29/2010 13:14:05 PAGE 6   

 304   3             KeyCount=0;
 305   3                 for(m=0;m<8;m++)
 306   3             display[m]=0x00;           //计时单元清零
 307   3             lcd_pos(0x00);             //设置显示位置为第一行
 308   3             for(m=0;m<16;m++)
 309   3             lcd_wdat(cdis1[m]); 
 310   3             beep();
 311   3             delay1(100);              
 312   3           } 
 313   2      
 314   2           play(); 
 315   2         }
 316   1      }
 317          
 318          /*********************************************************
 319          *                                                        *
 320          * Time0中断函数                                          *
 321          *                                                        *
 322          **********************************************************/
 323          void Time0(void) interrupt 1 using 0
 324          {
 325   1         TH0=0xdc;               //10ms定时
 326   1         TL0=0x00;
 327   1      
 328   1         display[0]++;         //0.01S  
 329   1      
 330   1         if(display[0]==10)
 331   1         {
 332   2          display[0]=0;
 333   2              display[1]++;         //0.1S
 334   2         }
 335   1         if(display[1]==10)
 336   1         {
 337   2          display[1]=0;
 338   2          display[2]++;         //秒个位
 339   2         }
 340   1         if(display[2]==10)
 341   1         {
 342   2          display[2]=0;
 343   2          display[3]++;         //秒十位
 344   2         }
 345   1         if(display[3]==6)
 346   1         {
 347   2          display[3]=0;
 348   2          display[4]++;         //分个位
 349   2         }
 350   1         if(display[4]==10)
 351   1         {
 352   2          display[4]=0;
 353   2          display[5]++;         //分十位
 354   2         }
 355   1         if(display[5]==6)
 356   1         {
 357   2          display[5]=0;
 358   2          display[6]++;        //时
 359   2         }
 360   1         if(display[6]==24)
 361   1         {
 362   2           display[6]=0;
 363   2         } 
 364   1      }
 365          
C51 COMPILER V8.02   1602_MIAOBIAO                                                         06/29/2010 13:14:05 PAGE 7   

 366          /*********************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    634    ----
   CONSTANT SIZE    =    136    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16    ----
   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 + -