机电之家资源网
单片机首页|单片机基础|单片机应用|单片机开发|单片机文案|软件资料下载|音响制作|电路图下载 |嵌入式开发
培训信息
赞助商
RS-232接口实现计算机和单片机通信程序
RS-232接口实现计算机和单片机通信程序
 更新时间:2009-11-2 15:40:10  点击数:0
【字体: 字体颜色

//此程序通过RS-232接口来完成计算机和单片机通信(程序已用p18f458试验板上调试通过)
//程序的调试可以用"串口调试助手V2.1"辅助完成,

//此程序首先发送测试数据55H,再通过中断实现数据的接收和发送

#include "p18f458.h"

void InterruptHandlerHigh(void);

//初始化程序
void initial()
{
 SPBRG=0X19;    //选择传输波特率为9600bps
 TXSTA=0X04;    //选择异步高速方式传输8位数据
 RCSTA=0X80;    //允许同步串行口工作
 TRISC=0X80;    //将RC7,RC6设置为输入,断绝与外接电路的连接
 TXSTAbits.TXEN=1;   //发送允许
 RCSTAbits.CREN=1;   //接受数据允许
 PIE1bits.RCIE=1;   //接收中断使能
 INTCON=0XC0;   //总中断和外围中断允许
}

//高优先级中断向量
#pragma code InterruptVectorHigh=0x08
void InterruptVectorHigh (void)
{
  _asm
    goto InterruptHandlerHigh   //跳到中断程
  _endasm
}

//高优先级中断服务程序
#pragma code
#pragma interrupt InterruptHandlerHigh
void InterruptHandlerHigh ()
{
 while(PIR1bits.RCIF==1)  //若接收中断标志不为1,则为误操作,返回
 {
  TXREG=RCREG;  //将接收到的数据放入发送寄存器,并启动发送
 }
}

//主程序
main()
{
 initial();     //系统初始化 
 TXREG=0X55;    //发送数据55H进行测试
 for(;;);
}
 

 

------------------------------------------汇编语言版本的RS-232接口实现计算机和单片机通信程序------------

;此程序通过RS-232接口来完成计算机和单片机通讯(程序以在p18f458试验板上调通)
;本单片机程序由http://www.51hei.com提供
;此程序首先发送测试数据55H,再通过中断实现数据的接收和发送
;程序的调试可以用"串口调试助手V2.1"辅助完成

   LIST     P=18f458
    INCLUDE    "P18f458.INC"

  ORG  0x00
   GOTO MAIN
  ORG  0x08
   GOTO INTSERVE  
  ORG  0X30

;**************中断服务子程序***************
INTSERVE
  BTFSS PIR1,RCIF  ;接收中断标志为1?
  GOTO ERR_RE   ;误操作,返回                         
  MOVF RCREG,0   ;否则,将接收到的数据通过W寄存器
  MOVWF TXREG    ;放入发送寄存器,并启动发送       
ERR_RE NOP
  RETFIE

;****************初始化程序***************
INITIAL NOP      
         MOVLW  0X19   ;选择传输波特率为9600bps
        MOVWF  SPBRG   
         MOVLW  0X04   ;选择异步高速方式传输8位数据
         MOVWF  TXSTA
         MOVLW  0X80   ;允许同步串行口工作
         MOVWF  RCSTA
         MOVLW  0X80   ;将RC7,RC6设置为输入,断绝与外接电路的连接
         MOVWF  TRISC
  BSF  TXSTA,TXEN  ;发送允许
  BSF  RCSTA,CREN  ;接受数据允许 
  BSF      PIE1,RCIE  ;接收中断使能
  MOVLW  0XC0   ;总中断和外围中断允许
  MOVWF  INTCON
  RETURN

;**********************主程序*********************         
MAIN     NOP
         CLRWDT
  CALL  INITIAL 
         MOVLW  0X55   ;发送数据55H进行测试   
         MOVWF  TXREG 
LOOP
         GOTO  LOOP
         END

  • 上一篇: 在windows 98下PC机和单片机的串行通信方法
  • 下一篇: 没有了
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
    热点文章
     
    推荐文章
     
    相关文章
    网友评论:(只显示最新5条。)
    关于我们 | 联系我们 | 广告合作 | 付款方式 | 使用帮助 | 机电之家 | 会员助手 | 免费链接

    点击这里给我发消息66821730(技术支持)点击这里给我发消息66821730(广告投放) 点击这里给我发消息41031197(编辑) 点击这里给我发消息58733127(审核)
    本站提供的机电设备,机电供求等信息由机电企业自行提供,该企业负责信息内容的真实性、准确性和合法性。
    机电之家对此不承担任何保证责任,有侵犯您利益的地方请联系机电之家,机电之家将及时作出处理。
    Copyright 2007 机电之家 Inc All Rights Reserved.机电之家-由机电一体化网更名-声明
    电话:0571-87774297 传真:0571-87774298
    杭州滨兴科技有限公司提供技术支持

    主办:杭州市高新区(滨江)机电一体化学会
    中国行业电子商务100强网站

    网站经营许可证:浙B2-20080178-1