完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
左右两个光电开关检测小车前方是否有障碍墙(光电开关用键控代替)。超声波让小车微调,走赛道的正中间。舵机控制小车前轮的左右转动(两个程序通过控制舵机左右蔽障),两个程序分开都能用,但和在一起后舵机不动了(keil软件提示没有警告和错误)。求大神看看我的程序是不是有哪里不对~~
PS:单片机用的是89c52. |
|
相关推荐
13个回答
|
|
以下是程序:
|
|
|
|
到底哪里错了?!!!!
|
|
|
|
急求回复!
|
|
|
|
有人不??
|
|
|
|
现在的坛友非常珍惜自己的积分 楼主还是将程序截图上传吧
|
|
|
|
主程序:
#include #include #include "delay.h" #include"count.h" #include"duozhuan.h" ***it P1_0 = P1^0; // PWM 脉冲输出 unsigned char counter = 0; // 计数的 unsigned char Set_PWM0=14; unsigned char flag; unsigned char tt1; uint S,time; /********************************************************/ void time1()interrupt 3 using 2 { TH1=(65536-100)/256; //100US定时 TL1=(65536-100)%256; counter++; if(counter >= 200) counter=0; // PWM 16级 可以修改 if(counter >= Set_PWM0) P1_0 = 0; else P1_0 = 1; } /********************************************************/ void Timer0() interrupt 1 //T0中断用来计数器溢出,超过测距范围 { flag=1; //中断溢出标志 } /*********************************************************/ void main(void) { while(1) { TMOD=0x11; //设T0为方式1,GATE=1; TH0=0; TL0=0; TH1=(65536-100)/256; TL1=(65536-100)%256; TR1= 1; ET1= 1; ET0= 1; EA = 1; delay(100); Set_PWM0=14; //舵机归中 while(1) { leftrun(); rightrun(); zheng(); COMM(); } } } |
|
|
|
舵机子程序:
#include #include #include "delay.h" #include"count.h" #include"duozhuan.h" void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.56672)/100; //晶振11.0592算出来是CM } void StartModule() //启动模块 { Trig=1; //启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); Trig=0; } /********************************************************/ void COMM(void) { StartModule(); while(!Echo); //当Echo为零时等待 TR0=1; //开启计数 while(Echo); //当Echo为1计数并等待 TR0=0; //关闭计数 Conut(); //计算 delay(80); //80MS if(S>50) { rightweirun(); } if(S>120) { leftweirun(); } } |
|
|
|
|
|
|
|
超声波头文件:
#ifndef __COUNT_H__ #define __COUNT_H__ #define uchar unsigned char #define uint unsigned int ***it Echo = P2^1; // 回波引脚 rx ***it Trig=P2^0; extern uint S,time; void Conut(void); void StartModule(); void COMM(void); #endif |
|
|
|
舵机控制子程序:
#include #include #include "delay.h" #include"duozhuan.h" /********************************************************/ /*左微调 */ void rightweirun(void) { Set_PWM0=Set_PWM0+6; delay(400); Set_PWM0=Set_PWM0-6; } /*****************************************************/ /*右微调 */ void leftweirun(void) { Set_PWM0=Set_PWM0-6; delay(4000); Set_PWM0=Set_PWM0+6; } /*********************************************************/ /*左转回正*/ void leftrun(void) { if(key10==0&& tt1==0) { delay(3); if(key10==0&& tt1==0) { tt1=1; Set_PWM0=Set_PWM0+6; delay(4000); Set_PWM0=Set_PWM0-6; delay(4000); Set_PWM0=Set_PWM0-6; delay(4000); Set_PWM0=Set_PWM0+6; } } } /*********************************************************/ /*右转回正*/ void rightrun(void) { if(key11==0&& tt1==0 ) { delay(3); if(key11==0&& tt1==0) { tt1=1; Set_PWM0=Set_PWM0-6; delay(4000); Set_PWM0=Set_PWM0+6; delay(4000); Set_PWM0=Set_PWM0+6; delay(4000); Set_PWM0=Set_PWM0-6; } } } /*********************************************************/ /*无高信号回来*/ void zheng(void) { if(key10==1 && key11==1) tt1=0; } /*********************************************************/ |
|
|
|
舵机控制头文件:
#ifndef __DUOZHUAN_H__ #define __DUOZHUAN_H__ #define uchar unsigned char #define uint unsigned int extern unsigned char Set_PWM0; // 占空比调整 extern unsigned char tt1; ***it key10=P3^2; ***it key11=P3^3; void rightweirun(void); void leftweirun(void); void leftrun(void); void rightrun(void); void zheng(void); #endif |
|
|
|
没人来!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
应该是电源问题,我之前遇到过,分别可以工作,连起来经常出问题
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【每周推荐】采用11代Intel CPU,基于youyeetoo X1开发板搭建少儿AI智能STEAM积木平台
776 浏览 0 评论
2265 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
2124 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
1682 浏览 0 评论
2786 浏览 3 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
5505 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-19 10:33 , Processed in 0.493783 second(s), Total 51, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号