首页 > 新闻资讯 > 新闻详情

PIC16F877A单片机引脚功能及中文资料介绍

IC先生 IC先生 2445 2023-09-27 15:26:00

PIC微控制器PIC16F877A是业界最著名的微控制器之一,该微控制器使用起来非常方便,该控制器的编码或编程也更容易。主要优点之一是它可以尽可能多次地写入擦除,因为它使用闪存技术。

PIC16F877A共有40个引脚,其中输入和输出有33个引脚。PIC16F877A用于许多PIC微控制器项目。PIC16F877A在数字电子电路中也有很多应用。

PIC16F877A在大量设备中得到应用。它用于远程传感器、安全设备、家庭自动化和许多工业仪器。它还具有EEPROM ,可以永久存储一些信息,例如发射器代码和接收器频率以及其他一些相关数据。该控制器成本低,操作也容易。它非常灵活,可以用于以前从未使用过微控制器的领域,例如微处理器应用和定时器功能等。其主要特性包括:

  • 有一个较小的35条指令集。
  • 工作频率高达20MHz。
  • 工作电压在4.2伏至5.5伏之间。如果提供超过5.5伏的电压,它可能会永久损坏。
  • 它没有像其他PIC18F46K22、PIC18F4550那样的内部振荡器。
  • 每个端口可以吸收或输出的最大电流约为100mA。因此,PIC16F877A每个GPIO引脚的电流限制为10毫安。
  • 提供40引脚PDIP、44引脚PLCC、44引脚TQFP、44引脚QFN等四种IC封装。

PIC16F877A

引脚配置说明

正如上面提到的,PIC16F877A微控制器IC有40个引脚。它由2个8位和1个16位定时器组成。它还具有捕获和比较模块、串行端口、并行端口和五个输入/输出端口。该图为PIC16F877A的引脚图。

引脚配置

  • 引脚1 MCLR:第一个引脚是该IC的主清除引脚。它会重置微控制器并处于低电平有效,这意味着应不断为其提供5V电压,如果提供0V电压,则控制器将被重置。重置控制器将使其返回到已烧录到IC中的程序的第一行。开关和电阻器连接到该引脚。该引脚已由恒定的5V供电。当想要重置IC时,只需按下按钮即可将MCLR引脚置于0电位,从而重置控制器。

MCLR引脚

  • 引脚2 RA0/AN0:PORTA由6个引脚组成,从引脚2到引脚7,所有这些引脚都是双向输入/输出引脚。引脚2是该端口的第一个引脚。该引脚也可用作模拟引脚AN0。它内置模数转换器。
  • 引脚3 RA1/AN1:这可以是模拟输入1。
  • 引脚4 RA2/AN2/Vref-:它可以充当模拟输入2。或者可以给它提供负模拟参考电压。
  • 引脚 5 RA3/AN3/Vref+:它可以作为模拟输入3。或者可以作为模拟正参考电压。
  • 引脚6 RA0/T0CKI:对于timer0来说,该引脚可以作为时钟输入引脚,输出类型为开漏。
  • 引脚 7 RA5/SS/AN4:这可以是模拟输入4。控制器中也有同步串行端口,该引脚可以用作该端口的从机选择。
  • 引脚8 RE0/RD/AN5: PORTE从引脚8开始到引脚10,这也是一个双向输入输出端口。它可以是模拟输入5,或者对于并行从端口,它可以充当低电平有效的“读取控制”引脚。
  • 引脚9 RE1/WR/AN6:它可以是模拟输入6。对于并行从端口,它可以充当“写控制”,该控制将低电平有效。
  • 引脚10 RE2/CS/A7:它可以是模拟输入7,或者对于并行从端口,它可以充当“控制选择”,它也将像读写控制引脚一样处于低电平有效。
  • 引脚11和32 VDD:这两个引脚是输入/输出和逻辑引脚的正电源。它们都应该连接到5V。
  • 引脚12和31 VSS:这些引脚是输入/输出和逻辑引脚的接地参考。它们应连接至0电位。
  • 引脚13 OSC1/CLKIN:这是振荡器输入或外部时钟输入引脚。
  • 引脚14 OSC2/CLKOUT:这是振荡器输出引脚。晶体谐振器连接在引脚13和14之间,为微控制器提供外部时钟。在RC模式下,OSC1的1/4频率由 OSC2输出。这表示指令周期率。

