PIC单片机精通_串口通信模块C实现
1.串口通讯头/定义文件 usart.h
#ifndef _SERIAL_H_ #define _SERIAL_H_#define BAUD 9600 #define FOSC 9216000L #define NINE 0 /* Use 9bit communication? FALSE=8bit */#define DIVIDER ((int)(FOSC/(16UL * BAUD) -1)) #define HIGH_SPEED 1#if NINE == 1 #define NINE_BITS 0x40 #else #define NINE_BITS 0 #endif#if HIGH_SPEED == 1 #define SPEED 0x4 #else #define SPEED 0 #endif#if defined(_16F87) || defined(_16F88)#define RX_PIN TRISB2#define TX_PIN TRISB5 #else#define RX_PIN TRISC7#define TX_PIN TRISC6 #endif/* Serial initialization */ //'\'是对函数内属性的定义 不可缺少 #define init_comms()\RX_PIN = 1; \TX_PIN = 1; \SPBRG = DIVIDER; \RCSTA = (NINE_BITS|0x90); \TXSTA = (SPEED|NINE_BITS|0x20)void putch(unsigned char); unsigned char getch(void); unsigned char getche(void);#endif
2.串口通讯源/实现文件 usart.c
/******************************************/ /*Author:Shen Chucu All Rights Reserved!** /*Tsinghua University /*2016-11-15 /********************************************/ #include <pic.h> #include <stdio.h> #include "usart.h" __CONFIG(0x3ffa);void delay(unsigned int x); static int label=0; //不做事件响应 void main() {INTCON=0x00;GIE=1;PEIE=1;RCIE=1;init_comms();CREN=1;SPEN=1;while(1){//等待中断 并进行事件响应设定if(label==1){printf("OK"); label = 0; //发送一个回馈信号即可delay(50);}if(label==2){printf("ERROR");label = 0; //发送一个回馈信号即可delay(50);} } } void interrupt IsReceive() { if(RCIE&&RCIF==1) //接受中断使能位 + 接收中断标志位{unsigned char temp=RCREG; //把上位机发送的数据保存下来if(temp=='S'){ label=1; //发送数据标志 1} else if(temp=='E'){label=0; //发送数据标志 0 }else label=2; //发送数据标志 2 } }void delay(unsigned int x) {unsigned int a,b; //延时时间110xfor(a=x;a>1;a--)for(b=110;b>1;b--); }
PIC单片机精通_串口通信模块C实现相关推荐
- PIC单片机精通_串口通讯与串口调试实例
1.引子 团队之所以称之为团队,就意味着多个人在一起共事.需要的是谦虚,谦逊,切勿言之偏偏.也要学会尊重,任何一门编程语言都有自己的优势与不足,否则早就有一门语言一统天下啦!!!我由VB入门,利用C. ...
- PIC单片机精通_异步串口通讯实例与细节
1.前言 PIC16F876a异步串口通信的定义以及寄存器控制,这里不再多谈,前面已经进行过详细的分析.这里注意集中在几个关键点上. 串口中断服务程序应该注意什么? 利用串口助手进行调试应该注意什么? ...
- PIC单片机学习—USART串口
PIC单片机学习-USART串口 最近做了几个项目都用到了PIC单片机,在这几个项目之前我只用到了51单片机和STM32来做控制类的项目,用PIC单片机的时候发现使用的时候和51单片机还是有所区别,有 ...
- pic常用子程序c语言,手把手教你使用PIC单片机做RS232串口通信实验(C语言版)
这一期,我们将一起来学习一下PIC单片机如何与PC机进行通信,一起来完成一个简单的RS232通信实例,我们不做太多的理论,从实例出发,相信能够给大家一个比较通俗.透彻地认识,掌握了它的原理,那你就可以 ...
- PIC单片机入门_输入输出端口详解
1.引言: PIC单片机引脚图: 在PIC16F87X 单片机中,28引脚型号的单片机有3 个I/O端口,分别是RA.RB和RC:40引脚型号单片机有5个 I/O端口,分别是RA.RB.RC.RD和R ...
- PIC单片机入门_指令系统
1.前文回顾 前面学习了PIC单片机的系统框架,也介绍了程序存储器.数据存储器的组织形式.这里需要补充一点的就是寻址方式,之前仅仅提到了立即数寻址.直接寻址.其实还有几个比较重要的寻址方式,PC相对寻 ...
- PIC单片机入门_框架与存储器
1.PIC16F877A单片机框架 1.1 为何性能如此之高? PIC单片机之所以有很高的性能是因为其具备如下特性: 内部为哈佛结构.寄存器文档.大多数单指令周期.指令流水线操作.长字型指令.指令数很 ...
- PIC单片机入门_中断系统详解
1.中断的基本概念 当单片机正在执行程序时,出现了某些特殊状况,例如定时时间到.有键盘信号输入等,此时CPU须要暂时停止当前的程序,而转去执行处理这些事件的程序,待执行完这些特定的程序之后,再返回到原 ...
- PIC单片机入门_定时器/计数器TMR0详解与实例
1.前言: PIC 系列单片机内部配备有数量不等的定时器/计数器模块:例如PIC17CX系列和PIC18CX系列都都配置了4个定时器/计数器模块:而PIC16F87X系列都配置了3个定时器/计数器模块 ...
最新文章
- 一个Java Web后台任务执行工具的设计与实现
- 东北大学 计算机网络试题,东北大学秦皇岛分校计算机网络考试试卷(含答案)
- SPCAMLEditor–灵活实用的CAML编辑工具(上)
- 【转】Android菜单详解——理解android中的Menu--不错
- BigDecimal相除异常
- 喜报!爱卡汽车签约神策数据
- 【STM32】STM32系列教程汇总(暂时暂停更新...)
- WebAssembly生态将完善网络安全性
- VM虚拟机手动配置IP地址
- Spring源码探究:容器
- java 读取资源文件最详细解读
- 190715每日一句
- NGUI中的UIGrid
- 手机组态软件_安卓平板组态软件​_移动端组态软件介绍
- 常用Windows运行命令大全
- 平面方程、两平面夹角、点到平面距离
- linux篇—Nginx反向代理负载均衡
- springboot中使用thymeleaf片段引入出现500错误(易错)
- Disallow self-closing on HTML void elements
- 柏西机器人_《勿忘我》孔木猴 ^第15章^ 最新更新:2020-08-03 17:37:51 晋江文学城_手机版...