CH452 按鍵掃描問(wèn)題

可以產(chǎn)生中斷,但得不到按鍵碼,求高手指教 采用AVRMEGA16單片機(jī),CH452的DOUT接PD2, 以下為進(jìn)入中斷后調(diào)用的鍵盤(pán)程序: #define ch452_dclk_H PORTB|=BIT(7) #define ch452_dclk_L PORTB&=~BIT(7) #define ch452_din_H PORTB|=BIT(5) #define ch452_din_L PORTB&=~BIT(5) #define ch452_load_H PORTB|=BIT(6) #define ch452_load_L PORTB&=~BIT(6) #define ch452_dout PIND&=0x04 void get_keycode(void) { uchar keycode,i; uchar data; GICR=0x00;//中斷禁止 data=0X07; ch452_load_L; for(i=0;i<4;i++) { if((data&0x01)==1) ch452_din_H; else ch452_din_L; ch452_dclk_L; data>>=1; ch452_dclk_H; } ch452_load_H;//高電平加載數(shù)據(jù) keycode=0; for(i=0;i<7;i++) { keycode<<=1;//數(shù)據(jù)移入keycode,高位在前,低位在后 if(ch452_dout) keycode++ ;//從高到低讀入452的數(shù)據(jù) ch452_dclk_L;//產(chǎn)生時(shí)鐘下升沿通知CH452輸出下一位 ch452_dclk_H; } GIFR=0X40;//清除中斷標(biāo)志 GICR=0x40;//中斷允許 }

建議將keycode設(shè)置為全局變量,然后全速運(yùn)行測(cè)試一下。中斷來(lái)了,說(shuō)明芯片已經(jīng)檢測(cè)到按鍵了,只要在中斷中讀鍵值就可以了。


不行啊,這是我的主函數(shù),問(wèn)題是進(jìn)入主函數(shù)后,有按鍵按下時(shí),中斷標(biāo)志位有變化,但是讀不到按鍵值 void main() { uint fuc,data,ad_c,i,j; uint ch452_system=0x0403,ch452_display=0x0580; uchar x; init_devices(); ch452_write(ch452_system); //設(shè)定系統(tǒng)參數(shù),按鍵中斷低電平有效,低速閃爍(1Hz), //字驅(qū)動(dòng)DIG輸出低電平有效,啟動(dòng)鍵盤(pán)掃描,允許顯示驅(qū)動(dòng) ch452_write(ch452_display);//設(shè)定顯示參數(shù),選擇BCD譯碼,掃描極限為8 for(i=0;i<6;i++) { ad_c=a[i]+i; ch452_write(ad_c); } while(1) { if(GIFR&0x40) { for(i=0;i<6;i++)//如有按鍵按下,各個(gè)數(shù)碼管閃爍顯示 { ch452_write(b[i]); delay(2); } if(keycode==0x46)//如按鍵1按下,顯示F00 { key_flag=~key_flag; for(i=3;i<5;i++) { x=EEPROM_read(0x00); x=a[i]+0; ch452_write(x);//加載顯示數(shù)據(jù) } ch452_write(a[5]+0x0F); ch452_write(b[0]);//DS0閃爍 } } } }


你的keycode在get_keycode子程序中是一個(gè)局部變量,然后你到主程序中使用這個(gè)keycode,這怎么可以呢?另外,只要能進(jìn)中斷,就說(shuō)明芯片已經(jīng)正常工作了,至于能否讀到鍵值,就要看你程序了。你現(xiàn)在把keycode設(shè)置為全局變量試試。


我已經(jīng)將keycode設(shè)為全局變量了


我已經(jīng)將keycode設(shè)為全局變量了


呵呵!那現(xiàn)在是一個(gè)什么現(xiàn)象呢?


怎么不能傳圖片?現(xiàn)在老樣子!按鍵按下后,中斷標(biāo)志位為置一,可以進(jìn)入for語(yǔ)句閃爍顯示,但是接下來(lái)keycode還是0,沒(méi)讀出來(lái)。


你這樣吧!你把整個(gè)程序發(fā)到我有的郵箱,幫你看一下!


你郵箱是多少啊?


技術(shù)支持的郵箱tech@wch.cn或者我的郵箱zyq@wch.cn。


搞定了,是中斷設(shè)置的問(wèn)題,謝謝了


求CH452按鍵程序,我用的是ATmega64,不知道你的程序還有沒(méi)有,能給我發(fā)一份嗎?602309197這是我郵箱


資料已發(fā)送,請(qǐng)查收。


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

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