专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
LabView
l基于labview 单片机串口通信下位机程序编写
2019-07-17 14:26
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
LabVIEW
12653
19
1717
本帖最后由 ren1feng 于 2012-5-26 21:47 编辑
基于
labview
单片机
串口
通信
下位机程序如何编写?用C语言写。。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
fanmantian
1楼-- · 2019-07-19 11:47
谁有这方面的资料啊 例子啥的 高价求教
加载中...
一抹阳光
2楼-- · 2019-07-19 14:51
精彩回答 2 元偷偷看……
加载中...
595418772
3楼-- · 2019-07-19 19:57
//串口通讯与LabVIEW联调
#include <REG51.H>
#define uchar unsigned char
#define uint unsigned int
sbit ring=P3^7;
sbit CASE1=P1^0;
sbit CASE2=P1^1;
sbit CASE3=P1^2;
sbit CASE4=P1^3;
uchar se=0,re=0;
uchar temp=0;
void wait(uint cnt)
{
while(--cnt);
}
//串口发送程序
void send(uchar se)
{
SBUF=se; //发送数据
while(TI==0);
TI=0;
}
//串口接收程序
uchar receive(void)
{
re=SBUF; //接收数据
while(RI==0);
RI=0;
return re;
}
//串口初始化
void sinti(void)
{
SCON=0x50;
TMOD=0x20;
TH1=0xfd;
TR1=1;
EA=1;
ES=1;
}
void delay(int cnt)
{
while(--cnt);
}
//主程序
int main (void)
{
int i;
sinti(); //串口初始化程序
ring=1;
while(1)
{
while (1)
{
if(CASE1==0)
{
send('a');
ring=0;
break;
}
if(CASE2==0)
{
send('b');
ring=0;
break;
}
if(CASE3==0)
{
send('c');
ring=0;
break;
}
if(CASE4==0)
{
send('d');
ring=0;
break;
}
}
if(ring==0)
{
wait(60000);
ring=1;
}
for(i=0;i<10000;i++);
}
}
//串口中断程序
void UART_SER (void) interrupt 4 //串行中断服务程序
{
if(RI) //判断是接收中断产生
{
RI=0; //标志位清零
temp=SBUF;
}
if(TI) //如果是发送标志位,清零
TI=0;
}
加载中...
595418772
4楼-- · 2019-07-20 01:14
以上最简单的通讯程序,需另加功能,自己编写相关的子程序即可
加载中...
ren1feng
5楼-- · 2019-07-20 05:12
595418772 发表于 2014-7-1 20:31
以上最简单的通讯程序,需另加功能,自己编写相关的子程序即可
谢谢了,虽然是两年前的问题,早就会了,但还是谢谢你的回复。。。。
加载中...
1551858470
6楼-- · 2019-07-20 05:13
东西不错 谢谢了楼主
加载中...
上一页
1
2
3
4
下一页
一周热门
更多
>
相关问题
怎么利用公式波形产生所想要的波形
2 个回答
USBCAN-2A与PCI5121D的数据通信
1 个回答
labview调用c时遇到问题
1 个回答
大家帮小弟解决下问题,不胜感激
4 个回答
关于labview插值
1 个回答
菜鸟问题,求助不同类型处理方法~
4 个回答
菜鸟的问题labview中子程序的调用
1 个回答
关于labview作图的新手问题,求指教...
2 个回答
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
LabView
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#include <REG51.H>
#define uchar unsigned char
#define uint unsigned int
sbit ring=P3^7;
sbit CASE1=P1^0;
sbit CASE2=P1^1;
sbit CASE3=P1^2;
sbit CASE4=P1^3;
uchar se=0,re=0;
uchar temp=0;
void wait(uint cnt)
{
while(--cnt);
}
//串口发送程序
void send(uchar se)
{
SBUF=se; //发送数据
while(TI==0);
TI=0;
}
//串口接收程序
uchar receive(void)
{
re=SBUF; //接收数据
while(RI==0);
RI=0;
return re;
}
//串口初始化
void sinti(void)
{
SCON=0x50;
TMOD=0x20;
TH1=0xfd;
TR1=1;
EA=1;
ES=1;
}
void delay(int cnt)
{
while(--cnt);
}
//主程序
int main (void)
{
int i;
sinti(); //串口初始化程序
ring=1;
while(1)
{
while (1)
{
if(CASE1==0)
{
send('a');
ring=0;
break;
}
if(CASE2==0)
{
send('b');
ring=0;
break;
}
if(CASE3==0)
{
send('c');
ring=0;
break;
}
if(CASE4==0)
{
send('d');
ring=0;
break;
}
}
if(ring==0)
{
wait(60000);
ring=1;
}
for(i=0;i<10000;i++);
}
}
//串口中断程序
void UART_SER (void) interrupt 4 //串行中断服务程序
{
if(RI) //判断是接收中断产生
{
RI=0; //标志位清零
temp=SBUF;
}
if(TI) //如果是发送标志位,清零
TI=0;
}
谢谢了,虽然是两年前的问题,早就会了,但还是谢谢你的回复。。。。
一周热门 更多>