完善资料让更多小伙伴认识你,还能领取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个回答
|
|
怎么没人来,如果能解决要多少积分都行呀!
|
|
|
|
四大四大四大四大四大四大是
|
|
|
|
点赞。 。
|
|
|
|
正在找这方面的程序~感谢楼主
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
Labview 信号处理 瞬态测量 连线出现错误提示,请教各位前辈!麻烦请各位帮忙看一下?
4594 浏览 2 评论
803 浏览 1 评论
1524 浏览 6 评论
LabVIEW如何识别接线端是否有数据输入,不能通过判断默认值的方式
2181 浏览 5 评论
打开labview时很慢,在任务管理器里面看到,内存能有1000多M,重装也没用,各位大佬这是什么问题引起的,怎么解决
4827 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-19 12:49 , Processed in 0.546327 second(s), Total 55, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号