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

📄 12864m-p.lst

📁 小护士脉搏监护仪全套系统
💻 LST
📖 第 1 页 / 共 2 页
字号:
 207          {  //   PSB=0; //串口
 208   1          PSB=1;//并口时选这个,上一行取消
 209   1          REST=1;
 210   1          REST=0;
 211   1          REST=1;
 212   1              WRCommand(0x30);        //基本指令集,8位并行
 213   1      
 214   1              WRCommand(0x06);        //启始点设定:光标右移
 215   1      
 216   1              WRCommand(0x01);        //清除显示DDRAM
 217   1      
 218   1              WRCommand(0x0C);        //显示状态开关:整体显示开,光标显示关,光标显示反白关
 219   1      
 220   1              WRCommand(0x02);        //地址归零      
 221   1      }
 222          //显示数组字符串(显示半宽字型16*8点阵)
 223          void ShowQQChar(Uchar addr,Uchar *english,Uchar count)
 224          {       
 225   1              Uchar i;
 226   1              WRCommand(addr);        //设定DDRAM地址
 227   1              for(i=0;i<count;)
 228   1              {       
 229   2                  WRData(english[i*2]);
 230   2              WRData(english[i*2+1]);
 231   2                      i++;
 232   2          }
 233   1      }
 234          //显示连续字串(半宽字符)
 235          void ShowNUMChar(Uchar addr,Uchar i,Uchar count)
 236          {
 237   1           Uchar j;
 238   1              for(j=0;j<count;)
 239   1              {       
 240   2                  WRCommand(addr);    //设定DDRAM地址
 241   2                      WRData(i+j);
C51 COMPILER V7.06   12864M_P                                                              08/17/2007 23:47:42 PAGE 5   

 242   2                      j++;
 243   2                      WRData(i+j);
 244   2                      addr++;
 245   2                      j++;
 246   2              }               
 247   1      }
 248          //自定义字符写入CGRAM
 249          void WRCGRAM(Uchar data1,Uchar data2,Uchar addr)
 250          {     
 251   1            Uchar i;
 252   1            for(i=0;i<16;)
 253   1        {
 254   2            WRCommand(addr+i);        //设定CGRAM地址
 255   2            WRData(data1);
 256   2                WRData(data1);
 257   2            i++;
 258   2                WRCommand(addr+i);    //设定CGRAM地址
 259   2                WRData(data2);
 260   2                WRData(data2);
 261   2            i++;
 262   2        }  
 263   1      }
 264          //显示自定义的字符,并把这个字符填满全屏16*16
 265          void ShowCGChar(Uchar addr,Uchar i)
 266          {
 267   1           Uchar j;
 268   1              for(j=0;j<0x20;)
 269   1              {       
 270   2                  WRCommand(addr+j);  //设定DDRAM地址
 271   2                      WRData(0x00);
 272   2                  WRData(i);
 273   2                      j++;
 274   2              }               
 275   1      }
 276          void CLEARGDRAM(void)
 277          {    
 278   1             Uchar j;
 279   1             Uchar i;
 280   1                 WRCommand(0x34);
 281   1                 WRCommand(0x36);
 282   1             for(j=0;j<32;j++)
 283   1        {
 284   2             WRCommand(0x80+j);
 285   2                 WRCommand(0x80);//X坐标
 286   2             for(i=0;i<32;i++)//
 287   2            {
 288   3             WRData(0x00);
 289   3            }
 290   2         }
 291   1        
 292   1      }
 293          //写入GDRAM 绘图,Y是Y绘图坐标,2个字节一行,CLONG是图形长度,以字节
 294          //为单位;HIGHT是图形高度,TAB是图形数据表.12864M的图形显示范围是256*32点阵.
 295          //要在12864M里显示全屏,取模时一幅图横切成两半
 296          //绘图在串口输入时,会比在并口下的输入要慢一些
 297          void WRGDRAM(Uchar Y1,Uchar clong,Uchar hight,Uchar *TAB1)
 298          {    
 299   1             Uint k;
 300   1             Uchar j;
 301   1             Uchar i;
 302   1                 WRCommand(0x34);
 303   1                 WRCommand(0x36);
C51 COMPILER V7.06   12864M_P                                                              08/17/2007 23:47:42 PAGE 6   

 304   1                 for(j=0;j<hight;j++)//32
 305   1        {   //先上半屏
 306   2             WRCommand(Y1+j);  //Y总坐标,即第几行
 307   2                 WRCommand(0x80);//X坐标,即横数第几个字节开始写起
 308   2             for(i=0;i<clong;i++)//
 309   2            {
 310   3             WRData(TAB1[clong*j+i]);
 311   3            }
 312   2                   //后下半屏
 313   2            
 314   2             for(k=0;k<clong;k++)//
 315   2            {
 316   3             WRData(TAB1[clong*(j+hight)+k]);
 317   3            }
 318   2           
 319   2        }
 320   1      }
 321          
 322          void menu(void)
 323          {
 324   1              LCDInit();
 325   1          ShowNUMChar(0x80,0x01,0x0f);//显示半宽特殊符号
 326   1              ShowNUMChar(0x90,0x30,0x0f);//显示半宽0~?数字标点
 327   1              ShowNUMChar(0x88,0x41,0x0f);//显示半宽A~P大写
 328   1              ShowNUMChar(0x98,0x61,0x0f);//显示半宽a~p小写
 329   1              WaitNms(250);           //等待时间
 330   1              WaitNms(250);           //等待时间
 331   1                stopint();
 332   1              WRCommand(0x01);        //清除显示DDRAM
 333   1      
 334   1              WRCGRAM(0xff,0x00,0x40);//写入横
 335   1              WRCGRAM(0x00,0xff,0x50);//写入横2
 336   1              WRCGRAM(0xaa,0xaa,0x60);//写入竖
 337   1              WRCGRAM(0x55,0x55,0x70);//写入竖2
 338   1          ShowCGChar(0x80,0x00);//显示横并填满
 339   1              WaitNms(250);           //等待时间
 340   1              WaitNms(250);           //等待时间
 341   1                stopint();
 342   1              WRCommand(0x01);        //清除显示DDRAM
 343   1      
 344   1          ShowCGChar(0x80,02);//显示横2并填满
 345   1              WaitNms(250);           //等待时间
 346   1              WaitNms(250);           //等待时间
 347   1                stopint();
 348   1              WRCommand(0x01);        //清除显示DDRAM
 349   1      
 350   1              ShowCGChar(0x80,04);//显示竖并填满
 351   1              WaitNms(250);           //等待时间
 352   1              WaitNms(250);           //等待时间
 353   1                stopint();
 354   1              WRCommand(0x01);        //清除显示DDRAM
 355   1      
 356   1              ShowCGChar(0x80,06);//显示竖2并填满
 357   1              WaitNms(250);           //等待时间
 358   1              WaitNms(250);           //等待时间
 359   1                stopint();
 360   1              WRCommand(0x01);        //清除显示DDRAM
 361   1      
 362   1              WRCGRAM(0x00,0x00,0x40);//清CGRAM1
 363   1              WRCGRAM(0x00,0x00,0x50);//清CGRAM2
 364   1              WRCGRAM(0xaa,0x55,0x40);//写入点
 365   1              WRCGRAM(0x55,0xaa,0x50);//写入点2
C51 COMPILER V7.06   12864M_P                                                              08/17/2007 23:47:42 PAGE 7   

 366   1              ShowCGChar(0x80,00);//显示点并填满
 367   1              WaitNms(250);           //等待时间
 368   1              WaitNms(250);           //等待时间
 369   1                stopint();
 370   1              WRCommand(0x01);        //清除显示DDRAM
 371   1      
 372   1              ShowCGChar(0x80,02);//显示点2并填满
 373   1              WaitNms(250);           //等待时间
 374   1              WaitNms(250);           //等待时间
 375   1                stopint();
 376   1              WRCommand(0x01);        //清除显示DDRAM
 377   1      
 378   1          ShowQQChar(0x80,uctech,lengthCF3);//显示'瑞特电子有限公司',以下共四行
 379   1          ShowQQChar(0x90,uctech,lengthCF3);
 380   1          ShowQQChar(0x88,uctech,lengthCF3);
 381   1          ShowQQChar(0x98,uctech,lengthCF3);
 382   1              WaitNms(250);           //等待时间
 383   1              WaitNms(250);           //等待时间
 384   1                stopint();
 385   1              WRCommand(0x01);        //清除显示DDRAM
 386   1      }
 387          
 388          void menu2(void)
 389          {   CLEARGDRAM();
 390   1          WRGDRAM(0x80,16,32,TAB1);
 391   1              WaitNms(250);           //等待时间
 392   1              WaitNms(250);           //等待时间
 393   1                stopint();
 394   1      
 395   1      }
 396          //主函数
 397          void main(void)
 398          {
 399   1      
 400   1      
 401   1          menu();//初始化及半宽字符和点横竖汉字扫描
 402   1          menu2();//绘图显示
 403   1      for(;;)
 404   1      {;}
 405   1      
 406   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    761    ----
   CONSTANT SIZE    =   1041    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15      15
   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 + -