PIC16F877异步串口中断探析

发布者:meilidaowl最新更新时间:2014-12-23 来源: 51hei关键字:PIC16F877  异步串口  中断探析 手机看文章 扫描二维码
随时随地手机看文章
PIC16F877单片机的异步串口中断程序:
 
#include
#define uchar unsigned char
#define uint  unsigned int
__CONFIG(0x3B31);
void init();
void main()
{
 init();
// TXREG=0x31;  //发送
 while(!TRMT); //发送结束退出
 while(1);
}
void init()
{
 TRISD = 0;
 PORTD = 0;
 TRISC = 0x80;  //RX方向必须为输出.或者:TRISC|= 0xC0;
 TXSTA=0x24;  //发送状态寄存器:使能发送,高速(高速与低速波特率差4倍,即9600与2400)
 RCSTA=0x90;  //接收状态寄存器:使能串行端口,使能接收
 SPBRG=25;  //波特率为9600
 GIE=1;   //使能全局中断
 PEIE=1;   //使能外设中断
 RCIE=1;   //使能串口中断
}
void interrupt com()
{
 if(RCIE&&RCIF)
 {
// TXREG=RCREG;
 if(RCREG == 0x01) {PORTD = 0xff; TXREG = 0x11;}
 if(RCREG == 0x02) {PORTD = 0x55;TXREG = 0xFF;} 
  while(!TRMT);//这一句不能少,否则收不到
 }
}
 
关键字:PIC16F877  异步串口  中断探析 引用地址:PIC16F877异步串口中断探析

上一篇:PIC16F877定时器0的中断方式调试
下一篇:PIC单片机AD中断调试(无数字滤波)

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

PIC16F877单片机在智能站用电源系统中的应用
1 概述 供电系统是直接影响人们日常生活和工作的重要系统。特别是在变电站、发电厂、通信机房、大厦、医院等需要重要电源的地方和实行无人值守的电源系统,供电控制系统能否对供电电源进行故障监测,并能及时处理,保证系统正常供电,尤其显得重要。智能型变电站站用电源系统的设计采用ATS(Automatic Transfer Switch)自动转换开关和智能监测及控制技术,来实现电气和机械双闭锁,从而根本保证了电源的安全可靠切换。同时系统还可以方便地实现多电量的集中监测,并可根据用户需要接入远程监测控制系统中。本文主要介绍PIC16F877单片机在智能站用电源系统中的应用。 2 智能站用电源系统的构成和功能 2.1系统工作原理 2.1.
[单片机]
<font color='red'>PIC16F877</font>单片机在智能站用电源系统中的应用
PIC16F877单片机在直流电机闭环调速系统中的应用
0引 言        现代工业生产中,电动机是主要的驱动设备,目前在电力拖动系统中已大量采用晶闸管(即可控硅)装置向电动机供电的KZ-D拖动系统,取代了笨重的发电动一电动机的F-D系统,又伴随着微电子技术的不断发展,中小功率直流电机采用单片机控制,调速系统具有频率高,响应快,本文论述了采用PIC16F877单片机作为主控制元件,充分利用了PIC16F877单片机捕捉、比较、模/数转换模块的特点作为触发电路,其优点是:结构简单,能与主电路同步,能平稳移相且有足够的移相范围,控制角可达10000步,能够实现电机的无级平滑控制,脉冲前沿陡且有足够的幅值,脉宽可设定,稳定性与抗干扰性能好等。       1 直流电机调速原理分析   
[工业控制]
PIC16F877的应用--AD转换器
PIC16F877单片机片内有8路10位A/D转换器,引脚②~⑤为AN0~AN3、⑦~⑩为AN4~AN7。MPLAB-ICD的实验板上16F877单片机的RA0口接了一只供有电压的10kΩ电位器,在D口(RD0~RD7)接了8只LED,如附图所示。笔者用16F877 A/D转换通道其中一路作A/D转换,以说明A/D转换编写程序的方法和在线调试及编程。 在附图中,笔者把R6的可变输出(电压模拟量)端接到RA0/AN0作为模拟量输入;用D口(RD0~RD7)的8只LED显示A/D转换的结果(按二进制显示)。 一、 建立A/D转换源程序的要点 编写10位的一路A/D转换程序看似简单,但对初学者却有一定难度,因为编写A/D转换程序时,
[单片机]
<font color='red'>PIC16F877</font>的应用--AD转换器
PIC16F877控制数码显示按键按下次数C语言程序
//数码管动态扫描,k1按下,数字+1,K2按下,数字-1,每次按下的同时,听到DD二声。 #include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); uint a; const uchar aa = {0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90}; void delay(uchar x)//延时函数 { uchar a; for(;x 0;x--) for(a=220;a 0;a--); } void
[单片机]
PIC16F877驱动DS1302芯片
这个程序改网上的程序只用了一上午的时间,看来是用修改别人程序比自个从头开始编快的的多呀! 下面是原理图 下面是程序头文件 #ifndef DS1302_H #define DS1302_H #include main.h #define Time_24_Hour 0x00 //24时制控制 #define Time_Start 0x00 //开始走时 #define Time_Stop 0x80 //停止走时 #define DS1302_SECOND 0x80 //DS1302各寄存器操作命令定义 #define DS1302_MINUTE 0x82 #define DS1302_HOUR 0x84 #def
[单片机]
<font color='red'>PIC16F877</font>驱动DS1302芯片
单片机串口通信中的异步通信和同步通信
异步通信:收发双方使用独立的时钟进行数据传输。发送的每帧数据之间的时间间隔可以是任意的。发送端可以在任意时刻发送数据,而接收端要做好接收的准备,否则会造成数据丢失。异步通信发送的数据格式要求有(空闲位)起始位、数据位、奇偶校验位、停止位。这样接收端才能更好的解析数据,知道数据从哪位开始,在哪位结束。 同步通信:收发双方要保持时钟的同步,要求使用同一个时钟。在发送数据之前,传输线处于MARK状态,为了表示数据传输的开始,会先发送一两个同步字符,用于进行时钟的同步。同步之后即可逐位数据进行传输。 可以理解为:异步通信使用数据格式中的起始位,停止位进行同步,而同步通信使用外部时钟进行同步。
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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