设计与开发

pic 单片机定时器 pic单片机之中断程序(附实例)

小编 2024-10-07 设计与开发 23 0

pic单片机之中断程序(附实例)

什么是中断程序呢?

形象的生活比喻就比如你现在这在看我的文章,突然你的朋友喊你一起去烤地瓜,这时候你就中断了看文章和朋友烤地瓜去了,烤完地瓜之后你又回来看文章。烤地瓜这件事就好比中断程序,他中断了你看文章这件事。在程序方面来说 当CPU在执行一个程序的时候,突然产生了中断事件CPU就去执行中断程序了,当执行完成后CPU又回来执行原先的程序。

中断事件

什么是中断事件,就是引起中断的事件。对于单片机来说这些事件是多种多样的。比如 说一个按键按下,一定的时间到了,一串数据发送完毕,或接收完一个数据。

讲到中断不得不讲讲和中断相对的 查询。其实不管是按键按下 还是 时间到,还是数据发送完毕,这些事实上都可以用查询的方式办到。比如 你是经理 如果你想知道属下任务完成了没有 一种方式就是去询问属下,任务完成没有。早上没完成,下午在问。下午没完成第二天再问。。。。一直到完成为止 这种方式就相当于查询的方式,另一种就是然属下完成任务好直接汇报,在下属执行任务的期间你无需去打挠下属,当下属任务完成后就第一时间向你汇报,这种方式就好像中断。

查询方式:缺点就是可能会大量浪费CPU的时间,不断去查询。如果事情不多还好,可是一旦事情多了会明显感到运行速度变慢。

中断方式:可以用在对时间和响应速度有要求的场合。

具体有哪些事件会引起中断 可以看

1,中断控制寄存器INTCON

2,外设中断允许寄存器 PIEX 注 : X可以是1 2 3 4.。。。不同型号的单片机数目不同

3,外设中断标志寄存器 PIRX 注: X可以是1 2 3 4.。。。不同型号的单片机数目不同

INTCON 中断控制寄存器讲解:

1开启或关闭 全体的中断功能(GIE)

2开启或关闭全体外设的中断功能(PEIE)外设就是在外设中断允许/标志寄存器里面所写的设备。

3开启一些中断事件。

PIEX 与 PIRX 是相互对应的如:当把PIE1的TMR1IE设置为1 定时器timr1将开启中断。等到TMR1定时器溢出后,则会在PIR1的TMRIF将为1,并且执行中断程序。

实例讲解:

我们把上一讲的《PIC单片机之定时器》中的实例修改成中断方式 实现 每隔 50MS亮起LED,每隔50MS灭掉LED。

/*开发环境MPLAB X IDE 芯片型号PIC16LF1823*/

#include

__CONFIG(FOSC_INTOSCWDTE_OFFPWRTE_ONMCLRE_OFFCP_ONCPD_OFFBOREN_ON

CLKOUTEN_OFFIESO_ONFCMEN_ON);//这个要放到上一行去

__CONFIG(PLLEN_OFFLVP_OFF) ;

#define LED LATA5

void init_fosc(void)

{

OSCCON= 0x68;

}

void init_gpio(void)

{

PORTA = 0;

LATA = 0;

ANSELA = 0;

TRISAbits.TRISA5=0;

}

void init_timer0(void)

{

OPTION_REG=0x87;

}

void interrupt isr(void)//中断程序,interrupt是个关键字说明该函数,是中断函数。

{

LED = ~LED;//改变LED的状态

INTCONbits.TMR0IF=0;//清零中断标志位 如果在离开中断程序前没有清零,程序将不停的中断。

TMR0=61;//给TMR0付初始值61 ,开始下一个50ms计时做准备。

//中断函数结束 返回主函数。哪里来回 回那里去,也就是回到主函数的while(1);处

}

int main(int argc, char** argv)

