ch451使用出現(xiàn)的奇怪問題,請大蝦指點下

我用南京沁恒電子公司在網(wǎng)上的提供的程序測試過,硬件沒問題.但用我的程序的時候出現(xiàn)一個奇怪的問題,就是顯示的時候,會出現(xiàn)要顯示的值和0交替顯示.程序如下,請大蝦看看. #include #include #define uchar unsigned char #define uint unsigned int #define CH451_SYSON2 0x0403 //開顯示、鍵盤 #define CH451_SYSON3 0x0407 //開顯示、鍵盤、看門狗功能 #define CH451_DSP 0x0500 //設置默認顯示方式 #define CH451_BCD 0x0580 //設置BCD譯碼方式 #define CH451_TWINKLE 0x0600 //設置閃爍控制 #define CH451_DIG0 0x0800 //數(shù)碼管位0顯示 #define CH451_DIG1 0x0900 //數(shù)碼管位1顯示 #define CH451_DIG2 0x0a00 //數(shù)碼管位2顯示 #define CH451_DIG3 0x0b00 //數(shù)碼管位3顯示 #define CH451_DIG4 0x0c00 //數(shù)碼管位4顯示 #define CH451_DIG5 0x0d00 //數(shù)碼管位5顯示 #define CH451_DIG6 0x0e00 //數(shù)碼管位6顯示 #define CH451_DIG7 0x0f00 //數(shù)碼管位7顯示 sbit ch451_dclk=P0^3; //串行數(shù)據(jù)時鐘上升延激活 sbit ch451_din=P0^5; // 串行數(shù)據(jù)輸出,接CH451的數(shù)據(jù)輸入 sbit ch451_load=P0^7; //串行命令加載,上升延激活 sbit ch451_load0=P0^0; sbit ch451_dout=P0^1; sbit sclk=P1^4; sbit cs=P1^5; sbit din=P3^3; sbit dout=P1^2; sbit sstrb=P2^0; sbit vari1=P2^1; sbit vari0=P2^3; uchar key; int mv; unsigned char ms=0; void timer0_inint(void) { TMOD=0x01; TL0=0x00; TH0=0x00; EA=1; ET0=1; TR0=1; } void timer0_max186() interrupt 1 {TR0=0; TL0=0x00; TH0=0x00; ms++; TR0=1; } void ch451_write0(unsigned int command) //寫指令 { unsigned char i; ch451_load0=0; //命令開始 for(i=0;i<12;i++) { //送入12位數(shù)據(jù),低位在前 ch451_din=command&0x01; ch451_dclk=0; command>>=1; ch451_dclk=1; //上升沿有效

} ch451_load0=1; //加載數(shù)據(jù)

} void ch451_init0() { ch451_din=0; //先低后高,選擇4線輸入 ch451_din=1; ch451_write0(0x580); ch451_write0(0x401); } void main (void) {uchar temp; ch451_init0(); timer0_inint(); while(1) { if(ms>10) { ms=0; mv=324; } temp=mv/100; if(temp==0) ch451_write0(CH451_DIG1|0x10); else ch451_write0(CH451_DIG1|temp); temp=mv%100/10; if(temp==0) { mv=abs(mv); if(mv<100) ch451_write0(CH451_DIG2|0x10); else ch451_write0(CH451_DIG2|0x00); } else ch451_write0(CH451_DIG2|temp); temp=mv%100%10; ch451_write0(CH451_DIG3|temp); ch451_write0(CH451_DIG4|0x10); ch451_write0(CH451_DIG5|0x10); ch451_write0(CH451_DIG6|0x10); } }

在運行過程中就一下顯示324,一下顯示0,不知為何.

建議在CH451的VCC和GND間加100uF的電容。 或者 if(ms>10) { ms=0; mv=324; } 后面加5ms延時試試。


高手@@


高手@@


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

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