|
|
最近閑來無事。瀏覽了一下stc8單片機的選型表,發(fā)現(xiàn)這個系列的芯片有不少特殊功能,其中就有我想玩的觸摸按鍵功能。于是就想買來芯片體驗一下。畢竟對新人來講,僅靠看技術(shù)手冊和現(xiàn)成的例程,心里還是感覺沒底。
stc官方提供了這個功能的強大的應(yīng)用例程,它是觸摸按鍵和數(shù)碼管的綜合應(yīng)用,我還沒學(xué)到數(shù)碼管,所以實驗時就把程序修改了一上。用TFT屏做為輸出,顯示按鍵的結(jié)果,感覺程序更簡單,也更容易移植,TFT屏還可以顯示程序運行過程中的任意想顯示的變量,方便對程序的理解和調(diào)試。
程序仍然采用模塊化編程,顯示屏驅(qū)動采用舊的程序模塊直接掛上來使用,主要做了觸摸功能的程序模塊,內(nèi)含觸摸功能初始化,觸摸鍵檢測,觸摸中斷服務(wù)及少量輔助函數(shù)。程序的構(gòu)架盡量采用了stc官方例程的內(nèi)容,尤其是核心算法方面。完全復(fù)制了stc官方例程的內(nèi)容。修改的內(nèi)容主要是為了與數(shù)碼管功能脫鉤。(同時適應(yīng)tssop20這個引腳校少的芯片。)方便掛接其它應(yīng)用程序。程序的功能就是在接觸一個按鍵后。顯示屏上顯示出相應(yīng)按鍵對就的端口數(shù)值。下面是主程序,完整程序還是放在附件里了。
#include "mcu_initial.h"
#include "tft089_driver.h"
#include "touch_drv.h"
#include "stdio.h"
#include "intrins.h"
void main(void)
{
mcu_initial();
lcd_initial();//1.8吋屏初始化
//TFT089_init() ;
TFT_clear();
digit6_display(0,0,222);//隨便顯示一個數(shù)字表示屏初始化成功
touch_initial();//觸摸功能初始化
while (1)
{
check_touch();//檢查觸摸鍵
}
}
附圖能看到實物結(jié)構(gòu),基本就是最小系統(tǒng),觸摸參考電容和限流電阻直接使用了stc官方技術(shù)手冊推薦的數(shù)值。芯片焊接時采用了電子顯微鏡,焊接位置偏差大幅減小,觸摸鍵懶得做了。直接用了一排針代替,缺點是相鄰針靠的有點近。會有干擾,實用時不能這樣玩。
|
-
觸摸1.jpg
(3.74 MB, 下載次數(shù): 112)
下載附件
2023-6-23 09:16 上傳
-
觸摸2.jpg
(3.51 MB, 下載次數(shù): 111)
下載附件
2023-6-23 09:17 上傳
-
-
touch_test.zip
2023-6-23 09:16 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
246.43 KB, 下載次數(shù): 78, 下載積分: 黑幣 -5
Keil代碼下載
評分
-
查看全部評分
|