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

📄 vterminal_uart.lst

📁 wq_vga.rar,系列C51列程
💻 LST
📖 第 1 页 / 共 2 页
字号:
 220   1           SBUF= 0x84;
 221   1           check_uart();
 222   1           while(rc_timer_en != 6){}
 223   1           rc_timer_en = 0;
 224   1      }
 225          //=====================================================
 226          //画圆子程序。
 227          DIS_Ellipse(unsigned short x0,unsigned short y0,unsigned short xr,unsigned short yr)
 228          {
 229   1         command_head2(0x44,0x45,x0,y0);
 230   1      
 231   1         SBUF= xr/100;
 232   1         check_uart();
 233   1         SBUF= xr%100;
 234   1         check_uart();
 235   1         SBUF= yr/100;
 236   1         check_uart();
 237   1         SBUF= yr%100;
 238   1         check_uart();
 239   1      
 240   1         SBUF= 0x84;
C51 COMPILER V7.20   VTERMINAL_UART                                                        08/18/2006 12:30:30 PAGE 5   

 241   1         check_uart();
 242   1      }
 243          //======================================================
 244          //画直线子程序。
 245          DIS_Line(unsigned short x0,unsigned short y0,unsigned short x1,unsigned short y1,unsigned short with)
 246          {
 247   1      
 248   1         command_head2(0x44,0x4c,x0,y0);
 249   1      
 250   1         SBUF= x1/100;
 251   1         check_uart();
 252   1         SBUF= x1%100;
 253   1         check_uart();
 254   1         SBUF= y1/100;
 255   1         check_uart();
 256   1         SBUF= y1%100;
 257   1         check_uart();
 258   1      
 259   1         SBUF= with/100;
 260   1         check_uart();
 261   1         SBUF= with%100;
 262   1         check_uart();
 263   1      
 264   1         SBUF= 0x84;
 265   1         check_uart();
 266   1      }
 267          //=======================================================
 268          //显示字符串子程序。
 269          DIS_String(unsigned short x0,unsigned short y0,char *fmt)
 270          {
 271   1         command_head2(0x44,0x57,x0,y0);
 272   1      
 273   1         while(*fmt)                  //为0时(字符串结束)退出
 274   1         {
 275   2           SBUF= *fmt;
 276   2           check_uart();
 277   2               fmt++;
 278   2         }
 279   1         SBUF= 0x84;
 280   1         check_uart();
 281   1      }
 282          //========================================================
 283          //开(关)显示时间子程序
 284          void Dis_time(unsigned short x0,unsigned short y0,unsigned char i)
 285          {
 286   1         command_head2(0x44,0x54,x0,y0);
 287   1      
 288   1         SBUF= i;                     //显示方式,若是0则关时间显示
 289   1         check_uart();
 290   1         SBUF= 0x84;
 291   1         check_uart();
 292   1      }
 293          //======================================================
 294          //设置时间子程序;
 295          //年,月,日,时 ,分,秒,星期。
 296          void Set_time(uchar year,uchar month,uchar day,uchar hour,uchar minute,uchar second,uchar date)
 297          {
 298   1         command_head(0x53,0x54);
 299   1         SBUF= year;
 300   1         check_uart();
 301   1         SBUF= month;
 302   1         check_uart();
C51 COMPILER V7.20   VTERMINAL_UART                                                        08/18/2006 12:30:30 PAGE 6   

 303   1         SBUF= day;
 304   1         check_uart();
 305   1         SBUF= hour;
 306   1         check_uart();
 307   1         SBUF= minute;
 308   1         check_uart();
 309   1         SBUF= second;
 310   1         check_uart();
 311   1         SBUF= date;
 312   1         check_uart();
 313   1      
 314   1         SBUF= 0x84;
 315   1         check_uart();
 316   1      }
 317          //=======================================================
 318          //显示变量子程序
 319          DIS_Value(unsigned short x0,unsigned short y0,unsigned short Va,unsigned char i)
 320          {
 321   1         command_head2(0x44,0x56,x0,y0);
 322   1         SBUF= Va/100;
 323   1         check_uart();
 324   1         SBUF= Va%100;
 325   1         check_uart();
 326   1      
 327   1         SBUF= i;                     //显示的域宽
 328   1         check_uart();
 329   1         SBUF= 0x84;
 330   1         check_uart();
 331   1      }
 332          //========================================================
 333          //显示位图子程序
 334          DIS_BMP(unsigned short x0,unsigned short y0,uchar N1)
 335          {
 336   1         command_head2(0x44,0x53,x0,y0);
 337   1      
 338   1         SBUF= N1;                    //位图在Flash中的编号
 339   1         check_uart();
 340   1         SBUF= 0x84;
 341   1         check_uart();
 342   1      }
 343          //=======================================================
 344          //自动显示位图子程序
 345          AUTO_BMP(unsigned short x0,unsigned short y0,uchar N1,uchar N2,uchar T)
 346          {
 347   1         command_head2(0x5a,0x44,x0,y0);
 348   1         SBUF= N1;                    //开始的位图编号
 349   1         check_uart();
 350   1         SBUF= N2;                    //结束的位图编号
 351   1         check_uart();
 352   1         SBUF= T;                             //位图显示的切换间隔时间
 353   1         check_uart();
 354   1         SBUF= 0x84;
 355   1         check_uart();
 356   1      }
 357          //=====================================================
 358          //保存当前窗口至后台子程序
 359          void push_windows(unsigned char mun_dc)
 360          {command_head(0x43,0x44);
 361   1       SBUF=mun_dc;                   //后台编号
 362   1       check_uart();
 363   1       SBUF= 0x84;
 364   1       check_uart();
C51 COMPILER V7.20   VTERMINAL_UART                                                        08/18/2006 12:30:30 PAGE 7   

 365   1      }
 366          //================================================
 367          //恢复之前保存在后台的窗口
 368          void pop_windows(unsigned char mun_dc)
 369          {command_head(0x45,0x44);
 370   1       SBUF=mun_dc;                   //后台编号
 371   1       check_uart();
 372   1       SBUF= 0x84;
 373   1       check_uart();
 374   1      }
 375          //======================================================
 376          /*从智能显示终端模块读数据到单片机的数据格式是
 377                             0     1      2      3      4
 378          触摸屏数据格式: 0xF2  CHX_H  CHX_L  CHY_H  CHY_L   其中0xF2是按下按钮,CHX_H,CHX_L分别是X轴的高位字节和低
             -位字节。
 379          触摸屏数据格式: 0xF3  CHX_H  CHX_L  CHY_H  CHY_L   其中0xF3是放开按钮,CHX_H,CHX_L分别是X轴的高位字节和低
             -位字节。
 380          年月日数据格式: 0xF8    年    月     日    星期
 381          时分秒数据格式: 0xF9    时    分     秒
 382          上电就绪      :  0xF0
 383          */
 384          /*uart 中断程序*/
 385          void uart_int( ) interrupt 4 using 1       
 386          { 
 387   1         unsigned char temp1;
 388   1      
 389   1         EA=0;
 390   1         if(RI==1)
 391   1         {
 392   2            temp1 = SBUF;
 393   2                if(temp1 < 0xf0)      //小于F0的数据为参数,大于F0的数据为前导字节。
 394   2                {
 395   3                    if(touch_en ==1)   //触摸屏接收充许,开始接收触摸屏数据。
 396   3                        {
 397   4                       switch(rx_count)
 398   4                               {
 399   5                              case 0 : CHX_DAT = temp1*100;rx_count=1;      break;
 400   5                          case 1 : CHX_DAT = CHX_DAT + temp1; rx_count=2;   break;
 401   5                          case 2 : CHY_DAT = temp1*100;rx_count=3;      break;
 402   5                          case 3 : CHY_DAT = CHY_DAT + temp1; rx_count=0;touch_en=5; break;
 403   5                               }
 404   4                        }
 405   3                if(rc_timer_en ==1)  //年月日接收充许,开始接收年月日数据。
 406   3                        {
 407   4                    Date[rx_count++] = temp1;
 408   4                    if(rx_count ==5){rc_timer_en = 5;}
 409   4                        }
 410   3                if(rc_timer_en ==2)  //时分秒接收充许,开始接收时分秒数据。
 411   3                        {
 412   4                    Date[rx_count++] = temp1;
 413   4                    if(rx_count ==8){rc_timer_en = 6;}
 414   4                        }
 415   3                }
 416   2                else
 417   2                {
 418   3                    switch(temp1)
 419   3                        {
 420   4                           case 0xf2 : touch_en = 1;rx_count =0;      break;   //充许接收触摸屏数据
 421   4                           case 0xf3 : touch_en = 2;rx_count =0;      break;   //充许接收触摸屏数据
 422   4                       case 0xf8 : rc_timer_en = 1; rx_count =1;   break;  //充许接收年月日数据
 423   4                       case 0xf9 : rc_timer_en = 2; rx_count =5;   break;  //充许接收时分秒数据
 424   4                        }
C51 COMPILER V7.20   VTERMINAL_UART                                                        08/18/2006 12:30:30 PAGE 8   

 425   3                }
 426   2            RI =0;
 427   2         }
 428   1         EA=1;
 429   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1573    ----
   CONSTANT SIZE    =     92    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     17      72
   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 + -