含紅外循跡、避障、超聲波避障、藍牙等程序
有單獨分開的和整合的
所有資料51hei提供下載:
小車程序.zip
(242.8 KB, 下載次數: 321)
2017-9-30 21:40 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
部分單片機源程序如下:
- /****************************************************************************
- 硬件連接
- P1_6 接驅動模塊ENA 使能端,輸入PWM信號調節速度
- P1_7 接驅動模塊ENB 使能端,輸入PWM信號調節速度
- ****************************************************************************/
- #include<reg52.h>
- sbit Left_moto_pwm= P2^6;
- sbit Right_moto_pwm=P2^7;
- unsigned char pwm_val_left =0;//變量定義
- unsigned char pwm_val_right =0;
- unsigned char push_val_left =0;// 左電機占空比N/10
- unsigned char push_val_right=0;// 右電機占空比N/10
- /************************************************************************/
-
- /************************************************************************/
- /* PWM調制電機轉速 */
- /************************************************************************/
- /* 左電機調速 */
- /*調節push_val_left的值改變電機轉速,占空比 */
- void pwm_out_left_moto(void)
- {
- if(pwm_val_left<=push_val_left)
- Left_moto_pwm=1;
- else
- Left_moto_pwm=0;
- if(pwm_val_left==10)
- pwm_val_left=0;
- }
- /******************************************************************/
- /* 右電機調速 */
- void pwm_out_right_moto(void)
- {
- if(pwm_val_right<=push_val_right)
- Right_moto_pwm=1;
- else
- Right_moto_pwm=0;
- if(pwm_val_right==10)
- pwm_val_right=0;
- }
- /***************************************************/
- ///*TIMER0中斷服務子函數產生PWM信號*/
- void timer0()interrupt 1
- {
- TH0=(65536-400)/256; //400us定時
- TL0=(65536-400)%256;
- pwm_val_left++;
- pwm_val_right++;
- pwm_out_left_moto();
- pwm_out_right_moto();
- }
- /**************************************************
- 主函數
- **************************************************/
- void main()
- {
- TMOD=0X01;
- TH0=(65536-100)/256;
- TL0=(66536-100)%256;
- EA=1;
- ET0=1;
- TR0=1;
- push_val_left =6; //PWM 調節參數1-10 1為最慢,10是最快 改這個值可以改變其速度
- push_val_right =6; //PWM 調節參數1-10 1為最慢,10是最快 改這個值可以改變其速度
- while(1);
- }
復制代碼
|