| 网站首页 | 精品文章 | 下载中心 | 本站教程 | 邮购须知 | 电子商城 | 网站简介 | 常见问题集锦 | 
您现在的位置: 新启点单片机 >> 本站教程 >> 原创教程 >> 本站教程正文 用户登录 新用户注册
V2.0教程六:单片机通过串口与电脑连接通信          【字体:
V2.0教程六:单片机通过串口与电脑连接通信
作者:江在流    本站教程来源:本站原创    点击数:    更新时间:2006-7-2

/*******************************************************************************
  Title:  演示程序 - 串口中断应用              *
  Name:   UART.c                                                            *
  Date:   2006-4-15                                                             *
  Ver:    1.0                                                                   *                                                *
  web:   http://www.mcu99.com                                               *
********************************************************************************
   本实验实现串口中断实验,通过中断和计算机进行通信             *
 首先接受联机信号,然后接受计算机的相关控制信号            *
 本实验中,采用发送不同的字符给计算机来模拟接收到的不同的计算机控制命令      *
 通过扩展,可以实现不同的功能                 *
                                        *                                         *
                                             *
                               *                                             *
********************************************************************************/
 

#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);
                    //无限循环等待串行中断
}

本站教程录入:江在流    责任编辑:江在流 
  • 上一篇本站教程:

  • 下一篇本站教程:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关本站教程
    没有相关本站教程
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)