找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

合泰觸摸芯片C51單片機程序例程

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:88023 發(fā)表于 2021-7-31 21:08 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
上節(jié)講了LED驅(qū)動芯片的介紹,這次給大家推薦一款觸摸芯片,我要介紹的是來自合泰的BS814A-2這款觸摸芯片,他與上節(jié)將的通訊時一樣的,它也是IIC通訊協(xié)議進(jìn)行通訊的,具體如何使用請查閱它的DataSheep!
附上電路圖


由于STC8G1K17它內(nèi)部只有一組硬件IIC,這組已經(jīng)被LED驅(qū)動芯片使用了,所以這次就的使用模擬IIC程序來進(jìn)行通訊了,IIC的通訊協(xié)議這里不再強調(diào)了,需要了解的請轉(zhuǎn)到http://www.torrancerestoration.com/bbs/dpj-210572-1.html
以下為單片機源程序
  1. #include "main.h"

  2. #define TOU_SDA  P34
  3. #define TOU_CLK  P35

  4. extern uint8_t Read_Touch(void);

  5. KEY_t KEY =
  6. {
  7.         Read_Touch,
  8. };

  9. //檢測是否被觸摸,被觸摸及讀取觸摸數(shù)據(jù)
  10. static uint8_t Read_TouchData(void)
  11. {
  12.         uint8_t i;
  13.         uint8_t Touch_dat=0x00;
  14.         
  15.         TOU_SDA = 1;
  16.         TOU_CLK = 1;        
  17.         if(TOU_SDA==0)
  18.         {
  19.                 TOU_CLK = 0;
  20.                 for(i=0;i<8;i++)
  21.                 {
  22.                         Delay.delayus(80);  //稍作延時  45us
  23.                         TOU_CLK = 1;
  24.                         Touch_dat >>= 1;
  25.                         Delay.delayus(40);  //22.5us后讀取數(shù)據(jù),在數(shù)據(jù)的中間讀取數(shù)據(jù)
  26.                         if(TOU_SDA)         //讀取數(shù)據(jù)
  27.                                 Touch_dat |= 0x80;
  28.                         Delay.delayus(40);  //稍作延時  22.5us
  29.                         TOU_CLK = 0;                        
  30.                 }
  31.                 TOU_SDA = 1;  //釋放總線
  32.                 TOU_CLK = 1;  //釋放總線
  33.         }
  34.         return Touch_dat;
  35. }

  36. //將都到的觸摸數(shù)據(jù)進(jìn)行解析
  37. static uint8_t Read_Touch(void)
  38. {
  39.         uint8_t Touch_DAT;
  40.         
  41.         Touch_DAT = Read_TouchData();
  42.         switch(Touch_DAT)
  43.         {
  44.                 case 0x8F:return 0;break;  //沒有按鍵按下,返回0
  45.                 case 0x9E:return 1;break;  //KEY1按鍵按下,返回1
  46.                 case 0x9D:return 2;break;  //KEY2按鍵按下,返回2
  47.                 case 0x9B:return 3;break;  //KEY3按鍵按下,返回3
  48.                 case 0x97:return 4;break;  //KEY4按鍵按下,返回4
  49.                 default:return 0;break;
  50.         }
  51. }
復(fù)制代碼

上圖2個文件下載: 觸摸驅(qū)動程序.zip (1.1 KB, 下載次數(shù): 37)

評分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:854029 發(fā)表于 2021-8-1 15:34 | 只看該作者
我用過,后來不用合泰了,如果你的按鍵不是和單片機在同一張PCB板上的最好不要用IIC或者其它串行傳輸數(shù)據(jù)的觸摸芯片,當(dāng)時我的按鍵板通過一條50cm的線連接主板,效果令人抓狂。
回復(fù)

使用道具 舉報

板凳
ID:686513 發(fā)表于 2021-8-2 12:01 | 只看該作者
學(xué)習(xí)一下學(xué)習(xí)一下學(xué)習(xí)一下
回復(fù)

使用道具 舉報

地板
ID:766282 發(fā)表于 2021-8-2 13:24 | 只看該作者
來個完整的方案
回復(fù)

使用道具 舉報

5#
ID:468878 發(fā)表于 2021-8-2 14:12 | 只看該作者
acolorwolf 發(fā)表于 2021-8-1 15:34
我用過,后來不用合泰了,如果你的按鍵不是和單片機在同一張PCB板上的最好不要用IIC或者其它串行傳輸數(shù)據(jù)的 ...

說說你的故事
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表