嵌入式linux設(shè)備驅(qū)動(dòng)開發(fā)詳解光盤-技術(shù)手冊(cè)_第1頁
嵌入式linux設(shè)備驅(qū)動(dòng)開發(fā)詳解光盤-技術(shù)手冊(cè)_第2頁
嵌入式linux設(shè)備驅(qū)動(dòng)開發(fā)詳解光盤-技術(shù)手冊(cè)_第3頁
嵌入式linux設(shè)備驅(qū)動(dòng)開發(fā)詳解光盤-技術(shù)手冊(cè)_第4頁
嵌入式linux設(shè)備驅(qū)動(dòng)開發(fā)詳解光盤-技術(shù)手冊(cè)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

串行接口8位LED數(shù)碼管及64鍵鍵盤智能控圖圖CSDA8位共陰式數(shù)碼管(或64只獨(dú)立ED)的智能顯示驅(qū)動(dòng)芯片該同可多鍵矩陣DHD7279A含有譯可直接接受BCD碼或16進(jìn)制碼并同時(shí)具有2種譯碼方式參見后文此外還具有多種控制指令如消隱閃爍左移右移段尋址等 (循環(huán))左移/(循環(huán))右移指 內(nèi)含去抖動(dòng)電路圖電特 V不接35 V0V7S58S58SSS58S58S讀鍵盤數(shù)據(jù)完成后DATA5S表1235 46 7 8串行數(shù)據(jù)輸入/輸出端當(dāng)接收指令時(shí)此引腳為輸入端當(dāng)鍵盤數(shù)據(jù)時(shí)此引腳在讀指令最9 10段 18 表 復(fù)位(清除)指令1O1OO1OO 1O111111 1O1OOOO1使所有的顯示自右向左(從第1位向第8位)移動(dòng)一位(包括處千消隱狀態(tài)的顯示位 4252LP39 4252LP39252LP39 252LP39

例 原1O1OOOOO 但所做移動(dòng)為自左向右(從第8位向第1位)移動(dòng)移動(dòng)后 1O1OOO11 不同之處在千移動(dòng)后原最左邊一位(第8位)的內(nèi)容顯示千最右位(1位)在上例 252LP394 1O1OOO1O 1OOOO 其中 a0為位地 (顯示位編虧請(qǐng)參閱典型應(yīng)用電路圖OOO1OO12O1O3O1141OO51O1611O71118 HD7279A按以下規(guī)則(譯碼方式0)進(jìn)行譯 d3-dO(十六進(jìn)制OOOO0OOO11OO1O2OO113O1OO4O1O15O11O6O11171OOO81OO191O1O1O11E11OOH11O1L111OP1111空(無顯示

DP=1 11OO1 d3-dO(十六進(jìn)制OOOO0OOO11OO1O2OO113O1OO4O1O15O11O6O11171OOO81OO191O1OA1O11b11OOC11O1d111OE1111F表 1OO1OABCDEFG其中 a0為位地址(參見 指令)AG和DP為顯示數(shù) 1OOO1OOO此命令控制各個(gè)數(shù)碼管的閃爍屬性

d1d8分別對(duì)應(yīng)數(shù)碼管1 0=閃 1=不1OO11OOO d1d8分別對(duì)應(yīng)數(shù)碼管18 對(duì)該位寫入何值均不會(huì)被顯示但寫入的值將被保留在將該位重新設(shè)為顯示狀態(tài)后最后一次寫入的數(shù)據(jù)將被顯示出來當(dāng)無需用到全部8個(gè)數(shù)碼管顯示的時(shí)候?qū)⒉挥玫奈辉O(shè)為消隱屬性可以提高顯示的亮度 如果消隱控制指令中d1d8全部為0 111OOOOOXX此為段尋址指 作用為點(diǎn)亮數(shù)碼管中某一指定的 或LED矩陣中某一指定 d0d5為段地 F段為 A段為 第2

11OOOOOOXX 作用為關(guān)閉(熄滅)數(shù)碼管中的某一段指令結(jié)構(gòu)與 OOO1O1O1該指令從HD7279A讀出當(dāng)前的按鍵代 與其它指令不 此命令的前一個(gè)字00010101B為微控制器傳送到HD7279A的指 而后一個(gè)字節(jié)d0d7則為HD7279A 其范圍是0H(無鍵按下時(shí)為0xFF)

請(qǐng)參閱圖此指令的前半段HD7279A的DATA引腳處千高阻輸入狀態(tài)以接受來自微處理器的指令在指令的后半段DATA引腳從輸入狀態(tài)轉(zhuǎn)為輸出狀態(tài)輸出鍵盤代碼的值故微處理器連接到DATA引腳的I/O口應(yīng)有一從輸出態(tài)到輸入態(tài)的轉(zhuǎn)換過程參閱本串行接口一節(jié)的內(nèi)容當(dāng)HD7279A檢測到有效的按鍵時(shí)KEY引腳從高電平變?yōu)榈碗娖讲⒁恢北3值桨存I結(jié)束在此期間如果HD7279A接收到讀鍵盤數(shù)據(jù)指令則輸出當(dāng)前按鍵的鍵代 1B)

HD7279A將輸出FFHHD7279A采用串行方式與微處理器通 串行數(shù)據(jù)從DATA引腳送入并

鍵盤數(shù)據(jù)指令 寬度為16個(gè)BIT 前8個(gè)為微處理器發(fā)送到 HD7279A的 8位指令 8位數(shù)據(jù) 讀鍵盤指令8 )HD7279A輸出的鍵盤代碼(8 HD7279A應(yīng)連接共陰式數(shù)碼管應(yīng)用中無需用到的鍵盤和數(shù)碼管可以不連接省如果不用鍵盤則典型電路圖中連接到鍵盤的8只10K電阻和8只100K下拉電阻均可以省去如果使用了鍵盤則電路中的8只100K下拉電阻均不得省略除非不接入數(shù)碼管否則串入DP及SASG連線的8只200電阻均不能省去實(shí)際應(yīng)用中88I0I78只電阻以下簡稱位選電阻應(yīng)遵從一定的例關(guān)系下拉電阻大千位電阻5倍而千其0倍典值為1倍1KK1KK在不影響的下下阻可取的值這樣可以高鍵盤分的能力因?yàn)椴捎醚h(huán)掃描的工作方式如果采用普通的數(shù)碼管亮度有可能不夠采用高亮或亮的型虧可以解決這個(gè)問題數(shù)碼管的尺寸亦不宜選得過大一般字寸高度不宜超過1英寸如使用大型的數(shù)碼管應(yīng)使用適當(dāng)?shù)尿?qū)動(dòng)電路HD7279A需要一外接的RC振蕩電路以供系統(tǒng)工作其典型值分別為R=1.5K 15pF如果無法正常工作請(qǐng)首先檢查此振蕩電路在印刷電路板布線時(shí)所有元件尤其是振蕩電路的元件應(yīng)盡量靠近HD7279A并盡量使電路連線最短HD7279A的RESET復(fù)位端在一般應(yīng)用情況下可以直接與正電源連接在需要較高可靠性的情況下可以連接一外部的復(fù)位電路或直接由MCU單片機(jī)控制在上電

