基于CY8C21534的通用操作面板解析方案
我們規(guī)定通訊協(xié)議如下:
寫顯示數(shù)據(jù)
先寫入地址(0xA2)。再依次寫入顯示數(shù)據(jù)1~顯示數(shù)據(jù)8,蜂鳴器狀態(tài)字節(jié)按照IIC協(xié)議模式,依次寫入上述10個(gè)字節(jié)即可。
顯示數(shù)據(jù)1~8分別對(duì)應(yīng)COM1~8行,蜂鳴器狀態(tài)字節(jié)表示蜂鳴器是否鳴響,當(dāng)最低位為1時(shí),蜂鳴器鳴響,為0時(shí)停止鳴響,其余的為保留備用。
讀按鍵狀態(tài)
先寫入地址(0xA3),再依次讀出2個(gè)字節(jié)即可。
這部分程序的流程比較簡(jiǎn)單,屬于CY8C21534內(nèi)部功能,基本思路為:
I2C 收到數(shù)據(jù)后會(huì)產(chǎn)生中斷,CY8C21534響應(yīng)中斷后,判斷是寫入顯示數(shù)據(jù)還是讀按鍵狀態(tài),如果是寫數(shù)據(jù),則讀出I2C數(shù)據(jù)接收寄存器值,寫入對(duì)應(yīng)顯示緩沖區(qū)Dis_buf[i]即可。全部接收完8個(gè)顯示數(shù)據(jù),則把顯示緩沖區(qū)Dis_buf[i]的值轉(zhuǎn)入Dis_buf_out[i],供顯示掃描程序用。
如果是讀按鍵狀態(tài),則把按鍵狀態(tài)Key_buf[0]寫入發(fā)送寄存器,I2C模塊自動(dòng)發(fā)出數(shù)據(jù)發(fā)送完一個(gè),再寫入Key_buf[1]繼續(xù)發(fā)送。
應(yīng)注意的幾個(gè)關(guān)鍵問(wèn)題
·按鍵掃描中要有去抖動(dòng)的過(guò)程,這個(gè)去抖動(dòng)一般以20~50毫秒為宜,另外去抖動(dòng)過(guò)程不僅在按鍵按下時(shí)要處理,按鍵抬起時(shí)最好也處理一下,這樣可以保證按鍵操作的可靠性。
·感應(yīng)按鍵處理時(shí),CY8C21534提供了一個(gè)軟件模塊包,用來(lái)處理感應(yīng)按鍵的功能,同時(shí)有利用P0(7)實(shí)現(xiàn)抗干擾的處理的功能,這樣可以屏蔽水流沖擊和手機(jī)的干擾。所以設(shè)計(jì)PCB時(shí),P0(7)要與通用操作面板的覆銅地通過(guò)電阻R143連接在一起。
·顯示掃描幀頻率要超過(guò)60HZ,這樣可以保證顯示無(wú)抖動(dòng),由于顯示亮度與掃描頻率和占空比有直接關(guān)系,占空比不變時(shí),幀頻率越高,亮度會(huì)越低,所以建議使用60HZ的幀頻率,沒(méi)有必要提高幀頻率。
結(jié)語(yǔ)
采用CY8C21534設(shè)計(jì)通用操作面板是非常方便也是非常簡(jiǎn)單的,而且操作面板還具有高可靠性的感應(yīng)按鍵功能,這對(duì)提升產(chǎn)品性能和價(jià)值是非常有效的。
CY8C21534外圍電路非常簡(jiǎn)單,內(nèi)部的許多功能都有標(biāo)準(zhǔn)的軟件模塊可以調(diào)用,所以軟件設(shè)計(jì)也非常簡(jiǎn)單,而且所附的仿真調(diào)試軟件支持C編譯,調(diào)試非常容易和方便,
本設(shè)計(jì)的基本思路應(yīng)用于生產(chǎn)實(shí)踐中已經(jīng)帶來(lái)了非常好的效益。
蜂鳴器相關(guān)文章:蜂鳴器原理
評(píng)論