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

📄 128641.c

📁 CHUSHIHUA()//初始化 Display(0x80,"显示内容")
💻 C
字号:
#include<absacc.h>
//****************************************************************************************//
//名称:带字库液晶显示模块MS 12864R(st7920控制器)驱动程序//
//适用:购买的MS12864液晶模块和所有7920驱动的液晶模块//
//*****************************************************************************************//



#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long

sbit P2_2=P2^2;
sbit DS1302=P1^5;
uint i;
uchar hang, lie;

uchar code  page1[]={"哈尔滨威克科技股"};
uchar code  page2[]={"  份有限公司  "};
uchar code  page3[]={"版权所有盗版必究"};

#define Write_data_addr     XBYTE[0x8100]       //写数据地址
#define Read_data_addr      XBYTE[0x8300]       //读数据地址
#define Write_command_addr  XBYTE[0x8000]       //写指令地址
#define Read_command_addr   XBYTE[0x8200]       //读状态

void delay(uint x)                               //延时X ms
{
    uint j;
    while(x--)
    {
        for(j=0; j<125; j++);
    }
}

void Write_command(uchar COM)                   //写指令
{
    Write_command_addr=COM;
}

void Write_data(uchar data_num)                 //写数据
{
    Write_data_addr=data_num;
}

Read_data()                                     //读数据
{
    char num;
    num=Read_data_addr;
    return num;
}

void youbiao(unsigned char Address)             //打开游标,并在指定位置显示
{
    Write_command(0x30);     
    Write_command(0x0e);
    Write_command(0x18);
    Write_command_addr=Address;
}

unsigned char Read_command(void)
{
    unsigned char num;
    num=Read_command_addr;
    num=num&0x80;
    return num;
}

void CLEAR_LCD( )                               //清全屏
{
   while(Read_command());
    Write_command(0x01);
    while(Read_command());
}

void fanbai(uchar ddram)                      //光标位置fanbai
{
    Write_command(0x0f);
    delay(25);
    Write_command(ddram);
}

void huifu(uchar ddram)                       //光标位置huifu
{
    Write_command(0x0c);
    delay(100);
    Write_command(ddram);
}

//*******************************液晶初始化*******************************//
void CHUSHIHUA()
{
    delay(100);
    Write_command(0x30);                //功能设定:RE=0;  基本指令集动作
    delay(150);
    Write_command(0x30);                //功能设定:RE=0; 基本指令集动作
    delay(100);
    Write_command(0x0c);                //显示状态  开/关:整体显示ON, 游标OFF, 游标位置OFF
    delay(150);
    Write_command(0x01);                //清除显示屏幕,把DDRAM位址计数器调整为"00H"
    delay(100);
    Write_command(0x02);                //位址归位
}

//*************************************在指定地址处写字符串***********************//

void Display(uchar *ptr, uchar ddram)
{
    uchar l, i1, x;
    l=0;
    if(ddram<0x88)
    {
        hang=0;                      //定位行地址:第一行
    }   else  if(ddram<0x90)
        {
            hang=2;                  //定位行地址:第三行
        }
        else  if(ddram<0x98)
        {
            hang=1;                  //定位行地址:第二行
        }    else
             {
                 hang=3;             //定位行地址:第四行
             }
    lie=0x0f&ddram;                 //定位列位置
    if(lie>0x07)
    {
        lie=lie-0x08;
    }
    x=lie*2;
    Write_command(ddram);           //定位显示起始地址
    while((ptr[l])!='\0')
    {
        l++;
    }
    for(i1=0; i1<l; i1++)
    {
        Write_data(ptr[i1]);
        x++;
        if(x==0x10)
        {
            x=0;
            hang++;
            switch(hang)
            {
                case 0:
                    Write_command(0x80);
                    break;
                case 1:
                    Write_command(0x90);
                    break;
                case 2:
                    Write_command(0x88);
                    break;
                case 3:
                    Write_command(0x98);
                    break;
            }
            if(hang>3)
            {
                Write_command(0x80);
                hang=0;
            }
        }
    }
}







⌨️ 快捷键说明

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