PIC单片机之I/O控制操作分析

发布者:EtherealMelody最新更新时间:2019-12-27 来源: elecfans关键字:PIC单片机  I  控制操作 手机看文章 扫描二维码
随时随地手机看文章

  一、I/O介绍

  I/O(input/output),即输入/输出端口。每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息。CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。

  二、I/O控制的主要功能

  计算机原理说的是I/O控制器是控制计算机输入输出的一个最基本的控制系统。通过这个控制系统计算机才可以与外界进行交流互动;这个系统包括了计算机最基本的输入功能比如键盘、鼠标等还有计算机最基本的输出功能,打印功能。当然还包括其他的很多很多的计算机其他外部设备。这个系统是计算机比较核心的一个计算机系统了,很是复杂。原因就是连接他的外设很多,计算机系统使用中断系统来处理控制I/O设备。


  三、I/O控制方式及特点

  I/O控制方式的发展经历了四个阶段:程序查询方式、I/O中断方式、DMA方式和I/O通道方式。

  (1)程序查询方式

  在早期计算机或现代一些简单的微型计算机系统中,采用程序查询I/O方式。程序查询是一种用程序直接控制I/O操作的方式。CPU与外设的活动本质上是异步的,为了实现CPU与外设间的信息传送,CPU必须重复测试外设的状态,仅当外设是处在准备好的状态时,CPU才能与外设交换信息。所以,在程序查询I/O方式的接口电路中必须设置一状态端口,以使CPU通过执行输入指令了解外设的状态。当采用程序查询传送方式时,每当程序要使用某一外设进行I/O操作时,CPU要执行一段循环测试程序,以实现在外设准备好时执行一条输入/输出指令,进行一字节或字的数据传送操作。在这种方式下,CPU的大量时间消耗在等待输入/输出的循环检测上,使CPU与外设串行工作,严重影响了CPU和外设的使用效率,致使整个系统效率很低。

  (2)I/O中断方式

  引入中断技术后,每当设备完成I/O操作时,便向CPU发出中断请求信号,通知CPU外设已准备好,可以进行数据传送操作。这样,CPU一旦启动I/O设备后便可执行其他程序,仅在收到I/O中断请求时才执行其中断服务程序,进行I/O处理和I/O操作。程序中断传送方式改善了CPU的利用率,并使CPU与外设并行操作。但I/O数据的处理和I/O操作的控制都是由CPU承担的,仍然消耗了CPU不少时间。

  (3)直接存储器访问(DMA)方式

  虽然I/O中断方式比程序查询方式更有效,但须注意,它仍是以字节或字为单位进行输入/输出的,每当完成一字节或字时,控制器便要向CPU请求一次中断。换言之,采用I/O中断方式时的CU,是以字节或字为单位进行干预的。如果将这种方式用于块设备的I/O,显然是低效的。例如,为了从磁盘中读出1KB的数据块,需要中断CPU 1000次。为了进一步减少CPU对I/O的干预而引入了直接存储器访问(DMA)方式。

  (4)I/O通道方式

  I/O通道方式是DMA方式的发展,它会进一步较少对CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)有关的控制和管理为单位的干预。I/O通道有自己的指令系统,即通道程序,可以与CPU并行操作,独立管理外设和实现主存和外设之间的信息传输,使CPU摆脱了繁忙的I/O操作。在配置通道的计算机系统中,不仅能实现CPU与通道的并行操作,而且通道与通道、各通道的外设之间均能实现并行操作,因而有效地提高了整个系统的使用效率。