所有的顯示均為空 請(qǐng)參閱圖2及典型應(yīng)用電路圖圖中的鍵虧即 H5)程序中盡可能地減少CPU對(duì)HD7279A的次數(shù)可以使得程序更有效因?yàn)橹苯域?qū)動(dòng)LED數(shù)碼管顯示電流較大且為動(dòng)態(tài)掃描方式故如果該部分電路電源連線較細(xì)較長可能會(huì)引入較大的電源噪聲干擾將HD7279A的正負(fù)電源端上并注意如果有2個(gè)鍵同時(shí)按下HD7279A將只能給出其中一個(gè)鍵的代碼因此下面給出ATMEL公司的AT89C2051及MICROCHIP公司的PIC16C54與 然后將所讀到的鍵盤 硬件連接如圖AT89C2051所用時(shí)鐘頻率為12MHz程序使用FrankinA51編譯通過并工過驗(yàn)證程序中延時(shí)時(shí)間以HD7279A外接R=1.5K,C=15pF為準(zhǔn)如使用不同的CPU時(shí)鐘頻率或不同的R/C參數(shù)請(qǐng)注意調(diào)整延時(shí)時(shí)間$title(HD7279ATestRAMI/O;HD7279A的DATA連接千;HD7279A的KEY連接千;HD7279A的CS連接千;HD7279A的CLK連接千;定義堆棧;I/O口初始化;延時(shí)約START_DELAY:MOV ;設(shè)CS

BCD碼轉(zhuǎn) ;內(nèi)容左移,留出; DATA_OUT,#10000001B;數(shù)據(jù)且譯碼指令(第2位) ;發(fā)送十位數(shù)字到 ;位 ;發(fā)送1個(gè)字節(jié)到HD7279;設(shè)定位記數(shù)器;設(shè)CS; ;設(shè)CLK ; ;設(shè)CLK ; D_LOOP;檢查是否8位均發(fā)送完畢 ;設(shè)定位記數(shù)器;設(shè)P1.2(DATA)口為;(輸入狀態(tài);A;一位數(shù);置CLK BIT_COUNT,RECEIVE_LOOP;是否已接收8 LONG_DELAY:MOV DELAY_LOOP:DJNZ SHORT_DELAY: ;設(shè)定延時(shí)時(shí)間為約 硬件連接如圖 PIC16C54所用時(shí)鐘頻率4MHz 程序使用MICROCHIP公司的 程序中延時(shí)時(shí)間以HD7279A外接R=1.5K,C= 如使用不同的CPU時(shí)鐘頻率或R/C參數(shù)請(qǐng)注意調(diào)整延時(shí)時(shí)間 I/O

0;CS連接千16C54的1;CLK連接千16C65的2;DAT連接千16C54的3;KEY連接千16C54的

SHORT_DELAYMOVLW ;發(fā)送1個(gè)字節(jié)到HD7279;待發(fā)送數(shù)據(jù)存入;設(shè)定位記數(shù)器;設(shè)CS;;輸出1;設(shè)CLK;;設(shè)CLK0;檢查是否8位均;未發(fā)送 ;發(fā)送完 返 ;設(shè)定位記數(shù)器;設(shè)RA2(DATA)口為;;置CLK;;一位數(shù) ;置CLK

;是否已接收8 B'11111000';重新設(shè)RA2(DATA)口為輸出態(tài) ;I/O口初始化;延時(shí)約;發(fā)復(fù)位(清除)指;恢復(fù)CS為高電 ;檢測是否;有鍵按 ;發(fā)送讀鍵;從HD7279A讀鍵;設(shè)CS;16進(jìn) BCD碼轉(zhuǎn) ;發(fā)送按鍵的BCD碼到;發(fā)2次左移指 ;留出空位;左移指令;發(fā)送指令到;左移指令;發(fā)送指令到;數(shù)據(jù)且譯碼指令(第2位;發(fā)送指令到;發(fā)送十位數(shù)字到;數(shù)據(jù)且譯碼指令(第1位;發(fā)送指令到;發(fā)送個(gè)位數(shù)字到;等待按鍵放附錄一:用千MCS51的C語言例子程這是用千HD7279A評(píng)估板的C51程序,使用C語言編程的//***函數(shù)定義void voidshort_delay(void);

延時(shí)voidwrite7279(unsignedcharunsignedchar寫入到HD7279unsignedcharread7279(unsignedchar);//從HD7279讀出voidsend_byte(unsignedchar);

//***變量及I/O口定義 unsignedchardigit[5];unsignedcharkey_number,j,k;unsignedinttmr;unsigned sbit //csatsbit //sbit //sbit //

//******HD7279A指令******#defineCMD_RESET0xa4#defineCMD_TEST0xbf#defineDECODE00x80#defineDECODE10xc8#defineCMD_READ0x15#defineUNDECODE0x90#defineACTCTL0x98#defineSEGON0xe0#defineSEGOFF0xc0#defineBLINKCTL0x88//***主程序***{while{for(tmr=0;tmr<0x2000;tmr++);

for {

延時(shí)約3}

如果10write7279(BLINKCTL,0xfc);//write7279(UNDECODE,0X08);//{

第12兩位設(shè)為閃爍顯示if {

while }

}while(key_number!=0 //如果按鍵 0和超時(shí)則進(jìn)入下一步演write7279(BLINKCTL,0xff);// for {

}while {

如果計(jì)數(shù)達(dá)到20000就停if{if{if{if{if{}}}}}if(digit[0]==0){if{if(digit[2]==0){if(digit[3]==0){}}}}} 在第8位按不譯碼方式顯示一字寸'三' 循環(huán)左/ "三"字向右運(yùn)動(dòng)3次,再向左運(yùn)動(dòng)3for(j=0;j<23;j++){ }

循環(huán)右移23for{ }

循環(huán)左移23 譯碼方式0for(j=0;j<16;j++){ //譯碼方式0指 顯示在第1

} 譯碼方式1for(j=0;j<16;j++){ //譯碼方式0指 顯示在第8

} for{}

for(j=0;j<64;j++){write7279(SEGON,j);//write7279(SEGOFF,j-1);//}}}

voidwrite7279(unsignedcharcmd,unsignedchar{}unsignedcharread7279(unsignedchar{}void unsignedchar{unsignedchari;{if{}{}

}}unsignedchar{unsignedchari,in_byte; {

if(dat){}

}

return}void{unsignedcharfor}void{unsignedchari;}*********************延時(shí)n*10ms**********************voiddelay10ms(unsignedchartime){unsignedintj;for{{if{}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論