pos機(jī)按鍵設(shè)置,「正點(diǎn)原子FPGA連載」第十章 觸摸按鍵控制LED燈實(shí)驗(yàn)

 新聞資訊  |   2023-05-17 11:19  |  投稿人:pos機(jī)之家

網(wǎng)上有很多關(guān)于pos機(jī)按鍵設(shè)置,「正點(diǎn)原子FPGA連載」第十章 觸摸按鍵控制LED燈實(shí)驗(yàn)的知識(shí),也有很多人為大家解答關(guān)于pos機(jī)按鍵設(shè)置的問(wèn)題,今天pos機(jī)之家(m.afbey.com)為大家整理了關(guān)于這方面的知識(shí),讓我們一起來(lái)看下吧!

本文目錄一覽:

1、pos機(jī)按鍵設(shè)置

pos機(jī)按鍵設(shè)置

1)實(shí)驗(yàn)平臺(tái):正點(diǎn)原子開(kāi)拓者FPGA開(kāi)發(fā)板

2)摘自《正點(diǎn)原子開(kāi)拓者FPGA開(kāi)發(fā)指南》

關(guān)注官方微信號(hào)公眾號(hào),獲取更多資料:正點(diǎn)原子

第十章 觸摸按鍵控制led燈實(shí)驗(yàn)

隨著電子技術(shù)的不斷發(fā)展,按鍵的應(yīng)用場(chǎng)景越來(lái)越廣泛。觸摸按鍵在穩(wěn)定性、使用壽命、抗干擾能力等方面都優(yōu)于傳統(tǒng)的機(jī)械按鍵,被廣泛應(yīng)用于遙控器,便攜電子設(shè)備,樓道電燈開(kāi)關(guān),各類(lèi)家電控制面板等方面。本章將介紹觸摸按鍵的控制方法并使用開(kāi)發(fā)板上的觸摸按鍵控制led的亮滅。

本章分為以下幾個(gè)章節(jié):

1

1.1 觸摸按鍵簡(jiǎn)介

1.2 實(shí)驗(yàn)任務(wù)

1.3 硬件設(shè)計(jì)

1.4 程序設(shè)計(jì)

1.5 下載驗(yàn)證

1.1 觸摸按鍵簡(jiǎn)介

觸摸按鍵主要可分為四大類(lèi):電阻式、電容式、紅外感應(yīng)式以及表面聲波式。根據(jù)其屬性的不同,每種觸摸按鍵都有其合適的使用領(lǐng)域。

電阻式觸摸按鍵由多塊導(dǎo)電薄膜按照按鍵的位置印制而成,但由于耐用性較差且維護(hù)復(fù)雜,目前使用率較低;紅外感應(yīng)式觸摸按鍵通過(guò)紅外掃描來(lái)識(shí)別按鍵位置,一般在較惡劣的環(huán)境下使用;表面聲波式觸摸按鍵利用聲波掃描來(lái)識(shí)別是否按下,使用壽命長(zhǎng),較適合公共場(chǎng)所的POS機(jī),無(wú)人售貨機(jī)等處使用。

電容式觸摸按鍵:這種按鍵的誕生主要是為了克服電阻式按鍵耐用性差的不足所提出的。電容式觸摸按鍵采用電容量為評(píng)判標(biāo)準(zhǔn),其感應(yīng)區(qū)域可穿透絕緣外殼(玻璃、塑料等)20mm以上。其靈敏度和可靠性不會(huì)因環(huán)境條件的改變或長(zhǎng)期使用而發(fā)生變化,具有防水、強(qiáng)抗干擾能力強(qiáng)、適應(yīng)溫度范圍廣以及使用壽命長(zhǎng)等優(yōu)點(diǎn),是現(xiàn)代使用最廣泛,發(fā)展最迅速的一種觸摸按鍵。

接下來(lái),我們具體的了解一下電容觸摸按鍵的構(gòu)造和工作原理。

電容觸摸按鍵主要由按鍵IC部分和電容部分構(gòu)成。按鍵IC部分主要由元器件供應(yīng)商提供,用于將電容的變化轉(zhuǎn)換為電信號(hào)。電容部分指的是由電容極板,地,隔離區(qū)等組成觸摸按鍵的電容環(huán)境。

任何兩個(gè)導(dǎo)電的物體之間都存在著感應(yīng)電容,在周?chē)h(huán)境不變的情況下,該感應(yīng)電容值是固定不變的。如圖 10.1.1所示,手指接觸到觸摸按鍵時(shí),按鍵和手指之間產(chǎn)生寄生電容,使按鍵的總?cè)葜翟黾印?/p>

圖 10.1.1 觸摸按鍵寄生電容示意圖

觸摸按鍵按下前后,電容的變化如圖 10.1.2所示。電容式觸摸按鍵IC在檢測(cè)到按鍵的感應(yīng)電容值改變,并超過(guò)一定的閾值后,將輸出有效信號(hào)表示按鍵被按下。

