电脑如何用串口向单片机输入变量的值

我想通过电脑不断的输入变量数值来实时的控制电机(马达)的转动角度,来实现精确控制,比如一个循环,里面有个变量是未定义的,我想用电脑来定义,一开始单片机在等待输入,也就是类... 我想通过电脑不断的输入变量数值来实时的控制电机(马达)的转动角度,来实现精确控制,比如一个循环,里面有个变量是未定义的,我想用电脑来定义,一开始单片机在等待输入,也就是类似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){}
展开
 我来答
sllstt
2011-02-23 · 超过10用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:20.7万
展开全部
用VB做比较简单,用串口的控件实现串口通信
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
弥朝续绿夏
2020-09-09 · TA获得超过1164个赞
知道小有建树答主
回答量:1905
采纳率:93%
帮助的人:8.8万
展开全部
四位数字组合成的值大于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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
381477094
2013-06-08 · TA获得超过326个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:135万
展开全部
中断法
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 执行相关的内容
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ifhvc61
2011-02-23 · TA获得超过470个赞
知道答主
回答量:283
采纳率:0%
帮助的人:0
展开全部
通过这2根口线,你怎么和12864用在一起了呢?这不冲突吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
萍水相逢就是缘吧
2011-02-22 · TA获得超过6079个赞
知道大有可为答主
回答量:1.5万
采纳率:54%
帮助的人:2106万
展开全部
建议 去 百度文库 里搜搜

里面资料 非常多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式