PIC18f8772 串口通讯

发布者:DreamBig123最新更新时间:2016-07-30 来源: eefocus关键字:PIC18f8772  串口通讯 手机看文章 扫描二维码
随时随地手机看文章
  1. /***************************************************
  2. **
  3. ** MCU:PIC18f8772
  4. ** 功能:串口接收
  5. ** 说明:轮询方式
  6. ** 时间:2012-5-28     Lzy
  7. **
  8. *****************************************************/
  9.  
  10. #include
  11.  
  12. /* 串口初始化 */
  13. void UartInit(void)
  14. {
  15.     RCSTA1bits.SPEN = 1;    // 串口使能
  16.  
  17.     TRISCbits.TRISC7 = 1;    // 异步串行接收数据输入
  18.     TRISCbits.TRISC6 = 0;// 异步和同步主模式,TRISC<6> 零(= 0)
  19.         
  20.     // TXSTA1:发送状态和控制寄存器
  21.     TXSTA1bits.SYNC = 0;    // 异步模式
  22.     TXSTA1bits.TX9 = 0;     // 选择8 位发送
  23.     TXSTA1bits.TXEN = 1;     // 禁止发送
  24.     TXSTA1bits.BRGH = 1;     // 高速
  25.     TXSTA1bits.TXEN = 1; // 使能发送
  26.  
  27.     // RCSTA1:接收状态和控制寄存器
  28.     RCSTA1bits.RX9 = 0; // 选择8 位接收
  29.     RCSTA1bits.CREN = 1; // 使能接收器
  30.  
  31.     // BAUDCON1:波特率控制寄存器
  32.     BAUDCON1bits.BRG16 = 0; // 8位波特率发生器——SPBRGHx 和SPBRGx
  33.     SPBRG1 = 25; 
  34.  
  35.     TRISF = 0;
  36. }
  37.  
  38. void main()
  39. {
  40.     UartInit();
  41.     
  42.     if(PIR1bits.RC1IF)    // 已接收数据
  43.     {
  44.         PORTF = RCREG1; // 读取接收到的数据 
  45.     }
  46. }

 

  1. /***************************************************
  2. **
  3. ** MCU:PIC18f8772
  4. ** 功能:串口发送
  5. ** 说明:
  6. ** 时间:2012-5-28     Lzy
  7. **
  8. *****************************************************/
  9.  
  10. #include
  11.  
  12. /* 串口初始化 */
  13. void UartInit(void)
  14. {
  15.     RCSTA1bits.SPEN = 1;    // 串口使能
  16.  
  17.     TRISCbits.TRISC7 = 1;    // 异步串行接收数据输入
  18.     TRISCbits.TRISC6 = 0;// 异步和同步主模式,TRISC<6> 零(= 0)
  19.         
  20.     // TXSTA1:发送状态和控制寄存器
  21.     TXSTA1bits.SYNC = 0;    // 异步模式
  22.     TXSTA1bits.TX9 = 0;     // 选择8 位发送
  23.     TXSTA1bits.TXEN = 1;     // 禁止发送
  24.     TXSTA1bits.BRGH = 1;     // 高速
  25.     TXSTA1bits.TXEN = 1; // 使能发送
  26.  
  27.     // RCSTA1:接收状态和控制寄存器
  28.     RCSTA1bits.RX9 = 0; // 选择8 位接收
  29.     RCSTA1bits.CREN = 1; // 使能接收器
  30.  
  31.     // BAUDCON1:波特率控制寄存器
  32.     BAUDCON1bits.BRG16 = 0; // 8位波特率发生器——SPBRGHx 和SPBRGx
  33.     SPBRG1 = 25; 
  34.  
  35.     TRISE = 0xff;
  36.     TRISA = 0;
  37. }
  38.  
  39. void main()
  40. {
  41.     UartInit();
  42.  
  43.     if(TXSTA1bits.TRMT)    // 发送完毕
  44.     {
  45.         TXREG1 = PORTE;    // 发送数据 
  46.     }
  47. }

关键字:PIC18f8772  串口通讯 引用地址:PIC18f8772 串口通讯

上一篇:PIC18f 串口中断
下一篇:PIC18f 点亮LED灯

推荐阅读最新更新时间:2024-03-16 15:02

