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

📄 lcd.lst

📁 ucos系统
💻 LST
📖 第 1 页 / 共 3 页
字号:
 198          
 199          /*--  文字:  7  --*/
 200          /*--  Times New Roman8;  此字体下对应的点阵为:宽x高=5x8   --*/
 201          C_BYTE  WLib_7_5x8[]={
 202          0x00,0x02,0xf2,0x0a,0x06
 203          };
 204          
 205          /*--  文字:  8  --*/
 206          /*--  Times New Roman8;  此字体下对应的点阵为:宽x高=5x8   --*/
 207          C_BYTE  WLib_8_5x8[]={
 208          0x00,0x6c,0x92,0x92,0x6c
 209          };
 210          
 211          /*--  文字:  9  --*/
 212          /*--  Times New Roman8;  此字体下对应的点阵为:宽x高=5x8   --*/
 213          C_BYTE  WLib_9_5x8[]={
 214          0x00,0x0c,0x92,0x92,0x7c
 215          };
 216          
 217          /*--  文字:  0  --*/
 218          /*--  Times New Roman8;  此字体下对应的点阵为:宽x高=5x8   --*/
 219          C_BYTE  WLib_0_5x8[]={
 220          0x00,0x7c,0x82,0x82,0x7c
 221          };
 222          
 223          /***********************************************************************************
 224          * 函数名称:dis_start0;
 225          *
 226          * 函数功能描述:显示开机界面"铭朗科技www.mlarm.com"及电话;
 227          *              
 228          * 输入参数:none;
 229          *
 230          * 返回数据:none;
 231          *
 232          * 注意:    none;
 233          ************************************************************************************/
 234          
 235          void  dis_start0(void)
 236          {
 237   1              LCDC_DispWord (0,   32, WLib_ming_32x32, 4, 32, 1);
 238   1              LCDC_DispWord (32,  32, WLib_lang_32x32, 4, 32, 1);
 239   1              LCDC_DispWord (64,  32, WLib_ke_32x32,   4, 32, 1);
 240   1              LCDC_DispWord (96,  32, WLib_ji_32x32,   4, 32, 1);
C51 COMPILER V7.50   LCD                                                                   04/25/2007 16:01:14 PAGE 5   

 241   1      
 242   1              LCDC_DispWord (8,   16, WLib_W_10x8,  1, 10, 1);
 243   1              LCDC_DispWord (19,  16, WLib_W_10x8,  1, 10, 1);
 244   1              LCDC_DispWord (30,  16, WLib_W_10x8,  1, 10, 1);
 245   1              LCDC_DispWord (46,  16, WLib_M_9x8,       1, 9,  1);
 246   1              LCDC_DispWord (57,  16, WLib_L_6x8,   1, 6,  1);
 247   1              LCDC_DispWord (63,  16, WLib_A_7x8,   1, 7,  1);
 248   1              LCDC_DispWord (71,  16, WLib_R_7x8,   1, 7,  1);
 249   1              LCDC_DispWord (79,  16, WLib_M_9x8,   1, 9,  1);
 250   1              LCDC_DispWord (90,  16, WLib_dot_4x8, 1, 4,  1);
 251   1              LCDC_DispWord (94,  16, WLib_C_7x8,   1, 7,  1);
 252   1              LCDC_DispWord (102, 16, WLib_O_7x8,   1, 7,  1);
 253   1          LCDC_DispWord (110, 16, WLib_M_9x8,   1, 9,  1);
 254   1      
 255   1              LCDC_DispWord (11,  2, WLib_T_6x8,    1, 6,  1);
 256   1              LCDC_DispWord (17,  2, WLib_e_5x8,    1, 5,  1);
 257   1              LCDC_DispWord (22,  2, WLib_l_4x8,    1, 4,  1);
 258   1              LCDC_DispWord (27,  2, WLib_ddot_3x8, 1, 3,  1);
 259   1      
 260   1              LCDC_DispWord (34,  2, WLib_0_5x8,    1, 5,  1);
 261   1              LCDC_DispWord (39,  2, WLib_2_5x8,    1, 5,  1);
 262   1              LCDC_DispWord (44,  2, WLib_9_5x8,    1, 5,  1);
 263   1              LCDC_DispWord (49,  2, WLib_line_6x8, 1, 6,  1);
 264   1              LCDC_DispWord (55,  2, WLib_8_5x8,    1, 5,  1);
 265   1              LCDC_DispWord (60,  2, WLib_8_5x8,    1, 5,  1);
 266   1              LCDC_DispWord (65,  2, WLib_2_5x8,    1, 5,  1);
 267   1              LCDC_DispWord (70,  2, WLib_2_5x8,    1, 5,  1);
 268   1              LCDC_DispWord (75,  2, WLib_3_5x8,    1, 5,  1);
 269   1              LCDC_DispWord (80,  2, WLib_5_5x8,    1, 5,  1);
 270   1              LCDC_DispWord (85,  2, WLib_9_5x8,    1, 5,  1);
 271   1              LCDC_DispWord (90,  2, WLib_7_5x8,    1, 5,  1);
 272   1              LCDC_DispWord (95,  2, WLib_line_6x8, 1, 6,  1);
 273   1              LCDC_DispWord (101, 2, WLib_8_5x8,    1, 5,  1);
 274   1              LCDC_DispWord (106, 2, WLib_0_5x8,    1, 5,  1);
 275   1              LCDC_DispWord (111, 2, WLib_2_5x8,    1, 5,  1);
 276   1      }
 277          
 278          /***********************************************************************************
 279          * 函数名称:LCDC_Init;
 280          *
 281          * 函数功能描述:lcd_init;
 282          *              
 283          * 输入参数:none;
 284          *
 285          * 返回数据:none;
 286          *
 287          * 注意:    具体Lcd操作请参考DMC12864.PDF;
 288          ************************************************************************************/
 289          void LCDC_Init (void)                                           
 290            {
 291   1              DISABLE_INTERRUPTS;             //关中断
 292   1              addr = Lcd_Cs     | 
 293   1                         Lcd_CsChip | 
 294   1                         Lcd_WrCmd;           //写命令 (参考Lcd_Driver.h文件宏定义)
 295   1              LCDC_WrCmd (Lcd_Dsl);   //Display start line
 296   1              LCDC_WrCmd (St_Addr);   //COLOUM ADDRESS
 297   1              LCDC_WrCmd (St_Page);   //ROW ADDRESS
 298   1              LCDC_WrCmd (Dis_ON );   //Display ON    
 299   1              ENABLE_INTERRUPTS;      //开中断
 300   1       }
 301          
 302          /***********************************************************************************
C51 COMPILER V7.50   LCD                                                                   04/25/2007 16:01:14 PAGE 6   

 303          * 函数名称:LCDC_DisFull;
 304          *
 305          * 函数功能描述: 清屏函数(全部写慢或清空);
 306          *              
 307          * 输入参数:unsigned char类型数据,0x00是清屏;0xff是写满屏;
 308          *
 309          * 返回数据:none;
 310          *
 311          * 注意:    none;
 312          ************************************************************************************/
 313          void LCDC_DisFull (unsigned char Flag)
 314          {
 315   1              unsigned char x,y; 
 316   1      
 317   1              if (!Flag)                                              //清屏
 318   1              {
 319   2                      for (y=0; y<8;   y++)
 320   2                      for (x=0; x<128; x++)                 
 321   2                              LCDC_WrData (x, y, 0X00);
 322   2              }
 323   1              else                                                    //写满屏
 324   1              {
 325   2                      for (y=0; y<8;   y++)
 326   2                      for (x=0; x<128; x++)                
 327   2                              LCDC_WrData (x, y, 0XFF);
 328   2              }
 329   1      }
 330          
 331          /***********************************************************************************
 332          * 函数名称:LCDC_CheckBusy;
 333          *
 334          * 函数功能描述: 判断LCD忙等待;
 335          *              
 336          * 输入参数:none;
 337          *
 338          * 返回数据:none;
 339          *
 340          * 注意:    none;
 341          ************************************************************************************/
 342          void LCDC_CheckBusy (void)
 343          {
 344   1              addr = Lcd_Cs     | 
 345   1                         Lcd_CsChip | 
 346   1                         Lcd_RdSta;           //读状态(参考Lcd_Driver.h文件宏定义)
 347   1              _nop_();_nop_();                //延时等待 
 348   1          _nop_();_nop_();
 349   1              do                                              //取Lcd的状态寄存器内的数据 
 350   1                      tp = addr; 
 351   1              while ((*tp&Chip_Busy)==Chip_Busy);//等待BUSY位清零 Lcd空闲
 352   1      }
 353          
 354          /***********************************************************************************
 355          * 函数名称:LCDC_WrCmd;
 356          *
 357          * 函数功能描述: 向LCD写命令;
 358          *              
 359          * 输入参数:none;
 360          *
 361          * 返回数据:none;
 362          *
 363          * 注意:    none;
 364          ************************************************************************************/
