51单片机控制智能小车设计报告内容摘要:

四、软件设计 、小车直行设计: 若要求小车直走,这需要给 4 个电机正转命令。 根据 L298N 芯片手册 EN A( B) IN1( IN3) IN2( IN4) 电机运行情况 H H L 正转 H L H 反转 H 同 IN2( IN4) 同 IN2( IN4) 快速停止 L X X 停止 、小车转弯设计: 若要求小车转弯,需要给一侧电机正转,一侧电机反转或者不旋转。 是否有键按下。 开始 检测按下哪个键。 运行 圆 形 运行 矩 形 运行 三角形 N Y 总体流程图 打转 S1 按下 S2 按下 S3 按下 S4 按下 单片机项目实验报告 第 9 页 共 18 页 、小车调速设计: 若要求车调速,只需用 PWM 来控制 L298N的 ENA 和 ENB 就可以对小车进行调速。 这里我 使用定时器 T0的工作模式 2 自动重装。 并赋初值 TH0=0xf6。 TL0=0xf6; 产生高频脉冲。 C 语言源代码实现: include sbit IN1=P2^5。 sbit IN2=P2^4。 sbit IN3=P2^3。 sbit IN4=P2^2。 sbit ENA=P2^1。 sbit ENB=P2^0。 sbit key1=P1^0。 sbit key2=P1^1。 sbit key3=P1^2。 sbit key4=P1^3。 void delay(unsigned int z)。 void delay_us(unsigned int aa)。 void delay2s(void) //误差 0us U T 单片机项目实验报告 第 10 页 共 18 页 { unsigned char a,b,c,n。 for(c=167。 c0。 c) for(b=39。 b0。 b) for(a=152。 a0。 a)。 for(n=1。 n0。 n)。 } void yuan() { while(1) { unsigned int i。 IN1=1。 IN2=0。 IN3=1。 IN4=0。 for(i=0。 i400。 i++) { delay(3)。 ENA=~ENA。 } } } void juxing() { while(1) { unsigned int i。 IN1=1。 IN2=0。 IN3=1。 IN4=0。 单片机项目实验报告 第 11 页 共 18 页 for(i=0。 i200。 i++) { delay(1)。 ENA=~ENA。 ENB=~ENB。 } delay2s()。 IN1=1。 IN2=0。 IN3=0。 IN4=0。 for(i=0。 i40。 i++)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。