教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 建筑文档 >

单片机教材 - 第4章I-O接口及应用

来源:网络收集 时间:2026-04-09
导读: 第四章 I/O接口及应用 4.1 并行接口概述 当单片机用来控制一个设备时,首先要知道设备的状态,其次是要能控制设备运行。例如用单片机控制自动门。首先单片机要检测(输入)自动门的开启或关闭命令,当收到开启或关闭命令时,发出(输出)开启或关闭控制指令

第四章 I/O接口及应用

4.1 并行接口概述

当单片机用来控制一个设备时,首先要知道设备的状态,其次是要能控制设备运行。例如用单片机控制自动门。首先单片机要检测(输入)自动门的开启或关闭命令,当收到开启或关闭命令时,发出(输出)开启或关闭控制指令,在开启或关闭自动门的过程中,要检测门是否开启或关闭到位(输入),到位后要发出停止信号(输出)。所以单片机必定要有输入与输出引脚。

几乎所有单片机都设计有并行输入、输出接口。并行输入、输出接口一般为8位。通过一条输入指令可以一次读取8个引脚的状态,组成一个字节的数据,称为并行输入;通过一条输出指令可以将一个字节的数据送到8个引脚上,称为并行输出。并行输入接口一般用来采集外部数据;并行输出接口用来输出控制信息。 4.1.1 并行输入工作原理

并行输入接口中某一位的简化接口电路如图4-1所示:引脚的状态取决于外部电路,缓冲器后的状态为引脚状态,三态门的输出由RP端控制,当RP端为0时,三态门的输出为高阻抗状态,数据总线不受引脚影响;当RP端为1时,三态门的输出与输入相同,此时为读引脚状态。在读接口时,RP控制端有效。 数据总线三态门缓冲器引脚图4-1 输入接口等效电路 4.1.2 并行输出工作原理 并行输出接口中某一位的简化接口电路如图4-2所示。当控制端WP为0(低电平)时,数据锁存器的输出端Q为上次输出的值,与输入端D无关,数据总线操作不影响输出。当控制端WP为1(高电平)时,数据锁存器的输出端Q的值为输入端D的值,为输出数据状态。数据输出到引脚。锁存器输出端Q为0时, 输出为低电平;锁存器输出端Q为1时,输出为高电平。RL控制端为读取输出值。 上拉管数据总线数据锁存器方向器缓冲驱动器引脚图4-2 输出接口等效电路 4.1.3 并行输入/输出接口工作原理 并行输入/输出接口简称I/O接口,可以用它来作输入接口,也可以用它作输出接口。但在使用前必须选择方向(是作为输入,还是作为输出)。 ATmega16有四个8位的并行输入/输出接口,分别为PA、PB、PC和PD,对应的引脚是PA0~PA7 、PB0~PB7、PC0~PC7和PD0~PD7。每一个引脚的简化接口电路如图4-3所示:由输入电路、输出电路及方向选择控制电路组成。输出锁存器、三态驱动器、三态门1、上拉管组成输出电路(等效为图4-2所示的输出电路);缓冲器、三态门2组成输入电路(等效为图4-1所示的输入电路);方向锁存器、三态门3、与非门组成方向控制电路。WD为方向控制端,它将总线上的方向信号锁存到方向锁存器的输出端Q。 方向锁存器上拉管与非门三态门3数据锁存器数据总线缓冲驱动器引脚三态门1三态门2缓冲器图4-3 I/O接口等效电路 当方向锁存器Q端为低电平时,三态驱动器控制为高阻抗状态,输出无效,引脚状态由外部电路及上拉管控制。输出锁存器Q端为0时,上拉管截止;输出锁存器Q端为1时,上拉管作上拉电阻用。可通过RP端控制读取引脚信号。

当方向锁存器Q端为高电平时,三态驱动器控制为导通状态,输出引脚状态与输出锁存器的Q端状态相同,电路等效为图4-2所示的输出电路,工作原理同并行输出。

C语言编程时,在头文件中定义了一些与I/O接口有关的特定变量,每一个特定变量对应单片机内部的一个特殊功能寄存器,用大写字母书写。每一个接口的控制由三个特定变量决定,例如PA口对应的三个特定变量为DDRA、PINA、PORTA。DDRA专门用来定义A口的方向(输入还是输出),PINA专门用来读接口A引脚上的数据,

