电脑如何用串口向单片机输入变量的值
我想通过电脑不断的输入变量数值来实时的控制电机(马达)的转动角度,来实现精确控制,比如一个循环,里面有个变量是未定义的,我想用电脑来定义,一开始单片机在等待输入,也就是类...
我想通过电脑不断的输入变量数值来实时的控制电机(马达)的转动角度,来实现精确控制,比如一个循环,里面有个变量是未定义的,我想用电脑来定义,一开始单片机在等待输入,也就是类似C语言的scanf 语句那样。然后把这个变量赋予循环的最大变量,就可以驱动电机转动起来了。
但是我不知道中间的那个(串口通信)函数怎么写。
for(i=0;i<x;i++) //4相 120度
{
P1=0x02;
delay_2us(500);
P1=0x04;
delay_2us(500);
P1=0x08;
delay_2us(500);
P1=0x10;
delay_2us(500);
}
while(1){} 展开
但是我不知道中间的那个(串口通信)函数怎么写。
for(i=0;i<x;i++) //4相 120度
{
P1=0x02;
delay_2us(500);
P1=0x04;
delay_2us(500);
P1=0x08;
delay_2us(500);
P1=0x10;
delay_2us(500);
}
while(1){} 展开
5个回答
展开全部
用VB做比较简单,用串口的控件实现串口通信
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
四位数字组合成的值大于256,是一个双字节数值,所以需要发送两次程序如下:
#include
unsigned char x;
main()
{
tmod=0x20
scon=0x50;
th1=0xfd;
tl1=0xfd;
tr1=1;
x=1234;
sbuf=x/256;
while(ti==0);
ti=0;
sbuf=x%256;
while(ti==0);
ti=0;
while(1);
}
#include
unsigned char x;
main()
{
tmod=0x20
scon=0x50;
th1=0xfd;
tl1=0xfd;
tr1=1;
x=1234;
sbuf=x/256;
while(ti==0);
ti=0;
sbuf=x%256;
while(ti==0);
ti=0;
while(1);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
中断法
TMOD=0X20;//设置定时器1为工作方式2
TH1=0XFD;//工作方式2下当TL1溢出时自动将TH1值重装给TL1
TL1=0XFD;//设置定时器1初值 波特率9600bps
TR1=1;//启动定时器1
SM0=0;//设置串行口工作方式为1
SM1=1;//设置串行口工作方式为1
REN=1;//允许串口接收
EA=1;//打开总中断
ES=1;//打开串口中断允许
主程序初始化串口
然后中断服务函数
void ser() interrupt 4
{
RI=0;//清除接收中断标志位
temp=SBUF;//将接收到的数据存入变量
switch(temp)
{
case 1:写点啥;break;
case 2:写点啥;break;
case 3:写点啥;break;
case 4:写点啥;break;
default :默认情况写点啥;break;
}
思路就是配合中断修改flag标记位值 在主程序 switch case 执行相关的内容
TMOD=0X20;//设置定时器1为工作方式2
TH1=0XFD;//工作方式2下当TL1溢出时自动将TH1值重装给TL1
TL1=0XFD;//设置定时器1初值 波特率9600bps
TR1=1;//启动定时器1
SM0=0;//设置串行口工作方式为1
SM1=1;//设置串行口工作方式为1
REN=1;//允许串口接收
EA=1;//打开总中断
ES=1;//打开串口中断允许
主程序初始化串口
然后中断服务函数
void ser() interrupt 4
{
RI=0;//清除接收中断标志位
temp=SBUF;//将接收到的数据存入变量
switch(temp)
{
case 1:写点啥;break;
case 2:写点啥;break;
case 3:写点啥;break;
case 4:写点啥;break;
default :默认情况写点啥;break;
}
思路就是配合中断修改flag标记位值 在主程序 switch case 执行相关的内容
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过这2根口线,你怎么和12864用在一起了呢?这不冲突吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议 去 百度文库 里搜搜
里面资料 非常多
里面资料 非常多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询