历史上的今天
返回首页

历史上的今天

今天是:2024年12月27日(星期五)

正在发生

2019年12月27日 | PIC单片机之I/O控制操作分析

2019-12-27 来源:elecfans

  一、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口是被设置成数字口的。

推荐阅读

史海拾趣

Amphenol RF公司的发展小趣事

Amphenol RF 是 Amphenol 公司的一个子公司,专注于设计、制造和销售射频连接器和组件,在电子行业中占据重要地位。以下是关于 Amphenol RF 公司发展的五个相关故事:

  1. 创立与早期发展:Amphenol RF 公司的历史可以追溯到20世纪40年代,当时被称为RF Connector Division。最初,公司主要致力于生产射频连接器和组件,为通信、航空航天、军事和工业市场提供射频连接解决方案。随着射频技术的发展和市场需求的增长,Amphenol RF 逐渐壮大成为射频连接器领域的重要参与者。

  2. 技术创新与产品多样化:Amphenol RF 公司在射频领域持续进行技术创新,并不断推出新型的射频连接器和组件产品。公司致力于提升产品的性能、可靠性和适应性,满足客户对高频射频应用的需求。除了传统的射频连接器,Amphenol RF 还推出了一系列新型产品,如微波连接器、同轴连接器、板对板连接器等,拓展了产品线的多样性。

  3. 客户合作与定制化解决方案:Amphenol RF 公司与客户建立了紧密的合作关系,共同开发定制化的射频连接器和组件解决方案。公司的工程团队与客户密切合作,根据客户的需求和应用场景,设计和制造符合特定要求的产品。这种定制化解决方案能够满足客户个性化的需求,为客户提供更加专业和完善的服务。

  4. 质量控制与认证标准:Amphenol RF 公司高度重视产品质量控制,并严格遵循国际质量管理体系标准。公司的生产工艺和质量管理体系符合ISO 9001质量管理体系认证标准,以确保产品质量的稳定性和可靠性。此外,Amphenol RF 公司的产品还通过了各种行业和应用领域的认证标准,如航空航天领域的MIL-SPEC标准等,确保产品符合行业标准和规定。

  5. 全球市场拓展与合作伙伴关系:除了在美国的生产基地外,Amphenol RF 公司还在全球范围内设有多个销售办事处和代理商网络,拓展了国际市场份额。公司与全球各种行业领先企业建立了长期稳定的合作关系,共同推动产品的创新和市场拓展。通过全球市场拓展和合作伙伴关系,Amphenol RF 公司不断扩大业务规模,增强了在射频连接器领域的市场竞争力。

这些故事展示了 Amphenol RF 公司从成立初期到如今在技术创新、产品多样化、客户合作与定制化解决方案、质量控制与认证标准以及全球市场拓展与合作伙伴关系等方面取得的重要进展。

ENPIRION公司的发展小趣事

经过数年的研发和技术积累,ENPIRION公司在2004年推出了其首款革命性的产品——将电感集成的DCDC芯片。这款产品的问世引起了业界的广泛关注,因为它极大地减小了负载点稳压所需要的PCB面积和高度,实现了最高功率密度和最小外形封装。这一创新不仅获得了EDN 2004年度全球电源IC最佳产品奖,还赢得了其他众多国际大奖,为ENPIRION公司赢得了业界的广泛认可。

EFINIX公司的发展小趣事

经过深入研发,EFINIX公司成功推出了Quantum™可编程加速器技术。与传统的FPGA技术相比,Quantum™技术可将面积利用率提高4倍,使得ASIC、ASSP和FPGA领域的高级可编程硅产品得以实现。该技术使EFINIX的产品在面积、功耗、性能等方面具有显著优势,吸引了众多客户的关注。

DB Unlimited公司的发展小趣事

DB Unlimited公司最初只是一个生产基础音频组件的小型企业。随着技术的不断发展和市场的变化,公司意识到单纯的组件生产已经无法满足客户的需求。于是,DB Unlimited开始转型,致力于提供完整的音频解决方案。通过不断研发和创新,公司成功开发出了一系列高性能的音频产品,并凭借其卓越的品质和性能,赢得了客户的广泛认可。

