中易网

求问一个关于单片机的问题,我用的STC的52,郭天祥开发的Tx-1C的板子,下面是我的程序跟想要实现的问题。

答案:1  悬赏:0  
解决时间 2021-01-17 20:10
  • 提问者网友:原来太熟悉了会陌生
  • 2021-01-17 10:44
求问一个关于单片机的问题,我用的STC的52,郭天祥开发的Tx-1C的板子,下面是我的程序跟想要实现的问题。
最佳答案
  • 二级知识专家网友:天凉才是好个秋
  • 2021-01-17 10:57
你这程序,应该是先由上位机向单片机发送1,2,或其它字符吧,
下面是单片机的接收程序
void ser()interrupt 4
{
RI = 0;//接受完成置1这里清0
a = SBUF;
flag_uart = 1;
if(a == 1)
flag_on = 0;
else if (a == 2)
flag_on = 1;
else
flag_on = 2;
}
那问题来了,电脑是用什么向单片机发送字符的,是串口调试助手吗?那发送的字符1,2或其它的,以是字符形式发送吧,那就是ASCII码,单片机收到的可就不是1,2了,而是ASCII的1,2。
所以,if 语句的判断就不对了。应该是这样的
void ser()interrupt 4
{
RI = 0;//接受完成置1这里清0
a = SBUF;
flag_uart = 1;
if(a == ‘1’) //这才是ASCII码的形式
flag_on = 0;
else if (a == ‘2’)
flag_on = 1;
else
flag_on = 2;

}追问行,大神我试试哈大神对,是对了但是我的单片机不走数啊

不是下面这样的不管怎么样,我先谢谢你了大神。。我先采纳了,如果可以的话,有空的话帮我下下。。。好难受啊这里
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息