{

init_fosc();

init_gpio();

init_timer0();

INTCONbits.GIE=1; //开启总中断

INTCONbits.TMR0IF=0;//清零TMR0溢出中断标志位

INTCONbits.TMR0IE=1;//开启TMR0溢出中断

TMR0=61;

while(1);//主函数 在此什么都没做一直在死循环。但等到50ms时间到了TMR0将会溢出,程序就会跳到void interrupt isr(void)处执行。

}

我帮大家理清下中断初始设置大致的步骤

1 ,开启总中断,开启外设中断。INTCONbits.GIE=1; INTCONbits.PEIE=1;其实即使没用到外设开启也无妨。

2 ,清楚相应中断的标志位。如INTCONbits.TMR0IF=0;

3 ,开启相应中断。如INTCONbits.TMR0IE=1;

中断函数/程序 中要注意的就是 清零相应的中断标志位 如INTCONbits.TMR0IF=0; 否则单片机会认为中断未被执行 则一直中断。

pic单片机原理及应用

  今天宇凡微将为大家带来PIC单片机原理及应用的知识分享,包括P IC单片机的特色,让您对PIC单片机有一个更加深入的了解。

  PIC单片机是基于RISC系统结构的单片机,最初的设计是支持PDP(编程数据处理器)计算机。大量的操作可以用来控制外围设备。

pic单片机原理

  PIC单片机比微控制器具有更快的程序执行能力。它是由微芯片技术公司于1889年发明的,是一种8位单片机。众所周知,单片机其实就是一个处理器,内存和外设在单个芯片中的组合。PIC单片机用数据RAM和数百个ROM以类似的方式存储所需程序的ROM,一些I/O端口,一个有8个引脚的定时器。

  它被称为外围接口控制器,因为它被设计为可以执行简单的控制应用程序。但现在,它通常被称为可编程智能计算机。众所周知,单片机的组件基本上嵌入到芯片中。因此,外部存储器、I/O端口或定时器无法进一步添加。然而,该属性也用于单片机的各种应用程序。

  每当我们谈论嵌入式系统时,很明显,虽然有外部控制器,但它们仍然有内部单片机。嵌入式系统中单片机的ROM通常存储系统想要执行的功能。

  正如我们所讨论的,它由处理器、I/O端口、计时器和内存组织组成。因此,让我们进一步了解PIC单片机各组件的操作。

  一、CPU:CPU是包括ALU、CU和MU在内的中央处理单元。ALU根据收到的指令执行算术和逻辑操作。存储单元存储处理指令和处理后的数据和指令。

  当控制单元控制连接到系统的I/O设备时。这里值得注意的是,因为它是基于RISC系统结构机,值得注意的是:

  (1)指令数很小,大约总共35条指令。

  (2)由于指令数较少,CPU执行的操作将会很快。

  (3)由于指令的长度很小,因此指令的处理需要更少的时间,RISC体系结构还支持不太复杂的编译和简便的调试。

  二:存储器:PIC单片机中一般存在两种类型的存储器:

  1.程序或代码存储器:它表明程序存储器保存了一个由单片机执行的指令集。它基本上被称为ROM。因此,提供8K存储14个存储空间,可存储指令或程序。PC访问程序存储器,并在获得指令后增加它们。

  EEPROM:ROM只允许程序存储一次。但EEPROM,即电可擦可编程只读存储器,允许多次将代码写入ROM。

  快闪记忆体:闪存是单片机的另一个PROM。可根据需要多次擦除闪存中的程序。

  2.数据存储器:数据存储器存储数据。基本上,这些是随机访问存储器,即RAM。它临时将数据存储在存储器中。PIC单片机有368字节的RAM,分为多个存储区域。数据存储的存储器分为:

  通用寄存器:这些是执行传统功能的寄存器。如加法、减法、乘法等,并将结果进一步存储在其他寄存器中。因此,PIC有能力直接访问这些寄存器中的数据,而不为这些寄存器分配任何特殊功能。

  专用寄存器:缩写为SFR。这些寄存器由处理器分配了一些特殊功能,因此不能用于任何通用目的。在制造系统时,已经设置了由这些寄存器执行的操作。因此,这些寄存器的功能是不变的。一些重要的特殊功能寄存器是:状态寄存器、TRIS寄存器、PORT寄存器。类似,STATUS寄存器的功能是显示正在执行的程序的状态。

  三、I/O端口:不同PIC系列的I/O端口数量不同。PIC16系列有5个I/O端口。它们是端口A、端口B、端口C、端口D和端口E。

  四、总线:该单片机中的总线用于不同单元之间的通信。PIC有两个总线,数据总线和地址总线。数据总线在存储器和I/O单元之间传输数据。地址总线保存数据加载或提取的位置地址。

  五、堆栈:因为中断的优先级很高。因此,每当中断时,PIC单片机的处理器必须通过停止目前正在执行的操作来切换来处理中断。因此,堆栈将存储当前执行程序的地址,直到PIC单片机处理生成中断。中断后,处理器将切换到主程序,并将其地址存储在堆栈中。

  六、定时器:PIC单片机包含三个定时器。这三个定时器中有两个定时器,即定时器0和定时器2为8,定时器1为16。