内部振荡器

  • 引脚15 RC0/T1OCO/T1CKI: PORTC由8个引脚组成。它也是一个双向输入输出端口。其中,引脚15是第一个。它可以是定时器1的时钟输入或定时器2的振荡器输出。
  • 引脚16 RC1/T1OSI/CCP2:可以是定时器1的振荡器输入或捕捉2输入/比较2输出/PWM 2输出。
  • 引脚17 RC2/CCP1:可以是捕捉1输入/比较1输出/PWM 1输出。
  • 引脚18 RC3/SCK/SCL:可以作为SPI或I2C模式的输出,也可以作为同步串行时钟的输入/输出。
  • 引脚23 RC4/SDI/SDA:可以是引脚中的SPI数据。或者在I2C模式下它可以是数据输入/输出引脚。
  • 引脚24 RC5/SDO:SPI模式下可以是SPI输出的数据。
  • 引脚25 RC6/TX/CK:可以是同步时钟或USART异步发送引脚。
  • 引脚26 RC7/RX/DT:可以是同步数据引脚或USART接收引脚。
  • 引脚19,20,21,22,27,28,29,30:所有这些引脚都属于PORTD,它又是一个双向输入和输出端口。当要连接微处理器总线时,它可以充当并行从端口。
  • 引脚33-40:所有这些引脚都属于PORTB。其中RB0可用作外部中断引脚,RB6和RB7可用作在线调试器引脚。

注意:所有引脚都具有多种功能。与PORTC引脚一样,可以用作数字输入引脚、数字输出引脚,用于UART通信、I2C通信。但是,我们可以一次使用每个端口的一项功能,或者必须对其进行巧妙的编程,以便可以在不同的功能之间切换。就像有一次你需要一个引脚来读取模拟信号,将其定义为模拟用途,然后切换到其他功能,例如数字输出等。对于初学者,建议使用一个引脚来实现单一功能,一旦你可以使用多功能模式,就可以使用多功能模式。

对输入和输出端口进行编程 

  • 这里已经研究了5个输入和输出端口,即PORTA、PORTB、PORTC、PORTD和PORTE,它们可以是数字的也可以是模拟的。
  • 将根据我们的要求配置它们。但在模拟模式下,引脚或端口只能充当输入。在这种情况下会使用内置的A至D转换器。还使用多路复用器电路。
  • 但在数字模式下,则没有限制。我们可以将端口配置为输出或输入。这是通过编程完成的。对于PIC,更好的编译器是mikroC pro,可以从网站下载。
  • 有一个名为“TRIS”的寄存器控制端口的方向。对于不同的端口有不同的寄存器,例如TRISA、TRISB等。
  • 如果将TRIS寄存器的某个位设置为0,则相应的端口位将充当数字输出。
  • 如果将TRIS寄存器的某个位设置为1,则相应的端口位将充当数字输入。
  • 例如,要将整个portb设置为输出,可以将程序语句编写为:
TRISB=0;
  • 现在该端口将充当输出端口,可以在输出上发送任何值,例如:
PORTB=0XFF;
  • FF表示二进制中全1,即FF=11111111,此时端口b的所有引脚都为高电平。如果在所有引脚上连接LED,那么在这种情况下它们都会开始发光。
  • 如果想否定端口b的值,可以使用以下语句:
PORTB=~PORTB;
  • 现在端口b的所有引脚都将为低电平。

PIC16F877A编译器

  • 用于对PIC微控制器进行编程的三种流行编译器是MPLAB XC8、Mikro C for pic、PIC CCS编译器和Hi-Tech编译器。
  • 官方编译器是PIC16F877A厂家开发的MPLAB XC8编译器。
  • 对于初学者,通常推荐使用Mikro C进行PIC编译器;对于那些想要从寄存器级裸机概念学习PIC微控制器编程的人,推荐MPLAB XC8编译器。

PIC16F877A主要特点

与所有其它微控制器一样,PIC16F877A还提供此列表中提到的内置有用功能:

  • 模数转换模块: 它有8位ADC模块,由8个通道组成。我们可以在该微控制器上使用8个模拟传感器。
  • 定时器:提供三个定时器timer0、timer1、timer2。所有这些定时器都可以在定时器模式或计数器模式下使用。这些定时器用于生成延迟、脉宽调制、对外部事件进行计数和定时器中断。TIMER0是一个8位定时器,它可以以内部或外部时钟频率运行。当我们在定时器模式下使用Timer0时,通常使用内部频率来操作它,而在计数器模式下,使用外部时钟源来触发它。同样,TIMER1是一个16位定时器,它也可以在两种模式下工作。TIMER2也是8位的。它与PWM一起用作CCP模块的时基。
  • EEPROM: 它还具有内置电可擦除只读存储器256 x 8字节,可用于永久存储数据,即使微控制器关闭,数据也将保留在那里。通常与电子锁相关项目一起使用。
  • PWM模块: 还提供2个CCP模块。CCP代表捕获比较PWM模块。我们可以使用该微控制器轻松生成两个PWM信号。它支持的最大分辨率是10位。
  • 串口或UART通讯引脚:支持1个UART通道。UART引脚用于数字设备之间的串行通信。RC7引脚是发送器或RX引脚,引脚号为26。RC6是接收器或 Tx 引脚,引脚号为25。
  • I2C通信:PIC16F877A也支持I2C通信,并且它有一个用于I2C通信的模块。引脚18/RC3和23/RC4 分别是SCL和SDA引脚。SCL是串行时钟线,SDA是串行数据线。
  • 中断:中断在嵌入式系统领域有很好的应用。如果不了解中断,建议您完全了解它们,否则将无法掌握对它们进行嵌入式编程的命令。PIC16F877A单片机提供8种中断类型:外部中断、定时器中断、PORT状态改变中断、UART中断、I2C、PWM中断。
  • 比较器模块:它有一个比较器模块,由两个比较器组成。它们用于比较模拟信号,类似于电子电路中的比较器。这些比较器的输入引脚为RA0、RA1、RA2和RA3,输出可通过RA4和RA5测量。
  • 看门狗定时器:WDT是一个片内独立振荡器,可以自由运行。它是一个独立于OSC1/CLKI的振荡器。即使设备处于睡眠模式,WDT也将工作。它用于将设备从睡眠模式唤醒,也用于生成看门狗定时器复位。
  • 休眠模式:PIC16F877A还提供休眠模式操作。在此模式下,设备以非常低的功耗运行。所有外围设备消耗最少的电流。通过定时器1中断、UART中断、EEPROM写入完成操作等中断资源从睡眠模式唤醒。
  • 欠压检测:它还具有欠压检测电路,可检测电源电压的显着下降。如果电源电压下降到一定限度,就会产生中断信号。该配置位(BODEN)用于禁用或启用该电路。
  • 欠压复位:此选项在检测到来自BODEN信号的欠压中断信号时复位器件。如果电源电压低于阈值超过100微秒。
  • 可编程代码保护,将发生欠压复位 ,并且器件将保持复位状态,直到电压升至其标称值。设备每72毫秒检查一次电压。

