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

📄 osc.lst

📁 基于Mini51板的数字示波器设计
💻 LST
📖 第 1 页 / 共 2 页
字号:
 169   2                      if(x-ZEROX==WIDTH/2-movx-1) dat[0] |= 0x02;     
 170   2                      if(x-ZEROX==WIDTH/2-movx) dat[0] |= 0x07;               
 171   2                      if(x-ZEROX==WIDTH/2-movx+1) dat[0] |= 0x02;     
 172   2              } 
 173   1      
 174   1              /*左边框*/      
 175   1              if(x==ZEROX) {
 176   2                      dat[0] = 0xf0;
 177   2                      dat[1] = 0xff;
 178   2                      dat[2] = 0xff;
 179   2                      dat[3] = 0xff;
C51 COMPILER V8.02   OSC                                                                   01/31/2009 14:04:30 PAGE 4   

 180   2                      dat[4] = 0xff;
 181   2                      dat[5] = 0xff;
 182   2                      dat[6] = 0x7f;  
 183   2              }
 184   1      
 185   1              /*左边框上格点*/
 186   1              if(x==ZEROX+1) {
 187   2                      dat[0] |= 0x10;
 188   2                      dat[1] |= 0x42;
 189   2                      dat[2] |= 0x08;
 190   2                      dat[3] |= 0x21;
 191   2                      dat[4] |= 0x84;
 192   2                      dat[5] |= 0x10;
 193   2                      dat[6] |= 0x42; 
 194   2              }
 195   1      
 196   1              /*右边框*/
 197   1              if(x==ZEROX+WIDTH-1) {
 198   2                      dat[0] = 0xf0;
 199   2                      dat[1] = 0xff;
 200   2                      dat[2] = 0xff;
 201   2                      dat[3] = 0xff;
 202   2                      dat[4] = 0xff;
 203   2                      dat[5] = 0xff;
 204   2                      dat[6] = 0x7f;  
 205   2              }
 206   1      
 207   1              /*右边框格点*/
 208   1              if(x==ZEROX+WIDTH-2) {
 209   2                      dat[0] |= 0x10;
 210   2                      dat[1] |= 0x42;
 211   2                      dat[2] |= 0x08;
 212   2                      dat[3] |= 0x21;
 213   2                      dat[4] |= 0x84;
 214   2                      dat[5] |= 0x10;
 215   2                      dat[6] |= 0x42; 
 216   2              }
 217   1      
 218   1              /*波形描点*/
 219   1              if(l==0) dat[(y)/8] |= 0x01<<((y)%8);
 220   1              else if(l>0) {
 221   2                      for(j=0;j<l+1;j++) { //+1多描1点,波形更粗壮
 222   3                              k=((y+j)/8);
 223   3                              if(k>6) k=6;
 224   3                              if(k==0) dat[0] |= (0x01<<((y+j)%8))&0xe0;
 225   3                              else if(k==6) dat[6] |= (0x01<<((y+j)%8))&0x3f;
 226   3                              else dat[k] |= 0x01<<((y+j)%8);
 227   3                      }
 228   2              }
 229   1              else for(j=0;j<(-l)+1;j++) {
 230   2                      k=((y-j)/8);
 231   2                      if(k>6) k=6;            
 232   2                      if(k==0) dat[0] |= (0x01<<((y-j)%8))&0xf0;
 233   2                      else if(k==6) dat[6] |= (0x01<<((y-j)%8))&0x3f;
 234   2                      else dat[k] |= 0x01<<((y-j)%8);
 235   2              }
 236   1      
 237   1      
 238   1              /*写入LCD*/
 239   1              if(x<64) {
 240   2                      for(j=0;j<ALL_LINE;j++) {
 241   3                              lcd_cmd_wr(SETY+j,0);
C51 COMPILER V8.02   OSC                                                                   01/31/2009 14:04:30 PAGE 5   

 242   3                              lcd_cmd_wr(SETX+x,0);
 243   3                              lcd_data_wr(dat[j],0);
 244   3                      }
 245   2              }
 246   1              else {
 247   2                      x-=64;
 248   2                      for(j=0;j<ALL_LINE;j++) {
 249   3                              lcd_cmd_wr(SETY+j,1);
 250   3                              lcd_cmd_wr(SETX+x,1);
 251   3                              lcd_data_wr(dat[j],1);
 252   3                      }               
 253   2              }
 254   1      }
 255          
 256          void disp_vdiv(void)
 257          {               
 258   1              unsigned int tmp;
 259   1              
 260   1              tmp = vdiv[val_vdiv];
 261   1              /*y轴电压标度*/
 262   1              lcd12864_put_xystr(0,7,4,Num+(tmp/10)*4);
 263   1              lcd12864_put_xystr(5,7,1,Num+10*4);
 264   1              lcd12864_put_xystr(7,7,4,Num+(tmp%10)*4);       
 265   1      
 266   1              tmp = tdiv[val_tdiv];
 267   1              /*x轴时间标度*/
 268   1              if(tmp<100) {
 269   2                      lcd12864_put_clr(23,7,8);
 270   2                      lcd12864_put_xystr(23,7,4,Num+(tmp/10)*4);
 271   2                      lcd12864_put_xystr(28,7,1,Num+10*4);
 272   2                      lcd12864_put_xystr(30,7,4,Num+(tmp%10)*4);      
 273   2              }
 274   1              else {
 275   2                      lcd12864_put_clr(23,7,8);
 276   2                      lcd12864_put_xystr(25,7,4,Num+1*4);
 277   2                      lcd12864_put_xystr(30,7,4,Num+0*4);     
 278   2              }
 279   1      
 280   1              /*AC,DC标识*/
 281   1              lcd12864_put_xystr(47,7,12,ac_dc+acdc_flag*12);//0=ac,1=dc
 282   1      
 283   1              /*RUN,PAUSE标识*/
 284   1              lcd12864_put_xystr(60,7,17,run_paus+run_flag*17);//0=run,1=paus
 285   1      
 286   1              
 287   1              tmp=(pointyB-pointyA)*vdiv[val_vdiv];   
 288   1              tmp/=5;
 289   1      
 290   1              if(tmp < 100) {
 291   2                      /*测量电压*/
 292   2                      lcd12864_put_clr(79,7,11);
 293   2                      lcd12864_put_xystr(79,7,4,Num + (tmp/10)*4);
 294   2                      lcd12864_put_xystr(84,7,1,Num + 10*4);
 295   2                      lcd12864_put_xystr(86,7,4,Num + (tmp%10)*4);    
 296   2              }
 297   1              else {  
 298   2                      lcd12864_put_clr(79,7,11);
 299   2                      lcd12864_put_xystr(79,7,4,Num+ (tmp/100)*4);
 300   2                      lcd12864_put_xystr(85,7,4,Num+ (tmp/10 %10)*4); 
 301   2              }
 302   1      
 303   1              
C51 COMPILER V8.02   OSC                                                                   01/31/2009 14:04:30 PAGE 6   

 304   1              tmp=50000/(pointxB-pointxA)/tdiv[val_tdiv];     
 305   1              seg7_disp(tmp);
 306   1              /*测量频率*/
 307   1              lcd12864_put_clr(99,7,20);
 308   1              if(tmp<10) {
 309   2                      lcd12864_put_xystr(114,7,4,Num+ (tmp%10)*4);    
 310   2              }
 311   1              else if(tmp <100) {
 312   2                      lcd12864_put_xystr(109,7,4,Num+ (tmp/10%10)*4); 
 313   2                      lcd12864_put_xystr(114,7,4,Num+ (tmp%10)*4);
 314   2              } else if(tmp <1000) {
 315   2                      lcd12864_put_xystr(104,7,4,Num+ (tmp/100)*4);
 316   2                      lcd12864_put_xystr(109,7,4,Num+ (tmp/10%10)*4); 
 317   2                      lcd12864_put_xystr(114,7,4,Num+ (tmp%10)*4);    
 318   2              }
 319   1              else {
 320   2                      lcd12864_put_xystr(99,7,4,Num+ (tmp/1000)*4);
 321   2                      lcd12864_put_xystr(104,7,4,Num+ (tmp/100%10)*4);
 322   2                      lcd12864_put_xystr(109,7,4,Num+ (tmp/10%10)*4); 
 323   2                      lcd12864_put_xystr(114,7,4,Num+ (tmp%10)*4);    
 324   2              }
 325   1      }
 326          
 327          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3708    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =    255    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11      23
   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 + -