新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机通过串口中断与电脑连接通信

单片机通过串口中断与电脑连接通信

作者:时间:2012-02-19来源:网络收藏

本实验实现实验,和计算机进行 *
首先接受联机信号,然后接受计算机的相关控制信号 *
本实验中,采用发送不同的字符给计算机来模拟接收到的不同的计算机控制命令 *
扩展,可以实现不同的功能 *
* *
*
* *
********************************************************************************/

本文引用地址:http://www.amcfsurvey.com/article/172059.htm

#include
#define uchar unsigned char

uchar time,b_break,b_break_3;
uchar buf;

void waitsend()
{
while(!TI)
{
};
TI = 0;
}
//串行程序
void int_s(void) interrupt 4 {
ES = 0; //关闭串行中断
RI = 0; //清除串行接受标志位
buf = SBUF; //从缓冲区取得数据
P1 = buf; //数据送往p1口显示出来
if(buf == 255) SBUF = 255; //发送联络信号
else{
switch(buf)
{
case 1: SBUF = 'M',waitsend();break; //如果接受到1,发送字符'M'给计算机
case 2: SBUF = 'C',waitsend();break; //如果接受到2,发送字符'C'给计算机
case 3: SBUF = 'S',waitsend();break; //如果接受到3,发送字符'S'给计算机
case 4: SBUF = '5',waitsend();break; //如果接受到4,发送字符'5'给计算机
case 5: SBUF = '1',waitsend();break; //如果接受到5,发送字符'1'给计算机

default: SBUF = 'n',waitsend();break; //如果接受到其它数据,发送n给计算机

}
}
ES = 1; //允许中断

}

void main(void) {

P0 = 0;
P2 = 255; //关闭数码管显示

EA=1;
SCON=0x50;PCON=0X80;
TMOD=0x20;ES = 1;
TL1=TH1=0xf3;TR1=1; //串口工作在模1,波特率4800@12Mhz)

while(1);
//无限循环等待串行中断
}



评论


相关推荐

技术专区

关闭