久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2026|回復: 3
打印 上一主題 下一主題
收起左側

lpc1778驅動TG12232E-01液晶顯示

[復制鏈接]
跳轉到指定樓層
樓主
ID:390945 發表于 2018-8-28 20:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <LPC177x_8x.h>
#include "lcm.h"

extern void write_data(uchar date);
extern void delay(uint32_t tick);

#define  LCM_EN_LOW()                      LPC_GPIO1->CLR |= (1UL<<19);          //EN
#define  LCM_EN_HIGH()                LPC_GPIO1->SET |= (1UL<<19);

#define  LCM_RW_LOW()                      LPC_GPIO1->CLR |= (1UL<<20);          //RW
#define  LCM_RW_HIGH()                LPC_GPIO1->SET |= (1UL<<20);

#define  LCM_RS_LOW()                      LPC_GPIO1->CLR |= (1UL<<21);          //RS
#define  LCM_RS_HIGH()                LPC_GPIO1->SET |= (1UL<<21);

#define LCD_NUM  8      

typedef struct
{
    uint32_t gpioBaseAddr;   // 對應GPIO的基地址
    uint32_t pin;            // 對應的PIN腳掩碼
}T_LCD;     // lcd data引腳的描述信息

// 定義data數據位
const T_LCD g_lcd[LCD_NUM]= {
    {LPC_GPIO1_BASE, 1UL << 22},            //DATA:D0-D7
    {LPC_GPIO1_BASE, 1UL << 23},
    {LPC_GPIO1_BASE, 1UL << 24},
    {LPC_GPIO1_BASE, 1UL << 25},
    {LPC_GPIO1_BASE, 1UL << 26},
    {LPC_GPIO1_BASE, 1UL << 27},
    {LPC_GPIO1_BASE, 1UL << 28},
    {LPC_GPIO1_BASE, 1UL << 29},
};

void lcd1602_init(void)
{
        delay(5000);
        write_command(0x30);         // 功能設定       
        delay(100);
        write_command(0x04);    // 顯示關閉
        delay(100);
        write_command(0x01);    // 清屏
        delay(100);
        write_command(0x0c);        // 顯示開及光標設置
  delay(100);
        write_command(0x80);        // 顯示光標移動設置  
        delay(100);
        //write_command(0x04);    //開總顯示,不開開光標,光標不閃爍
  //delay(1);
}

// 對lED使用的GPIO管腳進行初始化
void lcdInit(void)
{
    LPC_GPIO_TypeDef *pGPIO;

    uint32_t i;

    for (i = 0; i < LCD_NUM; i++)               //D0-D7 配置輸出模式
    {
        pGPIO = (LPC_GPIO_TypeDef *)g_lcd[i].gpioBaseAddr;

        pGPIO->DIR |= g_lcd[i].pin;

    }

    LPC_IOCON->P1_19 &= 0xFFFFFFF8;                            //    EN
    LPC_IOCON->P1_19 |= 0x00000000;                                //   
    LPC_GPIO1->DIR |= (1UL<<19);                //輸出模式

    LPC_IOCON->P1_20 &= 0xFFFFFFF8;                            //    R/W
    LPC_IOCON->P1_20 |= 0x00000000;                                //  
    LPC_GPIO1->DIR |= (1UL<<20);                //輸出模式

    LPC_IOCON->P1_21 &= 0xFFFFFFF8;                            //    RS
    LPC_IOCON->P1_21 |= 0x00000000;                                //  
    LPC_GPIO1->DIR |= (1UL<<21);                //輸出模式

    lcd1602_init();

}

/*********************************************************************//**
* @brief                Delay function
* @param[in]        tick - number milisecond of delay time
* @return                 None
**********************************************************************/
void delay(uint32_t tick)
{
     uint32_t i;
     uint32_t j;
     for (i=tick; i>0; i--)
        for (j=0; j<1000; j++);
}

