CH454顯示問題

您好,我調(diào)試鍵盤和數(shù)碼管的時(shí)候,中斷出現(xiàn)了問題,剛開始我讓數(shù)碼管全部點(diǎn)亮,然后想通過鍵盤中斷讓某一位數(shù)碼管閃爍,運(yùn)行開始時(shí),數(shù)碼管全部點(diǎn)亮,我摁一個(gè)鍵,某位閃爍后,但是一直閃爍,不停,我在摁其他鍵不管用,相對(duì)應(yīng)的數(shù)碼管耶不執(zhí)行閃爍命令,請(qǐng)問怎么回事?時(shí)我的中斷有問題嗎?


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

CH454_Write( CH454_TWINKLE | 0x01 );//Dig0控制的數(shù)碼管閃爍 //此命令發(fā)出后Dig0控制的數(shù)碼管會(huì)一直閃爍

CH454_Write( CH454_TWINKLE | 0x00 );//Dig0控制的數(shù)碼管不閃爍 //此命令發(fā)出后Dig0控制的數(shù)碼管會(huì)停止閃爍

要想只閃爍一小會(huì),可以這樣 CH454_Write( CH454_TWINKLE | 0x01 );//Dig0控制的數(shù)碼管閃爍 DelaymS( 0xXX ); CH454_Write( CH454_TWINKLE | 0x00 );//Dig0控制的數(shù)碼管不閃爍

使用中斷的話,注意在執(zhí)行CH454_Write( 0xXXXX )命令之前先關(guān)閉中斷,執(zhí)行完再打開中斷。執(zhí)行CH454_Read( 0xXXXX )命令之前先關(guān)閉中斷,執(zhí)行完再打開中斷。


Ashin: 您好,我按您說的方法實(shí)驗(yàn)了一下還是不行,剛開始上電的時(shí)候,我的中斷線為高電平,中斷一次后,就一直沒低電平,然后不論我怎么按,都沒有效果,我懷疑是中短線INT沒有恢復(fù)為高電平,導(dǎo)致沒法執(zhí)行以后的中斷程序,你說對(duì)嗎? 芯片中的INT線在中斷后應(yīng)該是自動(dòng)置為高電平的嗎???如果這樣的話,為什么我測(cè)的一直為低電平那?我可不可手動(dòng)將它恢復(fù)為高電平那?


上邊打錯(cuò)了 中斷一次后,就一直為低電平 請(qǐng)您盡快恢復(fù),急。。。。


INT線為高電平,按下按鍵后INT線變?yōu)榈碗娖?,CH454_Read( 0x0700 )命令讀取按鍵鍵值后,INT線恢復(fù)為高電平。


謝謝。。問題已解決。。十分感謝。。。。


不客氣。


還有一問題: 我按照下邊耶就是從網(wǎng)站上下載的程序進(jìn)行實(shí)驗(yàn)時(shí),為什么沒反應(yīng)那?

while(1) { ch454_key = 0xff; while( ch454_key == 0xff ); //等待中斷

a = ch454_key & 0x3F;//按鍵數(shù)值 b = a;//轉(zhuǎn)換十進(jìn)制數(shù)據(jù) a /= 10;//十位 b %= 10;//個(gè)位

//移位 vL[3] = vL[2]; vL[2] = vL[1]; vL[1] = vL[0]; vL[0] = a; vH[3] = vH[2]; vH[2] = vH[1]; vH[1] = vH[0]; vH[0] = b; ch454_write( CH454_DIG1_LO | mBCD[vL[0]] ); ch454_write( CH454_DIG0_LO | mBCD[vH[0]] ); ch454_write( CH454_DIG3_LO | mBCD[vL[1]] ); ch454_write( CH454_DIG2_LO | mBCD[vH[1]] ); ch454_write( CH454_DIG5_LO | mBCD[vL[2]] ); ch454_write( CH454_DIG4_LO | mBCD[vH[2]] ); ch454_write( CH454_DIG7_LO | mBCD[vL[3]] ); ch454_write( CH454_DIG6_LO | mBCD[vH[3]] );

while(1) { a = CH454_Read( 0x0700 ); if( a & 0x40 )//未釋放 { ch454_write( CH454_TWINKLE | 0xff );//全閃爍 } else//釋放 { ch454_write( CH454_TWINKLE );//全不閃爍 break; } } } 我的中斷程序是這樣的: { ch454_key = CH454_Read( 0x0700 ); ch454_write( CH454_DIG0_LO | mBCD[7] ); DELAY(200); ch454_write( CH454_DIG0_LO | mBCD[0] ); } 按鍵后只執(zhí)行中斷,不執(zhí)行WHILE語句,怎么辦????????、 煩請(qǐng)您幫忙。。。。。。。十分感謝。。。。。。。。。。


懷疑你讀出的ch454_key是0xFF

這樣,中斷里面 ch454_key = CH454_Read( 0x0700 ); ch454_write( CH454_DIG0_LO | mBCD[ ch454_key & 0x0F ] ); DELAY(200); ch454_write( CH454_DIG0_L1 | mBCD[ (ch454_key>>4) & 0x0F ] ); }

看看讀出的按鍵是什么?

如果讀出的值是0xFF,那就說明你的CH454_Read函數(shù)里面有問題。檢查哪里寫錯(cuò)了,可參考CH454的AVR例子中的CH454_Read函數(shù)。


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

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