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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

LCD控制器TM1621/HT1621

[復制鏈接]
跳轉到指定樓層
樓主
ID:459917 發表于 2019-1-3 08:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式


LCD控制器TM1621/HT1621

要點

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

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

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

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

#define LCD_FLAG_CMD (4)   //命令標識100
#define LCD_FLAG_DATA (5)  //數據標識101
一些函數

/**
* 發送大端數據
*/
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();
   }
}

/**
* 發送小端數據
*/
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);          //內部RC振蕩
   lcd_writeCmd(ps, LCD_CMD_SYS_DIS);       //關系統振蕩器和LCD偏壓發生器
   lcd_writeCmd(ps, LCD_WDTDIS1);
   lcd_writeCmd(ps, LCD_CMD_SYS_EN);       //打開系統振蕩器
   lcd_writeCmd(ps, LCD_CMD_Normal);
   lcd_writeCmd(ps, LCD_CMD_ON);           //開LCD偏壓
   lcd_clearAll(ps); //清除屏幕數據,就是全部寫0
}

顯示

/**
* 顯示所有
*/
static void lcd_showAll(LcdStr* ps) {
   LCD_CS_SEL();
   lcd_sendBeData(ps, LCD_FLAG_DATA, 3); //標識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 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕在线观看视频一区 | 久久九九99| 美女视频一区 | 精品一区二区三区在线视频 | 日韩www| 99久久婷婷国产综合精品电影 | 91精品国产综合久久久久蜜臀 | 日韩午夜网站 | 9久9久9久女女女九九九一九 | 91免费看片 | 日韩欧美在线视频 | 国产欧美日韩久久久 | www日韩高清 | 亚洲成人观看 | 玖玖免费 | 久久综合欧美 | 小草久久久久久久久爱六 | 欧美性生活免费 | av免费电影在线 | 99热这里有精品 | 日韩中文不卡 | 黑人成人网 | 日韩国产欧美在线观看 | 青青久草 | 日韩成人 | 欧美成人精品激情在线观看 | 人人干在线 | 亚洲vs天堂| 99这里只有精品视频 | av喷水 | 中文字幕精品一区 | 国产成人精品a视频 | 日韩一级精品视频在线观看 | 成人精品国产免费网站 | 成人黄色电影在线播放 | 国产成人麻豆免费观看 | 欧美成人h版在线观看 | 国产成人免费视频 | 国产精品久久久久久久久久 | 国产精品视频网 | 国产精品久久久久婷婷二区次 |