這是我寫的程序~ 我用它來控制一個繼電器~但是繼電器老是接通狀態(tài)~~只是我將P3_2接通是跳一下~求助怎么處理
#include "at89x51.h" unsigned char deng; sbit SJ=P1^4; void delay10ms(void) { unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); } void delay2s (void) {unsigned char i; for (i=10;i>0;i--) delay10ms();} void delay20s (void) { unsigned int i; for (i=100;i<0;i--); delay2s();} void main(void) { P2_7=1; P0=0xff; P2_7=0; //關數(shù)碼管 do{ if(P3_2==0) {delay10ms(); if(P3_2==0) deng=1;} if(P3_4==0) {delay10ms(); if (P3_4==0) deng=2;} if (P3_6==0) {delay10ms(); if (P3_6==0) deng=3;} if(deng==1) { SJ=0; P0=0xfe; P2_1=0; delay20s(); P0=~P0; delay2s(); } if(deng==2){ SJ=0; P0=0x00; P2_1=1; delay2s(); P0=0x18; delay2s(); P0=0x3c; delay2s(); P0=0x7e; delay2s(); P0=0xff; delay2s(); P0=0x7e; delay2s(); P0=0x3c; delay2s(); P0=0x18; delay2s(); P0=0xff; delay2s(); P0=0xff; delay2s(); P0=0x7f; delay2s(); P0=0x3f; delay2s(); P0=0x1f; delay2s(); P0=0x0f; delay2s(); P0=0x07; delay2s(); P0=0x03; delay2s(); P0=0x01; delay2s(); P0=0x00; delay20s(); P0=0xff; } if (deng==3) {P0=0x00;} } while(1); }
j8 我插上了~ 我按P3_2的時候繼電器會跳一下 后有接通了
那你的程序沒必要這么長啊 幾行就夠了
if(P3_2==0)
P2_1=0;
if(P3_2==0)
P2_1=1;
然后循環(huán)執(zhí)行就可以了.
admin 發(fā)表于 2011-5-29 22:30
P2^1 是51hei開發(fā)板的可控硅端口,而且要把跳線帽j8插上, P2^1=1的情況下可控硅會導通的 P2^1=0 則 ...
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |