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

📄 lcd汉字显示程序.txt

📁 基于FPGA的lcd的驱动程序
💻 TXT
字号:
这是汉字显示程序:

#include
#include

#define uchar unsigned char

#define datawr 0x1200           //写数据通道
#define comwr 0x1000            //写控制命令通道
#define datare 0x1300           //读数据通道
#define comre 0x1100       
;       //读忙通道

uchar code disp_data[]={"    浙江大学    "      //第一行,第一页
                        "04级通信工程一班"      //第三行
                        "  宁波理工学院  "      //第二行
                        "    竞赛小组    "      //第四行
                        "128X64液晶显示器"      //第一行,第二页
                        "    测试程序    "      //第三行
                        "  07年07月25日  "      //第二行
                      &n 
bsp; "    Tornado     "};    //第四行 

void set12864();
void write_command(uchar command);
void write_page(uchar data_add);
void read_page(uchar data_add);
void delays(uchar cont);

void main()
{
    while(1)
    {
        set12864();             //初始化12864
        write_page(0);   &nb  
sp;      //写入一页数据
        read_page(0x30);        //读出一页数据到内部RAM
        delays(2);              //延时2s
        write_page(64);         //写入下一页数据
        delays(2);              //延时2s
    }
}

//初始化12864子程序
void set12864()
{
    write_command(0x30);        //功能设定控制字
    write_command(0x0c);        //显示开关控制字
    write_command(0x01);        //清除屏幕控制字
    write_command(0x06);        //进入设定点控制字
}

//写控制命令子程序
void write_command(uchar command)
{
    bit flag="1";                 //12864空闲标志位
    while(flag)                 //检查12864是否空闲
        flag="XBYTE"[comre]&0x80;
    XBYTE[comwr]=command;       //空闲传送控制字
}

//写一页子程序
void write_page(uchar data_add)
{
;   bit flag="1";                 //12864空闲标志位
    uchar num="64";               //64个循环,连续写入32个汉字或是64个西文字符
    write_command(0x80);
    for(;num>0;num--)
    {
        while(flag)             
  //检查12864是否空闲
            flag="XBYTE"[comre]&0x80;
        XBYTE[datawr]=disp_data[data_add++]; //空闲传送数据
    }
} 

//读一页子程序
void read_page(uchar data_add)
{
    bit flag="1";                 //12864空闲标志位
    uchar num="64";               //64个循环,连续写入32个汉字或是64个西文字符
    write_command(0x80);
    for(;num>0;num--)
    {
        while(flag)             //检查12864是否空闲
            flag="XBYTE"[comre]&0x80;
        DBYTE[data_add++]=XBYTE[datare]; //空闲传送数据
    }
}

//延时cont秒子程序
void delays(uchar count)
{
    unsigned char h,i,j,k;
    do
    {
    for(h=5;h>0;h--)
    for(i=4;i>0;i--)
    for(j=116;j>0;j--)
    for(k=214;k>0;k--);
    }while(--count);
}




⌨️ 快捷键说明

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