這是我之前做小車比賽用到的源程序有常用函數
各個模塊的源代碼
0.jpg (38.36 KB, 下載次數: 107)
下載附件
2018-4-27 02:40 上傳
1、常用函數
2、智能小車前進實驗
3、智能小車前進后退左轉右轉綜合實驗
4、程序可讀性優化
5、按鍵選擇智能小車功能演示
6、PWM電機調速
7、按鍵調節LED燈亮度
8、獨立按鍵調節小車行駛速度
單片機源程序如下:
- /*********************************************************************************
- * 【實驗平臺】: QX-MCS51 單片機開發板 & QX-A51智能小車
- * 【外部晶振】: 11.0592mhz
- * 【主控芯片】: STC89C52
- * 【編譯環境】: Keil μVisio4
- * ********************************【接線說明】********************************
- 以下"A_"表示智能小車底板~~~"B_"表示開發板
- *開發板供電線 :A_J5-VCC~~~B_VCC或5V0 A_J6-GND~~~B_GND (一共使用2根杜邦線)
- *電機控制線 :A_J10-P1.2至P1.7 對應接到B_P1.2至P1.7 (一共使用6根杜邦線)
- *避障尋跡反饋線:A_J11-P3.2至P3.5 對應接到B_P3.2至P3.5 (一共使用4根杜邦線)
- ******************************************************************************
- * 【程序功能】:智能小車前進后退左轉右轉綜合實驗
- * 【使用說明】:接線無誤后,燒寫程序打開電源開關小車全速前進-后退-右轉-左轉-停止
- * 【注意事項】:避免小車撞向障礙物或小車輪子堵轉,小車電壓不能低于6V
- **********************************************************************************/
- #include <reg52.h>
- sbit IN1 = P1^2; //為1 左電機反轉
- sbit IN2 = P1^3; //為1 左電機正轉
- sbit IN3 = P1^6; //為1 右電機正轉
- sbit IN4 = P1^7; //為1 右電機反轉
- sbit EN1 = P1^4; //為1 左電機使能
- sbit EN2 = P1^5; //為1 右電機使能
- void delay(unsigned int z)//毫秒級延時
- {
- unsigned int x,y;
- for(x = z; x > 0; x--)
- for(y = 114; y > 0 ; y--);
- }
- void main()
- {
- //小車直行
- EN1 = 1; //為1 左電機使能
- EN2 = 1; //為1 右電機使能
- IN1 = 0;//為1 左電機反轉
- IN2 = 1;//為1 左電機正轉
- IN3 = 1;//為1 右電機正轉
- IN4 = 0;//為1 右電機反轉
- delay(3000);//毫秒級延時
- //小車停止
- EN1 = 0; //為1 左電機使能
- EN2 = 0; //為1 右電機使能
- delay(3000);//毫秒級延時
-
- //小車后退
- EN1 = 1; //為1 左電機使能
- EN2 = 1; //為1 右電機使能
- IN1 = 1;//為1 左電機反轉
- IN2 = 0;//為1 左電機正轉
- IN3 = 0;//為1 右電機正轉
- IN4 = 1;//為1 右電機反轉
- delay(3000);//毫秒級延時
-
- //小車停止
- EN1 = 0; //為1 左電機使能
- EN2 = 0; //為1 右電機使能
- delay(3000);//毫秒級延時
- //小車右轉
- EN1 = 1; //為1 左電機使能
- EN2 = 1; //為1 右電機使能
- IN1 = 0; //為1 左電機反轉
- IN2 = 1; //為1 左電機正轉
- IN3 = 0; //為1 右電機正轉
- IN4 = 0; //為1 右電機反轉
- delay(3000);//毫秒級延時
- //小車停止
- EN1 = 0; //為1 左電機使能
- EN2 = 0; //為1 右電機使能
- delay(3000);//毫秒級延時
- //小車左轉
- EN1 = 1; //為1 左電機使能
- EN2 = 1; //為1 右電機使能
- IN1 = 1; //為1 左電機反轉
- IN2 = 1; //為1 左電機正轉
- IN3 = 1; //為1 右電機正轉
- IN4 = 0; //為1 右電機反轉
- delay(3000);//毫秒級延時
- //小車停止
- EN1 = 0; //為1 左電機使能
- EN2 = 0; //為1 右電機使能
- while(1);
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
部分視頻
全部資料51hei下載地址:
模塊程序.zip
(7.78 MB, 下載次數: 146)
2018-4-26 22:04 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|