PIC单片机5——串口 中断
//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——串口 中断相关推荐
- PIC单片机入门_中断系统详解
1.中断的基本概念 当单片机正在执行程序时,出现了某些特殊状况,例如定时时间到.有键盘信号输入等,此时CPU须要暂时停止当前的程序,而转去执行处理这些事件的程序,待执行完这些特定的程序之后,再返回到原 ...
- PIC单片机3——外部中断
//RB2(INT2)作为外中断 #include <p18cxxx.h>/*18F系列单片机头文件*/ void PIC18F_High_isr(void);/*中断服务函数声明*/ v ...
- 51单片机 (6)串口中断通信+定时器2串口中断
[若有疑问错误或版权等问题请联系我] [转载请注明出处:http://blog.csdn.net/leytton/article/details/48442129] 51单片机默认使用定时器1作为串口 ...
- 基于STC15系列单片机的串口中断例程
#include <STC15F2K60S2.H>#define FOSC 12000000 //晶振频率 #define BAUD 9600 //设置波特率unsigned char r ...
- 基于51单片机的串口中断读头写尾法接收NMEA0183经纬度信息 1602显示(循环接收)
51单片机 串口接收导航电文 设计方案 硬件构成 软件构成 测试情况 接收承载能力测试 传统接收方式测试 程序代码 传统程序中断部分代码 采用了读头写尾方法的程序 结论 传统的串口接收程序是采用设立中 ...
- PIC单片机学习—USART串口
PIC单片机学习-USART串口 最近做了几个项目都用到了PIC单片机,在这几个项目之前我只用到了51单片机和STM32来做控制类的项目,用PIC单片机的时候发现使用的时候和51单片机还是有所区别,有 ...
- PIC16F877A单片机 (外部中断)
PIC16F877A单片机 (外部中断) 1 基本原理 2 实现代码 1 基本原理 2 实现代码 /*----------------函数功能:外部中断RB0/INT按下按键(即产生一个中断),此时L ...
- PIC单片机精通_异步串口通讯实例与细节
1.前言 PIC16F876a异步串口通信的定义以及寄存器控制,这里不再多谈,前面已经进行过详细的分析.这里注意集中在几个关键点上. 串口中断服务程序应该注意什么? 利用串口助手进行调试应该注意什么? ...
- pic常用子程序c语言,手把手教你使用PIC单片机做RS232串口通信实验(C语言版)
这一期,我们将一起来学习一下PIC单片机如何与PC机进行通信,一起来完成一个简单的RS232通信实例,我们不做太多的理论,从实例出发,相信能够给大家一个比较通俗.透彻地认识,掌握了它的原理,那你就可以 ...
最新文章
- python链表怎么定义_码哥聊Python数据结构--链表
- Java 8 Optional 类
- buntu 8.04 安装 mysql 无提示输入用户名 密码 ,怎么修改
- centos7打开图形界面命令_centos7标准版(DVD)命令界面和图形界面相互切换
- .lastevent、!analyze(dump分析、异常错误码查询)
- 牛客网暑期ACM多校训练营(第十场)D Rikka with Prefix Sum (组合数学)
- 半年之殇:困扰半年的MSP430的I2C总线问题在今天解决,发文总结
- jquery 常见选择器以及一些方法
- 百面机器学习!算法工程师面试宝典!| 码书
- 【Python基础】文件读写
- ubuntu 开发环境的配置 (转)
- 新书出版 |《数据库程序员面试笔试真题库》
- Java链表-链表反转
- Node.js 在安装模块的时候报错,缺少python环境,56.ERR! configure error gyp ERR! stack Error: Can't find Python execut
- 求不变矩matlab,求HU不变矩七个参数
- 最新外卖霸王餐系统程序源码|美团/饿了么霸王餐系统(含数据库)(可对接公众号)
- 第二篇学会感谢身边的所有人!
- STM32F411核心板固件库开发(四) ADC配置
- 怎么改html文件的桌面图标,教你怎么把软件图标换成自己喜欢的图标
- 社会平等对于中国计算机发展,平等思想的发展历程及对中国现实的分析
热门文章
- 全球与中国开放式AC-DC电源市场深度研究分析报告
- html四对基本标签,HTML基本标签
- 面向对象解决-------求圆柱体的体积
- 2023软考报名(上半年)报名什么时候开始?-弘博创新
- 扫描文件无法连计算机,文件无法从复印机扫描到电脑?可能是以下操作您没有注意到...
- 轻轻松松学习SpringBoot2:第二十六篇: Spring Boot和Redis整合(完整版)
- 代理服务器(Upstream-server)
- java面向对象思想编写原谅帽小游戏 原谅帽游戏思路解析
- B - Missing Bigram
- arcsoft人脸识别sdk使用方法(android版本)