PIC端口.pptVIP

  • 14
  • 0
  • 约1.95千字
  • 约 17页
  • 2018-04-06 发布于河北
  • 举报
PIC端口

第3章 单片机的输入输出端口GPIO 通用I/O接口的基本使用方法 I/O的基本概念 CPU可以通过I/O接口(电路)与外设进行数据交换,交换用数据的本质是高低电平。 +5V(VDD) 被人为定义为逻辑1。 0V(GND)被人为定义为逻辑0。 CPU通过引脚从接口读到一个高电平(+5V),则说外设向CPU输入了1;如果CPU向通过引脚接口输出一个低电平(0V),则说CPU向外设输出了0。 I/O端口(PORT) 端口是接口电路中暂时存放数据的寄存器(Register)。 例如:外设向CPU的接口输入了一个高电平(+5V),则把1放到端口中,再由CPU读取。 如果向外输出一个高电平(+5V),则CPU把1放到端口中,由端口自动向外设输出+5V。 输出过程(Output) CPU 接口电路 外 部 设 备 PORT 0000 0001 (0V) GND 通过 指令 从 端口 输出1 +5V 输入过程(Input) CPU 接口电路 外 部 设 备 PORT 0000 0001 VDD(+5V) 通过 指令 从 端口 读 读到1 PIC的通用I/O端口(PORT) PIC16F877型单片机共有40个引脚,其中有33个是I/O引脚。 33个I/O引脚归属于5个端口,分别为PORTA(6)、PORTB(8)、PORTC(8)、PORTD(8)、PORTE(3),其中括号内的数字为该端口的位数。 PIC16F877外形 引脚结构图 P20 PIC的通用I/O接口寄存器 33个I/O引脚归属于5个端口,这33个引脚作为通用I/O口时,被文件寄存器中的PORTA,PORTB到PORTE共五个寄存器一一相对应。 要想使用PIC的引脚进行输入输出操作,必须要设定引脚方向。 IO方向寄存器TRISX的介绍 TRIS?(?为A,B,C,D或E)在Bank1中,是PORT?的方向寄存器,例如 TRISC为PORTC的方向寄存器, TRISC的某位为0(Output),则对应PORTC的某位用做输出; TRISC的某位为1(Input),则对应PORTC的某位用做输入; TRIS的例题 例题1:把PORTC的高4位置为输入,低4位置为输出。 C语言实现: TRISC=0xF0; RC0 RC1 RC2 RC3 RC4 RC5 RC6 RC7 PIC的PORT的使用例子 例如:如果向RC0引脚输出高电平,则用以下指令实现: C语言实现: TRISC=TRISC0xFE RC0=1 RAM-BANK1 ROM I/O过程 CPU BANKSEL TRISC CLRF TRISC BANKSEL PORTC BSF PORTC,0 RAM-BANK0 接口电路 RC0 +5V RAM-BANK0 PORTC RAM-BANK1 RAM-BANK1 BANKSEL TRISC CLRF TRISC BANKSEL PORTC BSF PORTC,0 TRISC 0000 0000 xxxx xxx1 基本输入/输出例子1 例题:电路如图所示,编程实现:当PORTC连接的8盏小灯循环亮灭。 RC0 …… 16F877 RC7 电源电路 复位电路 晶振电路 GND …… 例题程序 #include “pic.h” Main() { char i=0; TRISC=0x00; PORTC=0x01; while(1) { for(i=0;i8;i++) PORTC=PORTC1; } } 延时函数 void delayms() { int i=0,j=0; for(i=0;i100;i++) for(j=0;j100;j++) { ; } } 如果PIC的主频是4MHz的话,此函数执行一次最多需要多长时间?如何修改此函数使其能延时20ms? 作业题 电路如图所示,RC0到RC7共接了8个发光二极管,编程实现各种动态效果(小灯依次被点亮,小灯闪烁等) (看谁的效果最炫!) RC0 …… 16F877 RC7 电源电路 复位电路 晶振电路 GND . . . * * 讲到这里,由于时间的原因没有讲程序。 * * 讲到这里,由于时间的原因没有讲程序。

文档评论(0)

1亿VIP精品文档

相关文档