<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 兆赫同步開關(guān)電池充電器的應(yīng)用

          兆赫同步開關(guān)電池充電器的應(yīng)用

          ——
          作者:電子科技大學(xué) 通信與信息工程學(xué)院 羅海 四川農(nóng)業(yè)大學(xué) 信息與工程技術(shù)學(xué)院 王莉 時(shí)間:2007-01-26 來(lái)源:《世界電子元器件》 收藏

          pt6311原理與應(yīng)用分析
          硬件結(jié)構(gòu)

          本文引用地址:http://www.ex-cimer.com/article/21159.htm

          作為vfd顯示控制及驅(qū)動(dòng)器芯片,pt6311的核心功能仍然是實(shí)現(xiàn)vfd顯示控制與驅(qū)動(dòng)。芯片的硬件結(jié)構(gòu)主要由掃描信號(hào)發(fā)生器、串行通信接口、控制模塊、顯示存儲(chǔ)器、按鍵掃描值寄存器、通用輸入寄存器、led驅(qū)動(dòng)器、vfd段/位驅(qū)動(dòng)器等構(gòu)成。pt6311內(nèi)部電路原理框圖如圖1所示。
          由圖1及電路原理可知,sw輸入端也可以作為四個(gè)單鍵的輸入,即在按鍵數(shù)目不多于4個(gè)或者可以利用組合按鍵的情況下,這部分資源也可作為按鍵接口來(lái)利用。因此,pt6311實(shí)際提供兩個(gè)鍵盤掃描的接口,一個(gè)是通常的矩陣式鍵盤接口,另一個(gè)就是開關(guān)信號(hào)輸入端sw1~sw4。另外,pt6311還集成了外掛四個(gè)led驅(qū)動(dòng)功能。

          鍵盤接口

          普通的鍵盤接法主要有兩種:獨(dú)立式和矩陣式。
          (1)由通用開關(guān)量輸入sw1~sw4構(gòu)成四按鍵的獨(dú)立式鍵盤。接法如圖2(a)所示

          (2)由k1~k4與ks1~ks12所構(gòu)成矩陣式鍵盤。鍵盤接法如圖2(b)所示。
          由圖可見,pt6311的鍵盤接口所支持的最大鍵盤矩陣為4 12,即最大按鍵數(shù)目為48個(gè)。

          pt6311的顯存空間配置情況如圖3所示。實(shí)際應(yīng)用中,顯存空間往往只是使用一部分,因?yàn)樗褂玫娘@存空間大小與設(shè)置的顯示模式有關(guān),圖中的每一行對(duì)應(yīng)一字,每一列對(duì)應(yīng)八段即一個(gè)字節(jié),相當(dāng)于一段對(duì)應(yīng)于一個(gè)字節(jié)的一位。另外,pt6311還有鍵掃描值寄存器、開關(guān)量輸入寄存器和led輸出寄存器,這些寄存器的數(shù)據(jù)格式如圖4所示。



          片內(nèi)的控制字

          pt6311具有顯示模式設(shè)置、數(shù)據(jù)設(shè)置、地址設(shè)置(針對(duì)顯存)和顯示控制等四種控制字。其中最高兩位為指令特征位,由指令解碼器來(lái)識(shí)別。

          外部通信接口及信號(hào)時(shí)序

          根據(jù)該芯片的電路結(jié)構(gòu),pt6311提供四線制串行接口與外部控制器通信,接口信號(hào)線分別為時(shí)鐘clk、輸入數(shù)據(jù)din、輸出數(shù)據(jù)dout和選通stb,通信的控制時(shí)序見后。接口電路連接如圖5(a)所示。


          根據(jù)pt6311與外部微控制器的接口協(xié)議,外部控制操作分為寫入控制字、寫入數(shù)據(jù)(包括顯存及l(fā)ed口)、讀取數(shù)據(jù)(包括鍵值及通用輸入sw口)。寫入控制字/數(shù)據(jù)的時(shí)序如圖5(b)所示,以地址自動(dòng)增一方式連續(xù)寫入顯存數(shù)據(jù)的時(shí)序如圖5(c)所示,讀取數(shù)據(jù)的時(shí)序如圖5(d)所示。
          當(dāng)然,鍵盤可根據(jù)需要選擇掛接部分按鍵,但是,由前述內(nèi)部鍵掃描存儲(chǔ)器的對(duì)應(yīng)關(guān)系,最好選擇可以連續(xù)讀取鍵值的區(qū)間,便于程序處理和減少讀取時(shí)間和處理時(shí)間。


          鍵掃描與vfd顯示實(shí)用系統(tǒng)

          結(jié)合鍵掃描與vfd顯示控制等功能于一體的電子系統(tǒng)較常見,比如家庭影視音響系統(tǒng)、電梯等電子電器設(shè)備。一般而言,這些應(yīng)用系統(tǒng)所采用的體系結(jié)構(gòu)如圖6所示。

          ac-3解碼板的控制和面板顯示系統(tǒng)的設(shè)計(jì)采用多鍵鍵盤和vfd顯示器來(lái)作為人機(jī)接口,系統(tǒng)的原理框圖與圖6相似。


          vfd顯示與鍵掃描的編程實(shí)現(xiàn)

          要使得pt6311應(yīng)用系統(tǒng)能夠正常、可靠地工作,在硬件體系基礎(chǔ)上,pt6311還得通過(guò)編程來(lái)實(shí)現(xiàn)具體的功能。外部控制器控制pt6311實(shí)現(xiàn)預(yù)定的操作,實(shí)際上就是一種串口編程,這在編程實(shí)現(xiàn)時(shí)尤其要注意操作時(shí)序。當(dāng)然,vfd顯示與鍵掃描的具體編程還跟外部微控制器有關(guān),這里給出at89c52單片機(jī)的匯編編程實(shí)現(xiàn)的部分程序,并在程序中作了詳細(xì)的注釋以便讀者更好地理解。

          pt6311上電后,外接矩陣式鍵盤的鍵掃描和vfd顯示均處于關(guān)閉狀態(tài),因此需要進(jìn)行初始化設(shè)置,且至少要開啟一次顯示,則鍵掃描功能才能自動(dòng)啟動(dòng),此后若關(guān)閉顯示鍵掃描仍會(huì)繼續(xù)。


          鍵掃描讀取的編程實(shí)現(xiàn)

          按鍵無(wú)論以獨(dú)立式接入sw端口,還是以矩陣式接入鍵掃描專用端口,基于pt6311的鍵掃描編程都是類似的,故此處不再單獨(dú)敘述。這里主要探討pt6311外接矩陣式鍵盤的鍵掃描編程方法。

          假設(shè)pt6311已啟動(dòng),單片機(jī)從pt6311讀取按鍵位置的編程(讀取sw口只需修改指令,操作類似):

          (1)、單鍵按鍵的編程實(shí)現(xiàn)

          單鍵按鍵的鍵掃描無(wú)需把全部鍵掃描的結(jié)果讀出,只要讀到有鍵按下即可,因?yàn)椴淮嬖诮M合按鍵的情況則不可能有多鍵同時(shí)按下。于是,可以對(duì)鍵盤的按鍵進(jìn)行編號(hào),并按照pt6311鍵掃描寄存器的對(duì)應(yīng)順序及讀取時(shí)序進(jìn)行讀取,只需檢測(cè)是否有效按鍵并保存編號(hào)即可,而無(wú)需將全部鍵掃描值數(shù)據(jù)保存。具體程序段如下:

          rd_keynumber:
          mov b,#rd_key_i;將鍵掃描值讀取指令放入指令緩存,如讀sw口,則只需修改指令
          setb rd_d
          clraddr
          clr incl_d;設(shè)置標(biāo)志以調(diào)用單指令發(fā)送子程序
          acall send_1bi_nd;調(diào)用單字節(jié)指令發(fā)送子程序,參見后面vfd顯示控制的編程
          mov r6,#00h;r6保存按下鍵的單鍵編號(hào)
          rdkey_on:
          cpl clk;指令發(fā)送完畢clk=h,脈沖下降沿處pt6311輸出數(shù)據(jù)dout
          inc r6;鍵值取自然數(shù)
          cpl clk;脈沖上升沿后單片機(jī)讀取數(shù)據(jù)可靠
          jnb dout,no_key;讀取dout狀態(tài),判斷有無(wú)鍵按下
          setb key_pressed;有鍵按下,則設(shè)置有效按鍵標(biāo)志
          ajmp exit
          no_key:
          cjne6,#keynum_max,rdkey_on;是否掃描完畢所有按鍵,是則表示無(wú)鍵按下
          clr k_pressed
          exit:
          setb stb
          ret

          退出該程序段后即可根據(jù)有無(wú)有效按鍵及鍵編號(hào)進(jìn)行必要的按鍵響應(yīng)處理。實(shí)際上,這個(gè)程序段就是實(shí)現(xiàn)一個(gè)逐位檢測(cè)程序,判斷是否有按鍵,有則記下按鍵編號(hào),無(wú)則退出。

          (2)、組合按鍵的編程實(shí)現(xiàn)

          組合按鍵就是通常所稱的“組合鍵”,即兩個(gè)或者兩個(gè)以上按鍵同時(shí)按下的按鍵方法。此時(shí),按鍵的作用并不等于各個(gè)單鍵按下所代表的意思,而是一個(gè)由程序預(yù)先規(guī)定的新指令,常用于按鍵較少而需指令較多的場(chǎng)合。這種鍵值的讀取一般要將全部鍵掃描值寄存器內(nèi)容讀出暫存并進(jìn)行軟件判決處理(查詢是否有預(yù)定義的組合鍵),所以需要一定的暫存空間支持。 rd_multi_key:
          ……;這部分與單鍵掃描程序相同
          mov r0,#keynum_max;r0作為鍵計(jì)數(shù)器,比如前面提到的系統(tǒng)keynum_max=8
          (……);此時(shí)根據(jù)鍵盤布局,增加避開無(wú)效數(shù)據(jù)的空操作
          rdmkey_on:
          cpl clk; 指令發(fā)送完畢clk=h,脈沖下降沿處pt6311輸出數(shù)據(jù)dout
          nop
          cpl clk;脈沖上升沿后單片機(jī)讀取數(shù)據(jù)可靠
          movc,dout
          rrc a
          djnz r0,rdmkey_on
          movkey_value,a
          setb stb
          ret
          ……
          acall multi_key_id;組合鍵及單鍵的識(shí)別處理,根據(jù)按鍵情況作出相應(yīng)處理以上程序是針對(duì)按鍵數(shù)據(jù)第一位輸出即有效的情況,就是說(shuō)按鍵布局對(duì)應(yīng)于鍵值寄存器的開始端。如果不是這樣,且按鍵布局對(duì)應(yīng)鍵值寄存器的連續(xù)空間,則需要在程序讀取數(shù)據(jù)開始時(shí)增加避開無(wú)效數(shù)據(jù)位的空操作。

          從以上程序可知,其實(shí)單鍵掃描可以視為多鍵掃描的一種特殊情況。后面的按鍵識(shí)別處理程序要根據(jù)需要進(jìn)行軟件設(shè)計(jì),比如最多的組合按鍵只有兩個(gè)按鍵,則多于兩個(gè)以上的按鍵組合就視為無(wú)效而無(wú)需作組合識(shí)別處理。

          以上按鍵掃描程序一般放在定時(shí)中斷服務(wù)程序中的,主要是為了方便延時(shí)去抖動(dòng)。識(shí)別到有效單鍵或者組合鍵并作出響應(yīng)后都需要處理重復(fù)按鍵問(wèn)題,實(shí)際上我們一般都要作按鍵是否松開的識(shí)別處理或者按鍵間隔有效控制處理,主要是為了避免指令的過(guò)于頻繁反復(fù)操作,尤其是大功率調(diào)整。

          vfd顯示控制的編程實(shí)現(xiàn)

          假設(shè)顯示內(nèi)容已經(jīng)放入display_buf_data,并且芯片已完成上電初始化設(shè)置,則單片機(jī)向pt6311發(fā)送指令與數(shù)據(jù)的通用程序段如下:(發(fā)送單字節(jié)指令可帶有n(0≤n≤48)個(gè)字節(jié)數(shù)據(jù)的子程序)
          send_1bi_nd:;發(fā)單字節(jié)指令可帶n字節(jié)數(shù)據(jù),用于初始化設(shè)置或修改顯存內(nèi)容
          clrea;發(fā)送過(guò)程禁止中斷,確保發(fā)送過(guò)程完整
          jnb addr,no_addr;判斷是否需要設(shè)置顯存需要操作的始地址
          clr addr
          mov a,disply_buf_addr;取要操作的顯存地址
          or a,#0c0h ;將要設(shè)置的地址與pt6311的指令特征位合并
          mov b,a;b作為發(fā)送字節(jié)緩存,也作為發(fā)送單字節(jié)指令的緩存
          no_addr:
          clr stb;啟動(dòng)發(fā)送過(guò)程
          s_on_d:
          mov a,b
          mov cnt,#08h ;用cnt作為位計(jì)數(shù)器,指示串行數(shù)據(jù)字節(jié)發(fā)送完畢與否
          s_on:
          rrc a
          cpl clk;clk初始化為h(高電平)
          mov din,c;按位將數(shù)據(jù)或指令的一位加載到串行數(shù)據(jù)線
          cpl clk;時(shí)鐘上升沿發(fā)送
          dec cnt;發(fā)送的位計(jì)數(shù)器遞減一
          djnz cnt,s_on;字節(jié)數(shù)據(jù)發(fā)送完否?否,則繼續(xù)發(fā)送下一位
          jnb incl_d,s_over;發(fā)送完畢則判斷是否后帶數(shù)據(jù),無(wú)則發(fā)送完畢
          djnz r6,s_next_byte
          clr incl_d;清除后帶數(shù)據(jù)的標(biāo)志
          mov b,disply_buf_data;取得本次發(fā)送過(guò)程的最后一個(gè)字節(jié)
          ajmp s_on_d
          s_next_byte:
          clrc
          mov a,#disply_buf_data;單片機(jī)內(nèi)的顯存為display_buf_data開始的一段ram空間
          add a,r6
          mov r0,a
          mov b,@r0;這里的運(yùn)算取得要發(fā)送的顯示數(shù)據(jù)的下一個(gè)字節(jié)
          ajmp s_on_d
          s_over:
          jb rd_d,keep_stb;如果發(fā)送了讀取數(shù)據(jù)指令,則保持stb為低,由讀取程序置高
          setb stb
          setb ea;恢復(fù)允許中斷設(shè)置
          keep_stb:
          ret
          如果發(fā)送單字節(jié)的控制字,則設(shè)置addr=0,incl_d=0,rd_d=0,b=指令,再調(diào)用該子程序即可。



          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();