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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3335|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

LCD控制器TM1621/HT1621

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:459917 發(fā)表于 2019-1-3 08:33 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式


LCD控制器TM1621/HT1621

要點(diǎn)

1)由公共輸出口COM0-COM3和段輸出口SEG0-SEG23控制LCD的段碼;
2)3個(gè)關(guān)鍵數(shù)據(jù)口:
  a)CS:片選,低電平有效;
  b)WR:讀寫控制,上升沿從MCU讀取數(shù)據(jù);
  c)DATA:數(shù)據(jù),命令是大端位序,數(shù)據(jù)是小端位序;
3)命令結(jié)構(gòu):3bit標(biāo)識(shí)(LCD_FLAG_CMD)+9bit命令
4)寫數(shù)據(jù)到RAM:3bit標(biāo)識(shí)(LCD_FLAG_DATA)+6bit地址+若干bit數(shù)據(jù)(數(shù)據(jù)是小端)
定義

#define LCD_BIAS_1P2 (0<<1) //1/2偏壓
#define LCD_BIAS_1P3 (1<<1) //1/3偏壓

#define LCD_USE_COM2 (0<<3) //使用2個(gè)公共口
#define LCD_USE_COM3 (1<<3) //使用3個(gè)公共口
#define LCD_USE_COM4 (2<<3) //使用4個(gè)公共口

#define LCD_CMD_BIAS_COM (0x40) //設(shè)置公共口和偏壓的命令
#define LCD_CMD_ON (0x6)        //打開
#define LCD_CMD_OFF (0x4)       //關(guān)閉
#define LCD_CMD_Normal (0x1C6)  //普通模式
#define LCD_CMD_SYS_EN (2)      //打開系統(tǒng)振蕩器和LCD偏壓發(fā)生器
#define LCD_CMD_SYS_DIS (0)     //關(guān)閉系統(tǒng)振蕩器和LCD偏壓發(fā)生器
#define LCD_RC256       (0x30)  //系統(tǒng)時(shí)鐘源片內(nèi)RC 256K振蕩器
#define LCD_XTAL     0x28       //0b1000 0010 1000 外部接時(shí)鐘
#define LCD_WDTDIS1  0X0A       //0b1000 0000 1010  禁止看門狗

#define LCD_FLAG_CMD (4)   //命令標(biāo)識(shí)100
#define LCD_FLAG_DATA (5)  //數(shù)據(jù)標(biāo)識(shí)101
一些函數(shù)

/**
* 發(fā)送大端數(shù)據(jù)
*/
static void lcd_sendBeData(LcdStr* ps,u32 n, int nBit) {
   for (int i = nBit; --i >= 0;) {
      LCD_WR_L();
      LCD_WriteBit((n >> i) & 1);
      LCD_DELAY();
      LCD_WR_H();
      LCD_DELAY();
   }
}

/**
* 發(fā)送小端數(shù)據(jù)
*/
static void lcd_sendLeData(LcdStr* ps,u32 n, int nBit) {
   for (int i = 0; i < nBit; i++) {
      LCD_WR_L();
      LCD_WriteBit((n >> i) & 1);
      LCD_DELAY();
      LCD_WR_H();
      LCD_DELAY();
   }
}


/**
*寫命令
*/
static void lcd_writeCmd(LcdStr* ps, u16 cmd) {
   LCD_CS_SEL();
   lcd_sendBeData(ps, LCD_FLAG_CMD, 3); //100
   lcd_sendBeData(ps, cmd, 9);
   LCD_CS_RELAESE();
   LCD_DELAY();
}

初始化

static void lcd_init(LcdStr* ps) {
   ...//MCU的GPIO初始化
   LCD_CS_RELAESE();//片選腳拉高
   LCD_WR_H();      //讀寫控制拉高
   LCD_DELAY();
   //---------------
   lcd_writeCmd(ps, LCD_CMD_BIAS_COM | LCD_USE_COM4 | LCD_BIAS_1P3);//1/3偏壓 4公共口
   lcd_writeCmd(ps, LCD_RC256);          //內(nèi)部RC振蕩
   lcd_writeCmd(ps, LCD_CMD_SYS_DIS);       //關(guān)系統(tǒng)振蕩器和LCD偏壓發(fā)生器
   lcd_writeCmd(ps, LCD_WDTDIS1);
   lcd_writeCmd(ps, LCD_CMD_SYS_EN);       //打開系統(tǒng)振蕩器
   lcd_writeCmd(ps, LCD_CMD_Normal);
   lcd_writeCmd(ps, LCD_CMD_ON);           //開LCD偏壓
   lcd_clearAll(ps); //清除屏幕數(shù)據(jù),就是全部寫0
}

顯示

/**
* 顯示所有
*/
static void lcd_showAll(LcdStr* ps) {
   LCD_CS_SEL();
   lcd_sendBeData(ps, LCD_FLAG_DATA, 3); //標(biāo)識(shí)101
   lcd_sendBeData(ps, ps->startSeg, 6); //地址
   for (int s = 0; s < 4; s++) {
      lcd_sendLeData(ps, ps->lcds >> (s * 8), 8);
   }
   LCD_CS_RELAESE();
   LCD_DELAY();
}
清除

/**
*清除屏幕
*/
static void lcd_clearAll(LcdStr* ps) {
   LCD_CS_SEL();
   lcd_sendBeData(ps, LCD_FLAG_DATA, 3);
   lcd_sendBeData(ps, 0, 6); //地址
   for (int s = 0; s < 16; s++) {
      lcd_sendLeData(ps, 0, 8);
   }
   LCD_CS_RELAESE();
   LCD_DELAY();
}

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

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 最新国产精品 | www国产成人免费观看视频,深夜成人网 | 亚洲国产精品va在线看黑人 | av黄色国产 | 欧美日产国产成人免费图片 | 羞羞网站在线观看 | 亚洲国产一区视频 | 国产一极毛片 | 日韩在线免费 | 人人看人人干 | 成人不卡| 亚洲久视频 | 久久久精品久久 | 色天天综合 | 中文字幕高清av | 国产精品久久久久久久久久 | av黄色在线播放 | 亚洲国产成人av好男人在线观看 | 国产午夜精品久久久 | 日韩视频在线免费观看 | 亚洲精品一区在线 | 日韩欧美专区 | 久热精品在线 | 亚洲日本国产 | 久久综合狠狠综合久久 | 欧美嘿咻| 北条麻妃av一区二区三区 | 二区在线视频 | 91免费入口 | 四虎影院新地址 | 国产精品高潮呻吟久久久久 | 在线观看国产视频 | 国产精品免费福利 | av性色全交蜜桃成熟时 | 国产精品3区| 欧美视频日韩 | 中文字幕免费 | 午夜影院在线观看免费 | 精品久久不卡 | 精品一区二区电影 | 男人的天堂在线视频 |