PIC单片机5——串口 中断

news2024/11/23 19:46:26

 

 

 

//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();
  }
 
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/43494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于javaweb房屋租赁管理系统的设计与实现

摘要 当今社会不管房屋出租、出售买卖是必不可少的&#xff0c;人们不管走到哪里都需要有一个温馨的家&#xff0c;有一个落脚之地&#xff0c;所以房源出租市场也是非常火爆&#xff01;不管是房源出租公司或者是个人都需要一套完整的管理系统来掌握整个市场信息。针对这一需求…

观察者模式在spring中的应用

作者&#xff1a;王子源 1 观察者模式简介 1.1 定义 指多个对象间存在一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式&#xff0c;它是对象行为型模式。 …

离散卡尔曼滤波实现

离散卡尔曼滤波基本理论 卡尔曼预报器、平滑器可以参考之前的博客&#xff1a;(2条消息) 卡尔曼滤波器_KPer_Yang的博客-CSDN博客 下面贴上一张图1&#xff0c;很直观&#xff1a;分成时间更新和测量更新两步&#xff0c;其中的KKK和PPP有可能随着时间推移变成常数&#xff0…

STM32实战总结:HAL之RTC

RTC基础知识参考&#xff1a; 51单片机内部外设&#xff1a;实时时钟(SPI)_路溪非溪的博客-CSDN博客 STM32中的RTC 51单片机通常是外置的RTC芯片如DS1302&#xff0c;那么STM32的RTC是什么情况呢&#xff1f; STM32芯片自带RTC&#xff0c;因此不须像其他MCU需外接RTC模块。 先…

年末盘点Android 过去一年与未来的一个走势~

随着Android的发展&#xff0c;有些人对Android未来感到茫然&#xff0c;不少人可能会产生这样的疑惑&#xff1a;“从事Android是不是没有前途&#xff0c;Android开发还有什么值得学&#xff1f;“这类话题一直让大家争论不休&#xff0c;它并没有一个确切、唯一的标准答案&a…

中介者模式

思考中介者模式 当多个类&#xff08;对象&#xff09;耦合严重时&#xff0c;通过中介者模式创建一个中介者&#xff0c;多个类不直接交互了&#xff0c;变成和中介者进行交互&#xff0c;松散耦合 1.中介者模式的本质 中介者模式的本质:封装交互。 中介者模式的目的&#xff…

关于无感刷新Token,我是这样子做的

本文正在参加「金石计划 . 瓜分6万现金大奖」 什么是JWT JWT是全称是JSON WEB TOKEN&#xff0c;是一个开放标准&#xff0c;用于将各方数据信息作为JSON格式进行对象传递&#xff0c;可以对数据进行可选的数字加密&#xff0c;可使用RSA或ECDSA进行公钥/私钥签名。 使用场景…

WPSpell将拼写检查添加到VCL应用程序

WPSpell将拼写检查添加到VCL应用程序 WPSpell包括键入功能时的拼写。拼写错误的单词带有下划线&#xff0c;可以使用上下文菜单进行更正。它还包括一个传统的拼写检查对话框&#xff0c;并支持多个词典。WPSpell特别适合与WPTools一起使用。 WPSpell功能 键入时进行拼写检查。 …

1-FreeRTOS入门指南

本专栏是根据官方提供的文档进行FreeRTOS的各个功能函数的说明&#xff0c;以及函数的使用 本专栏不涉及动手操作&#xff0c;只是对原理进行说明&#xff0c;FreeRTOS基础知识篇更新完成会对如何在开发板上进行上手实战操作。 这里不会对比其他RTOS的优缺点&#xff0c;因为每…

2、Redis中简单动态字符串的简介,也就是Redis中的键和值的字符串底层表达

简介 首先在Redis中&#xff0c;没有直接使用C语言传统字符串表示(以空字符结尾的字符数组,以下简称C字符串)&#xff0c;而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型(可以简单的理解为Java中的String 类)&#xff0c;并且将SDS用作Redis的默…

动态规划算法(1)