Hirschmann公司的发展小趣事
在电子测量仪器中,定时电路常用于产生精确的定时信号或控制信号的延时。通过编程控制TC4066的开关状态,可以精确调整测量过程中的时间参数,提高测量精度和稳定性。
台湾丰宾(CapXon)公司的发展小趣事

随着全球环保意识的不断提高,CapXon公司积极响应绿色生产的号召,致力于实现可持续发展。公司采用环保材料和制造工艺,减少生产过程中的污染物排放,降低对环境的影响。同时,CapXon还积极参与各种环保活动和公益事业,为推动电子行业的绿色发展贡献自己的力量。

以上五个故事分别从初创与起步、市场拓展与品牌塑造、技术创新与产业升级、品质管理与生产优化以及绿色生产与可持续发展五个方面,展示了台湾丰宾(CapXon)公司在电子行业发展的历程和成就。这些故事不仅体现了公司的实力和魅力,也展现了公司在推动电子行业进步和可持续发展方面所做的努力和贡献。

问答坊 | AI 解惑

发展RFID之可能瓶颈

(一) 隐私权问题:RFID Journal和市场研究机构ABI,共同进行的一项名为「RFID Journal Live」的调查显示「采用RFID技术最大的好处是可以对企业的供应链进行透明管理,有效降低成本,但最近RFID的安全性也非常令人关注,很多公司推出了增强安全性能 ...…

查看全部问答>

功率晶体管、RF MEMS和振荡器的技术进展

微波产业尽管在持续创新,许多产品仍根植于相同技术。例如,砷化镓(GaAs)就是目前许多先进功放及其它有源器件的核心技术。但在这些现象中,孕育着可能变革许多产品制造方式方法的创新。这些“颠覆性技术”会以闻所未闻、见所未见的完全新奇的面目兴 ...…

查看全部问答>

电梯控制课程设计

设计一个电梯运行模拟控制器,其系统框图如图3所示: MCU 1位七段数码管,3个LED灯(显示当前电梯所处楼层与运行方向以及电梯门的状态) 键盘以及对应的LED灯(1-8,开门,关门)每个数字按键对应一个LED灯,按下按键灯亮,执行完命令灯灭) ...…

查看全部问答>

友善之臂最新更新信息(2010-2-5):全新WindowsCE5重装上阵

转自arm9之家论坛。 2010-2-5: 最新友善之臂更新资讯: ========================== 经过我们的稍事移植,WindowsCE6的大部分现在BSP已经在WindowsCE5上重现,下载地址: http://www.arm9.net/mini2440-windowsce5.asp 全新的WindowsCE5具有和 ...…

查看全部问答>

关于PLC技术讨论的呼吁

各位工控坛友,PLC技术在工业控制应用非常广泛,大家在PLC应用中碰到啥问题?新应用,请大家拿出给各位分享,共同提高!…

查看全部问答>

什么是FPGA远程升级?

昨天老大给的一个课题,找了半天资料也没个头绪,特此来请教各位大侠。望不吝赐教,谢谢啊…

查看全部问答>

如何用两个键控制流水灯的花样和速度(求大侠帮忙)

这是我找到的流水灯花样程序,现在希望用两个键,一个键控制流水灯的延时时间,另外一个控制流水灯的花样变换。求大侠帮忙,不胜感激啊!  #include<reg51.h>   #define uchar unsigned char #define uint unsigned int voi ...…

查看全部问答>

招聘: 高级firmware 开发工程师(高通芯片)

本公司(Novatel wireless)招聘 (高级)firmware 开发工程师(高通芯片) 工作地点:上海徐家汇,薪资范围: 高级firmware 开发工程师:15K-20K/月, firmware 开发工程师:8K-14K/月 有兴趣的可以咨询我,MSN是:shinsonyangyx@hotmail.com,简历也 ...…

查看全部问答>