大一的時候在智能車實驗室 做的 c51 光電循跡小車源碼 與大家分享下
電路原理圖如下:
布線1.jpg (287.77 KB, 下載次數(shù): 56)
下載附件
2019-12-26 14:10 上傳
布線2.jpg (243.61 KB, 下載次數(shù): 54)
下載附件
2019-12-26 14:10 上傳
單片機最小系統(tǒng).JPG (129.8 KB, 下載次數(shù): 50)
下載附件
2019-12-26 14:10 上傳
0ff41bd5ad6eddc4d1a7d46c3bdbb6fd536633e0.jpg (66.06 KB, 下載次數(shù): 51)
下載附件
2019-12-26 14:10 上傳
2f738bd4b31c87014c61a488247f9e2f0608ff8d.png (49.48 KB, 下載次數(shù): 46)
下載附件
2019-12-26 14:10 上傳
單片機源程序如下:
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define spy P0
- /*左電機*/
- sbit in1=P2^3;
- sbit in2=P2^2;
- sbit ena=P2^6;
- /*右電機*/
- sbit in3=P2^0;
- sbit in4=P2^7;
- sbit enb=P2^1;
- //傳感器
- sbit L_1=P0^1; //左內(nèi)
- //sbit L_2=P0^2 ; //左外
- sbit R_1=P0^0; //右內(nèi)
- //sbit R_2=P0^3; //右外
- uchar i=0,j=0;
- uint m1=95,m2=95;
- void int0()
- {
- TMOD=0x11;
- TH0=(65535-100)/256;
- TL0=(65535-100)%256;
- TH1=(65535-100)/256;
- TL1=(65535-100)%256;
- EA=1; //總中斷
- ET0=1; //定時器T0
- TR0=1; //允許T0中斷
- ET1=1; //定時器T1
- TR1=1; //允許T1中斷
- ena=1;
- enb=1;
- }
- void main(void)
- {
- int0();
- in1=1;
- in2=0;
- in3=1;
- in4=0;
- spy=0xff;
- while(1)
- {
- switch(spy)
- {
- case(0xff):m1=9;m2=9;break; //直行
- // case(0xfb):m1=5;m2=15;break; //強力左轉(zhuǎn)
- // case(0xf7):m1=15;m2=5;break; //強力右轉(zhuǎn)
- case(0xfd):m1=1;m2=8;break; //左轉(zhuǎn)
- case(0xfe):m1=8;m2=1;break; //右轉(zhuǎn)
- case(0xfc):m1=0;m2=0;break;
- }
- }
- }
- void t0(void) interrupt 1 //控制左電機 m1
- {
- TH0=(65535-1)/256;
- TL0=(65535-1)%256;
- i++;
- if(i<=m1)
- {
- ena=1;
- }
- else ena=0;
- if(i>10)
- {
- i=0;
- }
- }
- void t1(void) interrupt 3 //控制右電機 m2
- {
- TH1=(65535-1)/256;
- TL1=(65535-1)%256;
- j++;
- if(j<=m2) //PWM占空比m2/21
- {
- enb=1;
- }
- else enb=0; //PWM周期21*500us
- if(j>10)
- {
- j=0;
- }
- }
復制代碼
所有資料51hei提供下載:
循跡小車.7z
(93.11 KB, 下載次數(shù): 32)
2019-12-26 14:12 上傳
點擊文件名下載附件
C51循跡小車源碼 下載積分: 黑幣 -5
|