PIC单片机之I/O控制操作分析

  四、PIC单片机之I/O控制操作分析

  其实控制单片机,就是控制寄存器上的各个位,设置成高设置成低。就好像给你一台机器有 8个的按钮。然后你根据说明书上介绍,根据你的需要按下 或者松开相应的按键 来得到你想得到的功能。只不过我们用的不是手而是C语言来按下和松开这些按键。


  TRISA寄存器是方向控制寄存器。就是控制I/O输入还是输出。比如 TRISA寄存器中的TRISA5位 设置成为0 RA5口是输出 设置成为1 RA5口为是输入。


  C语言的具体实现:

  将RA5口设置成输入的几种方式

  第一种 TRISAbits.TRISA5=1; //简单明了,只影响一个位 设置单个I/O比较方便

  第二种 TRISA |= 0x20;//不够明了,只影响一个位

  第三种 TRISA =0x20;//不够明了,影响到其他位,设置多个I/O用比较方便

  将RA5口设置成输出的几种方式

  第一种 TRISAbits.TRISA5=0;

  第二种 TRISA &= ~0x20;

  第三种 TRISA =0x00;


  PORTA寄存器是数据控制寄存器。如果是输出状态:PORTA寄存器中的RA5位为0 则RA5口输出低电平,PORTA寄存器中的RA5位为1 则RA5口输出高电平。


  如果是输入状态:PORTA寄存器中的RA5位为0 则说明RA5口当前为低电平,PORTA寄存器中的RA5位为1 则说明RA5口当前为高电平。


  实例程序:

  如果在RA5口上连接着一个LED灯。我们将如何点亮他呢?

  /*

  开发环境为 MPLAB X IDE,芯片型号为PIC16LF1823

  */

  #include《pic.h》 //头文件

  __CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON

  &CLKOUTEN_OFF&IESO_ON&FCMEN_ON);//这个要放到上一行去

  __CONFIG(PLLEN_OFF&LVP_OFF) ;//配置位

  int main(int argc, char** argv) {

  ANSELA=0;//将RA口全部设置成数字口,

  TRISAbits.TRISA5=0;//设置RA5为输出

  PORTAbits.RA5=1;//设置输出高电平点亮LED

  while(1);//程序在此无限循环

  }


  头文件:程序中只要有了#include《pic.h》编译器就会去自动找到相应型号的头文件,头文件中定义好了每个寄存器的地址,位的地址等。


  配置位:这是十分重要即使程序没有任何错误 配置位没配置好程序一样不能用。具体如何配置可以看( 基于MPLAB X IDE配置位设置讲解 )。


  模拟数字口:在使用I/O口的时候要确保对应的I/O口是被设置成数字口的。

关键字:PIC单片机  I  控制操作 引用地址:PIC单片机之I/O控制操作分析

上一篇:PIC18F8490单片机可用于连接LCD段驱动器的设计
下一篇:PIC16F87X系列单片机引起内部复位的条件和原因分析

推荐阅读最新更新时间:2024-11-18 14:53

基于PIC单片机与串行闪存的SPI接口设计
引 言 PIC单片机以性能稳定、品种众多等特点在工业控制、仪器仪表、家电、通信等领域得到广泛应用。虽然很多型号自身集成了存储器,但在很多情况下难以满足系统对大容量存储的要求,需要外扩非易失性的存储器。与并行Flash存储器相比,串行Flash存储器占用MCU引脚少,体积小,易于扩展,接线简单,工作可靠,故而越来越多地应用在各类电子产品和工业测控系统中。本文主要讨论PIC16F877A单片机与串行闪存M25P16之间的SPI通信,在要求大容量数据存储且MCU引脚资源有限的情况下具有实用价值。 1 SPI工作原理 SPI(Serial Peripheral Interface)是一种常用的串行通信协议,用于MCU系统与外围设备的通信,
[单片机]
基于<font color='red'>PIC</font><font color='red'>单片机</font>与串行闪存的SPI接口设计
PIC单片机之PWM原理分析
  1、什么是PWM   什么是PWM,专业点说脉宽调制,通俗点说 就是不断的输出高低电平。 比如 单片机 40ms的时间 输出高电平然后60ms的时间 输出低电平接着一直不断周期性的交替输出高低电平 这就是典型的PWM波。高电平输出的时间40ms就是传说中的脉宽,40ms+60ms=100ms 便是PWM的周期。假定我们把周期定为100ms.我们可以根据我们的需要 把高电平的时间加大或者减小,比如 高电平输出时间加大为80ms.那么低电平的时间就变为20ms. 也可以 高电平输出时间减小为20ms.那么低电平的时间就变为80ms.这即是脉宽调制 调的便是这高电平的时间。 而高电平(脉宽)在周期中,所占用的时间比例 就被称为占空比