51 IO口模拟串口通讯C源程序
简介:本文主要介绍51 IO口模拟串口通讯C源程序。 #include reg51.h sbitBT_SND=P1^0; sbitBT_REC=P1^1; /********************************************** IO口模拟232通讯程序 使用两种方式的C程序占用定时器0 **********************************************/ #defineMODE_QUICK #defineF_TMF0 #defineTIMER0_ENABLETL0=TH0;TR0=1; #defineTIMER0_DISABLETR0=0; sbi
[单片机]
STM32F10x 学习笔记6(USART实现串口通讯 2)
这次讲讲利用串口收发中断来进行串口通讯。STM32 上为每个串口分配了一个中断。也就是说无论是发送完成还是收到数据或是数据溢出都产生同一个中断。程序需在中断处理函数中读取状态寄存器(USART_SR)来判断当前的是什么中断。下面的中断映像图给出了这些中断源是如何汇合成最终的中断信号的。图中也给出了如何控制每一个单独的中断源是否起作用。 另外,Cortex-M3 内核中还有个NVIC,可以控制这里的中断信号是否触发中断处理函数的执行,还有这些外部中断的级别。关于NVIC 可以参考《ARM CortexM3 权威指南》,里面讲解的非常详细。 简单的说,为了开启中断,我们需要如下的代码: NVIC_InitType
[单片机]
STM32F10x 学习笔记6(USART实现<font color='red'>串口通讯</font> 2)
USART——串口通讯
开发平台 野火F429开发板 标准库 通讯基本概念 同步通讯和异步通讯 同步通讯和异步通讯的区别在于有没有时钟信号线 全双工、半双工、单工通讯 全双工可以收发同时进行 半双工可以收发但不可同时进行 单工只能收或发 USART 三大时序:USART、I2C、SPI,USART是其中之一了 USART时序:起始位为低电平、然后发送数据8位数据是没有校验位的,9位数据是有校验位的、停止位为高电平。时序如下图:(字长为8) 现在我使用串口一般都是打印调试信息或者蓝牙通讯 ,只会用到TX和RX,不需要用到时钟信号线,所以是异步半双工 如果想要操作寄存器,那就要看功能框图了 1.TX发送数据引脚、RX接受数据引脚,所以要把引脚配置为串
[单片机]
USART——<font color='red'>串口通讯</font>
STM8S单片机通过蓝牙与智能手机实现串口通讯的设计
串口通讯具有悠久历史的,最基本、最简单的通讯方式,即使在当前这个注重移动和无线互联的时代,也少不了串口通讯的身影。比如对小数据量数据的无线传输,虽然物理链路用蓝牙或WIFI传输,但最后到单片机数据交互上,可能还是用了串口通讯。 STM8S系列单片机有1~3个通用异步收发器(UART)支来持串口通讯,在这个部分里,将以STM8S单片机通过蓝牙与智能手机通讯,实现一个echo功能(单片机将收到来自于手机的数据原样返回给手机),来讲解如何使用单片机的串口功能。 1、电路设计 电路采用一款蓝牙转串口的模块实现蓝牙通讯,这款蓝牙模块有四个引脚,VCC、GND、TXD、RXD,只要将模块的VCC、GND引脚与电源连接,TXD、RXD引
[单片机]
STM8S单片机通过蓝牙与智能手机实现<font color='red'>串口通讯</font>的设计
串口通讯程序(单片机接收后再发送到电脑)
下次写一个程序在发送回 电脑 的基础上还要在液晶上显示 #include reg52.h unsigned char temp; void init(); //初始化函数 void main(void) { init(); while(1) { } } void init() { SCON=0x50; TMOD=0x20; TH1=0XF3; TL1=0XF3; EA=1; ES=1; TR1=1; } void usb() interrupt 4 { temp=SBUF; RI=0; SBUF=temp; while(!TI); TI=0; }
[单片机]
<font color='red'>串口通讯</font>程序(单片机接收后再发送到电脑)
S3C2440串口通讯实现
一、目的 由于项目需求,要实现S3C2440串口与PC机的通讯。通过实验手册上的串口通讯示例了解串口的工作原理,实现简单的串口通讯实验。为进一步利用串口编程实现更加复杂的功能做准备。 实验效果:PC机上按下任意键,通过串口将字符传送至2440,2440又通过串口返回至PC机,并在DNW终端或超级终端显示该字符。 二、实验原理 PC机 ------- S3C2440开发板 S3C2440的UART提供了三个独立的异步串行I/O端口,每个都可以在中断和DMA两种模式下进行,他们支持的最高波特率是115.2Kbps。每个UART通道包含两个64字节的FIFO,分别提供数据接收和发送。 每个UART包含波特率发生
[单片机]
基于Java语言的51单片机串口通讯PC机程序
1 硬件部分(KeilC) 图1 硬件电路图 串口通讯硬件部分电路,收发器件采用max232,5V供电。J31接一单片机如AT89C52,单片机的串口与max232的10和11脚相连。 max232与微机通过9针接头相连。 本文的实验环境是AT89C52,单片机的内部程序是用KeilC语言编写的,程序功能非常简单,检测到开始信号后从串口读数据,然后把读入的数据发送给串口,遇到结束符停止。C语言代码如下供大家参考。在uv3中含有两个文件comm.h和comm.c,代码分别为: // /* comm.h */ /*
[单片机]
基于Java语言的51单片机<font color='red'>串口通讯</font>PC机程序
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved