单片机串行通信的问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 04:24:45
当在键盘上按下一个键(例如K),则单片机某个引脚(如P2.0)成为高电平,此时由单片机控制的灯或者电机等开始运行。
问题:如何确定按键K和引脚P2.0的对应关系,是在上位机还是单片机的程序中确定的?如果在单片机端的程序中,那他们的对应关系的程序怎么写的?
我要C语言的程序
谢谢大家

是在单片机端的程序中实现的,用串行口中断读出SBUF中的数据,再做判断来对应。

if(RI){ //接受数据中断
a=SBUF; //读字符
RI=0; //清中断标志
}

if(a==0x6b){ //判断字符是不是'k'
P2^0=1;
a=0x00; //清字符
}

是在单片机端的程序中实现的,其实只要通过软件检测P2.0是否为高电平就行了
if((P1^2==1)&&(P1^2==1))
{
这里写在检测到有按键时的操作就行了;
}
IF后面的两个重复是为了防止干扰造成误判断。

找本书看下,你会c语言的话,该看计算机原理或者数字电路,单片机原理

先设置定时器,确定与上位机通信,然后获取上位机送来的信号,当得到的是K值是(一般得到的字符是16进制的),再把相应口置位