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

📄 main.c

📁 12864 液晶驱动程序,和MSP430接口的辕马程序.
💻 C
字号:
/*************************************************************
程序功能:在12864液晶上显示ASCII常用字符
-------------------------------------------------------------
测试说明:观察液晶显示
**************************************************************/
#include  "msp430.h"
#include  "BoardConfig.h"
#include  "cry12864.h"

/***************************主函数***************************/
void main( void )
{
    uint i;
    uchar laba[]=
    { 0x00,0x00,0x00,0xC0,0x01,0x48,0x02,0x44,0x04,0x52,0xF8,0x49,0x88,0x49,0x88,0x49,
      0x88,0x49,0x88,0x49,0xF8,0x49,0x04,0x52,0x02,0x44,0x01,0x48,0x00,0xC0,0x00,0x00};

    WDTCTL = WDTPW + WDTHOLD;    //关狗
    BoardConfig(0xbe);

    Ini_Lcd();                  //初始化液晶

    Write_Cmd(0x80);            //写第一行的显示地址
    for(i = 0; i < 16; i++)
      Write_Data(0x00 + i);     //显示0x30~0x3f对应的字符
    Write_Cmd(0x90);            //写第二行的显示地址
    for(i = 0; i < 16; i++)
      Write_Data(0x10 + i);     //显示0x40~0x4f对应的字符
    Write_Cmd(0x88);            //写第三行的显示地址
    for(i = 0; i < 16; i++)
      Write_Data(0x20 + i);     //显示0x50~0x5f对应的字符
    Write_Cmd(0x98);            //写第四行的显示地址
    for(i = 0; i < 16; i++)
      Write_Data(0x30 + i);     //显示0x60~0x6f对应的字符

 /*   for(i = 1000; i > 0; i--)        //延时一会
    {
        for(j = 1000; j > 0; j--)
          _NOP();
    }*/


    //在显示时DDAM和GDRAM是同时显示的,也就是它们的显示结果是叠加在一起的
    /*SM12864液晶基本指令集控制命令测试*/
    //1.设定DDRAM地址命令
    Write_Cmd(0x90);            //设定DDRAM地址,因为此时DDRAM地址已经溢出
    //2.显示状态命令
    Write_Cmd(0x08);            //整体显示关,游标关,游标位置关
    Write_Cmd(0x0c);            //整体显示开,游标关,游标位置关
    Write_Cmd(0x0e);            //整体显示开,游标开,游标位置关
    Write_Cmd(0x0f);            //整体显示开,游标开,游标位置开
    //3.位址归位
    Write_Cmd(0x02);            //位址归位,游标回到原点

    Write_Cmd(0x84);            //将DDRAM地址设为0x88,游标在此闪烁
    //4.点设定指令
    //(以下四个命令是控制写入字符以后光标及整屏显示的移动)
    Write_Cmd(0x07);            //光标右移整体显示左移
    Write_Data(0x20);           //写入两个空格
    Write_Data(0x20);

    Write_Cmd(0x05);            //光标左移整体显示右移
    Write_Data(0x20);           //写入两个空格
    Write_Data(0x20);

    Write_Cmd(0x06);            //光标右移整体显示不移动
    Write_Data(0x20);           //写入两个空格
    Write_Data(0x20);

    Write_Cmd(0x04);            //光标左移整体显示不移动
    Write_Data(0x20);           //写入两个空格
    Write_Data(0x20);
    //5.游标和显示移位控制
    //(以下四个命令无需写入显示数据,直接控制光标和整屏显示的移动)
    Write_Cmd(0x10);            //光标左移
    Write_Cmd(0x14);            //光标右移
    Write_Cmd(0x18);            //整体显示左移,光标跟随
    Write_Cmd(0x1c);            //整体显示右移,光标跟随

    Write_Cmd(0x0c);            //关闭光标

    //6.进入扩展功能模式命令
    Write_Cmd(0x34);            //打开扩展功能模式,绘图显示关闭
    //7.反白命令
    Write_Cmd(0x04);            //同时反白1、3行
    Write_Cmd(0x04);            //再次反白1、3行,相当于关闭1、3行反白
    Write_Cmd(0x05);            //同时反白2、4行
    Write_Cmd(0x05);            //再次反白2、4行,相当于关闭2、4行反白
    //8.睡眠模式命令
    Write_Cmd(0x08);            //进入睡眠模式
    Write_Cmd(0x0c);            //退出睡眠模式
    //9.待命模式命令
    Write_Cmd(0x01);            //进入待命模式
    //10.打开GDRAM显示
    Write_Cmd(0x36);            //打开扩展功能模式,打开绘图显示
    Draw_TX(0x80,0x84,laba);    //设置16*16大小图形
    Clear_GDRAM();              //清除上电复位后RAM中的随机数值
    Draw_TX(0x80,0x84,laba);    //重新显示设置16*16大小图形
   //11.关闭GDRAM显示
    Write_Cmd(0x34);            //打开扩展功能模式,关闭绘图显示
    //12.设定基本指令集
    Write_Cmd(0x30);              //回到基本指令集
    //13.清除显示命令
    Write_Cmd(0x01);            //清屏

    Write_Cmd(0x80);            //写第一行的显示地址
    for(i = 0; i < 16; i++)
      Write_Data(0x40 + i);     //显示0x40~0x4f对应的字符

    Write_Cmd(0x90);            //写第二行的显示地址
    for(i = 0; i < 16; i++)
      Write_Data(0x50 + i);     //显示0x50~0x5f对应的字符

    Write_Cmd(0x88);            //写第三行的显示地址
    for(i = 0; i < 16; i++)
      Write_Data(0x60 + i);     //显示0x60~0x6f对应的字符

    Write_Cmd(0x98);            //写第二行的显示地址
    for(i = 0; i < 16; i++)
      Write_Data(0x70 + i);     //显示0x70~0x7f对应的字符

    LPM4;
}

⌨️ 快捷键说明

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