紅外檢測
單片機源程序如下:
- //注意程序只做參考之用,要達到最理想的效果,還需要同學們細心調試。
- //控制板跳線帽接法
- //J6-1 P1.0至P1.7 IO口處跳線帽全部接上
- //如果程序中有PWM功能,需要把J6-2 下排焊針用杜邦線接到 P0.0 P0.1 P0.2 P0.3 IO口上--詳細看課件說明
- #include<AT89X52.H> //包含51單片機頭文件,內部有各種寄存器定義
- #include<HJ-4WD_PWM.H> //包含HJ-4WD藍牙智能小車驅動IO口定義等函數
- #include<XIANSHI.H>
- #define uchar unsigned char
- unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- unsigned char xianshi[4]={0xff,0xff,0xff,0xff};
- unsigned char a=0;
- unsigned int cnt=0;
- unsigned long sec=0;
-
-
-
- //主函數
- void main(void)
- {
-
- unsigned char i;
- P1=0X00; //小車停止
- TMOD=11;
-
- TH1=0XFC;
- TL1=0X67;
- TH0=0XFc; //1Ms定時
- TL0=0X18;
- TR0=1;
- ET0=1;
- TR1=1;
- ET1=1;
- EA = 1;
-
- while(1) //無限循環
- {
-
- //有信號為0 沒有信號為1
-
-
-
-
- if(TF1==1)
- {
- TF1=0;
- TH1=0XFC;
- TL1=0X67;
- cnt++;
- if(cnt>=8000)
- {
- cnt=0;
- sec++;
- xianshi[0]=table[sec%10];
- xianshi[1]=table[sec/10%10];
- xianshi[2]=table[sec/100%10];
- xianshi[3]=table[sec/1000%10];
-
- }
- if(i==0){P2=0xf7;i++;P0=xianshi[0];}
- else if(i==1){P2=0xfb;i++;P0=xianshi[1];}
- else if(i==2){P2=0xfd;i++;P0=xianshi[2];}
- else if(i==3){P2=0xfe;i=0;P0=xianshi[3];}
- }
- if(Left_X_led==0&&Right_X_led==0) //白線
- run();
- else
- {
- if(Left_X_led==0&&Right_X_led==1) //左邊檢測到紅外
- {
-
- Left_moto_go; //左邊兩個電機正轉
- Right_moto_Stop;
-
- }
-
- if(Right_X_led==0&&Left_X_led==1) //右邊檢測到紅外
- {
-
- Right_moto_go; //右邊兩個電機正轉
- Left_moto_Stop;
- }
- }
- }
-
-
-
-
- }
復制代碼
所有資料51hei提供下載:
小車.zip
(31.99 KB, 下載次數: 8)
2018-12-12 20:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|