圖 10.1.2 觸摸過(guò)程電容變化示意圖

1.2 實(shí)驗(yàn)任務(wù)

使用觸摸按鍵控制LED燈亮滅,開(kāi)發(fā)板上電后LED為點(diǎn)亮狀態(tài),手指觸摸后LED熄滅,再次觸摸,LED點(diǎn)亮。

1.3 硬件設(shè)計(jì)

開(kāi)拓者開(kāi)發(fā)板上的觸摸按鍵部分的原理圖如圖 10.3.1所示、多功能端口原理圖如圖 10.3.2所示。

圖 10.3.1 觸摸按鍵電路原理圖

圖 10.3.2 多功能端口原理圖

開(kāi)發(fā)板上所使用的觸摸IC型號(hào)為AR101,它可以通過(guò)OP1和OP2兩個(gè)引腳選擇不同的工作模式:OP1拉低時(shí),OUT引腳輸出信號(hào)高電平有效;OP1拉高時(shí),OUT輸出信號(hào)低電平有效。

當(dāng)OP2拉低時(shí),觸摸IC工作在同步模式(類(lèi)似于非自鎖的輕觸按鍵),即觸摸時(shí)輸出有效電平,松開(kāi)后無(wú)有效電平輸出;OP2拉高時(shí)觸摸IC工作在保持模式(類(lèi)似于自鎖按鍵),即檢測(cè)到觸摸操作后輸出有效電平,松開(kāi)后,輸出電平保持不變。當(dāng)再次檢測(cè)到觸摸操作時(shí),輸出電平變化并繼續(xù)保持。

如圖 10.3.1所示,觸摸IC的引腳OP1和OP2均拉低,因此當(dāng)手指按在觸摸按鍵上時(shí),TOUT管腳輸高電平,松開(kāi)后輸出低電平。

這里需要注意的是,由圖 10.3.1和圖 10.3.2所可知,TOUT引腳并沒(méi)有直接連接到FPGA引腳,而是連接到P4多功能端口上,而P4上的TPAD是和FPGA的引腳相連接的,因此,我們?cè)谧鲇|摸按鍵的實(shí)驗(yàn)時(shí),需要使用跳帽或者杜邦線將P4上的TPAD和TOUT短接在一起。

本實(shí)驗(yàn)中,系統(tǒng)時(shí)鐘、復(fù)位按鍵、觸摸按鍵和LED燈的管腳分配如下表所示。

表 10.3.1 觸摸按鍵控制LED管腳分配圖

1.4 程序設(shè)計(jì)

本次設(shè)計(jì)的模塊端口及信號(hào)連接如圖 10.4.1所示。通過(guò)對(duì)按鍵信號(hào)上升沿的識(shí)別來(lái)進(jìn)行控制信號(hào)的切換,起到控制LED亮滅的效果。

圖 10.4.1 模塊端口及信號(hào)連接圖

觸摸按鍵控制led代碼如下:

1 moduletouch_led(

2 //input

3 input sys_clk, //時(shí)鐘信號(hào)50Mhz

4 input sys_rst_n, //復(fù)位信號(hào)

5 input touch_key, //按鍵信號(hào)

6

7 //output

8 output reg led //LED燈

9 );

10

11 //reg define

12 reg touch_key_d0;

13 reg touch_key_d1;

14

15 //wire define

16 wire touch_en;

17

18 //*****************************************************

19 //** main code

20 //*****************************************************

21

22 //根據(jù)按鍵信號(hào)的上升沿判斷按下了按鍵

23 assign touch_en =(~touch_key_d1) & touch_key_d0;

24

25 //對(duì)觸摸按鍵端口接收的數(shù)據(jù)延遲兩個(gè)周期

26 always@ (posedge sys_clk ornegedge sys_rst_n) begin

