新手上路 
 
	- 积分
 - 43
 
        - 金钱
 - 43 
 
       - 注册时间
 - 2011-11-12
 
      - 在线时间
 - 1 小时
 
 
 
 | 
 
5金钱 
#define uchar unsigned char 
#include <reg51.h> 
                                        //PT2262發出訊號,PT2274L4接收D0-D3 
                                        //D0-D3連接8051 P2.0-P2.3 
                                        //收到P2.0 -P2.3的4位組合 P2.4或P2.5輸出=0 / 1         
                                        //P0 控制7劃管出字,P1控制位選,出0亮 
 
sbit P24=P2^4;                //8051 輸出 
sbit P25=P2^5;                //8051 輸出 
sbit PUL=P2^6;                //頻率 
sbit DIR=P2^7;                //方向 
sbit EN=P3^7;         
/*******************************共陽LED段碼表*******************************/ 
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; 
 
/*********************************端口定義**********************************/ 
char dat;                        //接收到的數據 
//int Num;                        //步進數                          
/*********************************時間控制**********************************/  
 
/*********************************延時控制**********************************/ 
void delay(unsigned int count)      /*定義延遲函數*/ 
{ 
        unsigned int m,n; 
    for(m=0;m<count;m++) 
                  for(n=0;n<9;n++); 
} 
/*********************************步數控制**********************************/                             
void Move(void) 
{         
        PUL=1; 
        delay(5); 
        PUL=0; 
        delay(5); 
}         
void Forward (void) 
{ 
        int i; 
        DIR=1; 
        for(i=0;i<100;i++)                        // 
        Move();                         
} 
void Backward (void) 
{ 
        int i; 
        DIR=0; 
        for(i=0;i<98;i++)                // 
        Move(); 
} 
 
/******************************主程序**************************************/ 
void main(void) 
{ 
        P1=0x00;                                                //端口初始化 
          P0=0x00;                                                //端口初始化 
        P2=0xff;                                                       //置輸入狀態 
         
while(1) 
{ 
        dat=(P2&0x0f);                                        //00001111         
        if(dat==0x08)                                        //先按A 顯示1 燈亮 通道 開        0000 1000 
                { 
                                 
                        P0=tab[1];                                        //數碼顯示  
                        P1=0xfe;                                        //1111 1110 
                        P24=0;                                                 //燈亮         
                                Forward(); 
                                while (P2&0x08) 
                                 { 
                                 }         
                } 
         
         if(dat==0x04)                                        //再按B建 顯示2 燈滅  通道 關         0000 0100 
                { 
                        P0=tab[2];                                        //數碼顯示 
                        P1=0xfd;                                         //1111 1101 
                        P24=1;                                                //關燈 
                                Backward(); 
                                while (P2&0x04) 
                                 { 
                                } 
                } 
                 
         if(dat==0x02)                                        //按C鍵 顯示3 燈亮 通道 開         0000 0010 
                { 
                        P0=tab[3];                                        //數碼顯示 
                        P1=0xfb;                                        //1111 1011 
                        P25=0;                                          //燈亮 
                                Forward(); 
                                delay(1000); 
                                Backward(); 
                                while(P2&0x02); 
                                { 
                                } 
                                 
                                                 
                } 
        if(dat==0x01)                                        //再按D鍵 顯示4 通道 關             0000 0001                 
                {         
                        P0=tab[4]; 
                        P1=0xf7;                                          //1111 0111 
                        P25=1;                                                //關燈 
                                Forward(); 
                                delay(5000); 
                                delay(5000); 
                                delay(5000); 
                                delay(5000); 
                                Backward(); 
                                while(P2&0x01); 
                                { 
                                } 
        }                 
        } 
} |   
 
 
 
 
 
 |