第4章 普通I口及第一个汇编工程.docVIP

  • 7
  • 0
  • 约2.48万字
  • 约 19页
  • 2016-10-16 发布于贵州
  • 举报
第4章 普通I口及第一个汇编工程

第4章 通用I/O口及第一个汇编工程 微控制器的主要任务是接收外部信息,经过处理,产生输出信息,而信息的输入及输出必须依赖于I/O接口。I/O接口是微控制器同外界进行交互的重要资源,对I/O接口的学习和理解是嵌入式系统学习的基本点。 本章介绍I/O接口的基本形式通用I/O口,并借助于MC908GP32的通用I/O来讲解第一个08汇编工程,使读者由此入门。在阐述MC908GP32的通用I/O的编程结构的基础上,给出了08汇编程序结构与第一个可执行的08汇编工程,该程序的功能十分简单,仅仅是使一个发光二极管闪烁。但读者要通过这个程序理解I/O口的操作方法,掌握汇编工程框架结构、工程组织方法及嵌入式编程规范,达到嵌入式汇编编程入门的目的。 4.1 通用I/O接口基本概念及连接方法 1.I/O接口的概念 I/O接口,即输入输出接口,是微控制器同外界进行交互的重要通道。这里的接口英文是port,也可以翻译为“端口”,另一个英文单词是interface,也翻译为接口。从中文字面看,接口与端口似乎有点区别,但在嵌入式系统中它们的含义是相同的。有时I/O引脚称为接口(interface),而把用于对I/O引脚进行编程的寄存器称为端口(port),实际上它们是紧密相连的。因此,不必深究它们之间的区别。有些书中甚至直接称I/O接口(端口)为I/O口。在嵌入式系统中,接口千变万化,种类繁多,有显而易见的人机交互接口,如操纵杆、键盘、显示器;也有无人介入的接口,如网络接口、机器设备接口。 2.通用I/O 第一章中已经介绍了什么是通用I/O,这里再回顾一下。所谓通用I/O,也记为GPIO(General Purpose I/O),即基本的输入/输出,有时也称并行I/O,或普通I/O。它是I/O的最基本形式。本书中使用正逻辑,电源(Vcc)代表高电平,对应数字信号“1”;地(GND)代表低电平,对应数字信号“0”。作为通用输入引脚,MCU内部程序可以通过端口寄存器读取该引脚,知道该引脚是“1”(高电平)或“0”(低电平),即开关量输入。作为通用输出引脚,MCU内部程序通过端口寄存器向该引脚输出“1”(高电平)或“0”(低电平),即开关量输出。大多数通用I/O引脚可以通过编程来设定工作方式为输入或输出,称之为双向通用I/O。 3.上拉下拉电阻与输入引脚的基本接法 芯片输入引脚的外部有三种不同的连接方式:带上拉电阻的连接、带下拉电阻的连接和“悬空”连接。通俗地说,若MCU的某个管脚通过一个电阻接到电源(Vcc)上,这个电阻被称为“上拉电阻”。与之相对应,若MCU的某个管脚通过一个电阻接到地(GND)上,则相应的电阻被称为“下拉电阻”。通过这种做法,将不确定的信号通过一个电阻嵌位在高电平或低电平,电阻同时起限流作用。根据实际情况,上拉电阻与下拉电阻可以取值在1KΩ~5MΩ之间,通常在1KΩ~10KΩ之间。 图4-1给出了这三种连接方式,其中I1引脚外接上拉电阻R2与VCC相连(R1R2),当开关K1闭合时,I1引脚输入“0”(低电平);当开关K1断开时,I1引脚输入“1”(高电平)。I2引脚外接下拉电阻R4与地相连(R3R4),当开关K2闭合时,I2引脚输入“1”(高电平);当开关K2断开时,I2引脚输入“0”(低电平)。I3引脚通过开关K3和电阻R5与电源相连,当开关K3闭合时,I3引脚输入“1”(高电平);当开关K3断开时,I3引脚处于悬空状态,无法肯定输入的是高或低电平。在实际电路中,对于未使用的I/O口引脚,应该将其接电源或地,不要悬空,以减少干扰。 图4-1 I/O口输入电路 图4-2 I/O口输出电路 4.输出引脚的基本接法 作为通用输出引脚,MCU内部程序向该引脚输出高电平或低电平来驱动器件工作,即开关量输出。如图4-2所示。其中O1引脚是发光二极管LED的驱动引脚,当O1引脚输出高电平时,LED不亮;当O1引脚输出低电平时,LED点亮。O2引脚接蜂鸣器驱动电路,当O2脚输出高电平时,蜂鸣器响;O2脚输出低电平时,蜂鸣器不响。 这里只是原理性说明,关于电流方向与大小等问题,作为进一步讨论放在4.4节。 4.2 MC908GP32的通用I/O 几乎任何MCU芯片都具有通用I/O,编程方法也类似。本节给出GP32的通用I/O。GP32有5个通用I/O口,分别是A口、B口、C口、D口、E口。它们中的大部分具有多个功能,本节仅讨论它们作为通用I/O功能时的编程方法。作为通用I/O口,它们的每一个引脚均可通过相应口的“数据方向寄存器”独立地设置为输入或输出。对于被定义为输入的引脚,若是在A口、C口、D口中,还可通过相应口的“上拉电阻允许寄存器”独立地设置其有无内部上拉电阻。被定义为输

文档评论(0)

1亿VIP精品文档

相关文档