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

📄 main.lst

📁 自己做的单片机Proteus仿真实例
💻 LST
📖 第 1 页 / 共 2 页
字号:
 165   1              
 166   1              write_LCD_command(ROW+0x80);    //送入垂直地址
 167   1              write_LCD_command(xlabel+0x80); //再送入水平地址
 168   1              
 169   1              if(xlabel_bit<8)
 170   1              {
 171   2                      switch(color)
 172   2                      {
 173   3                              case 0:Read_H &= (~(0x01<<(7-xlabel_bit)));//若变白 
 174   3                              break;
 175   3                              case 1:Read_H |= (0x01<<(7-xlabel_bit));//若涂黑 
 176   3                              break;
 177   3                              case 2:Read_H ^= (0x01<<(7-xlabel_bit));//若反转 
 178   3                              break;  
 179   3                              default:break;
C51 COMPILER V8.02   MAIN                                                                  05/09/2012 00:01:34 PAGE 4   

 180   3                      }
 181   2                      write_LCD_data(Read_H);//将数据写入GDRAM 
 182   2                      write_LCD_data(Read_L);//先写高位,再写低位(地址指针顺序) 
 183   2              }
 184   1              else
 185   1              {
 186   2                      switch(color)//color设置 
 187   2                      {
 188   3                              case 0: Read_L &= (~(0x01<<(15-xlabel_bit)));//若变白 
 189   3                              break;
 190   3                              case 1: Read_L |= (0x01<<(15-xlabel_bit));//若涂黑 
 191   3                              break;
 192   3                              case 2: Read_L ^= (0x01<<(15-xlabel_bit));//若反转 
 193   3                              break;
 194   3                              default:break;
 195   3                      }
 196   2                      write_LCD_data(Read_H);
 197   2                      write_LCD_data(Read_L);//写入数据 
 198   2              }
 199   1              
 200   1              write_LCD_command(0x30);//回到普通模式 
 201   1      }
 202          
 203          void main()
 204          {
 205   1              uchar i,j;
 206   1              uchar num;
 207   1              uchar w=10,A=6;
 208   1              init_LCD();
 209   1              Clear_GDRAM();
 210   1              write_LCD_command(0x36);
 211   1              display_BMP(ZB);
 212   1              while(1)
 213   1              {
 214   2                      write_LCD_command(0x30);
 215   2                      write_LCD_command(0x80);
 216   2                      write_LCD_data('T');
 217   2                      write_LCD_data(':');
 218   2                      write_LCD_data(2*w/100+0x30);
 219   2                      write_LCD_data(2*w%100/10+0x30);
 220   2                      write_LCD_data(2*w%10+0x30);
 221   2      
 222   2                      write_LCD_command(0x83);
 223   2                      write_LCD_data('A');
 224   2                      write_LCD_data(':');
 225   2                      write_LCD_data(A/10+0x30);
 226   2                      write_LCD_data(A%10+0x30);
 227   2                      write_LCD_command(0x36);
 228   2                      for(i=13;i<128;i++)
 229   2                      {
 230   3                              j=35-A*sin((i-13)*3.14/w);
 231   3                              Draw_dots(i,j,1);
 232   3                              delay(400);
 233   3                      }
 234   2      /**********以下为按键扫描函数**************/
 235   2                      if(KEY1==0)                     //模式键按下 
 236   2                      {
 237   3                              delay(2000);
 238   3                              if(KEY1==0)
 239   3                              {
 240   4                                      while(!KEY1);
 241   4                                      key_value++;
C51 COMPILER V8.02   MAIN                                                                  05/09/2012 00:01:34 PAGE 5   

 242   4                                      if(key_value>2)
 243   4                                              key_value=0;
 244   4                              }
 245   3                      }
 246   2                      if(key_value==1)                         //若选择的是周期模式
 247   2                      {
 248   3                              write_LCD_command(0x30);
 249   3                              write_LCD_command(0x86);
 250   3                              for(num=0;num<4;num++)
 251   3                              {
 252   4                                      write_LCD_data(HZ1[num]);       //显示"周期"汉字 
 253   4                              }
 254   3                              if(KEY2==0)                                             //加键按下时 
 255   3                              {
 256   4                                      delay(1500);
 257   4                                      if(KEY2==0)
 258   4                                      {
 259   5                                              while(!KEY2);
 260   5                                              w=w+5;                                  //w加 
 261   5                                              if(w==65)
 262   5                                                      w=10;
 263   5                                              Clear_GDRAM();
 264   5                                              write_LCD_command(0x36);//重新显示图形 
 265   5                                              display_BMP(ZB);        
 266   5                                      }          
 267   4                              }
 268   3                              if(KEY3==0)
 269   3                              {
 270   4                                      delay(2000);
 271   4                                      if(KEY3==0)
 272   4                                      {
 273   5                                              while(!KEY3);
 274   5                                              if(w>=10)
 275   5                                                      w=w-5;
 276   5                                              Clear_GDRAM();
 277   5                                              write_LCD_command(0x36);
 278   5                                              display_BMP(ZB);                //重新显示图形
 279   5                                      }
 280   4                              }       
 281   3                      }
 282   2      
 283   2                      if(key_value==2)                                //若选择的是幅度模式
 284   2                      {
 285   3                              write_LCD_command(0x30);
 286   3                              write_LCD_command(0x86);
 287   3                              for(num=0;num<4;num++)
 288   3                              {
 289   4                                      write_LCD_data(HZ2[num]);  
 290   4                              }
 291   3                              if(KEY2==0)
 292   3                              {
 293   4                                      delay(1500);
 294   4                                      if(KEY2==0)
 295   4                                      {
 296   5                                              while(!KEY2);
 297   5                                              A=A+2;
 298   5                                              if(A==22)
 299   5                                                      A=8;
 300   5                                              Clear_GDRAM();
 301   5                                              write_LCD_command(0x36);
 302   5                                              display_BMP(ZB);        
 303   5                                      }          
C51 COMPILER V8.02   MAIN                                                                  05/09/2012 00:01:34 PAGE 6   

 304   4                              }
 305   3                              if(KEY3==0)
 306   3                              {
 307   4                                      delay(2000);
 308   4                                      if(KEY3==0)
 309   4                                      {
 310   5                                              while(!KEY3);
 311   5                                              if(A>=6)
 312   5                                                      A=A-2;
 313   5                                              Clear_GDRAM();
 314   5                                              write_LCD_command(0x36);
 315   5                                              display_BMP(ZB);
 316   5                                      }
 317   4                              }       
 318   3                      }
 319   2              }       
 320   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    990    ----
   CONSTANT SIZE    =    768    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11       6
   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 + -