void write_command(uchar command)               //寫命令
{
    uchar i;
    i = command;  
    LCM_RW_LOW();       
    LCM_RS_LOW();
    LCM_EN_LOW();         
    delay(5);   
    LPC_GPIO1->CLR |= (0XFF << 22);             //數據八位清零
    LPC_GPIO1->SET |= (i << 22);                //數據位賦值
    delay(5);
    LCM_EN_HIGH();
    delay(5);
    LCM_EN_LOW();
}

void write_data(uchar date)                     //寫單個字符
{
    uchar i;
    i = date;  
    LCM_RW_LOW();       
    LCM_RS_HIGH();
    LCM_EN_LOW();
    delay(5);
    LPC_GPIO1->CLR |= (0XFF << 22);             //數據八位清零
    LPC_GPIO1->SET |= (i << 22);                 //數據位賦值
    delay(5);
    LCM_EN_HIGH();
    delay(5);
    LCM_EN_LOW();
}

void dr_screen_print(int x1,int x2,unsigned char *s1,unsigned char *s2)  //,int light
{
                int j;
                if ((x1 < 8) && (x2 < 8))   
                                        {
                                                j=0;
                                                write_command(0x80 +j* 16+ x1);//????DDRAM??row * 16 + col??
                                                while(*s1)
                                                        {
                                                                write_data(*s1);
                                                                s1++;
                                                        }
                                                                               
                                                                ++j;
                                                       
                                                write_command(0x80 +j*16+ x2);//????DDRAM??row * 16 + col??
                                                while(*s2)
                                                        {
                                                                write_data(*s2);
                                                                s2++;
                                                        }
                                                        }
                               
                               

                       
               
                }
/*
unsigned char set_lcd_position(unsigned char row, unsigned char col)
{
  if ((row < 2) && (col < 8))    //?????2?7.5?(????????)
  {
    write_command(0x80 + row * 16 + col);//????DDRAM??row * 16 + col??
    return 1;//????
  }
  else
    return 0;//????
}

void display_string(uchar *p)                   //寫字符串
{
        while(*p)
        {
                write_data(*p);
                p++;
        }
}
}
*/


/*void lcd_display(uchar row, uchar col, uchar *p)
{
  if (set_lcd_position(row, col))
  {
    display_string(p);
  }
}

*/



/*void gotoxy(unsigned y,unsigned x)              //顯示位置  2行16列     Y:1-2;  X:0-15
{
        if(y ==0)                                  //第一行
                write_command(0x80+x);
        else if(y ==1)                             //第二行
            write_command(0x80+0x0F+x);
}
*/


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2018-8-28 20:39 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

板凳
ID:1 發表于 2018-8-29 01:07 | 只看該作者
缺頭文件?
回復

使用道具 舉報

地板
ID:138664 發表于 2019-1-24 13:04 | 只看該作者
缺函數文件
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人激情 | 精品在线一区二区三区 | 四虎永久在线精品免费一区二 | 日韩欧美精品在线 | 日本黄色大片免费 | 国产高清精品一区二区三区 | 精品区一区二区 | 欧美久久一区二区 | 欧美日韩最新 | 激情视频网站 | 精品一区二区三区四区外站 | 一区二区三区回区在观看免费视频 | 国产熟熟| 在线播放国产一区二区三区 | 国产黄色网址在线观看 | 精品日本久久久久久久久久 | 亚洲人成人一区二区在线观看 | 国产精品一区二区在线 | 国产精品久久精品 | 美女二区 | 欧美日韩一区二区三区不卡视频 | 91网站在线看 | 国产精品永久在线观看 | 91视频88av | 欧美精品成人一区二区三区四区 | 久草青青草| 欧美亚洲免费 | 国产日韩久久 | 国产视频在线观看一区二区三区 | 中文字幕av高清 | 综合国产 | 午夜精品久久 | 91欧美| 国产高潮好爽受不了了夜色 | 一级片网址 | 国产成人精品一区二 | 激情欧美一区二区三区中文字幕 | 国产精品久久精品 | 精品国产一区二区三区观看不卡 | 日韩精品欧美精品 | 黄色av网站免费看 |