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

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

QQ登錄

只需一步,快速開始

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

單片機(jī)ht1621驅(qū)動(dòng)問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1059305 發(fā)表于 2023-3-24 09:01 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
50黑幣
問題:以下是我寫的ht1621驅(qū)動(dòng),驅(qū)動(dòng)后顯示屏顯示圖像不對(duì),目前懷疑send_bit函數(shù)不能準(zhǔn)確發(fā)送相應(yīng)數(shù)據(jù),求大家?guī)兔獯鹨幌,謝謝。PS附件為數(shù)據(jù)手冊(cè)

單片機(jī)源程序如下:
  1. #include "lcd.h"

  2. void delay(void)//延時(shí)10us
  3. {
  4.       int i;
  5.       for(i=0;i<10;i++)
  6.      {
  7.            __NOP();
  8.       }
  9. }

  10. void send_bit(uint8_t data,uint8_t cnt) //data為發(fā)送數(shù)據(jù),cnt為發(fā)送位數(shù)
  11. {
  12.        int i;
  13.        for(i=0;i<cnt;i++)
  14.      {
  15.           WR_L;
  16.           delay();
  17.            if(data&0x80)
  18.            {
  19.                DATA_H;
  20.             }
  21.            else
  22.            {
  23.                  DATA_L;
  24.             }
  25.             WR_H;
  26.             delay();
  27.             data<<=1;
  28.          }
  29. }

  30. void write_cmd(uint8_t data) //發(fā)送命令
  31. {
  32.         CS_L;
  33.        send_bit(0x80,3);
  34.        send_bit(data,9);
  35.        delay();
  36.        CS_H;
  37. }

  38. void write_data(uint8_t addr,uint8_t data)
  39. {
  40.           CS_L;
  41.          addr<<=2;
  42.           data<<=4;
  43.           send_bit(0xa0,3);
  44.            send_bit(addr,6);
  45.            send_bit(data,4);
  46.           delay();
  47.             CS_H;
  48. }

  49. void clean_screen(void)
  50. {
  51.       int i,temp=0;
  52.        for(i=0;i<32;i++)
  53.       {
  54.            write_data(temp,0);
  55.              temp++;
  56.        }
  57. }

  58. void show_all_screen(void)
  59. {
  60.         int i,temp=0;
  61.           for(i=0;i<32;i++)
  62.        {
  63.           write_data(temp,1);
  64.           temp++;
  65.         }
  66. }

  67. void LCD_init(void)
  68. {
  69.      write_cmd(SYS_EN);/ /打開系統(tǒng)振蕩器
  70.      write_cmd(RC256);//內(nèi)部時(shí)鐘
  71.      write_cmd(BIAS);//1/3duty  4com
  72.      write_cmd(LCD_ON);打開LCD偏壓
  73.      clean_screen();
  74. }
復(fù)制代碼
以下是頭文件里面一些定義
  1. #define COMMAND        0x80  // 命令碼-100
  2. #define WRITE_DATA     0xA0  //寫命令-101
  3. #define READ_DATA      0xC0  //讀命令-110

  4. #define BIAS           0X52  // 1/3duty  4com
  5. #define SYS_EN         0x02  // 打開系統(tǒng)振蕩器
  6. #define LCD_ON         0x06  // 打開LCD偏壓
  7. #define RC256          0x30  // 內(nèi)部時(shí)鐘

復(fù)制代碼





DJM6040規(guī)格書.pdf

3.26 MB, 下載次數(shù): 7

最佳答案

查看完整內(nèi)容

1.代碼不會(huì)擼,你的send_bit就是高位在前的發(fā)送,看著跟時(shí)序能對(duì)上; 2.注意下這貨的ADDRESS和DATA發(fā)送數(shù)據(jù)不一樣,ADDRESS高位在前,DATA是低位在前。 3.沒有細(xì)細(xì)看手冊(cè),不行編不下去了...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:45879 發(fā)表于 2023-3-24 09:01 | 只看該作者
1.代碼不會(huì)擼,你的send_bit就是高位在前的發(fā)送,看著跟時(shí)序能對(duì)上;
2.注意下這貨的ADDRESS和DATA發(fā)送數(shù)據(jù)不一樣,ADDRESS高位在前,DATA是低位在前。
3.沒有細(xì)細(xì)看手冊(cè),不行編不下去了...
回復(fù)

使用道具 舉報(bào)

