《单片机基础教程幻灯片第三章》由会员分享,可在线阅读,更多相关《单片机基础教程幻灯片第三章(59页珍藏版)》请在金锄头文库上搜索。
1、丁跃军 来清民等 编著,PIC单片机基础教程,第三章 I/O接口,3.1 I/O接口,3.2 串行通讯接口,3.3 显示器接口,3.4 键盘接口,3.1开关量接口,3.1.1接口电路的功能及指标 单片机作为一个控制器件必定有数据输入和输出。输入量可能是温度、压力、转速等,而输出量可能是开关量和数据,以保证受控过程在规定的范围内运行。数据的输入和输出都需通过单片机内部有关电路,再与引脚构成输入/输出(I/O)端口。,3.1开关量接口,3.1开关量接口 3.1.1接口电路的功能及指标 1PIC16F87X系列单片机的I/O口设置 在PIC16F87X系列单片机中,40引脚封装的单片机共有五个I/O
2、端口:端口A、端口B、端口C、端口D和端口E。28引脚封装的单片机有3个I/O端口:端口A、端口B、端口C,3.1开关量接口,3.1开关量接口 3.1.1接口电路的功能及指标 2.PIC16F87X系列单片机接口电路的功能和指标 端口的一些引脚通过寄存器的选择用作多功能复用,既可作为一般通用的I/O引脚,也可作为某些部件特殊功能的输入/输出引脚。一旦作为特殊功能引脚,这些引脚不再用作一般的I/O功能。每个端口由一个锁存器、一个输出驱动器和输入缓冲器等组成。当把I/O口作输出时,数据可以锁存;作输入口时,数据可以缓冲。,3.1开关量接口,3.1开关量接口 3.1.1接口电路的功能及指标 (1)端
3、口A(PORTA)和它的方向寄存器(TRISA) PIC16F87X系列芯片的PORTA是6位宽带锁存器的I/O口,它的最大特点是作为A/D转换模拟输入通道,它包含四个功能:数字I/O功能、模拟输入功能、A/D参考电压输入功能和定时器/计数器0外部时钟输入功能。,3.1开关量接口,3.1开关量接口 3.1.1接口电路的功能及指标 作为数字I/O功能,端口A是一个5位输入/输出口,传送数据的方向由和端口A相应的数据方向寄存器TRISA决定。当TRISA寄存器相应位置为1,其输出驱动器呈高阻状态,PORTA相应I/O引脚被定义为输入;当TRISA寄存器相应位为0,输出锁存器上的数据就从相应I/O引
4、脚上输出,所以这时PORTA的相应I/O引脚被定义为输出。,3.1开关量接口,一般端口的逻辑结构,3.1开关量接口,3.1开关量接口 3.1.1接口电路的功能及指标 (2)端口B(PORTB)和它的方向寄存器(TRISB) 端口B(PORTB)是一个8位宽、双向可编程端口。具有四个功能:数字I/O功能、外部中断输入功能、端口电平变化中断功能和在线编程功能。 作为数字I/O功能,端口B是一个8位输入/输出口,传送数据的方向由相应的方向寄存器TRISB设置。当TRISB寄存器相应位置1,其输出驱动器呈高阻状态,PORTB相应I/O引脚被定义输入;当TRISB寄存器相应位为0,输出锁存器上的数据就从
5、相应I/O引脚上输出,这时PORTB的相应I/O引脚被定义为输出。,3.1开关量接口,3.1.1接口电路的功能及指标 (3)端口C(PORTC)和它的方向寄存器(TRISC) 端口C是一个8位宽、双向可编程I/O口,具有六种功能:数字I/O功能、定时器/计数器1功能、捕捉/比较/PWM功能、I2C总线功能、SPI总线功能和USART功能。,3.1开关量接口,3.1开关量接口 3.1.1接口电路的功能及指标 (4)端口D(PORTD)和它的方向寄存器(TRISD) 在PIC16F87X系列中,只有PC16F874(A)/877(A)芯片上有端口D和端口D的方向寄存器。端口D有两种功能:数字I/O
6、功能和并行从动I/O功能。,3.1开关量接口,3.1开关量接口 3.1.1接口电路的功能及指标 (5)端口E(PORTH)和它的方向寄存器(TRISE) 在PIC16F87X系列中,只有PC16F874(A)/877(A)芯片有端口E和端口E的方向寄存器。端口E只有三个引脚RE0/RD/AN5、RE1/WR/AN6和RE2/CS/AN7,即普通I/O接口、读/写/片选和模拟输入口。,3.1开关量接口,3.1开关量接口 3.1.2开关量接口举例 【3-2】设计一套十字路口交通灯的控制程序。(用发光二极管代替交通灯),设4个路口的红灯由RC0RC3控制,RC0、RC1控制南北方向的红灯,RC2、R
7、C3控制东西方向的红灯。 4个路口的黄灯由RC4RC7控制,RC4、RC5控制南北方向的黄灯,RC6、RC7控制东西方向的黄灯。,3.1开关量接口,4个路口的绿灯由RA0RA3控制,RA0、RA1控制南北方向的绿灯,RA2、RA3控制东西方向的绿灯。 控制的过程为: (1) 东西方向通车绿灯亮,而南北方向红灯亮。 (2) 东西方向的绿灯灭,黄灯闪烁,南北方向红灯亮。 (3) 南北方向通车绿灯亮,而东西方向红灯亮。 (4) 南北方向的绿灯灭,黄灯闪烁,东西方向红灯亮。 (5) 如此循环,交通信号灯,3.1开关量接口,程序清单如下: START FLASHL EQU 20H ;循环次数计数器 ST
8、ATUS EQU 03H Z EQU 02H PR0 EQU 05 PR1 EQU 06 CLRF PORTC ;清C口 CLRF PORTA ;清A口 BSF STATUS,PR0 ;选择存储体1 BCF STATUS,PR1 CLRF TRISC ;设置C口输出 CLRF TRISA ;设置A口输出 BCF STATUS,PR0 ;选择存储体0 MOVLW 0X05 MOVWF FLASHL,3.1开关量接口,LOOP BSF PORTC,0 BSF PORTC,1 BSF PORTA,2 BSF PORTA,3 CALL DELAY1 BCF PORTA,2 BCF PORTA,3 LO
9、OP1 BSF PORTC,6 BSF PORTC,7 CALL DELAY2 BCF PORTC,6,BCF PORTC,7 CALL DELAY2 DECFSZ FLASHL GOTO LOOP1 MOVLW 0X05 MOVWF FLASHL BSF PORTC,2 BSF PORTC,3 BCF PORTC,0 BCF PORTC,1,3.1开关量接口,CALL DELAY2 DECFSZ FLASHL GOTO LOOP2 MOVLW 0X05 MOVWF FLASHL GOTO LOOP DELAY1 延时60s 程序略 DELAY2 延时0.5s略 END,BSF PORTA,0
10、 BSF PORTA,1 CALL DELAY1 BCF PORTA,0 BCF PORTA,1 LOOP2 BSF PORTC,4 BSF PORTC,5 CALL DELAY2 BCF PORTC,4 BCF PORTC,5,3.2 SPI串行通信功能,3.2.1 SPI串行通信原理 串行通信是计算机与外界交换信息的一种基本方式。所谓串行通信是指将一个数据字按顺序逐位分时传输的方式。串行外围接口SPI是一种单片机外设芯片同步串行扩展接口,由摩托罗拉公司首先推出。SPI通信模式常用于CPU与外围设备如串行EEPROM、移位寄存器、显示驱动器和A/D转换器的通信。SPI接口可以用全双工方式同时
11、发送和接收8位数据,它共定义了4根信号线,这四根信号线分别定义如下: 1.串行数据输出线SDO。作用是单向传送数据,先送高位,后送低位。,3.2.1 SPI串行通信概述,2.串行数据输入线SDI。作用是单向传送数据,先送高位,后送低位。 3.同步串行时钟线SCK。作用是由主机向从器件传送时钟信号,是收发双方操作同步。在8个时钟周期内,主机、从器件之间完成一个字节的数据交换。 从器件方式选择线SS。它是从器件选通信号输入端。,3.2.3 SPI模式的工作原理,3.2.3 SPI模式的工作原理 单片机中的数据通常为8位,在进行串行数据发送时,首先将该8位数据,并行送入移位寄存器,并在移位脉冲的作用
12、下,由左向右或者由右向左移出寄存器,在进行串行数据接收时,在移位脉冲的作用下,将引脚上的电平读入移位寄存器。然后,将该8位数据,并行送出移位寄存器。,并行输入串行输出,串行输入并行输出,从机S,3.2.3 SPI模式的工作原理,从图中看出,SPI模块主要包含发送缓冲器、接收缓冲器和移位三部分,要发送的数据在CPU控制下,通过数据总线送到数据缓冲器,再经过内部线路自动送入移位寄存器,移位寄存器将并行信号转换为串行信号发送到接收器件的数据总线上,接收机的移位寄存器将串行信号转换成并行信号送入接收缓冲器,然后由程序读取。,3.2.2 SPI模式下相关的寄存器,3.2.2 SPI模式下相关的寄存器,1
13、收/发数据缓冲器SSPBUF SSPBUF是8位一个可读/写的寄存器,它直接与内部数据总线相连。用户可以将要发送的数据写进SSPBUF,也可以从SSPBUF中读取接收到的数据。 2同步串口控制寄存器SSPCON SSPCON是8位一个可读/写的寄存器,它的作用是对MSSP模块的功能和指标进行设置和定义。,3.2.2 SPI模式下相关的寄存器,【3-3】如图教材3-5所示,实现的功能是将置数开关的设置值经过8位并入/串出移位寄存器74HC165将并行数据以串行移位通讯的方式经SPI接口读入单片机,然后又由SPI接口送至8位串入/并出移位寄存器74HC164,通过发光二极管显示。,图 3-5 SP
14、I通信举例,3.2.3 异步串行通信原理,串行外围接口USART是一种单片机外设资源,该资源常用于CPU与较远距离的设备进行通讯。如,单片机之间,或者单片机与微机之间的通信。USART接口可以用作同步传送或异步传送。 异步通讯方式和前面介绍的同步通讯方式的最大区别在于:在从机内部自带时钟信号,而不用时钟信号线,也不采用同一个时钟信号源。因而,信号线少,仅两根,在远距离传送时成本低。为了保证数据正确传输,在异步数据传输时,必须保证传送的波特率和数据的格式一样。,3.2.3 异步串行通信原理,发送一个完整的字节信息,必须有“起始位”、“若干数据位”和“停止位”(有时还需要有“奇偶校验位”);必须定
15、义每位信息的时间宽度每秒发送的信息位个数,即为“波特率”。单片机系统中常用的波特率从30019 200 b/s。当波特率为1200b/s时,每个信息位的时间宽度为 1/1200833s;无数据通信时,数据线空闲状态应该是高电平,“起始位”为低电平,数据位低位先发且后跟奇偶校验位(若有),“停止位”为高电平,如图3-6所示。,图3-6 串行通信的数据位,3.2.4 USART异步传送模式下相关的寄存器,1发送控制兼状态寄存器TXSTA TXSTA是6位可读/写的寄存器,D3位没有使用,D1位是只读位。 2、接收控制兼状态寄存器RCSTA RCSTA是8位可读/写的寄存器,各位功能如图3-8所示。
16、 3波特率发生器初值寄存器SPBRG 要启动串口通讯首先要选择合适的波特率,PIC的USART模块中有一个8位的波特率发生器,它根据SPBRG寄存器的值来决定周期;另外在异步通信的方式下波特率还和BRGH位的状态有关,,4发送缓冲器TXREG和接收缓冲器RCREG 发送缓冲器TXREG和接收缓冲器RCREG分别是两个8位的数据寄存器。待发数据要写入发送缓冲器TXREG中;每次受到的数据可以从接收缓冲器RCREG中读出。,3.2.4 USART异步传送模式下相关的寄存器,3.2.4 USART异步传送模式下相关的寄存器,3.2.4 USART异步传送模式下相关的寄存器,3.2.4 USART异步传送模式下相关的寄存器,图3-10 串口与PIC16F873的接口,用RS232通信方式实现单片机与PC通信: PC机的RS-232C串行接口采用的是负逻辑,即逻辑“1”:5V至15V;逻辑“0”:+5V至+15V。单片机电平的逻辑“1”和“0”则分别为2.4V和0.4V。因此在用RS-232C总线进