27 if(sys_rst_n ==1\'b0)begin

28 touch_key_d0 <= 1\'b0;

29 touch_key_d1 <= 1\'b0;

30 end

31 elsebegin

32 touch_key_d0 <= touch_key;

33 touch_key_d1 <= touch_key_d0;

34 end

35 end

36

37 //根據(jù)上升沿使能信號(hào)切換led狀態(tài)

38 always@ (posedge sys_clk ornegedge sys_rst_n) begin

39 if(sys_rst_n ==1\'b0)

40 led <=1\'b1;

41 elseif (touch_en)

42 led <=~led;

43 end

44

45 endmodule

第23行至35代碼為一個(gè)經(jīng)典的邊沿檢測(cè)電路,通過(guò)檢測(cè)touch_key的上升沿來(lái)捕獲按鍵按下的信號(hào),一旦檢測(cè)到按鍵按下,輸出一個(gè)時(shí)鐘周期的脈沖touch_en。每當(dāng)檢測(cè)到touch_en為高電平,led取反一次。

為了驗(yàn)證我們的程序,我們?cè)趍odelsim內(nèi)對(duì)代碼進(jìn)行仿真。

Test bench模塊代碼如下:

1 `timescale 1ns/1ns

2 module tb_touch_led();

3

4 //parameter define

5 parameter T =20 ; //時(shí)鐘周期

6

7 //reg define

8 regsys_clk;

9 regsys_rst_n;

10 regtouch_key;

11

12 //wire define

13 wire led;

14

15 //*****************************************************

16 //** main code

17 //*****************************************************

18

19 //給輸入信號(hào)初始值

20 initial begin

21 sys_clk <=1\'b0; //時(shí)鐘信號(hào)初始狀態(tài)為0

22 sys_rst_n <=1\'b0; //復(fù)位信號(hào)初始狀態(tài)為0

23 touch_key <=1\'b0; //觸摸按鍵信號(hào)初始狀態(tài)為0

24 #20 sys_rst_n <=1\'b1; //10ns時(shí),將復(fù)位信號(hào)拉高

25 #20 touch_key <=1\'b1; //20ns后觸摸按鍵信號(hào)拉高

26 #30 touch_key <=1\'b0; //30ns后觸摸按鍵信號(hào)拉低

27 #110 touch_key <=1\'b1; //110ns后觸摸按鍵信號(hào)拉高

28 #30 touch_key <=1\'b0; //30ns后觸摸按鍵信號(hào)拉低

29 end

30

31 //50Mhz的時(shí)鐘,周期則為1/50Mhz=20ns,所以每10ns,電平取反一次

32 always # (T/2) sys_clk <= ~sys_clk;

33

34 touch_led u0(

35 .sys_clk(sys_clk),

36 .sys_rst_n(sys_rst_n),

37 .touch_key(touch_key),

38 .led(led)

39 );

40 endmodule

仿真波形如圖 10.4.2所示。

圖 10.4.2 仿真波形圖

測(cè)試代碼中,第20至29行為信號(hào)的激勵(lì),起始時(shí)sys_clk、sys_rst_n、touch_key為低電平,20ns時(shí)將復(fù)位信號(hào)拉高,10ns后將touch_key拉高并保持30ns,模擬第一次按鍵觸摸操作,110ns后再將touch_key拉高并保持30ns,模擬第二次按鍵觸摸操作。從圖 10.4.2仿真波形圖可以看出,在第一次按下按鍵后led由高電平變?yōu)榈碗娖?,再次按下后,led電平再次發(fā)生改變。

1.5 下載驗(yàn)證

首先我們打開(kāi)touch_led工程,在工程所在的路徑下打開(kāi)touch_led/par文件夾,在里面找到“touch_led.qpf”并雙擊打開(kāi)。注意工程所在的路徑名只能由字母、數(shù)字以及下劃線組成,不能出現(xiàn)中文、空格以及特殊字符等。touch_led工程打開(kāi)后如圖 10.5.1所示。

圖 10.5.1 打開(kāi)觸摸按鍵控制led工程

將USB-Blaster下載器一端連接電腦,另一端與開(kāi)發(fā)板上的JTAG下載口相連,并確保跳帽已經(jīng)連接,如圖 10.5.2所示。然后連接電源線并打開(kāi)電源開(kāi)關(guān)。

圖 10.5.2 開(kāi)拓者開(kāi)發(fā)板實(shí)物圖

硬件連接完成后通過(guò)點(diǎn)擊工具欄中的“Programmer”圖標(biāo)(圖 10.5.1中紅框位置)打開(kāi)下載界面。

開(kāi)發(fā)板電源打開(kāi)后,在程序下載界面點(diǎn)擊“Hardware Setup”,在彈出的對(duì)話框中選擇當(dāng)前的硬件連接為“USB-Blaster”。然后點(diǎn)擊“Start”將工程編譯完成后得到的sof文件下載到開(kāi)發(fā)板中。

圖 10.5.3 下載界面

下載界面如圖 10.5.3所示,查看圖中紅色矩形框中是否已經(jīng)加載下載文件(sof文件)。如果沒(méi)有,則需要通過(guò)點(diǎn)擊“Add File”按鈕添加流水燈工程中touch_led/par/output_files目錄下的“touch_led.sof”文件。

下載完成后,就可以在板卡上測(cè)試觸摸按鍵控制led的亮滅了,如圖 10.5.2所示。

以上就是關(guān)于pos機(jī)按鍵設(shè)置,「正點(diǎn)原子FPGA連載」第十章 觸摸按鍵控制LED燈實(shí)驗(yàn)的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于pos機(jī)按鍵設(shè)置的知識(shí),希望能夠幫助到大家!

轉(zhuǎn)發(fā)請(qǐng)帶上網(wǎng)址:http://m.afbey.com/news/45952.html

你可能會(huì)喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。