板凳
ID:195496 發(fā)表于 2023-3-24 13:17 | 只看該作者
1621驅(qū)動(dòng)不難,主要難點(diǎn)在取顯示字模上,你要有實(shí)物才能更好進(jìn)行程序調(diào)試,我沒有實(shí)物,只能幫到這里
回復(fù)

使用道具 舉報(bào)

地板
ID:1059305 發(fā)表于 2023-3-24 16:52 | 只看該作者
yueguang3048 發(fā)表于 2023-3-24 10:59
1.代碼不會(huì)擼,你的send_bit就是高位在前的發(fā)送,看著跟時(shí)序能對(duì)上;
2.注意下這貨的ADDRESS和DATA發(fā)送數(shù) ...

我是菜狗,我之前沒注意到,現(xiàn)在我重新寫了,但還是不行,現(xiàn)在什么都沒有顯示

  1. void write_cmd(uint8_t cmd)
  2. {
  3.         int i;
  4.         uchar j=0x80;
  5.         CS_L;
  6.         for(i=0;i<3;i++)
  7.         {
  8.                 if(j&0x80)
  9.                 {
  10.                         DATA_H;
  11.                 }
  12.                 else
  13.                 {
  14.                         DATA_L;
  15.                 }
  16.                 WR_L;
  17.                 delay();
  18.                 WR_H;
  19.                 delay();
  20.                 j<<=1;
  21.         }
  22.         for(i=0;i<9;i++)
  23.         {
  24.                 if(cmd&0x80)
  25.                 {
  26.                         DATA_H;
  27.                 }
  28.                 else
  29.                 {
  30.                         DATA_L;
  31.                 }
  32.                 WR_L;
  33.                 delay();
  34.                 WR_H;
  35.                 delay();
  36.                 cmd<<=1;
  37.         }
  38.         CS_H;
  39. }

  40. void write_data(uint8_t addr,uint8_t data)
  41. {
  42.         int i;
  43.         uchar j=0xa0;
  44.         CS_L;
  45.         for(i=0;i<3;i++)
  46.         {
  47.                 if(j&0x80)
  48.                 {
  49.                         DATA_H;
  50.                 }
  51.                 else
  52.                 {
  53.                         DATA_L;
  54.                 }
  55.                 WR_L;
  56.                 delay();
  57.                 WR_H;
  58.                 delay();
  59.                 j<<=1;
  60.         }
  61.         addr<<=2;
  62.         for(i=0;i<6;i++)
  63.         {
  64.                 if(addr&0x80)
  65.                 {
  66.                         DATA_H;
  67.                 }
  68.                 else
  69.                 {
  70.                         DATA_L;
  71.                 }
  72.                 WR_L;
  73.                 delay();
  74.                 WR_H;
  75.                 delay();
  76.                 addr<<=1;
  77.         }

  78.         for(i=0;i<4;i++)
  79.         {
  80.                 if(data&0x01)
  81.                 {
  82.                         DATA_H;
  83.                 }
  84.                 else
  85.                 {
  86.                         DATA_L;
  87.                 }
  88.                 WR_L;
  89.                 delay();
  90.                 WR_H;
  91.                 delay();
  92.                 data>>=1;
  93.         }
  94.         CS_H;
  95. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

5#
ID:1059305 發(fā)表于 2023-3-24 16:55 | 只看該作者
大漠落日 發(fā)表于 2023-3-24 13:17
1621驅(qū)動(dòng)不難,主要難點(diǎn)在取顯示字模上,你要有實(shí)物才能更好進(jìn)行程序調(diào)試,我沒有實(shí)物,只能幫到這里

我有實(shí)物調(diào)試,但就是不行。明明感覺已經(jīng)跟住時(shí)序發(fā)送數(shù)據(jù)了
回復(fù)

使用道具 舉報(bào)

6#
ID:1067559 發(fā)表于 2023-3-24 17:41 | 只看該作者
這個(gè)簡單,我知道是哪里的問題,你關(guān)閉正常,點(diǎn)亮不正常
回復(fù)

使用道具 舉報(bào)

7#
ID:1059305 發(fā)表于 2023-3-25 08:56 | 只看該作者
13510432506 發(fā)表于 2023-3-24 17:41
這個(gè)簡單,我知道是哪里的問題,你關(guān)閉正常,點(diǎn)亮不正常

好像是關(guān)閉和點(diǎn)亮都不正常
回復(fù)

使用道具 舉報(bào)

8#
ID:1059305 發(fā)表于 2023-3-25 08:59 | 只看該作者
謝謝大家!問題已經(jīng)找出了,有兩個(gè)問題,第一個(gè)問題是像二樓說的ADDRESS和DATA發(fā)送數(shù)據(jù)不一樣,ADDRESS高位在前,DATA是低位在前,我改了代碼后發(fā)現(xiàn)不行,又去看了數(shù)據(jù)手冊(cè),發(fā)現(xiàn)第二個(gè)問題我的命令碼寫錯(cuò)了,現(xiàn)在已經(jīng)調(diào)試成功了。
回復(fù)

使用道具 舉報(bào)

9#
ID:45879 發(fā)表于 2023-3-25 09:21 | 只看該作者
LLL2022 發(fā)表于 2023-3-25 08:59
謝謝大家!!問題已經(jīng)找出了,有兩個(gè)問題,第一個(gè)問題是像二樓說的ADDRESS和DATA發(fā)送數(shù)據(jù)不一樣,ADDRESS高 ...

下次調(diào)試時(shí),配個(gè)邏輯分析儀,會(huì)事半功倍的。
回復(fù)

使用道具 舉報(bào)

10#
ID:466997 發(fā)表于 2024-1-2 23:01 | 只看該作者
我也調(diào)了很久了,按樓主以上代碼跑,還是沒有點(diǎn)亮。
樓主提及到的第二個(gè)問題命令代碼錯(cuò)誤,具體是怎么樣修正的?
我的命令代碼如下:
#define SYSEN      0x01
#define RC256K     0x18
#define BIAS       0x28|0x01 //0x52       //0x28
#define LCDON      0x03
#define SYSDIS     0x00
#define WDTDIS     0x0A
#define LCDOFF     0x02
回復(fù)

使用道具 舉報(bào)

11#
ID:466997 發(fā)表于 2024-1-2 23:19 | 只看該作者
  1. void HT1621_1_Init(void)  
  2. {
  3.         //HT1621B_1_CS = 1;
  4.         HT1621B_CS_SET();
  5.         //HT1621B_1_WR = 1;
  6.         HT1621B_WR_SET();
  7.         //HT1621B_1_DA = 1;
  8.         HT1621B_DA_SET();
  9.         delay100us(2);
  10.          
  11.         HT1621_1_WriteCMD(SYSDIS);         
  12.         delay10us(1);
  13.         //HT1621_1_WriteCMD(0x02);
  14.         delay10us(1);
  15.         HT1621_1_WriteCMD(SYSEN);
  16.         HT1621_1_WriteCMD(RC256K);
  17.         HT1621_1_WriteCMD(WDTDIS);
  18.         HT1621_1_WriteCMD(BIAS);
  19.         HT1621_1_WriteCMD(LCDON);
  20.        
  21.         //HT1621_1_WriteCMD(0xE3);
  22.         Clean_Screen();
  23.         //HT1621_1_WriteCMD(LCDOFF);
  24.         STK_BL_OFF();        
  25.         }
復(fù)制代碼
  1. <blockquote>void Clean_Screen(void)
復(fù)制代碼
HT1621_1_WriteOneData(temp,0);HT1621_1_WriteCMD(SYSEN);
與樓主函數(shù)相同,目前還是無法點(diǎn)亮。請(qǐng)教一下哪里出問題了。謝謝!


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲区视频 | 久久国产精品一区二区三区 | 欧美精品一区在线 | 男女污污网站 | 国产日韩欧美一区二区 | 亚洲一卡二卡 | 亚洲a视频| 日韩午夜场 | 亚洲精品一区二区三区 | 狠狠视频 | 婷婷开心激情综合五月天 | 国产一区二区三区高清 | 色噜噜色综合 | 国产探花在线精品一区二区 | 手机看片在线播放 | 久久中文高清 | 九色在线观看 | 国产乱码一区 | 精品91| 国产区视频在线观看 | 免费在线观看一级毛片 | 午夜看电影在线观看 | 久久99精品久久久久久国产越南 | 九九热精品视频 | 日韩一区二区在线播放 | 大象视频一区二区 | 国产精品免费福利 | 色播av| 一级黄色淫片 | 天天操天天玩 | 亚洲欧美中文日韩在线v日本 | 97免费视频在线观看 | 欧美成人精品一区二区三区 | 三级高清| 蜜桃视频成人 | 欧美三区在线观看 | 午夜理伦三级理论三级在线观看 | 色爱综合网 | 成人在线免费电影 | 无毛av | 国产成人免费 |