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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請教TM1628芯片讀按鍵問題,附單片機代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:472504 發表于 2023-3-29 13:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
按網上天微例程不能讀取按鍵,鍵值KEY[]一直是0xFF。請問讀鍵時單片機接DIO的口要不要設為輸入口,向1628送控制命令和傳顯示數據時再把單片機DIO驅動口設為輸出口?
/****************讀取按鍵值并存儲*******************/                                   
void read_key(void)                //讀取5字節按鍵值并存入數組KEY[],從低字節、低位開始               
{                                                                              
  unsigned char i,j;                                                            
  send_command(0x42);         //發送讀按鍵命令                                    
  DIO=1;                              //釋放DIO數據總線                                                     
  for(j=0;j<5;j++)                 //連續讀取5個字節                                                
  {                                                                              
    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;                                                                        
}  


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

使用道具 舉報

沙發
ID:996773 發表于 2023-3-29 16:10 | 只看該作者
傳送顯示數據和讀鍵是兩碼事,也就是說不顯示也可以利用讀鍵,發送完讀鍵指令

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

很多人卡在這里
回復

使用道具 舉報

板凳
ID:472504 發表于 2023-3-29 16:28 | 只看該作者
hi等你 發表于 2023-3-29 16:10
傳送顯示數據和讀鍵是兩碼事,也就是說不顯示也可以利用讀鍵,發送完讀鍵指令

后立刻要把單片機io數據口 ...

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

我發完0x42后已經把DIO設為1了,但還是讀不到按鍵。請問讀按鍵時單片機DIO腳要設為輸入口嗎?
回復

使用道具 舉報

地板
ID:624769 發表于 2023-3-29 20:44 | 只看該作者
時序錯了,你這樣永遠讀到的 0xff
應該這樣:
    for(i=0;i<8;i++)                                                              
    {
      CLK=0;
      KEY[j] >>= 1;  
      if(DIO)  KEY[j] |= 0x80;   
      CLK=1;                                                                        
    }                                       

回復

使用道具 舉報

5#
ID:1143321 發表于 2025-1-23 10:20 | 只看該作者
樓主我遇到跟您一樣的問題,按照天微例程配的時序,讀取按鍵值一直是0xff,請問您怎么解決的?
回復

使用道具 舉報

6#
ID:1143321 發表于 2025-1-23 10:21 | 只看該作者
樓主您好,我遇到您同樣的問題,按照天微例程配置的時序,按鍵讀取全是0xff,請問您如何解決的?
回復

使用道具 舉報

7#
ID:1109793 發表于 2025-1-23 13:08 | 只看該作者
除了地板層說的時序問題,還有讀之前要先STB = 0;
回復

使用道具 舉報

8#
ID:1109793 發表于 2025-1-23 17:59 | 只看該作者
xiaobendan001 發表于 2025-1-23 13:08
除了地板層說的時序問題,還有讀之前要先STB = 0;

手上只有1638,剛測試了一下,CLK = 1;的位置是可以放IF前邊的,能正常讀取。
只是CLK = 0;和CLK = 1;之間要有足夠長的延時。11.0592的主頻下,右移操作的延時是不夠用的。需要增加一點才行。
回復

使用道具 舉報

9#
ID:1078008 發表于 2025-2-9 16:26 | 只看該作者
一樣的問題,樓上說的方法都試過了,返回值依然固定為0xff。
一、顯示正常,因此推測讀指令0X42是可以正常發送的(否則顯示是否應該不正常?)
二、STC單片機,P30口,已設置為準雙向口。
三、讀取前P30已經置1。

推測因為時序或者信號問題,TM1628應該沒有正常發送鍵值,沒有拉低數據線的電平,因為讀取值固定為1,則返回0xff。目前問題未解決。
回復

使用道具 舉報

10#
ID:1078008 發表于 2025-2-10 12:05 | 只看該作者
已解決,官方代碼有問題導致時序不對。 send_command(0x42);這個函數里面,發送完0X42后把STB拉高了。應該在讀回鍵值之后再拉高。
回復

使用道具 舉報

11#
ID:1109793 發表于 2025-2-10 12:43 | 只看該作者
wjccui 發表于 2025-2-9 16:26
一樣的問題,樓上說的方法都試過了,返回值依然固定為0xff。
一、顯示正常,因此推測讀指令0X42是可以正常 ...

會不會芯片有問題,或者按鍵接法不對?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品日韩一区 | 成人在线视频免费看 | 韩三级在线观看 | 中文字幕99 | 草久久| 日韩一区二区在线看 | 91中文字幕在线 | a久久| 99re视频在线免费观看 | 一级做a毛片 | 久久久久免费精品国产 | 欧美激情啪啪 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 精品国产一区二区三区性色av | 日韩精品久久久久久 | 免费啪啪 | 亚洲不卡在线观看 | 久久精品中文字幕 | av一级| 一区二区三区视频在线观看 | 久久久网 | 国产一区日韩在线 | 天天拍天天射 | 在线观看中文字幕 | 欧美在线日韩 | 天天躁日日躁狠狠的躁天龙影院 | 日本午夜精品 | 色婷婷综合久久久中字幕精品久久 | 欧美中文| 看av网| 欧美一区二区免费 | 91大神在线看 | 亚洲女优在线播放 | 亚洲欧美精品国产一级在线 | 毛片一级片 | 欧美综合一区二区 | 久久成人一区 | 亚洲精品久久久久久一区二区 | 秋霞影院一区二区 | 国产精品免费一区二区 | 久久免费资源 |