PIC16F877A单片机引脚功能及中文资料介绍 |
您所在的位置:网站首页 › ch05t1626引脚功能 › PIC16F877A单片机引脚功能及中文资料介绍 |
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封装。
注意:所有引脚都具有多种功能。与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
PIC16F877A是一种微控制器,属于Microchip Technology的PIC(Peripheral Interface Controller)系列。它采用8位微处理器架构,具有高性能的CPU,适用于各种嵌入式控制应用。 PIC16F877A配备了8KB的闪存程序存储器(Flash Memory)用于存储用户编写的程序代码,以及368字节的RAM用于临时数据存储。它具有33个可编程I/O引脚,可以用于连接外部设备和传感器,以及控制外部操作。此外,它包括多个定时器和计数器,用于生成精确的时间延迟和控制定时操作。 PIC16F877A支持多种低功耗模式,有助于节省能源,并延长电池寿命,具有多种时钟源选项,可根据应用需求进行配置。PIC16F877A适用于各种应用,包括嵌入式系统、自动化控制、传感器接口、电子设备和小型嵌入式控制器等。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |