PIC单片机(PIC16F877A)串行收发程序

发布者:blq0681最新更新时间:2018-06-22 来源: eefocus关键字:PIC单片机  PIC16F877A  串行收发 手机看文章 扫描二维码
随时随地手机看文章

#include  

#define uchar unsigned char   

uchar rtemp,sflag;  

void SerialInit(void)  

{  

    TXSTA=0x24; //开启发射使能位、高波特率,TRMT初始值可0可1  

    RCSTA=0x90; //开启串口、连续接收、  

    SPBRG=0x19; //4M晶振,波特率9600,则SPBRG初值为25  

    RCIE=1;     //开启串口接收完成中断  

    GIE=1;      //开全局中断  

    PEIE=1;     //开第一外设中断     

}  

void interrupt SerialService(void)  //接收中断  

{  

    if(RCIE&&RCIF)  

    {  

        RCIF=0; //清零接收完成标志位  

        rtemp=RCREG;    //读接收缓冲区  

        sflag=1;  

    }  

}  

void main(void)  

{  

    SerialInit();  

    while(1)  

    {  

        if(sflag==1)  

        {  

            RCIE=0; //发送前关闭接收中断允许位  

            sflag=0;  

            TXREG=rtemp;    //数据送发送缓冲区  

            while(!TXIF);   //等待发送完成,众想教程中查询的是TRMT,并且发完后未清零TRMT  

            TXIF=0;     //清零发送完成标志位  

            RCIE=1;     //发送完成开启接收中断允许位  

        }  

    }  

}  

关键字:PIC单片机  PIC16F877A  串行收发 引用地址:PIC单片机(PIC16F877A)串行收发程序

上一篇:PIC单片机(PIC16F877A)万年历(温度闹钟年月日时分秒星期)
下一篇:PIC单片机(PIC16F877A)定时器

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

PIC16F877A单片机的PWM功能
说明:设置PWM 操作 通过以下步骤将CCP 模块配置为PWM 模式: 1. 写入PR2 寄存器以设定PWM 周期。 2. 写入DCxB9:DCxB0 位以设置PWM 占空比。 3. 将相应的TRIS 位清零以将CCPx 引脚设为输出。 4. 写入T2CON 以设置TMR2 预分频比并使能Timer2。 5. 将CCP 模块配置为PWM 模式。 程序: #include pic.h #define uint unsigned int #define uchar unsigned char __CONFIG(0x3B31); void initPWM(); void Delay1ms(uint time); /******
[单片机]
<font color='red'>PIC16F877A</font>单片机的PWM功能
pic单片机功耗问题的解决
最近一周一直在做pic单片机功耗问题。由于项目使用电池供电,所以功耗问题显得非常重要。根据数据手册以及网络上的资料,影响单片机功耗主要由以下几个因素: 1:所有I/O引脚保持为高阻输入高点平或低电平 2:关闭比较器和CVref(可编程偏上参考电压)、WTD、T1OSC、BOR(欠压复位)等 3:PORTB片内弱上拉 4:所有不用的模块全部关闭,在用到时再打开 5:MCLR引脚必须处于逻辑高电平 PIC单片机在执行SLEEP指令后进入睡眠省电模式。进入SLEEP模式后,主振荡停止,如果看门狗在烧写时打开了,看门狗定时器将被清并保持运行。I/O口,周边模块和内部RAM将保持原来状态,所以如果要求睡眠后有很低功耗,应该在进入
[单片机]
关于PIC单片机“读-修改-写”的相关说明
关于PIC单片机 读-修改-写 的相关说明 Topic: I have seen references to Read-Modify-Write instructions in your datasheet, but I do not know what that is. Can you explain what it is and why I need to know this? 我曾在数据手册里看到 读-修改-写 的相关说明,但我不知道这是什么。你能解释一下它的含义以及为什么要注意它吗? Discussion: An easy example of a Read-Modify-Write (or RMW) instru
[单片机]
基于PIC16F877A的简易数字频率计的设计
//本 程序 利用CCP1模块实现一个“简易数字频率计”的功能   #include pic.h   #include stdio.h   #include math.h   const char table ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0xFF};   //不带小数点的显示段码表   const char table0 ={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10,0xFF};   //带小数点的显示段码表   bank3 int cp1z ; //定义一个数组,用于存放各次的捕捉值   
[单片机]
PIC单片机或运算指令XORWF的应用
大家都知道,PIC单片机的大多数寄存器,包括RAM数据存储器的每个存储单元都能实现移位、清位、位测试等系列复杂操作功能。然而,协调它们运行的(应用最广泛的基本级、中级)精简指令集中,却没有对寄存器的某“位”进行“取反”运作的现成指令,而在实际应用中对某些“位”进行取反运作是很需要的。如下图所示。单片机PIC16C622单片机的端口RB作为输出端口的8个引脚,分别控制着8个不同的电器设备。按动按钮AN一下,继电器J吸合,再按一下J释放,即按动AN一下,端口RB3引脚的输出状态改变一下,而RB口的其它7个引脚输出保持原有状态不变。在这种情况下最好的方法是按动一下AN,对PORTB(3)“取反一次”——这对于MCS-51单片机来讲是极容易
[单片机]
<font color='red'>PIC单片机</font>或运算指令XORWF的应用
PIC单片机USART的应用
//★★★★★★★★★PIC单片机USART的应用(串口通信)★★★★★★★★★★★\ //单征机型号:PIC16F877A //功能描述:PIC单片机USART的应用,串口调试助手发送数据给877,877收到后再转发回串口助手 //通过“串口调试助手”协助工作 #include pic.h //包含单片机内部资源预定义 __CONFIG(0xf73a); //芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 //======================================================================== //功能描述:主程序
[单片机]
使用PIC单片机开发的简易数字电压表
  对于单片机初学者来说,数字电压表是一个不错的练习项目。在本文中,单片机开发工程师们分享了一个使用PIC单片机开发的简易数字电压表。该数字电压表的范围是0-20V,当然你也可以自己增加或减少输入电压的范围。   在这个方案中,使用的是microchip的PIC16F688单片机,该PIC单片机通过8个模拟通道之一读取输入电压,并使用内部ADC将其转换为10位数字。用ADC转换做一些数学运算,该数字可以转换为实际测得的电压。电压显示在基于HD44780的字符LCD上。   一、数字电压表电路图和说明   你无法将20V信号直接馈入PIC单片机的输入通道。它的工作电压过高,可能会损坏单片机。因此,首先我们需要一个电压缩放器,
[单片机]
使用<font color='red'>PIC单片机</font>开发的简易数字电压表
PIC单片机的一个简单的SPI小程序
这里介绍一个简单的PIC单片机SPI测试小程序,希望大家能够喜欢。 // DAC module connections sbit Chip_Select at RC0_bit; sbit Chip_Select_Direction at TRISC0_bit; // End DAC module connections unsigned int value; void InitMain() { TRISA0_bit = 1; // Set RA0 pin as input TRISA1_bit = 1; // Set RA1 pin as input
[单片机]
<font color='red'>PIC单片机</font>的一个简单的SPI小程序
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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