认识动态规划 动态规划的求解思路&#xff1a; 1. 把一个问题分解成若干个子问题 2. 将中间结果保存以避免重复计算 基本步骤&#xff1a; 1. 找出最优解的性质&#xff0c;然后刻画结构特征 &#xff08;找规律&#xff09; 2. 最优解(最好的解决方案 定义) 循环(递归) 3. 以…

我与梅西粉丝们的世界杯观球日常

世界杯 ⚽️ 期间&#xff0c;我与其他的梅西粉丝在某 APP 里建了个梅粉聊天群&#xff0c;群内人数上万人&#xff0c;大家一起讨论赛事热点&#xff0c;可谓热火朝天&#xff0c;此起彼伏&#xff0c;这是四年一度的狂欢&#xff0c;虽值冬季&#xff0c;但热情不减。 “阿根…

配置设备远程管理—eNSP

案例&#xff1a;给路由器配置远程管理&#xff0c;使一台路由器远程管理另一台。 所需设备&#xff1a;两台路由器&#xff0c;一根网线 图示 一、给两台设备配置IP地址 AR1&#xff08;以下命令&#xff09; a. sy b. int g0/0/0 c. ip add 1.1.1.1 24AR2 a. sy b. int g0/0…

十分钟学完简单工厂,普通工厂,抽象工厂

快速学习简单工厂&#xff0c;普通工厂&#xff0c;抽象工厂前言&#xff1a;产品等级和产品族工厂模式作用简单工厂模式uml代码优缺点普通工厂模式uml代码优缺点抽象工厂模式uml代码优缺点前言&#xff1a;产品等级和产品族 在学习工厂模式之前&#xff0c;先得了解一下产品等…

Redis实践

一、持久化 Redis 的数据 全部存储 在 内存 中&#xff0c;如果 突然宕机&#xff0c;数据就会全部丢失&#xff0c;因此必须有一套机制来保证 Redis 的数据不会因为故障而丢失&#xff0c;这种机制就是 Redis 的 持久化机制&#xff0c;它会将内存中的数据库状态 保存到磁盘 …

Spring——AOP原理及流程详解

AOP原理及流程详解一、AOP结构介绍Pointcut通知原理连接点拦截器二、Bean介入点EnableAspectJAutoProxyAspectJAutoProxyRegistrarAnnotationAwareAspectJAutoProxyCreatorAbstractAutoProxyCreator实例前执行初始化后执行循环依赖会调用总结三、处理切面获取所有切面其下通知方…

国内饮料行业数据浅析

大家好&#xff0c;这里是小安说网控。 饮料一直深得年轻人的宠爱&#xff0c;主要消费品类为饮用水、碳酸饮料、奶制品、气泡水等。刚刚过去的十月份&#xff0c;我国饮料产量当期值1199.6万吨&#xff0c;同比下降6.1%&#xff1b;今年1-10月份&#xff0c;饮料产量累计值157…

这几个点让我买了Watch Ultra

01.凑够Apple 全家桶 MacBook ProiPhoneAirPodsiPad 02.可以解锁iPhone手机&#xff0c;MacBook,iPad 03.当iPhone 来电话&#xff0c;不方便接听&#xff0c;可以使用Watch接听(虽然这种情况挺少) 04.可以连接AirPods 听音乐 05.花10元钱开卡&#xff0c;iPhone和Watch 可以…

前端ES6-ES11新特性

ES6新特性 变量声明 let a; let b,c,d; let e 100; let f 521, g iloveyou, h [];块级作用域 {let girl 周扬青; }console.log(girl); //这里会报错&#xff0c;变量不在作用域内,用var声明就可以常量声明 const NAME tom; //必须赋予初始值&#xff0c;变量名大写&am…

3-7数据链路层-设备

文章目录一.网桥1.基本原理2.透明网桥&#xff08;1&#xff09;工作原理&#xff08;2&#xff09;自学习算法3.源路由网桥二.局域网交换机1.局域网交换机2.原理3.特点4.两种交换模式5.交换机的自学习算法一.网桥 网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个…