【单片机原理及其应用】第三章IO口的定义与使用 |
您所在的位置:网站首页 › Arduino定义IO口语句 › 【单片机原理及其应用】第三章IO口的定义与使用 |
在学习IO口之前,首先来复习一下之前学习的PIC16F887系列的封装图 IO口就是input/output口,用于单片机连接外部电路或者外部电路连接单片机 887有35个O口,36个I口。 其中端口的分类有四种,分别为A,B,C,D。A,B,C,D口个8个引脚,E口四个引脚(RE3口只能输入不能输出) 由于存在每个端口进行输入输出复用(既可以作为输入口也可以作为输出口),所以在使用这些端口之前需要对端口的方向进行定义(简单来说就是控制这个端口在工作的时候是作为输出端口还是输入端口)。控制这些端口方向的“管理员”我们称为:数据方向控制寄存器 记作TRISx,分别有TRISA,TRISB,TRISC,TRISD,TRISE。控制各个端口的输入输出定义。 其中0是输出,1是输入。0是不是很像output,1是不是很像input。 所有的控制端口寄存器上电复位默认值全部为1,即输入口。 // PIC16F887 Configuration Bit Settings // 'C' source line config statements // CONFIG1 #pragma config FOSC = XT // Oscillator Selection bits (XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register) #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config MCLRE = OFF // RE3/MCLR pin function select bit (RE3/MCLR pin function is digital input, MCLR internally tied to VDD) #pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled) #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled) #pragma config BOREN = OFF // Brown Out Reset Selection bits (BOR disabled) #pragma config IESO = OFF // Internal External Switchover bit (Internal/External Switchover mode is disabled) #pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled) #pragma config LVP = OFF // Low Voltage Programming Enable bit (RB3 pin has digital I/O, HV on MCLR must be used for programming) // CONFIG2 #pragma config BOR4V = BOR40V // Brown-out Reset Selection bit (Brown-out Reset set to 4.0V) #pragma config WRT = OFF // Flash Program Memory Self Write Enable bits (Write protection off) // #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF. #include void main(void) { TRISA=0B00000001;//0b表示二进制。后面的表示端口的输入输出选择。从右边往左边,分别是RA0,RA1,RA2,RA3,RA4,RA5,RA6,RA7. TRISB=0B00000010;//表示RB1是输入,其他均为输出 TRISC=0B00000100; TRISD=0B00001000; TRISE=0B0101; return; }注意: 每个IO引脚最大的输出电流(拉电流)为25mA,最大输入电流(灌电流)也为25mA; 每个端口组合的最大输出电流和输入电流为90mA; 在写端口的时候要注意写和读同一个端口不能连续操作; (因为单片机对I/O口的操作实际上是对I/O进行“读-修改-写”的过程,在指令周期的开头读取,修改,在指令周期的末尾写入锁存器。如果连续性写读会导致,电平还未稳定,读出来的和写进去的不一样。通常在中间加一个NOP()指令,使其休息一段时间) PPT中的神奇的超低功耗唤醒 通过将PCON 寄存器中的ULPWUE 位置1 选择此模式。这将产生一个小的灌电流,可用于将RA0 上的电容放电。当RA0 上的电压下降到VIL (低电平,0.8V左右)以下时,将产生中断使器件唤醒并执行下一条指令。如果INTCON 寄存器中的GIE位置1,器件将调用中断向量( 0004h)
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |