關(guān)于CH452的鍵盤驅(qū)動(dòng)問(wèn)題!

小可現(xiàn)在用的是AT89C51/CH452L,驅(qū)動(dòng)鍵盤,不帶顯示.問(wèn)題是我程序下到片子里后,發(fā)現(xiàn)DIG0口沒(méi)有掃描.不知道問(wèn)題出在哪.請(qǐng)能人指點(diǎn)一下:謝謝! sbit DCLK=P1^5; sbit DIN=P1^4; sbit LOAD=P1^6; sbit DOUT=P3^2; void AT89C51_Init() { DOUT=1; TCON|=0x01;//中斷0下降沿觸發(fā); //TCON&=0xfe;//中斷0低電平觸發(fā); //IP|=0x01; CH452_KEY_INT0_ON;//中斷0允許; EA=1;//全局中斷允許; } /******************************************* ******名稱:CH452_Init() ******變量: ******功能:CH452初始化(設(shè)定系統(tǒng)參數(shù)) ******01000[GPOE][INTM][SSPD][DPLR]0[KEYB][DISP] ****** 0 1 0 0 0 1 0 ******DISP(顯示驅(qū)動(dòng)功能的使能):0:關(guān)閉顯示驅(qū)動(dòng) 1:允許顯示驅(qū)動(dòng) ******KEYB(鍵盤掃描功能的使能):0:關(guān)閉鍵盤掃描 1:啟用鍵盤掃描 ******DPLR(字驅(qū)動(dòng)DIG 輸出極性):0:低電平有效 1:高電平有效 ******SSPD(閃爍速度/頻率):0:低速(約1.5Hz) 1:快速(約3Hz) ******INTM(按鍵中斷輸出方式):0:低電平有效(電平或邊沿中斷) 1:低電平脈沖(邊沿中斷) ******GPOE(通用輸出引腳使能--僅DIG6和DIG7引腳):0:用于顯示驅(qū)動(dòng)字輸出禁止通用輸出 ***********************************************1:當(dāng)掃描極限為1~6 時(shí),多余的DIG6和DIG7引腳用于通用輸出,分別由閃爍位D6S和D7S控制 *******************************************/ void CH452_Init() { Uint CH452_SYS_SET=0; CH452_KEY_DIN_CLR; CH452_KEY_DIN_SET; CH452_SYS_SET=(CH452_SYS_COM|CH452_KEY_KEYB_ON|CH452_KEY_INTM_ON);//CH452系統(tǒng)參數(shù)設(shè)置:開鍵盤功能\邊沿中斷 // CH452_SYS_SET=(CH452_SYS_COM|CH452_KEY_KEYB_ON|CH452_KEY_INTM_OFF);//CH452系統(tǒng)參數(shù)設(shè)置:開鍵盤功能\低電平中斷 // WriteCH452(CH452_RESET); WriteCH452(CH452_SYS_SET); } /******************************************* ******名稱:WriteCH452(Uint command) ******變量:Uint command ******功能:向CH452寫命令 *******************************************/ void WriteCH452(Uint command) { Uchar i; CH452_KEY_INT0_OFF;//51禁止452產(chǎn)生的中斷 CH452_KEY_LOAD_CLR;//LOAD低電平 for(i=0;i<12;i++) { if(command&0x0001)CH452_KEY_DIN_SET; else CH452_KEY_DIN_CLR; //DIN=command&0x0001; CH452_KEY_DCLK_CLR; command>>=1; CH452_KEY_DCLK_SET; } CH452_KEY_LOAD_SET;//LOAD上升沿加載命令 NOP;NOP;NOP;NOP;NOP;NOP; CH452_KEY_INT0_ON;//51允許452產(chǎn)生的中斷 } /******************************************* ******名稱:Uchar ReadCH452() ******變量: ******功能:從CH452讀數(shù)據(jù) *******************************************/ Uchar ReadCH452() { Uchar i; Uchar key=0; Uchar read; CH452_KEY_INT0_OFF; read=CH452_R_COM;//讀取鍵盤命令0111 CH452_KEY_LOAD_CLR; for(i=0;i<4;i++) { if(read&0x01)CH452_KEY_DIN_SET; else CH452_KEY_DIN_CLR; //DIN=read&0x01; CH452_KEY_DCLK_CLR; read>>=1; CH452_KEY_DCLK_SET; } CH452_KEY_LOAD_SET;//LOAD上升沿加載命令 for(i=0;i<7;i++) { key<<=1; key|=DOUT; NOP; CH452_KEY_DCLK_CLR; CH452_KEY_DCLK_SET; } //CH452_CLR_INT_FLAG; CH452_KEY_INT0_ON; return(key); } /******************************************* ******名稱:INT0_Init() ******變量: ******功能:中斷初始化 *******************************************/ void CH452_INT0() interrupt 0 { key_int_flag=1; keyboard=ReadCH452(); } //-----------main----- void main() { DelayMs(100); LcdInit(); AT89C51_Init(); CH452_Init(); DelayMs(100); while(1) { if(key_int_flag) { LcdSendCom(0x01); Display(0,0,5,"北京歡迎您"); key_int_flag=0; } else Display(1,0,4,"沒(méi)鍵按下"); DelayMs(10);

} }


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

