ch452L怎么和單片機(jī)連接掃描電路啊

ch452L怎么和stc89c52連接?。课易鰷y試:用一個(gè)按鍵連1k電阻連seg,另一腳連dig。ch452L的dout接的單片機(jī)P3.2,din、load和dclk接的單片機(jī)三個(gè)引腳。然后vcc接正,GND接地,沒有接電容。程序是這樣的,具體按鍵值都沒寫,可是按鍵之后燈就是不變,希望有人能夠幫助??!#include #include #define uchar unsigned char #define uint unsigned char #define Light P0//sfr Light=0x80 void delay(uchar ms); /***********ch451接口和參數(shù)定義************/ sbit ch451_load = P2^6; //數(shù)據(jù)加載引腳 sbit ch451_din = P2^5; //數(shù)據(jù)輸入引腳 sbit ch451_clk = P2^4; //時(shí)鐘引腳 sbit ch451_dout = P3^2; //數(shù)據(jù)輸輸出引腳 uchar ch451_key_val=0xff; //按鍵初值設(shè)置(無效的按鍵值) void wr_ch451(uint com); void int_set(); void ch451_initial(); uchar a=0; void main() { Light=0x3c; int_set(); //設(shè)置中斷相關(guān)的參數(shù) ch451_initial(); //ch451初始化 wr_ch451(0x402); //設(shè)定ch451的系統(tǒng)參數(shù)(只使用按鍵掃描功能) while(1) { if(a!=0)//1011011 { Light++; } } } /********每次按鍵按下都會(huì)使ch451_dout引腳(P3.2)變?yōu)榈碗娖?因此產(chǎn)生外中斷*******/ void ch451_int() interrupt 0 using 1 { uchar i,com,key_val=0; EX0=0; //關(guān)中斷0 com=0x07; //取按鍵值命令 ch451_load=0; //準(zhǔn)備傳送命令 for(i=0;i<4;i++) { ch451_din=com&0x01; ch451_clk=0; com>>=1; ch451_clk=1; //上升沿送入 } ch451_load=1; //加載命令 for(i=0;i<7;i++) { key_val<<=1; //先收到鍵值的高位 key_val|=ch451_dout; //讀入鍵值 ch451_clk=0; //下降沿讀入 ch451_clk=1; //為下一次做準(zhǔn)備delayms(uint ms); //毫秒延時(shí)函數(shù) } a=key_val; IE0=0; //清中斷標(biāo)志 EX0=1; //開中斷 }

/***********中斷設(shè)置函數(shù)***************/ void int_set() { TMOD=0x21; //0010 0001使用定時(shí)器T0的模式1(16位模式),定時(shí)器T1的模式2(8位模式) TH0=0; //設(shè)定初值 TL0=0; TR0=0; //暫時(shí)不啟動(dòng)定時(shí)器T0 /****************************************************/ TH1=256-13; //設(shè)定初值 TL1=256-13; PT1=1; //T1中斷優(yōu)先級(jí)設(shè)為高 TR1=0; //暫時(shí)不啟動(dòng)定時(shí)器T1 ET1=1; //開T1中斷 /****************************************************/ IT0=1; //外中斷0為負(fù)邊沿觸發(fā)方式 EX0=1; //開外中斷INT0 /****************************************************/ IT1=1; //外中斷1為負(fù)邊沿觸發(fā)方式 EX1=0; //暫時(shí)不使用外中斷INT1(先關(guān)閉) EA=1; //開總中斷 } /**********ch451初始化函數(shù)************/ void ch451_initial() { ch451_din = 0; //資料固定要求 ch451_din = 1; ch451_load = 1; ch451_clk = 1; } /********向ch451寫入命令的函數(shù)********/ void wr_ch451(uint com) { uchar i; EX0=0; //關(guān)中斷 ch451_load=0; //準(zhǔn)備傳送命令 for(i=0;i<12;i++) //向ch451送入命令(共12位,低位在前) { ch451_din=com&0x01; ch451_clk=0; com>>=1; ch451_clk=1; //上升沿送入 } ch451_load=1; //加載命令 EX0=1; //開中斷 }


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

您好,按下按鍵的時(shí)候用示波器檢查一下dout腳是否有低電平產(chǎn)生,在你讀完鍵之后查看一下這個(gè)腳的電平是否恢復(fù)為高電平,還有你的light跟你的單片機(jī)是怎么連接的?請(qǐng)把你的問題都集中到這個(gè)帖子里面。


我這沒有示波器,我用的單片機(jī)開發(fā)板做的測試,light流水燈都已經(jīng)連接好了。我做測試就是想知道ch452L怎么和單片機(jī)連接才能掃描按鍵。我用一個(gè)按鍵連1k電阻連DIG,另一腳連SEG。ch452L的dout接的單片機(jī)P3.2,din、load和dclk接的單片機(jī)其他的三個(gè)引腳。然后vcc接正,GND接地,沒有接電容。連接完成后,按鍵后就是沒有變化。


您好,main函數(shù)開始,加50ms延時(shí),留給我們芯片足夠的上電復(fù)位時(shí)間。完整的連接方式見下圖。如果還有問題的話請(qǐng)電話聯(lián)系我。


單片機(jī)與CH452完整連接圖


圖沒有傳上來啊


2013211342689.jpg


謝謝


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

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