求助!我用P89LPC935一直點不亮CH452??

基本情況:935工作在6MHz下,指令執(zhí)行時間2-4個時鐘周期,6倍與標(biāo)準(zhǔn)80C51 CH452我選共陰接法,目前用3.3V 935與CH452的接口我用過準(zhǔn)雙向口,推挽輸出,開漏輸出(上拉1k電阻),都不行 程序我用的就是那個例子程序 如下: #include "Reg935.h" #include

#define uchar unsigned char #define uint unsigned int

//4線接口的連接,與實際電路有關(guān) sbit CH452_DCLK = P1^7; //串行數(shù)據(jù)時鐘上升延激活 sbit CH452_DIN = P1^6; //串行數(shù)據(jù)輸出,接CH452的數(shù)據(jù)輸入 sbit CH452_LOAD1 = P1^4; //串行命令1加載,上升延激活 //sbit CH452_LOAD2 = P1^3; //串行命令2加載,上升延激

//4線接口的位操作,與單片機(jī)有關(guān) #define CH452_DCLK_SET {CH452_DCLK = 1;} #define CH452_DCLK_CLR {CH452_DCLK = 0;} #define CH452_DIN_SET {CH452_DIN = 1;} #define CH452_DIN_CLR {CH452_DIN = 0;} #define CH452_LOAD1_SET {CH452_LOAD1 = 1;} #define CH452_LOAD1_CLR {CH452_LOAD1 = 0;} //#define CH452_LOAD2_SET {CH452_LOAD2 = 1;} //#define CH452_LOAD2_CLR {CH452_LOAD2 = 0;}

//CH452的常用命令碼 #define CH452_NOP 0x0000 //空操作 #define CH452_RESET 0x0201 //復(fù)位 #define CH452_LEVEL 0x0100 //加載光柱值 #define CH452_CLR_BIT 0x0180 //段位清0 #define CH452_SET_BIT 0x01C0 //段位置1 #define CH452_SLEEP 0x0202 //進(jìn)入睡眠狀態(tài)

#define CH452_LEFTMOV 0x0300 //設(shè)置移動方式-左移 #define CH452_LEFTCYC 0x0301 //設(shè)置移動方式-左循 #define CH452_RIGHTMOV 0x0302 //設(shè)置移動方式-右移 #define CH452_RIGHTCYC 0x0303 //設(shè)置移動方式-右循 #define CH452_SELF_BCD 0x0380 //自定義BCD碼

#define CH452_SYSOFF 0x0400 //關(guān)顯示、鍵盤 #define CH452_SYSON1 0x0401 //開顯示 #define CH452_SYSON2 0x0403 //開顯示、鍵盤 #define CH452_SYSON2W 0x0423 //開顯示、鍵盤,真正2線接口

#define CH452_DSP 0x0500 //設(shè)置默認(rèn)顯示方式 #define CH452_BCD 0x0580 //設(shè)置BCD譯碼方式 #define CH452_TWINKLE 0x0600 //設(shè)置閃爍控制 #define CH452_GET_KEY 0x0700 //獲取按鍵

#define CH452_DIG0 0x0800 //數(shù)碼管位0顯示 #define CH452_DIG1 0x0900 //數(shù)碼管位1顯示 #define CH452_DIG2 0x0a00 //數(shù)碼管位2顯示 #define CH452_DIG3 0x0b00 //數(shù)碼管位3顯示 #define CH452_DIG4 0x0c00 //數(shù)碼管位4顯示 #define CH452_DIG5 0x0d00 //數(shù)碼管位5顯示 #define CH452_DIG6 0x0e00 //數(shù)碼管位6顯示 #define CH452_DIG7 0x0f00 //數(shù)碼管位7顯示

/*********************************************************************************************/

void delaynus(uchar n) { uchar i; for(i=n; i>0; i--) { _nop_(); _nop_(); _nop_(); /* _nop_(); _nop_(); _nop_();*/ } }

void delayms(uchar n) { uchar i,j; for(i=n; i>0; i--) { for(j=0; j<720; j++) ; } }

//輸出命令子程序1 void CH452_Write1(unsigned int cmd) { uchar i;

CH452_LOAD1_CLR; for(i=0; i<12; i++) { if(cmd & 1) { CH452_DIN_SET; } else { CH452_DIN_CLR; } CH452_DCLK_CLR; cmd >>= 1; CH452_DCLK_SET; } CH452_LOAD1_SET; delaynus(6); }

//輸出命令子程序2 /*void CH452_Write2(unsigned int cmd) { uchar i;

CH452_LOAD2_CLR; for(i=0; i!=12; i++) { if(cmd & 1) { CH452_DIN_SET; } else { CH452_DIN_CLR; } CH452_DCLK_CLR; cmd >>= 1; CH452_DCLK_SET; } CH452_LOAD2_SET; delaynus(6); }*/

/*********************************************************************************************/ //主函數(shù) void main(void) { delayms(10);

P1M1 |= 0xD0; P1M2 |= 0xD0;

CH452_Write1(CH452_SYSON1); CH452_Write1(CH452_BCD | 0x30);

while(1) {

CH452_Write1(CH452_DIG5 | 5); CH452_Write1(CH452_DIG6 | 6); CH452_Write1(CH452_DIG7 | 7); delayms(10); } }

我的系統(tǒng)要驅(qū)動兩片CH452,試驗我只用了一片。

基本情況如上,望高手指點!

上電后935的P17,P16,P14一直被CH452拉到3.3V左右,單片機(jī)沒有任何動作 CH452的端口情況,我只接了dig5,6,7到數(shù)碼管。dig01234懸空 seg0-7為0 RST懸空 dig567和H3L2為3.3V左右,LOAD,DIN,DCLK也為3.3V


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

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