含红外循迹、避障、超声波避障、蓝牙等程序
有单独分开的和整合的
所有资料51hei提供下载:
小车程序.zip
(242.8 KB, 下载次数: 321)
部分单片机源程序如下:
- /****************************************************************************
- 硬件连接
- 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);
- }
复制代码
|