這里有一個(gè)問(wèn)題首先要搞清楚,您是怎么知道DIG0上沒(méi)有掃描信號(hào)的?如果是用萬(wàn)用表測(cè)肯定是測(cè)不出來(lái)的,正確的方法是使用示波器測(cè)試,方能檢測(cè)出.不過(guò)借此機(jī)會(huì)我說(shuō)一下假如您是用示波器檢測(cè)而發(fā)現(xiàn)沒(méi)有DIG0掃描信號(hào)的原因,那就是您對(duì)CH452的初始化工作沒(méi)有做好.鍵盤的命令沒(méi)有正常開啟. 我們有51單片機(jī)的相關(guān)例子程序,您可以參考一下,在我們公司的主頁(yè)中的在線下載中您可以搜索CH452IF.ZIP,或者在本版的置頂帖里面下載.


我再看看!DIG是我用示波器測(cè)的.確實(shí)沒(méi)有掃描信號(hào)


你的程序我們這邊板子上CH452可以正常工作,程序在回復(fù)你郵件的附件里面,你看一下。


好,謝謝


帥哥,還是不行啊. 我強(qiáng)調(diào)一下:我只用CH452L的鍵盤驅(qū)動(dòng)功能,不用數(shù)碼管驅(qū)動(dòng)功能,我顯示用的是液晶屏.我用CH452L判斷5*4矩陣鍵盤,我用你給的程序下到片子里后.DIG腳一直是低電平(示波器測(cè)的) 24M晶振在速度上沒(méi)什么影響吧?我只用鍵盤驅(qū)動(dòng)功能,需要把顯示功能也同時(shí)一起打開嗎? 需要在硬件上外接上拉電阻啥的嗎? 硬件上每個(gè)DIG腳我接個(gè)1K電阻連在鍵盤上.SEG腳直接連在鍵盤上.整個(gè)電路連接正常.


對(duì),忘了感謝一下你們的熱情服務(wù),以后我將積極考慮用你們的片子(首先是我的把問(wèn)題解決了先)


請(qǐng)確保你的CH452L的H3L2腳是懸空的或接在高電平上的,四線選擇正確。 確保DCLK,DOUT,DIN,LOAD腳都連接正確。 如果還有問(wèn)題的話請(qǐng)把你的電路圖發(fā)送到我們的郵箱來(lái)。


4線問(wèn)題解決了,現(xiàn)在我又要做一個(gè)2線模式的,按照你們給的程序,問(wèn)題又來(lái)了,沒(méi)中斷信號(hào).我用的是片自帶的INT0.郁悶!


我們的程序都是調(diào)試過(guò)可以使用的。 2線方式,確認(rèn)你的H3L2接在低電平上;ADDR接高電平,工作在地址1;ADDR接低電平,工作在地址0。 確保SDA,SCL,INT#腳都連接正確。 如果還有問(wèn)題的話請(qǐng)把你的電路圖發(fā)送到我們的郵箱來(lái)。


你新的程序我們這邊板子上CH452可以正常工作,程序在回復(fù)你郵件的附件里面,你看一下。


帥哥,你是不是沒(méi)明白我說(shuō)的意思啊?我只用到CH452的鍵盤驅(qū)動(dòng)功能,不用顯示功能,你給的程序怎么全是顯示驅(qū)動(dòng)的啊?我用其他液晶模塊.硬件連接沒(méi)問(wèn)題,ADDR和H3L2全連在地上,SDA和SCL分別連在AT89C51的P1.4和P1.5上,模擬I2C,INT連在51的INT0上,現(xiàn)在問(wèn)題是按鍵按下去后,沒(méi)什么反映!沒(méi)中斷,沒(méi)掃描信號(hào)!我51用的是24M晶振,12時(shí)鐘模式.對(duì)了CH452的RST通過(guò)100歐姆的電阻連在51的 RST上!


搞定了,氣死我了,CH452是個(gè)壞片子,折騰了我好幾天!換個(gè)片子好了.真上火! 順便再問(wèn)下,CH452L現(xiàn)在有幾個(gè)版本,通用嗎?>?如果對(duì)一個(gè)版本的程序,對(duì)另一個(gè)版本還有用嗎? 非常感謝你們的支持,說(shuō)實(shí)話.你們是我用過(guò)芯片服務(wù)質(zhì)量和態(tài)度最好的!鼓勵(lì)下!


謝謝鼓勵(lì)。 CH452L有兩個(gè)版本,V1版和V2版,顯示方面有少量特殊點(diǎn)的命令,兩個(gè)版本效果有點(diǎn)不同。 你的程序只使用按鍵功能,V1版本和V2版本的程序是通用的。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频