完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
小弟想做一个上位机程序,上位机发送数字,单片机接收该数据并比较该数字是否等于50,如果等于就点亮led灯。然后单片机给上位机回应“I get XX”(XX是上位机发送的数字)。现在的问题是我发送50,led灯也不亮。查找了好多帖子,感觉应该是数字的进制转换问题。什么十六进制,十进制,ASCII码,搞得头大。。。请大神指导应该怎么改程序,谢谢。labview程序和单片机程序如下,单片机我是用proteus仿真的。
#include #define uchar unsigned char #define uint unsigned int uint flag,a,i; uchar code table[]="I get "; //字符串数组,如果单片机收到数据就把这个字符串数组发到上位机 ***it led=P0^0; void init()// STC89C52单片机的串口初始化(程序没问题,按书上写的) { TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; } void main() { init(); while(1) { if(flag==1) { ES=0; for(i=0;i<6;i++) { SBUF=table[i]; //把字符串数组发送到上位机 while(!ti); TI=0; } SBUF=a; //把收到的数字也发送到上位机,这样做的目的是我想在上位机上显示“I get 50” while(!TI); TI=0; ES=1; flag=0; } } } void ser() interrupt 4 { RI=0; a=SBUF;//接收上位机发送来的数字,并把值赋给变量a flag=1; if(a==50) //如果接收到的数字为50就点亮led灯 led=1; } 本帖被以下淘专辑推荐:
|
|
相关推荐
7个回答
|
|
怎么没人来,如果能解决要多少积分都行呀!
|
|
|
|
四大四大四大四大四大四大是
|
|
|
|
点赞。 。
|
|
|
|
正在找这方面的程序~感谢楼主
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
412 浏览 1 评论
NI Vision有个图片打不开其他图都能打开(用NI Vision Assistant也打开不了)
879 浏览 1 评论
labview2015使用Excel报表程序打包生成后打开程序要选一个vi才能使用,否则软件就会报错,这是什么问题?
1463 浏览 2 评论
LabVIEW与单片机无法串口通信 提示串口打开错误 端口设置有问题吗?
1396 浏览 3 评论
1677 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 09:26 , Processed in 0.492621 second(s), Total 54, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号