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

📄 yejingexp.c

📁 OCM12864的基本使用方法和实现多菜单的实现。
💻 C
字号:
#include    <reg52.h>                   //52系列单片机定义文件
#include    <absacc.h> 
#include    <string.h>
#include    <intrins.h>
#define uchar unsigned char
//液晶程序



#define disp_off   0x3e
#define disp_on    0x3f
#define disp_x     0xb8
#define disp_z     0xc0
#define disp_y     0x40
//#define comm       0
//#define dat        1
#define data_ora   P0       //MCU P0<------> LCM

//sbit    on      = P3^7;      //在io方式操作液晶下

sbit    LCM_CS1      = P2^6;
sbit    LCM_CS2      = P2^5;
sbit    LCM_RW       = P2^4;
sbit    LCM_RS       = P2^3;
sbit    LCM_E        = P2^7;
#define LCD1RD     0x5800      //01011000 00000000
#define LCD2RD     0x3800      //00111000 00000000
#define LCD1WRCOM  0x4000      //01000000 00000000
#define LCD1WRDAT  0x4800      //01001000 00000000
#define LCD2WRCOM  0x2000      //00100000 00000000
#define LCD2WRDAT  0x2800      //00101000 00000000
#define LCDWRCOM   0x3000      //01100000 00000000


void delay(uchar x)
{
	while(x--);
}


/**************************************************************
//key4---按键4执行子程序
//液晶显示程序
**************************************************************/
void main(void){
    uchar   i;
    uchar xdata *addr;
/*    on      = 0;
    CS1     = 1;
    CS2     = 1;
    E       = 1;
    RS      = 0;
    RW      = 0;
    data_ora = disp_on;            //打开显示开关
    E       = 0;
    WAIT;
    E       = 1;
    data_ora = disp_z;             //设置显示起始行为0
    E       = 0;
    WAIT;
    E       = 1;
    data_ora = disp_x;             //设置显示起始页地址为0
    E       = 0;
    WAIT;
    E       = 1;
    data_ora = disp_y;             //设置显示起始列地址为0
    E       = 0;
    WAIT;
    E       = 1;

//1屏    
    CS1     = 1;
    CS2     = 0;
    RS      = 1;
    data_ora = 0X00;          
    E       = 0;
    WAIT;
    E       = 1;
    data_ora = 0XFf;          
    E       = 0;
    WAIT;
    E       = 1;
    data_ora = 0X0F;          
    E       = 0;
    WAIT;
    E       = 1;
    data_ora = 0XF0;          
    E       = 0;
    WAIT;
    E       = 1;

//2屏
    CS1     = 0;
    CS2     = 1;
    RS      = 1;
    data_ora = 0X00;          
    E       = 0;
    WAIT;
    E       = 1;
    data_ora = 0XFf;          
    E       = 0;
    WAIT;
    E       = 1;
    data_ora = 0X0F;          
    E       = 0;
    WAIT;
    E       = 1;
    data_ora = 0XF0;          
    E       = 0;
    WAIT;
    E       = 1;
*/

 
    addr    = LCD1WRCOM;			//写入命令
    *addr   = disp_off;            //关上显示开关
    *addr   = disp_on;            //打开显示开关
    *addr   = disp_z;             //设置显示起始行为0
    *addr   = disp_x;             //设置显示起始页地址为0
        //////////////////////////////
    addr    =LCD1RD;				//读LCD1
    i       = *addr;
    ////////////////////////////////    
    *addr   = disp_y;             //设置显示起始列地址为0
    
    
    addr    = LCD1WRDAT;			
    for(i=0;i<64;i++){
        *addr=0;					//LCD1第一行清空
        delay(10);
    }    
    
    
    addr    = LCD2WRCOM;
    *addr   = disp_off;            //打开显示开关
    *addr   = disp_on;            //打开显示开关
    *addr   = disp_z;             //设置显示起始行为0
    *addr   = disp_x;             //设置显示起始页地址为0
    *addr   = disp_y;             //设置显示起始列地址为0 
    
    
    addr    = LCD2WRDAT;
    for(i=0;i<64;i++){
        *addr=0;					//LCD2第一行清空
        delay(10);
    }
    
}

⌨️ 快捷键说明

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