[单片机]
<font color='red'>PIC</font><font color='red'>单片机</font>之PWM原理分析
英特尔至强处理器为亚马逊EC2 I4i实例的存储I/O密集型工作负载加速
英特尔第三代至强可扩展处理器,为全新亚马逊EC2 I4i实例的存储I/O密集型工作负载加速 AWS在最新的Amazon EC2 I4i实例中采用第三代英特尔至强可扩展处理器,用于存储I/O密集型工作负载 亚马逊云科技(AWS)近日宣布,基于代号为Ice Lake的第三代英特尔®至强®可扩展处理器的Amazon EC2 I4i实例已全面上线。 截至目前,包括Amazon EC2 I4i以及近期公布的Amazon EC2 X2idn和X2iedn实例在内,第三代英特尔至强可扩展处理器现已用于48种AWS实例,广泛覆盖诸多市场及多元化工作负载。 专为诸如数据库、数据分析和搜索引擎等存储I/O密集型工作负载而设计的EC2
[物联网]
赛普拉斯和Icron宣布USB3.0控制器和有源电缆延长器实现互操作
采用Icron的ExtremeUSB®技术,成功地将赛普拉斯的EZ-USB® USB 3.0外设控制器的数据传输距离从3米延长到15米,传递5-Gbps的数据吞吐量。 USB控制器的领导者赛普拉斯半导体公司和USB及视频扩展技术领先者Icron技术公司联合宣布,成功地完成了赛普拉斯EZ-USB FX3™ USB 3.0 外设控制器、 EZ-USB CX3™ 相机控制器及 Icron USB 3.0 Spectra™ 3001-15 有源铜质延长线缆之间的互操作性测试。 USB3.0的5 Gbps带宽可实现高分辨率、高帧频的实时成像,无需会导致图像质量下降的压缩过程,因而在机器视觉和工业相机领域越来越受欢迎。但目前U
[嵌入式]
I2S总线简介
I2S总线概述   音响数据的采集、处理和传输是多媒体技术的重要组成部分。众多的数字音频系统已经进入消费市场,例如数字音频录音带、数字声音处理器。对于设备和生产厂家来说,标准化的信息传输结构可以提高系统的适应性。I2S(Inter—IC Sound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。 I2S总线规范   在飞利浦公司的I2S标准中,既规定了硬件接口规范,也规定了数字音频数据的格式。I
[嵌入式]
PIC单片机与16位串行D/A转换原理
  下面介绍了基于PIC单片机与16位串行D/A转换的原理:   1.基本原理   D/A转换器相当于一种译码电路,它将数字输入传换为模拟输出:   其中,D是数字输入,VR是模拟参考输入,Vo是模拟输出。这里模拟输出可以是电压,也可以是电流,式中 数字D是一个小于1的值。   式中an为1或0,由数字对应位的逻辑电平来决定,N是数字输入D的位数。由此(3.2)由此(3.1)   当参考电压输入TIp.固定时,转换器的模拟输出D成正比关系。对于单位数字量的变化,模拟输出是按等 幅度的阶跃量变化的。   2.原理图   (1)串行D/A转换器。   串行D/A转换器一般由数字输入、基准电压源、模拟开关、电
[单片机]
<font color='red'>PIC</font><font color='red'>单片机</font>与16位串行D/A转换原理
i.MX 处理器降低了系统成本和设计的复杂性
  面向大量消费电子和嵌入式市场的生产商,可以通过飞思卡尔半导体的第一款集成了混合信号技术的i.MX应用处理器来降低成本和简化产品设计。该器件将在中国深圳和印度班加罗尔两地举行的飞思卡尔技术论坛上展出。   i.MX233 处理器提供优化的片上系统解决方案,满足电子书( eBook)、便携媒体播放器(PMP)和需要图形用户显示器的其他移动消费电子应用的功率及性能要求。其他应用包括 VoIP手持设备、智能远程控制、家用电器、音频外设/附件和工业应用需要的简单人机界面(HMI)系统。   Chumby工业硬件工程副总裁 Dr. Andrew Huang表示,“飞思卡尔i.MX233处理器具备出众的表现性能和集成能力,允许我们在下一
[单片机]
pic单片机多路ad切换程序介绍
PIC单片机(Peripheral Interface Controller)是一种用来开发和控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。与人类相比,大脑就是CPU,PIC 共享的部分相当于人的神经系统。PIC 单片机是一个小的计算机。PIC单片机有计算功能和记忆内存像CPU并由软件控制运行。然而,处理能力—般,存储器容量也很有限,这取决于PIC的类型。但是它们的最高操作频率大约都在20MHz左右,存储器容量用做写程序的大约1K—4K字节。时钟频率与扫描程序的时间和执行程序指令的时间有关系。但不能仅以时钟频率来判断程序处理能力,它还随处理装置的体系结构改变。如果是同样的体系结构,时钟频率较高的处理能力会
[单片机]
<font color='red'>pic</font><font color='red'>单片机</font>多路ad切换程序介绍
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved