//10M晶振 波特率9600 BRG8位波特率发生器 异步模式
#include "p18f458.h"
#include "mydelay.h"

#pragma config OSC=HS,WDT=OFF,LVP=OFF,DEBUG=ON

void PIC18F_High_isr(void);/*中断服务函数声明*/
void PIC18F_Low_isr(void);
void usart_tx(unsigned char ch);
unsigned char usart_rx();

#pragma code high_vector_section=0x8
void high_vector (void)
{
    _asm goto PIC18F_High_isr _endasm
}

#pragma code low_vector_section=0x18
void low_vector (void)
{
    _asm goto PIC18F_Low_isr _endasm
}

#pragma code

#pragma interrupt PIC18F_High_isr
void PIC18F_High_isr (void)
{
  PORTB=RCREG;
  usart_tx(RCREG+1);
}

#pragma interruptlow PIC18F_Low_isr
void PIC18F_Low_isr (void)
{
    PORTBbits.RB4=~PORTBbits.RB4;
    INTCON3bits.INT2IF=0;/*清除中断标志*/
}

void usart_tx(unsigned char ch)
{
  while (!TXSTAbits.TRMT);
  TXREG=ch;
  while(!PIR1bits.TXIF);
}
unsigned char usart_rx()
{
  while(!PIR1bits.RCIF);
  return RCREG;
}
void printstr(const rom char *str)
{
  while(*str)
  {
    if(*str=='\n')//回车
    {
      usart_tx(0x0d);
      usart_tx(0x0a);
    }
       
    usart_tx(*str);
    str++;
  }
}
void main()
{
  char k;
  //ADCON1=0b00001111;/*设置所有双用口为普通数字口*/
  //CMCON=0b00000111;/*关闭所有比较器*/
  //INTCON2bits.RBPU=0;/*开启B口弱上拉*/
  TRISB=0x00; //B口输出
  PORTB=0xff;
 
  RCSTAbits.SPEN=1;//使能串口
  TXSTAbits.SYNC=0;//设置为异步模式
  TXSTAbits.BRGH=1;//高速模式
  SPBRG=64;//波特率9600   10000000/9600/16-1
  RCSTAbits.CREN=1;//使能接收
  TXSTAbits.TXEN=1;//发送使能
 
  IPR1bits.RCIP=1;//高优先级
  PIE1bits.RCIE=1;//串口中断使能
  INTCONbits.PEIE=1;//外设中断使能
  INTCONbits.GIE=1;//开启中断
 
  while(1)
  {
    //if(PIR1bits.RCIF==1)
      //PORTB=RCREG;
    printstr("asdfg");
    for(k=0;k<10;k++)
      delay();
  }
 
}

完整资料打包(含仿真):

PIC单片机1-5程序及仿真合集-单片机文档类资源-CSDN下载

