当前位置:首页 > 单片机 > 单片机
[导读]PORTB的功能基本就是普通IO,但它在其他方面有其他引脚不具备的特点,PORTB的每一个引脚在作为输入时,内部都有一个弱上拉可用。PORTB的RB0可以作为一个外部中断信号输入,可以对输入信号的上升沿或下降沿跳变产生一

PORTB的功能基本就是普通IO,但它在其他方面有其他引脚不具备的特点,PORTB的每一个引脚在作为输入时,内部都有一个弱上拉可用。

PORTB的RB0可以作为一个外部中断信号输入,可以对输入信号的上升沿或下降沿跳变产生一个中断响应。

要实现RB0/INT中断源,软件初始化设定步骤如下:

1,RB0/INT引脚为输入模式,TRISB0 = 1;

2,INTEDG = 1,RB0上输入信号上升沿产生中断;INTEDG = 0,下降沿中断

3,清除INTF = 0,确识有效中断发生前中断标志为0;

4,INTE = 1,允许RB0/INT中断响应。

5,GIE = 1,打开总中断使能

6,中断发生后,查询INTF位;

7,若INTF = 1,有中断,处理完毕后,软件必须清除INTF中断标志位。

#include #define uchar unsigned char#define uint unsigned int// CONFIG#pragma config FOSC = HS //#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)#pragma config LVP = ON // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3/PGM pin has PGM function; low-voltage programming enabled)#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)#define DELAY 500uchar count;void delay(uint x) //1ms{ uint y,z; for(y=x;y>0;y--) for(z=25;z>0;z--);}void init(void){ TRISB0=0; RB0=1; //为下降沿创造高电平的初始条件 TRISB0=1; //输入模式 INTEDG=0; //0下降沿触发,1为上升沿触发 INTF=0; //清零标志位 INTE=1; //开中断允许 GIE=1; //开全局中断}void interrupt INT() //查询式中断{ if(INTE&&INTF) { INTF=0; count++; TRISB0=0; //RB0设为输出 RB0=1; //输出高电平,以便检测中断条件(下降沿) TRISB0=1; //设为输入,等待中断 }}void main(void){ uchar i,temp; TRISA=0x00; PORTA=0xff; temp=0x01; init(); while(1) { if((count%2)==1) { PORTA=temp; delay(DELAY); temp^=1; } }}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

MCS-51单片机有两个外部中断源INT0和INT1,它们分别在P3.2和P3.3引脚出现低电平或下降沿信号时向单片机发出中断请求。外部中断可用于检测单片机外部发生的事件,如键盘敲击和特定脉冲发生的次数等。

关键字: 51单片机 外部中断

外部中断是单片机实时地处理外部事件的一种机制。具体指的是,当某种外部事件发生时,单片机的中断系统迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后,又返回被中断的程序处,继续执行下去。这里我们以Nuc...

关键字: MCU 外部中断 ST

STM32CubeMX是官方推荐的配置软件,而HAL库也是取代之前的库函数的通用库,所以STM32CubeMX+HAL库是当前主流的工程创建方式,HAL库的可移植性也高于被取代的库函数。 之前在[程序员小哈]的公众号中写...

关键字: LED 外部中断

1.ARM中一些常见英文缩写解释 MSB:最高有效位; LSB:最低有效位; AHB:先进的高性能总线; VPB:连接片内外设功能的VLSI外设总线; EMC:外部存储器控制器; MAM:存储器加速模块; VIC:向量中...

关键字: ARM THUMB I2C 外部中断

//软件思路:选择RAO做为模拟输入通道; // 连续转换4次再求平均值做为转换结果 // 最后结构只取低8位 // 结果送数码管的低3位显示 #include //包含内部资源预定义...

关键字: ad转换 pic16f877a picc

unsigned char eeprom_read(unsigned char addr);void eeprom_write(unsigned char addr, unsigned char value);这两个函数...

关键字: pic16f877a eeprom使用

/********************************文件所用资源1.外部中断0、1 定时中断0、1 串口中断2.端口:P3.0,P3.1,P3.3,P3.4,P3.5********************...

关键字: c51程序 串口中断 外部中断 定时中断

//*****************电子园PIC16F877A开发板 SPI总线驱动74595实验***************////CKP=0; 空闲为低电平//CKP=1; 空闲为高电平//STAT_CKE=0;...

关键字: pic16f877a spi总线 驱动74595

#include #include #include int main(void){MCUCR |= (1

关键字: AVR gcc编程 单片机 外部中断
关闭
关闭