C51 COMPILER V7.50   LCD                                                                   04/25/2007 16:01:14 PAGE 7   

 365          void LCDC_WrCmd (unsigned char dd)
 366          {
 367   1              DISABLE_INTERRUPTS;             //关中断
 368   1              addr  = Lcd_Cs     | 
 369   1                              Lcd_CsChip | 
 370   1                              Lcd_WrCmd;      //写命令地址 (参考Lcd_Driver.h文件宏定义)
 371   1          tp    = addr;
 372   1              *tp   = dd;                             //写命令
 373   1              addr &= Unto_Lcd;               //改变地址变量 地址不指向Lcd
 374   1              _nop_();_nop_();                //延时等待
 375   1          _nop_();_nop_();
 376   1              ENABLE_INTERRUPTS;              //开中断
 377   1      }
 378          
 379          /***********************************************************************************
 380          * 函数名称:LCDC_SetXY;
 381          *
 382          * 函数功能描述: LCD读写位置变换;
 383          *              
 384          * 输入参数:unsigned char类型坐标x,y;
 385          *
 386          * 返回数据:none;
 387          *
 388          * 注意:    详细请参考DMC12864.PDF;程序中X,Y方向定义与屏定义不同
 389          ************************************************************************************/
 390          void LCDC_SetXY (unsigned char x, unsigned char y)
 391          {
 392   1              DISABLE_INTERRUPTS;     //关中断
 393   1          LCDC_CheckBusy ();          //等待Lcd空闲
 394   1          y  &= x_addr;                       //x赋值 屏蔽掉无用位 加人相关命令
 395   1              y  |= St_Page;
 396   1              LCDC_WrCmd (y);
 397   1              x  &= y_addr;                   //Y赋值 屏蔽掉无用位 加人相关命令
 398   1              x  |= St_Addr;
 399   1              LCDC_WrCmd (x);
 400   1              ENABLE_INTERRUPTS;              //开中断
 401   1      }
 402          
 403          /***********************************************************************************
 404          * 函数名称:LCDC_WrData;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -