|
- #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);
- {
- }
- }
- }
- }
複製代碼 |
|