专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
我刚接触单片机下面这个小车的电路图帮我看看吧
2020-02-05 09:27
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
13079
16
16
忙我看看无线信号接收模块怎么接单片机啊,还有程序可以用吗,我只要简单地前进后退左右转
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
zhangjiusheng
1楼-- · 2020-02-05 12:06
程序
#define uint unsigned int
#define uchar unsigned char
void delay(uchar);
/*************位声明函数**************/
sbit in1=P0^1;//控制左边轮子
sbit in2=P0^2;
sbit in3=P0^4;//控制右边轮子
sbit in4=P0^5;
sbit ena=P0^0;//使能左边轮子
sbit enb=P0^3;//使能右边轮子
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar pwm1,pwm2,a,b,flag=0;
/*************初始化函数**************/
void init_t0()
{
TMOD=0X01;
TH0=(65536-6000)/256;
TL0=(65536-6000)%256;
EA=1;
ET0=1;
TR0=1;
}
/********前进函数*****/
void qianjin()
{
in1=0;
in2=1;
in3=0;
in4=1;
ena=1;
enb=1;
a=19;
while(1)
{
if(pwm1==a)
{
ena=0;
enb=0;
}
if(pwm1==20)
{
pwm1=0;
ena=1;
enb=1;
}
while(~P0)
// delay(5);
// while(~P0)
return;
}
}
/********后退函数*****/
void houtui()
{
in1=1;
in2=0;
in3=1;
in4=0;
ena=1;
enb=1;
a=19;
while(1)
{
if(pwm1==a)
{
ena=0;
enb=0;
}
if(pwm1==20)
{
pwm1=0;
ena=1;
enb=1;
}
while(~P0)
// delay(5);
// while(~P0)
return;
}
}
/*************控制右转函数**************/
void controlright()
{
in1=0;
in2=1;
in3=0;
in4=1;
ena=1;
enb=1;
while(1)
{
a=19;b=0;
if(pwm1==a)
{
ena=0;
}
if(pwm1==20)
{
pwm1=0;
ena=1;
}
if(pwm2==b)
{
enb=0;
}
if(pwm2==20)
{
pwm2=0;
enb=1;
}
while(~P0)
// delay(5);
// while(~P0)
return;
}
}
/*************控制左转函数**************/
void controlleft()
{
in1=0;
in2=1;
in3=0;
in4=1;
ena=1;
enb=1;
while(1)
{
a=0;b=19;
if(pwm1==a)
{
ena=0;
}
if(pwm1==20)
{
pwm1=0;
ena=1;
}
if(pwm2==b)
{
enb=0;
}
if(pwm2==20)
{
pwm2=0;
enb=1;
}
while(~P0)
// delay(5);
// while(~P0)
return;
}
}
/*************主函数**************/
void main()
{
init_t0();
while(1)
{
if(key1==0)
{
delay(5);
if(key1==0)
{
// while(!key1);
// delay(5);
// while(!key1);
flag=0;
}
}
if(key2==0)
{
delay(5);
if(key2==0)
{
// while(!key2);
// delay(5);
// while(!key2);
flag=1;
}
}
if(key3==0)
flag=2;
if(key4==0)
flag=3;
switch(flag)
{
case 0:qianjin();
break;
case 1:houtui();
break;
case 2: controlright();
break;
case 3: controlleft();
break;
}
}
}
/*************定时器0中断1工作方式**************/
void timer0()interrupt 1
{
TH0=(65536-6000)/256;
TL0=(65536-6000)%256;
pwm1++;
pwm2++;
}
void delay(uchar z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
加载中...
jjj2012
2楼-- · 2020-02-05 12:56
程序如上,
但是不是我写的,哈哈
加载中...
xinzhi1986
3楼-- · 2020-02-05 13:35
各种毕业设计啊。。。我有现成的,哈哈,要不?卖你~
加载中...
nanning2011
4楼-- · 2020-02-05 19:35
这个没有用到无线传输吧!至少程序上没有用到的!!!
加载中...
zhangjiusheng
5楼-- · 2020-02-06 00:18
精彩回答 2 元偷偷看……
加载中...
zhangjiusheng
6楼-- · 2020-02-06 00:31
nanning2011 发表于 2012-5-8 19:33
这个没有用到无线传输吧!至少程序上没有用到的!!!
不是程序上没用到的事,无线接收输出高电平可以控制单片机引脚高低电平
加载中...
1
2
3
下一页
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
东软载波ESF0654 PDS开发板串口USART0代码分享
1 个回答
普通32位单片机使用linux的应用代码
5 个回答
东软载波ESF0654 PDS开发板AT24C04的调试
9 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#define uint unsigned int
#define uchar unsigned char
void delay(uchar);
/*************位声明函数**************/
sbit in1=P0^1;//控制左边轮子
sbit in2=P0^2;
sbit in3=P0^4;//控制右边轮子
sbit in4=P0^5;
sbit ena=P0^0;//使能左边轮子
sbit enb=P0^3;//使能右边轮子
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar pwm1,pwm2,a,b,flag=0;
/*************初始化函数**************/
void init_t0()
{
TMOD=0X01;
TH0=(65536-6000)/256;
TL0=(65536-6000)%256;
EA=1;
ET0=1;
TR0=1;
}
/********前进函数*****/
void qianjin()
{
in1=0;
in2=1;
in3=0;
in4=1;
ena=1;
enb=1;
a=19;
while(1)
{
if(pwm1==a)
{
ena=0;
enb=0;
}
if(pwm1==20)
{
pwm1=0;
ena=1;
enb=1;
}
while(~P0)
// delay(5);
// while(~P0)
return;
}
}
/********后退函数*****/
void houtui()
{
in1=1;
in2=0;
in3=1;
in4=0;
ena=1;
enb=1;
a=19;
while(1)
{
if(pwm1==a)
{
ena=0;
enb=0;
}
if(pwm1==20)
{
pwm1=0;
ena=1;
enb=1;
}
while(~P0)
// delay(5);
// while(~P0)
return;
}
}
/*************控制右转函数**************/
void controlright()
{
in1=0;
in2=1;
in3=0;
in4=1;
ena=1;
enb=1;
while(1)
{
a=19;b=0;
if(pwm1==a)
{
ena=0;
}
if(pwm1==20)
{
pwm1=0;
ena=1;
}
if(pwm2==b)
{
enb=0;
}
if(pwm2==20)
{
pwm2=0;
enb=1;
}
while(~P0)
// delay(5);
// while(~P0)
return;
}
}
/*************控制左转函数**************/
void controlleft()
{
in1=0;
in2=1;
in3=0;
in4=1;
ena=1;
enb=1;
while(1)
{
a=0;b=19;
if(pwm1==a)
{
ena=0;
}
if(pwm1==20)
{
pwm1=0;
ena=1;
}
if(pwm2==b)
{
enb=0;
}
if(pwm2==20)
{
pwm2=0;
enb=1;
}
while(~P0)
// delay(5);
// while(~P0)
return;
}
}
/*************主函数**************/
void main()
{
init_t0();
while(1)
{
if(key1==0)
{
delay(5);
if(key1==0)
{
// while(!key1);
// delay(5);
// while(!key1);
flag=0;
}
}
if(key2==0)
{
delay(5);
if(key2==0)
{
// while(!key2);
// delay(5);
// while(!key2);
flag=1;
}
}
if(key3==0)
flag=2;
if(key4==0)
flag=3;
switch(flag)
{
case 0:qianjin();
break;
case 1:houtui();
break;
case 2: controlright();
break;
case 3: controlleft();
break;
}
}
}
/*************定时器0中断1工作方式**************/
void timer0()interrupt 1
{
TH0=(65536-6000)/256;
TL0=(65536-6000)%256;
pwm1++;
pwm2++;
}
void delay(uchar z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
不是程序上没用到的事,无线接收输出高电平可以控制单片机引脚高低电平
一周热门 更多>