下面列出了其它一些重要功能:

  • 上电复位
  • 多振荡器组
  • 在线调试器
  • 在线串行编程
  • 低压ICSP编程

点亮单个LED/闪烁LED的代码

下面是关于使用 PIC16F877A 微控制器使LED闪烁的简单教程。这里使用Mikro C for pic编译器来编写此代码的。

void main()

 {

      TRISB.F0 = 0  // the direction of RB0 is set as output

                 //or TRISB = 0xFE (0xFE = 11111110)

      do // setting the infinite loop

      {

        PORTB.F0 = 1; // setting the RB0 pin to high

        Delay_ms(500); // delay of 500 milli seconds

        PORTB.F0 = 0; // setting the RB0 pin to low

        Delay_ms(500); // again a delay of 500 milli seconds

     }while(1);

 }

上述代码用于以五百毫秒的延迟切换PORTC引脚编号0。在主函数内部,该行将RB0初始化为数字输出引脚。

TRISB.F0 = 0

之后使用do while循环,因为我们想要一次又一次地切换LED。在do while循环内,这些行使RB0数字高电平持续500ms。

PORTB.F0 = 1; // setting the RB0 pin to high Delay_ms(500); // delay of 500 milli seconds

与这些行类似,关闭LED 500毫秒。

PORTB.F0 = 0; // setting the RB0 pin to low Delay_ms(500); // again a delay of 500 milli seconds

电路图

  • 在proteus中设计该电路。按照引脚描述部分的说明,将引脚与源极、接地和振荡器连接。
  • 通过两个22pF电容将8MHz振荡器与OSCI和OSC2连接。
  • 通过10k欧姆电阻向Reset引脚提供5V电压。仿真中没有显示电阻,但实际制作电路时应连接电阻。
  • 引脚33 RB0连接LED ,电阻用于限制电流并防止LED烧毁。在mikroC pro中编写并编译程序。
  • 在proteus中双击控制器,用hex文件烧录单片机,并成功运行电路。
  • Pic kit3是一个著名的编程器,用于将代码上传到微芯片芯片。

总结

PIC16F877A是一种微控制器,属于Microchip Technology的PIC(Peripheral Interface Controller)系列。它采用8位微处理器架构,具有高性能的CPU,适用于各种嵌入式控制应用。

PIC16F877A配备了8KB的闪存程序存储器(Flash Memory)用于存储用户编写的程序代码,以及368字节的RAM用于临时数据存储。它具有33个可编程I/O引脚,可以用于连接外部设备和传感器,以及控制外部操作。此外,它包括多个定时器和计数器,用于生成精确的时间延迟和控制定时操作。

PIC16F877A支持多种低功耗模式,有助于节省能源,并延长电池寿命,具有多种时钟源选项,可根据应用需求进行配置。PIC16F877A适用于各种应用,包括嵌入式系统、自动化控制、传感器接口、电子设备和小型嵌入式控制器等。

推荐商品
FF600R12ME4
库存:0
¥ 1525.5
TMS320F2809PZA
库存:0
¥ 353.125
CGA5L1C0G2A104J160AE
库存:0
¥ 9.50375
AD5601BKSZ-500RL7
库存:0
¥ 6.31
GRM155R61C225KE44D
库存:0
¥ 0.1083
版权声明: 部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,如本站文章和转稿涉及版权等问题,请作者及时联系本站,我们会尽快处理。
标题:

PIC16F877A单片机引脚功能及中文资料介绍


网址: https://www.mrchip.cn/newsDetail/5258
文章标签: 单片机
0 购物车
0 消息