码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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下载

  • 相关阅读:
    git commit 报错 “invalid path” “make_cache_entry failed for path” 解决方法
    触发点击事件,标签高亮显示
    编写内联函数求解 2x²+4x+5的值,并用主函数调用该函数
    照片转换成3D软件有什么?建议收藏这些软件
    Go 并发编程 - runtime 协程调度(三)
    SOCKS5代理与网络安全的趣味之旅
    2024Java springboot mybatis-flex 根据数据表时间开启定时任务
    浅谈go语言的错误处理
    acwing算法基础之基础算法--快速选择算法
    JS - 鼠标键盘配置 及 浏览器禁止操作
  • 原文地址:https://blog.csdn.net/fengyuzhe13/article/details/128084478
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号