本系列為大家更新一些本人最近研究的單片機相關(guān)內(nèi)容。
第一期內(nèi)容:
1,4X4觸摸鍵盤測試成功,后續(xù)會進行開源分享
2,自己寫個串口打印函數(shù)printf,打開可變參數(shù)函數(shù)的大門。
3,STC-ISP軟件串口助手的問題。
4,用3個IO口檢測5向按鍵電路。
1,4X4觸摸鍵盤測試成功。
之前我設(shè)計了4X4觸摸鍵盤模塊,電路圖如下,經(jīng)過實際測試,效果良好,可以作為一個串口鍵盤模塊。模塊使用STC8G1K17單片機作為主控芯片,使用縱橫交錯各4片長條銅作為觸摸點,一共8個觸摸點,通過電路實現(xiàn),使用ADC檢測觸摸情況。16個觸摸點還有LED作為指示燈,可以觸摸一下,改變一次狀態(tài)。
2,自己寫個串口打印函數(shù)printf,用起來更順手。
這里說的printf函數(shù)呢,就是單片機串口打印函數(shù),實際上KEIL-C51可以包含stdio.h后,直接使用的,但是使用起來和純C語言中的printf有些差異,同時底層代碼也看不到。所以我就自己寫了一個,printf函數(shù)和一般的函數(shù)不同,是一個可變參數(shù)函數(shù),但是簡單了解后,還是可以寫出來的。這個只是一個起點,學(xué)會了可變參數(shù)函數(shù)的使用后,我們可以寫出更多的可變參數(shù)函數(shù),函數(shù)的使用體驗更好。
3,STC-ISP軟件串口助手的一些問題。
STC-ISP軟件作為使用STC單片機的必備軟件,集成了不少功能,除了最基礎(chǔ)的下載程序功能,還有范例程序,可以直接復(fù)制參考,有軟件延時計算器,計算出的延時理論上0誤差(除了因為晶振頻率問題達不到)。
但是串口助手功能,顯示中文漢字會出現(xiàn)亂碼現(xiàn)象,這個并不是最近才出現(xiàn)的,而是很久了,之前我也遇到了,沒有分享給大家罷了,我也問過其他STC單片機玩家,也存在這樣的情況。使用其他串口助手就沒有亂碼。
還有就是打開串口助手后,CPU占用率很高,我這里占用高達20%,其他串口助手是沒有的。
STC-ISP的串口助手有上述問題,但是還是要去用的,畢竟要下載代碼,如果程序編譯后,使用STC-ISP的串口時,可以直接切換到下載代碼,使用其他串口助手時,會彈出串口被占用,這個就很難受了,畢竟我一直都是用的自動下載,這么一搞,還要用手動操作一下了。
4,用3個IO口檢測5向按鍵
5向按鍵,就是有5個方向,上下左右中,里邊的電路也很簡單,就是5個獨立按鍵,5個一端接在一起,作為公共端,另一端引出。
最簡單的做法就是5個獨立按鍵了,這需要5個IO口,我想能不能少一些IO口呢,可以的。
第二種方案是ADC檢測按鍵了,一個ADC口就可以了,搞一個電阻分壓串,5個按鍵的單獨端接不同電壓,公共端送去ADC檢測。
第三種方案是,使用74HC165,并轉(zhuǎn)串芯片,這個我沒用過,就不展開了。
第四種方案是我常用的,就是加二極管了。介紹視頻:https://www.bilibili.com/video/BV12L4y1w7K5
如電路圖所示,SW7,8,9接三個IO口,P1,P2,P3,這就是普通的獨立按鍵檢測了,SW10接兩個二極管D3,D4,當(dāng)SW10按下后,P2,P3為低電平,SW11按下后,P1,P2是低電平,這樣就能區(qū)分出這些按鍵了。
當(dāng)然可能有人有疑問,怎么處理按鍵同時按下的情況?
這個一般是不會發(fā)生的,尤其是五向按鍵。所以不用擔(dān)心。
-
電路圖
+關(guān)注
關(guān)注
10344文章
10721瀏覽量
530584 -
單片機
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635233 -
adc
+關(guān)注
關(guān)注
98文章
6498瀏覽量
544630 -
鍵盤
+關(guān)注
關(guān)注
4文章
859瀏覽量
39669 -
按鍵電路
+關(guān)注
關(guān)注
1文章
35瀏覽量
21774
發(fā)布評論請先 登錄
相關(guān)推薦
評論