標題: 請教TM1628芯片讀按鍵問題,附單片機代碼 [打印本頁]

作者: zxxay    時間: 2023-3-29 13:23
標題: 請教TM1628芯片讀按鍵問題,附單片機代碼
按網(wǎng)上天微例程不能讀取按鍵,鍵值KEY[]一直是0xFF。請問讀鍵時單片機接DIO的口要不要設為輸入口,向1628送控制命令和傳顯示數(shù)據(jù)時再把單片機DIO驅動口設為輸出口?
/****************讀取按鍵值并存儲*******************/                                   
void read_key(void)                //讀取5字節(jié)按鍵值并存入數(shù)組KEY[],從低字節(jié)、低位開始               
{                                                                              
  unsigned char i,j;                                                            
  send_command(0x42);         //發(fā)送讀按鍵命令                                    
  DIO=1;                              //釋放DIO數(shù)據(jù)總線                                                     
  for(j=0;j<5;j++)                 //連續(xù)讀取5個字節(jié)                                                
  {                                                                              
    for(i=0;i<8;i++)                                                              
    {
      CLK=0;                                                        
      KEY[j]=KEY[j]>>1;                                                            
      CLK=1;                                                                        
      if(DIO==1)                                                                    
      {                                                                             
        KEY[j]=KEY[j]|0x80;                                                         
      }                                                                             
      nop;                                                                          
    }                                                                              
    nop;                                                                          
    nop;                                                                          
  }                                                                              
  CLK=0;                                                                        
  DIO=0;                                                                        
  STB=1;                                                                        
}  



作者: hi等你    時間: 2023-3-29 16:10
傳送顯示數(shù)據(jù)和讀鍵是兩碼事,也就是說不顯示也可以利用讀鍵,發(fā)送完讀鍵指令

后立刻要把單片機io數(shù)據(jù)口定義高電平,1628就可以數(shù)據(jù)輸出了,就可以讀鍵,這點很重要

很多人卡在這里
作者: zxxay    時間: 2023-3-29 16:28
hi等你 發(fā)表于 2023-3-29 16:10
傳送顯示數(shù)據(jù)和讀鍵是兩碼事,也就是說不顯示也可以利用讀鍵,發(fā)送完讀鍵指令

后立刻要把單片機io數(shù)據(jù)口 ...

send_command(0x42);         //發(fā)送讀按鍵命令                                    
DIO=1;                               //釋放DIO數(shù)據(jù)總線  

我發(fā)完0x42后已經(jīng)把DIO設為1了,但還是讀不到按鍵。請問讀按鍵時單片機DIO腳要設為輸入口嗎?
作者: 188610329    時間: 2023-3-29 20:44
時序錯了,你這樣永遠讀到的 0xff
應該這樣:
    for(i=0;i<8;i++)                                                              
    {
      CLK=0;
      KEY[j] >>= 1;  
      if(DIO)  KEY[j] |= 0x80;   
      CLK=1;                                                                        
    }                                       


作者: ZZZLLLKKK@    時間: 2025-1-23 10:20
樓主我遇到跟您一樣的問題,按照天微例程配的時序,讀取按鍵值一直是0xff,請問您怎么解決的?
作者: ZZZLLLKKK@    時間: 2025-1-23 10:21
樓主您好,我遇到您同樣的問題,按照天微例程配置的時序,按鍵讀取全是0xff,請問您如何解決的?
作者: xiaobendan001    時間: 2025-1-23 13:08
除了地板層說的時序問題,還有讀之前要先STB = 0;
作者: xiaobendan001    時間: 2025-1-23 17:59
xiaobendan001 發(fā)表于 2025-1-23 13:08
除了地板層說的時序問題,還有讀之前要先STB = 0;

手上只有1638,剛測試了一下,CLK = 1;的位置是可以放IF前邊的,能正常讀取。
只是CLK = 0;和CLK = 1;之間要有足夠長的延時。11.0592的主頻下,右移操作的延時是不夠用的。需要增加一點才行。
作者: wjccui    時間: 2025-2-9 16:26
一樣的問題,樓上說的方法都試過了,返回值依然固定為0xff。
一、顯示正常,因此推測讀指令0X42是可以正常發(fā)送的(否則顯示是否應該不正常?)
二、STC單片機,P30口,已設置為準雙向口。
三、讀取前P30已經(jīng)置1。

推測因為時序或者信號問題,TM1628應該沒有正常發(fā)送鍵值,沒有拉低數(shù)據(jù)線的電平,因為讀取值固定為1,則返回0xff。目前問題未解決。
作者: wjccui    時間: 2025-2-10 12:05
已解決,官方代碼有問題導致時序不對。 send_command(0x42);這個函數(shù)里面,發(fā)送完0X42后把STB拉高了。應該在讀回鍵值之后再拉高。
作者: xiaobendan001    時間: 2025-2-10 12:43
wjccui 發(fā)表于 2025-2-9 16:26
一樣的問題,樓上說的方法都試過了,返回值依然固定為0xff。
一、顯示正常,因此推測讀指令0X42是可以正常 ...

會不會芯片有問題,或者按鍵接法不對?
作者: DW2003    時間: 2025-6-12 11:47
這個挑釁協(xié)議都是軟件模擬嗎,




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1