x
x

基于单片机通过串口与电脑连接通信

发布时间:2010-11-5 19:29    发布者:techshare
关键词: 串口 , 单片机 , 电脑 , 通信
本实验实现串口中断实验,通过中断和计算机进行通信。

首先接受联机信号,然后接受计算机的相关控制信号。

本实验中,采用发送不同的字符给计算机来模拟接收到的不同的计算机控制命令。

通过扩展,可以实现不同的功能  *
* *
  *
* *
********************************************************************************/


#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);
//无限循环等待串行中断
}
本文地址:https://www.eechina.com/thread-36813-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • EtherCAT®和Microchip LAN925x从站控制器介绍培训教程
  • MPLAB®模拟设计器——在线电源解决方案,加速设计
  • 让您的模拟设计灵感,化为触手可及的现实
  • 深度体验Microchip自动辅助驾驶应用方案——2025巡展开启报名!
  • 贸泽电子(Mouser)专区

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表