|
上節(jié)講了LED驅(qū)動(dòng)芯片的介紹,這次給大家推薦一款觸摸芯片,我要介紹的是來(lái)自合泰的BS814A-2這款觸摸芯片,他與上節(jié)將的通訊時(shí)一樣的,它也是IIC通訊協(xié)議進(jìn)行通訊的,具體如何使用請(qǐng)查閱它的DataSheep!
附上電路圖
屏幕截圖 2021-07-31 205351.png (57.88 KB, 下載次數(shù): 54)
下載附件
2021-7-31 20:59 上傳
由于STC8G1K17它內(nèi)部只有一組硬件IIC,這組已經(jīng)被LED驅(qū)動(dòng)芯片使用了,所以這次就的使用模擬IIC程序來(lái)進(jìn)行通訊了,IIC的通訊協(xié)議這里不再?gòu)?qiáng)調(diào)了,需要了解的請(qǐng)轉(zhuǎn)到http://www.zg4o1577.cn/bbs/dpj-210572-1.html
以下為單片機(jī)源程序
- #include "main.h"
- #define TOU_SDA P34
- #define TOU_CLK P35
- extern uint8_t Read_Touch(void);
- KEY_t KEY =
- {
- Read_Touch,
- };
- //檢測(cè)是否被觸摸,被觸摸及讀取觸摸數(shù)據(jù)
- static uint8_t Read_TouchData(void)
- {
- uint8_t i;
- uint8_t Touch_dat=0x00;
-
- TOU_SDA = 1;
- TOU_CLK = 1;
- if(TOU_SDA==0)
- {
- TOU_CLK = 0;
- for(i=0;i<8;i++)
- {
- Delay.delayus(80); //稍作延時(shí) 45us
- TOU_CLK = 1;
- Touch_dat >>= 1;
- Delay.delayus(40); //22.5us后讀取數(shù)據(jù),在數(shù)據(jù)的中間讀取數(shù)據(jù)
- if(TOU_SDA) //讀取數(shù)據(jù)
- Touch_dat |= 0x80;
- Delay.delayus(40); //稍作延時(shí) 22.5us
- TOU_CLK = 0;
- }
- TOU_SDA = 1; //釋放總線(xiàn)
- TOU_CLK = 1; //釋放總線(xiàn)
- }
- return Touch_dat;
- }
- //將都到的觸摸數(shù)據(jù)進(jìn)行解析
- static uint8_t Read_Touch(void)
- {
- uint8_t Touch_DAT;
-
- Touch_DAT = Read_TouchData();
- switch(Touch_DAT)
- {
- case 0x8F:return 0;break; //沒(méi)有按鍵按下,返回0
- case 0x9E:return 1;break; //KEY1按鍵按下,返回1
- case 0x9D:return 2;break; //KEY2按鍵按下,返回2
- case 0x9B:return 3;break; //KEY3按鍵按下,返回3
- case 0x97:return 4;break; //KEY4按鍵按下,返回4
- default:return 0;break;
- }
- }
復(fù)制代碼
51hei.png (2.9 KB, 下載次數(shù): 65)
下載附件
2021-7-31 21:45 上傳
上圖2個(gè)文件下載:
觸摸驅(qū)動(dòng)程序.zip
(1.1 KB, 下載次數(shù): 37)
2021-7-31 21:07 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|