引用:pic单片机原理及应用-深圳宇凡微

相关问答

pic单片机 指令左右循环是怎么回事

在这里介绍一种定时程序,说明循环程序在PIC单片机上的应用。笔者仍以PIC16F84单片机为例建立其定时源程序清单。该定时器源程序只需改变一条指令的...

如何解决 PIC单片机 硬件死锁的问题?

pic工业级标准而且是精简指令集不会死循环的哦,可能是你硬件电路设计的有问题,如果程序死循环那就要修改程序逻辑哦pic工业级标准而且是精简指令集不会死...

pic单片机 是什么内核?

PIC单片机采用的是RISC(ReducedInstructionSetComputer)指令集架构,其内核主要基于哈佛结构,具有高性能、低功耗、易于编程等特点。PIC单片机内置了多种功...

pic 16系列 单片机 介绍?

都没什么区别,8位,有UART也就是232通信,可以做I2C从机,个别有can之类的。就是用来做监控的,可以有AD转换,外部中断和定时器,还可以做通信接口都没什么区别,8...

51单片机与 PIC单片机 有什么本质区别?

PIC单片机与MCS-51系列单片机的区别应该说有三个主要特点:(1)总线结构:MCS-51单片机的总线结构是冯-诺依曼型,计算机在同一个存储空间取指令和数据,两者不能同...

PIC 16C和 PIC 16F哪个系列功耗低?

51单片机:AT系列(AT89S51/52AT89C51/52)STC单片机:STC系列(STC89S52)PIC单片机:PIC16f系列PIC18f系类TOSHIBA单片机...单片机,...

单片机 中f是什么意思?

在PIC系列8位单片机中,常用符号F(或f)代表片内的各种寄程器和F的序号地址。F取值按PIC系列不同型号而不同,一般为Ox00~Ox1F/7F/FF。TMRO代表定时...

老铁们!能告诉我:供应时序控制器哪家好,有了解时序控制器...

在网上找了不少同类型的公司,同时也进行了实地考察,最满意的还是规模很大,在全国有十几家分公司,非常专业,我觉得值得推荐给大家!计算机系统的硬件...

pwm是怎么调节输出频率的?

电压变化是通过占空比的调节改变的。改变频率输出是通过改变开关的动作频率实现的。在理想条件下以电压型PWM为例:直流侧是电容器,然后通过全控器件(如IGBT...

怎样才能成为 单片机 工程师?

一般来说,单片机属于硬件工程师的工作范畴。毕竟单片机驱动编程和电路设计是分不开,只有明白了单片机如何驱动才能设计出更为合理的电路产品。如果想更好的从...

猜你喜欢