PIC单片机5——串口 中断相关推荐

  1. PIC单片机入门_中断系统详解

    1.中断的基本概念 当单片机正在执行程序时,出现了某些特殊状况,例如定时时间到.有键盘信号输入等,此时CPU须要暂时停止当前的程序,而转去执行处理这些事件的程序,待执行完这些特定的程序之后,再返回到原 ...

  2. PIC单片机3——外部中断

    //RB2(INT2)作为外中断 #include <p18cxxx.h>/*18F系列单片机头文件*/ void PIC18F_High_isr(void);/*中断服务函数声明*/ v ...

  3. 51单片机 (6)串口中断通信+定时器2串口中断

    [若有疑问错误或版权等问题请联系我] [转载请注明出处:http://blog.csdn.net/leytton/article/details/48442129] 51单片机默认使用定时器1作为串口 ...

  4. 基于STC15系列单片机的串口中断例程

    #include <STC15F2K60S2.H>#define FOSC 12000000 //晶振频率 #define BAUD 9600 //设置波特率unsigned char r ...

  5. 基于51单片机的串口中断读头写尾法接收NMEA0183经纬度信息 1602显示(循环接收)

    51单片机 串口接收导航电文 设计方案 硬件构成 软件构成 测试情况 接收承载能力测试 传统接收方式测试 程序代码 传统程序中断部分代码 采用了读头写尾方法的程序 结论 传统的串口接收程序是采用设立中 ...

  6. PIC单片机学习—USART串口

    PIC单片机学习-USART串口 最近做了几个项目都用到了PIC单片机,在这几个项目之前我只用到了51单片机和STM32来做控制类的项目,用PIC单片机的时候发现使用的时候和51单片机还是有所区别,有 ...

  7. PIC16F877A单片机 (外部中断)

    PIC16F877A单片机 (外部中断) 1 基本原理 2 实现代码 1 基本原理 2 实现代码 /*----------------函数功能:外部中断RB0/INT按下按键(即产生一个中断),此时L ...

  8. PIC单片机精通_异步串口通讯实例与细节

    1.前言 PIC16F876a异步串口通信的定义以及寄存器控制,这里不再多谈,前面已经进行过详细的分析.这里注意集中在几个关键点上. 串口中断服务程序应该注意什么? 利用串口助手进行调试应该注意什么? ...

  9. pic常用子程序c语言,手把手教你使用PIC单片机做RS232串口通信实验(C语言版)

    这一期,我们将一起来学习一下PIC单片机如何与PC机进行通信,一起来完成一个简单的RS232通信实例,我们不做太多的理论,从实例出发,相信能够给大家一个比较通俗.透彻地认识,掌握了它的原理,那你就可以 ...

最新文章

  1. python链表怎么定义_码哥聊Python数据结构--链表
  2. Java 8 Optional 类
  3. buntu 8.04 安装 mysql 无提示输入用户名 密码 ,怎么修改
  4. centos7打开图形界面命令_centos7标准版(DVD)命令界面和图形界面相互切换
  5. .lastevent、!analyze(dump分析、异常错误码查询)
  6. 牛客网暑期ACM多校训练营(第十场)D Rikka with Prefix Sum (组合数学)
  7. 半年之殇:困扰半年的MSP430的I2C总线问题在今天解决,发文总结
  8. jquery 常见选择器以及一些方法
  9. 百面机器学习!算法工程师面试宝典!| 码书
  10. 【Python基础】文件读写
  11. ubuntu 开发环境的配置 (转)
  12. 新书出版 |《数据库程序员面试笔试真题库》
  13. Java链表-链表反转
  14. Node.js 在安装模块的时候报错,缺少python环境,56.ERR! configure error gyp ERR! stack Error: Can't find Python execut
  15. 求不变矩matlab,求HU不变矩七个参数
  16. 最新外卖霸王餐系统程序源码|美团/饿了么霸王餐系统(含数据库)(可对接公众号)
  17. 第二篇学会感谢身边的所有人!
  18. STM32F411核心板固件库开发(四) ADC配置
  19. 怎么改html文件的桌面图标,教你怎么把软件图标换成自己喜欢的图标
  20. 社会平等对于中国计算机发展,平等思想的发展历程及对中国现实的分析

热门文章

  1. 全球与中国开放式AC-DC电源市场深度研究分析报告
  2. html四对基本标签,HTML基本标签
  3. 面向对象解决-------求圆柱体的体积
  4. 2023软考报名(上半年)报名什么时候开始?-弘博创新
  5. 扫描文件无法连计算机,文件无法从复印机扫描到电脑?可能是以下操作您没有注意到...
  6. 轻轻松松学习SpringBoot2:第二十六篇: Spring Boot和Redis整合(完整版)
  7. 代理服务器(Upstream-server)
  8. java面向对象思想编写原谅帽小游戏 原谅帽游戏思路解析
  9. B - Missing Bigram
  10. arcsoft人脸识别sdk使用方法(android版本)