PORTA为接口寄存器,在接口为输出时用来将数据输出到接口,也可以用来读取接口输出状态;在接口为输入时连接或关闭上拉电阻。我们以PA口为例介绍其使用方法。I/O接口在使用之前,必须先定义为输入接口或输出接口。这一定义由给变量DDRA赋值来完成,DDRA的每一位对应定义PA口的每一位。

DDRA.7 DDRA.6 DDRA.5 DDRA.4 DDRA.3 DDRA.2 DDRA.1 DDRA.0

D7 D6 D5 D4 D3 D2 D1 D0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0

当DDRA的某位为0时,送到方向锁存器的输出端为0,相应位只能作输入。 当DDRA的某位为1时,送到方向锁存器的输出端为1,相应位只能作输出。 例如DDRA=0xf0=0b11110000,则PA口的高四位为输出,低四位为输入。当

DDRA=0xff时,PA口的所有位都为输出,可以按输出接口工作原理使用;当DDRA=0时,PA口的所有位都为输入,可以按输入接口工作原理使用;

例如程序段:

char k; k=0xa5; DDRA=0xff; PORTA=k; 第三条语句定义PA口为输出口,第四条语句是把变量k的数据送给PA口的引脚。 执行上述程序段,将使PA口的PA0~PA7引脚控制为:高低高低低高低高 程序段:

char k; DDRA=0x0; PORTA=0xf0; k=PINA;

第二条语句定义PA口为输入口,第三条语句是高四位使用内部上拉电阻, 低四位不使用内部上拉电阻。第四条语句是读取PA口引脚的值。

对PB口,相应的三个特定变量为:DDRB、PINB、PORTB 对PC口,相应的三个特定变量为:DDRC、PINC、PORTC 对PD口,相应的三个特定变量为:DDRD、PIND、PORTD 综上所述,4个并行接口的情况如表4-1所示。

表4-1 端口变量

接口名称 PA 方向定义变量 DDRA 引脚输入变量 PINA 引脚输出变量 PORTA 接口性质 I/O PB PC PD DDRB DDRC DDRD PINB PINC PIND PORTB PORTC PORTD I/O I/O I/O

注:因为所有IO接口都具有不同的第二功能,因此实际的接口电路都与前面介绍的有所不同,要详细了解请查阅相关资料。

4.2 并行接口应用举例

4.2.1 例1:彩灯控制

如图4-4所示的电路,有8只发光二极管接在PC口,每只发光管低电平点亮。如果按图4-5所示的方式点亮,每次点亮两只发光管,间隔0.2秒后,再换成点亮相邻的两只,依此类推,4次后,再回到第一次,周而复始,形成彩灯的移动。

图4-4 彩灯控制电路

位数 7 6 5 4 3 2 1 0 第一次 第二次 第三次 第四次 图4-5 彩灯点亮示意图

程序清单如下:

#include

#include void main(void) {char i,j;

/* PORTC定义 */ PORTC = 0x00;

DDRC = 0xFF; //设置PC口为输出口 while(1) //无限循环 {j=0x11;

for(i=0;i<4;i++)

{PORTC=~j; //取反后输出 delay_ms(200); //延时200毫秒 j=(j<<1); //j的内容左移一位 } } }

4.2.2 实验指导1

在教师的指导下,首先生成“实验1.prj”工程,再生成“实验1.c”文件,添加到“实验1.prj”工程中。设置PC口为输出口,并将实验装置的PC口与发光管控制口相连。实验中可以改变延时时间来控制速度。可以采用右移来改变移动方向。还可以自行设计彩灯变换。

4.2.3 例2——二进制数输入、输出控制

如图4-6所示为二进制数输入、输出控制的电路原理图。

图4-6 并行输入/输出应用

PC口作为输入接口使用,每一位接有上拉电阻和开关。当开关断开时,输入为高电平,读取的结果为1;当开关闭合时,输入为低电平, …… 此处隐藏:1561字,全部文档内容请下载后查看。喜欢就下载吧 ……

单片机教材 - 第4章I-O接口及应用.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/438917.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)