文档库 最新最全的文档下载
当前位置:文档库 › 端口IO实验

端口IO实验

端口IO实验
端口IO实验

铜仁学院

实验报告

课程名称:单片机原理与接口技术

专业:信息工程

班级:2011级

学生姓名: 王浩刘军

铜仁学院实验报告

课程名称:单片机原理与接口技术 实验时间:3月19日

成绩评定: 实验地点:2602教室

【实验名称】端口I/O 实验

【实验目的】掌握8051单片机输入/输出端口的使用方法。

【实验内容及步骤】

1、 从8051单片机P0、P1、P

2、P3中任选2个端口,一个端口接逻辑电平开关(输入设

备),另一个端口接LED 显示电路(输出设备)。无条件将逻辑电平开关输入的数据传送给LED 显示电路。例如,使用P0口输入、P1口输出,实验电路如下。

2、任选一个端口接LED 显示电路,编程使8个LED 从左至右逐个发光(流水灯)。

【实验原理】

8051单片机有4个8位的并行I/O 端口P0、P1、P2、P3,在不扩展存储器、I/O 端口,在不使用定时器、中断、串行口时,4个端口的32根口线均可用作输入或输出。

作输出时,除P0口要加上拉电阻外,其余端口与一般的并行输出接口用法相同,但作为输入端口时,必须先向该端口写“1”。例如, P0口接有一个输入设备,从P0口输入数据(注意:断开J0)至累加器A 中,程序段为:

MOV P0, #0FFH

MOV A, P0

若将P0.0位的数据传送至C 中,程序段为:

SETB P0.0

MOV C, P0.0

逻辑电平开关 80C51 P0口 P1口

LED 显示电路

【汇编程序代码】

1、I/O程序实验1-1.ASM

org 00h

main: mov P0, #0ffh ;向P0端口锁存器写0FFH,准备输入mov a, p0 ;从P0口输入数据

mov P1, a ;将数据传至P1口

sjmp main

end

2、流水灯程序实验1-2.ASM

org 00h

mov a, #1

loop: mov p1, a ;将a的内容通过P1口输出

call delay ;调延时子程序

rl a ;a左移一位

sjmp loop

delay: mov r0, #80h ;延时子程序

delay1: mov r1, #00h

delay2: djnz r1, delay2

djnz r0, delay1

ret

end

【测试情况】

I/O程序实验现象:

(1)选用89E564时,运行程序,通过PC控制,当逻辑电平开关置0时,对应的LED灯熄灭,当逻辑电平开关置1时,对应的LED灯亮

(2)装上89C51RA2+BN芯片,开关置89C51档,烧录程序,通过芯片控制,现象与(1)中一样

流水灯实验现象:

(1)选用89E564时,运行程序,流水灯通过PC控制,从右到左依次闪烁;

(2)装上89C51RA2+BN芯片,开关选用89C51时,烧录程序,流水灯通过芯片控制,此时LED灯从右到左依次闪烁;

ATMEGA16的IO端口

第九课A Tmega16(L)的IO端口 本教程节选自周兴华老师《手把手教你学A VR单片机C程序设计》教程,如需转载,请注明出处!读者可通过当当网、淘宝网等网站购买本教程,如需购买配书实验器材,可登陆周兴华单片机培训中心网购部自助购买! ATmega16(L)单片机有32个通用I/O口,分为PA、PB、PC和PD四组,每组都是8位。这些I/O 口都可以通过各自的端口寄存器设置成输入和输出(即作为普通端口使用),有些I/O口还具有第二功能(我们在后面使用到这些第二功能时再介绍)。 ATmega16(L)单片机的I/O口在不考虑第二功能时,其基本输入输出功能都是相同的。如图7-1所示为ATmega16(L)单片机I/O口的结构图。每个端口对应3个寄存器,即方向寄存器DDRX(X=A、B、C、D)、端口寄存器PORTX(X=A、B、C、D)、输入引脚PINX(X=A、B、C、D),各个端口的工作状况都可以通过对DDRX、PORTX和PINX的操作来完成。所有的A VR单片机的I/O端口都具有读、写和修改功能。表7-1列出了A Tmega16(L)的I/O端口的组合控制设置。 ATmega16(L)单片机每一组I/O口的所有管脚都可以单独选择上拉电阻。引脚缓冲器可以吸收20mA 的电流,能够直接驱动LED显示。如果设置了弱上拉电阻,当管脚被拉低时,引脚会输出电流。1.DDRX DDRX为端口方向寄存器。当DDRX的某一位置1时相应引脚作为输出使用。反之,当DDRX的某一位置0时,对应的引脚单片机培训作为输入使用。 例如: DDRB=0xF0;//此语句将PB端口的PB0~PB3位设为输入,而PB4~PB7位设为输出。2.PORTX PORTX为端口数据寄存器。 如果引脚设为输出,则对PORTX进行写操作即改变引脚的输出值。

单片机IO口定义

单片机I/O口定义 I/O端口又称为I/O接口,也叫做I/O通道或I/O通道。I/O端口是MCS-51单片机对外部实现控制和信息交换的必经之路,是一个过渡的集成电路,用于信息传送过程中的速度匹配和增强它的负载能力。I/O端口右串行和并行之分,串行I/O端口一次只能传送一位二进制信息,并行I/O端口一次可以传送一组(8位)二进制信息。 并行I/O端口 8051有四个并行I/O端口,分别命名为P0、P1、P2和P3,在这四个并行I/O端口中,每个端口都有双向I/O功能。即CPU即可以从四个并行I/O端口中的任何一个输出数据,又可以从它们那里输入数据。每个I/O端口内部都有一个8位数据输出锁存器和一个8位数据输入缓冲器,四个数据输出锁存器和端口号P0、P1、P2和P3同名,皆为特殊功能寄存器SFR中的一个。因此,CPU数据从并行I/O端口输出时可以得到锁存,数据输入时可以得到缓冲。 四个并行I/O端口在结构上并不相同,因此它们在功能和用途上的差异较大。P0口和P2口内部均有一个受控制器控制的二选一选择电路,故它们除可以用作通用I/O口外,还具有特殊的功能。例如:P0可以输出片外存储器的低八位地址码和读写数据,P2口可以输出片外存储器的高八位地址码,等等。P1口常作为通用I/O口使用,为CPU传送用户数据;P3口除可以作为通用I/O口使用外,还具有第二功能。在四个并行I/O端口中,只有P0口是真正的双向I/O口,故它具有较大的负载能力,最多可以推动8个LSTTL门,其余3个

I/O口是准双向I/O口,只能推动4个LSTTL门。 四个并行I/O端口作为通用I/O使用时,共有写端口、读端口和读引脚三种操作方式,写端口实际上是输出数据,是把累加器A或其他寄存器中的数据传送到端口锁存器中,然后由端口自动从端口引脚线上输出。读端口不是真正的从外部输入数据,而是把端口锁存器中的输出数据读到CPU的累加器A中。读引脚才是真正的输入外部数据的操作,是从端口引脚线上读入外部的输入数据。端口的上述三种操作书架上是通过指令或程序来实现的。 串行I/O端口 8051有一个全双工的可编程串行I/O端口。这个串行I/O端口既可以在程序控制下把CPU中的8位并行数据编程串行数据逐行从发送数据线TXD发送出去,也可以把RXD线上串行接收到的数据变成8位并行数据送给CPU,而且这种串行发送和串行接收可以单独进行,也可以同时进行。 8051串行发送和串行接收利用了P3口的第二功能,即它利用P3.1引脚作为串行数据的发送线TDX和P3.0引脚作为串行数据的接收线RXD,串行口I/O口的电路结构还包括串行口控制寄存器SCON,电源及波特率选择寄存器PCON和串行数据缓冲器SBUF等,它们都属于SFR(特殊功能寄存器)。其中,PCON和SCON用于设置串行口工作方式和确定数据的发送和接收波特率,SBUF实际上有两个8位寄存器组成,一个工作方式和确定数据的发送和接收比特率,另一个用于存放接收到的数据,起着数据的缓冲作用。

IO端口复用的几种方式

IO端口复用 简介 I/O多路复用(multiplexing):本质是通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作。 适用场景:高并发的服务器端。应对并发,常见的思维是创建多线程,每个线程管理一个并发操作,但是弊端很明显,就是多线程需要上下文切换,这个切换的消耗太大,当连接的客户端很多的时候弊端就很突出了。所示使用单线程的多路复用。 几种方式 1.s elect Linux提供的select相关函数接口如下: #include #include int select(int max_fd, fd_set *readset, fd_set *wri teset, fd_set *exceptset, struct timeval *timeout) FD_ZERO(int fd, fd_set* fds) /* 清空集合 */ FD_SET(int fd, fd_set* fds) /* 将给定的描述符加入集合 */ FD_ISSET(int fd, fd_set* fds) /* 将给定的描述符从文

件中删除 */ FD_CLR(int fd, fd_set* fds) /* 判断指定描述符是否 在集合中 */ 接口解释: 1:select函数的返回值就绪描述符的数目,超时时返回0,出错返回-1。 2:第一个参数max_fd指待测试的fd个数,它的值是待测试的最大文件描述符 加1,文件描述符从0开始到max_fd-1都将被测试。 3:中间三个参数readset、writeset和exceptset指定要让内核测试读、写和异 常条件的fd集合,如果不需要测试的可以设置为NULL。 代码演示: sockfd=socket(AF_INET,SOCK_STREAM,0); memset(&addr,0,sizeof(addr)); addr.sin_family=AF_INET; addr.sin_port=htons(2000); addr.sin_addr.s_addr=IN ADDR_ANY; bind(sockfd,(struct sockaddr*)&addr,sizeof(addr)); listen(sockfd,5); fd_set rset; int max = 0; int fds[5]; for(int i=0;i<5;i++) { memset(&client,O,sizeof(client); addrlen=sizeof(client); fds[i]=accept(sockfd,(struct sockaddr*) &client,&addrlen); if(fds[i]>max) max=fds[i]; } while(1)

io端口与中断

I/O端口基本知识 (2010-03-06 09:20:50) 转载 1.什么是I/O端口? CPU使用什么指令与外设进行数据交换? 答:CPU与I/O设备通过硬件接口或控制器相连接,这些接口或控制器都有数量不等的端口,这些端口有统一的地址编码,CPU通过这些端口使用输入输出指令IN、OUT与外设进行数据交换。 2.CPU为什么不能用MOV指令进行I/O数据传输? 答:在80x86微机系统中,I/O端口编址在一个独立的地址空间中,它和存储器是完全分离的。因此,对于存储器的存取操作使用MOV指令,而与端口进行信息交换的操作使用专门的I/O指令,二者不能混淆。 3.使用查询方式进行输入输出的优缺点是什么? 答:使用查询方式编程可直接在端口级上输入输出信息,数据的传送速度和吞吐量比较高,另外在控制多个设备的I/O时,可在程序中安排它们的优先级,最先查询的设备,其工作的优先级也最高。修改程序中的查询次序,实际上也就修改了设备的优先级,这样以最简便的方法实现了对设备优先级的控制。查询方式的缺点主要是在查询过程中,要反复的查询等待,浪费了CPU原本可执行大量指令的时间,而且由询问转向相应的处理程序的时间较长,尤其在设备比较多的情况下。 4.什么是中断? 答:计算机在执行程序过程中,遇到需要处理的事件时,暂停当前正在运行的程序,转去执行有关的服务程序,处理完后自动返回原程序,这个过程称为中断(interrupt)。中断在现代计算机系统中是一种非常重要的技术,输入输出设备和主机交换数据、分时操作、实时系统、多处理机系统、计算机网络和分布式计算机系统都要用到这种技术。 5.中断分为几类? 答:中断可分为内中断和外中断。内中断是由计算机内部原因引起的中断,内中断又称为软中断,它通常由三种情况引起: (1) 由中断指令INT引起;

PIC24FJ32的IO端口使用简介

NOTE1-PIC24FJ32GA004系列的IO端口使用简介介绍针对PIC24FJ32GA004或相同系列单片机IO端口使用。 1、IO寄存器 TRISx:方向寄存器 PORTx:端口寄存器 LATx:锁存寄存器 ODCx:漏极输出控制寄存器 2、寄存器使用 TRISx:控制端口输入输出属性。其中某位为1,引脚输入(input);为0,引脚输出(output)。 PORTx:读PORTX,是直接读引脚上的电平状态(见图)。 写PORTX,将数值写入引脚数据锁存器(见图)。 PIC单片机引脚操作模式为“读出--修改--写入”,使用PORTX操作引脚时应注意两点,一是在单片机初始化之后的运行中尽量不改变端口输入输出方向,容易出问题,二是IO端口避免链接容性负载,此种在高速操作IO端口时会出问题,比如输出快速变化的高低电平时,每次输出都会读取一次端口寄存器数值。 LATx:读LATX,得到保存在端口数据锁存器中的值(该值为写LATX或PORTX后所得)。 写LATx,讲数值写入引脚数据锁存器,与写PORTX效果相同。 通过LATX操作端口IO,可避免上述因“读出--修改--写入”模式造成的问题。 ODCx:将引脚的相应位置1可配置引脚为漏极开路输出。

3、IO端口使用原则 (1)端口用作出入,需要直接读取外部引脚上的电平状态,使用PORTX寄存器:int V ALUE=PORTA; (2)端口用作输出,输出高低电平,驱动芯片等使用LATX寄存器: LATA=0XFFEE; 4、IO端口使用的位操作 可以使用P24FJ32GA004.h中定义的位操作宏定义对单片机的IO端口以及其他众多单片机寄存器进行位操作。 如:_LATB0=1; RB0输出高电平 以端口B为例,针对PIC24F系列的位操作被定义如下形式: /* TRISB */ #define _TRISB0 TRISBbits.TRISB0 #define _TRISB1 TRISBbits.TRISB1 …… #define _TRISB15 TRISBbits.TRISB15 /* PORTB */ #define _RB0 PORTBbits.RB0 #define _RB1 PORTBbits.RB1 …… #define _RB15 PORTBbits.RB15 /* LATB */ #define _LATB0 https://www.wendangku.net/doc/8615238741.html,TB0 #define _LATB1 https://www.wendangku.net/doc/8615238741.html,TB1 …… #define _LATB15 https://www.wendangku.net/doc/8615238741.html,TB15 /* ODCB */ #define _ODB0 ODCBbits.ODB0

IO口结构详解

1.什么是源型、漏型?什么是上拉电阻?下拉电阻?什 么是线驱动输出、集电极开路输出、推挽式输出? 我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极c跟发射极e之间相当于断开),所以5v电源通过1k电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。 我们将图1简化成图2的样子。图2中的开关受软件控制,“1”时断开,“0”时闭合。很明显可以看出,当开关闭合时,输出直接接地,所以输出电平为0。而当开关断开时,则输出端悬空了,即高阻态。这时电平状态未知,如果后面一个电阻负载(即使很轻的负载)到地,那么输出端的电平就被这个负载拉到低电平了,所以这个电路是不能输出高电平的。 再看图三。图三中那个1k的电阻即是上拉电阻。如果开关闭合,则有电流从1k电阻及开关上流过,但由于开关闭和时电阻为0(方便我们的讨论,实际情况中开关电阻不为0,另外对于三极管还存在饱和压降),所以在开关上的电压为0,即输出电平为0。如果开关断开,则由于开关电阻为无穷大(同上,不考虑实际中的漏电流),所以流过的电流为0,因此在1k电阻上的压降也为0,所以输出端的电压就是5v了,这样就能输出高电平了。但是这个输出的内阻是比较大的(即1kω),如果接一个电阻为r的负载,通过分压计算,就可以算得最后的输出电压为5*r/(r+1000)伏,即5/(1+1000/r)伏。所以,如果要达到一定的电压的话,r就不能太小。如果r真的太小,而导致输出电压不够的话,那我们只有通过减小那个1k的上拉电阻来增加驱动能力。但是,上拉电阻又不能取得太小,因为当开关闭合时,将产生电流,由于开关能流过的电流是有限的,因此限制了上拉电阻的取值,另外还需要考虑到,当输出低电平时,负载可能还会给提供一部分电流从开关流过,因此要综合这些电流考虑来选择合适的上拉电阻。 如果我们将一个读数据用的输入端接在输出端,这样就是一个io口了(51的io口就是这样的结构,其中p0口内部不带上拉,而其它三个口带内部上拉),当我们要使用输入功能时,只要将输出口设置为1即可,这样就相当于那个开关断开,而对于p0口来说,就是高阻态了。 对于漏极开路(od)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,oc就变成了od,原理分析是一样的。

S3C2410IO端口

第九章I/O端口 概述 S3C2410有117个多功能的输入输出引脚,这些端口是: — 端口A(GPA):23个输出口 — 端口B(GPB):11个输入输出口 — 端口C(GPC):16个输入输出口 — 端口D(GPD):16个输入输出口 — 端口E(GPE):16个输入输出口 — 端口F(GPF):8个输入输出口 — 端口G(GPG):16个输入输出口 — 端口H(GPH):11个输入输出口 每个端口可以根据系统配置和设计需求通过软件配置成相应的功能。在启动主程序之前,必须定义好每个引脚的功能。如果某个引脚不用作复用功能,则可以将它配置成IO脚。 初始的引脚状态被无缝配置好的以避免产生问题。 表1 端口配置见英文版Table 9-1. S3C2410A Port Configuration 端口控制描述 端口控制寄存器(GPACON-BGHCON) 在S3C2410中,大部分端口都是复用的,因此需要决定每个引脚使用哪个功能。端口控制寄存器PnCON决定每个引脚的功能。 如果GPF0 – GPF7 and GPG0 – GPG7用于掉电模式的唤醒信号,这些端口必须被配置成中断模式。 端口数据寄存器(GPADAT-GPHDAT) 如果端口被配置成输出端口,可以向PnDAT中的相关位写入数据;如果端口被配置成输入端口,可以从PnDAT中的相关位读入数据。 端口上拉电阻寄存器(GPBUP-GPHUP) 端口上拉电阻寄存器控制每个端口组的上拉电阻的使能和禁止。当相关位为0,上拉电阻使能;当相关位为1,上拉电阻禁止; 当端口上拉电阻寄存器使能时,不管引脚选择什么功能(输入、输出、数据、外部中断等),上拉电阻都工作。 外部中断控制寄存器(EXTINTN) 24个外部中断可响应各种信号请求方式。EXTINTn寄存器可以配置如下信号请求方式:低电平触发、高电平触发、上升沿触发、下降沿触发、双边沿触发。 这8个外部中断引脚具有数字滤波器。(见EINTFLTn相关)

51单片机IO端口的四种输入输出模式

51单片机IO端口的四种输入输出模式(by wuleisly) 单片机I O口的使用对所有单片机玩家来说都是“家常便饭”,但是你真的了解I O 口吗?你真的能按你的需要配置I O口吗? 一、准双向口输出 准双向口输出类型可用作输出和输入功能而不需重新配置 口线输出状态。这是因为当口线 输出为1时驱动能力很弱,允许外部装置将其拉低。当引脚输出为低时,它的驱动能力很强, 可吸收相当大的电流。(准双向口有3个上拉晶体管适应不同的需要) 准双向口读外部状态前,要先锁存为…1?,才可读到外部正确的状态. 二、强推挽输出 推挽输出配置的下拉结构与开漏输出以及准双向口的下拉 结构相同,但当锁存器为1时提供持续的强上拉。推挽模式一般用于需要更大驱动电流的情况。 三、仅为输入(高阻) 输入口带有一个施密特触发输入以及一个干扰抑制电路。 四、开漏输出配置(若外加上拉电阻,也可读) 当口线锁存器为0时,开漏输出关闭所有上拉晶体管。当作为一个逻辑输出时,这种配置方式必须有外部上拉,一般通过电阻外接到V c c。如果外部有上拉电阻,开漏的I/O口还可读外部状态,即此时被配置为开漏模式的I/O口还可作为输入I/O口。这种方式的下拉与准双向口相同。 开漏端口带有一个施密特触发输入以及一个干扰抑制电路。 关于I/O口应用注意事项: 1.有些是I/O口由低变高读外部状态时,读不对,实际没有损坏,软件处理一下即可。 因为1T的8051单片机速度太快了,软件执行由低变高指令后立即读外部状态,此时由于实际输出还没有变高,就有可能读不

对,正确的方法是在软件设置由低变高后加1到2个空操作指令延时,再读就对了. 有些实际没有损坏,加上拉电阻就OK了 有些是外围接的是NP N三极管,没有加上拉电阻,其实基极串多 大电阻,I/O口就应该上拉多大的电阻,或者将该I/O口设置为强 推挽输出. 2.驱动L E D发光二极管没有加限流电阻,建议加1K以上的限流电阻,至少也要加470欧姆以上 做行列矩阵按键扫描电路时,实际工作时没有加限流电阻,实际工作时可能出现2个I/O口均输出为低,并且在按键按下时,短接在一起,我们知道一个C MOS电路的2个输出脚不应该直接短接在一起,按键扫描电路中,此时一个口为了读另外一个口的状态,必须先置高才能读另外一个口的状态,而8051单?片机的弱上 拉口在由0变为1时,会有2时 钟的强推挽高输出电流输出到另外一个输出为低的I/O口,就有 可能造成I/O口损坏.建议在其中的一侧加1K限流电阻,或者在 软件处理上,不要出现按键两端的I/O口同时为低. 一种典型三极管控制电路: 如果用弱上拉控制,建议加上拉电阻R1(3.3K~10K),如果不加上拉电阻R1(3. 3K~10K), 建议R2的值在15K以上,或用强推挽输出。 典型发光二极管控制电路:

1-IO端口介绍

I/O端口 英文缩写input/output 输入/输出,电脑上的所有插孔都可以叫I/O 端口。为了数据的传输的,CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。存储器通常在CPU的同步控制下工作,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路也各不相同,因此,习惯上说到接口只是指I/O接口。 一、I/0接口的概念 1、接口的分类 I/O接口的功能是负责实现CPU通过系统总线把I/O电路和外围设备联系在一起,按照电路和设备的复杂程度,I/O接口的硬件主要分为两大类: (1)I/O接口芯片 这些芯片大都是集成电路,通过CPU输入不同的命令和参数,并控制相关的I/O电路和简单的外设作相应的操作,常见的接口芯片如定时/计数器、中断控制器、DMA控制器、并行接口等。 (2)I/O接口控制卡 有若干个集成电路按一定的逻辑组成为一个部件,或者直接与CPU同在主板上,或是一个插件插在系统总线插槽上。 按照接口的连接对象来分,又可以将他们分为串行接口、并行接口、键盘接口和磁盘接口等。

2、接口的功能 由于计算机的外围设备品种繁多,有的是全电子式,有的是机电式的,因此,CPU在与I/O设备进行数据交换时存在以下问题: 速度不匹配:I/O设备的工作速度要比CPU慢许多,而且由于种类的不同,他们之间的速度差异也很大,例如硬盘的传输速度就要比打印机快出很多。 时序不匹配:各个I/O设备都有自己的定时控制电路,以自己的速度传输数据,无法与CPU的时序取得统一。 信息格式不匹配:不同的I/O设备存储和处理信息的格式不同,例如可以分为串行和并行两种;也可以分为二进制格式、ACSII编码和BCD 编码等。 信息类型不匹配:不同I/O设备采用的信号类型不同,有些是数字信号,而有些是模拟信号,因此所采用的处理方式也不同。 基于以上原因,CPU与外设之间的数据交换必须通过接口来完成,通常接口有以下一些功能: (1)设置数据的寄存、缓冲逻辑,以适应CPU与外设之间的速度差异,接口通常由一些寄存器或RAM芯片组成,如果芯片足够大还可以实现批量数据的传输; (2)能够进行信息格式的转换,例如串行和并行的转换; (3)能够协调CPU和外设两者在信息的类型和电平的差异,如电平转换驱动器、数/模或模/数转换器等; (4)协调时序差异;

5种低功耗模式及IO端口介绍

MSP430-5种低功耗模式 MSP430-5种低功耗模式 作者:佚名MSP430来源:不详点击数:794 更新时间:2007-8-4 5种低功耗模式分别为LPM0~LPM4(LOW POWER MODE),CPU的活动状态称为AM(ACTVE MODE)模式。其中AM耗电最大,LPM4耗电最省,仅为0.1uA。另外工作电压对功耗的影响:电压越低功耗也越低。 系统PUC复位后,MSP430进入AM状态。在AM状态,程序可以选择进入任何一种低功耗模式,然后在适当的条件下,由外围模块的中断使CPU退出低功耗模式,返回AM 模式,再由AM模式选择进入相应的低功耗模式,如此类推。 工作模式的选择由状态寄存器SR中的SCG1、SCG0、OSCOFF、CPUOFF位控制。由于在CPU的头文件中对CPU内的各寄存器和模块的各种工作模式都作了详尽的定义,所以编程时尽可能的利用就是了。如:要进入低功耗模式0,可在程序中直接写:LPM0; 。进入低功耗模式4,可以写:LMP4;就可以了。退出低功耗模式如下: LPM0_EXIT; //退出低功耗模式0 LPM4_EXIT; //退出低功耗模式4 MSP430-IO端口介绍 MSP430-IO端口介绍 作者:佚名MSP430来源:不详点击数:2137 更新时间:2007-8-4 MSP430的端口有P1、P2、P3、P4、P5、P6、S和COM(型号不同,包含的端口也不仅相同,如MSP430X11X系列只有P1,P2端口,而MSP430X4XX系列则包含全部上述端口),它们都可以直接用于输入/输出。MSP430系统中没有专门的输入/输出指令,输入/输出操作通过传送指令来实现。端口P1`P6的每一位都可以独立用于输入/输出,即具有位寻址功能。常见的键盘接口可以直接用端口进行模拟,用查询或者中断方式控制。由于MSP430的端口只有数据口,没有状态口或控制口,在实际应用中,如在查询式输入/输出传送时,可以用端口的某一位或者几位来传送状态信息,通过查询对应位的状态来确定外设是否处于“准备好”状态。

很全的51单片机IO端口详解(带图)

80C51的I/O端口结构及应用特性 一,I/O端口的结构 1,锁存器加引脚的典型结构 80C51的I/O端口都有内部总线实现操作控制。P0-P3四个I/O 口都可以做普通I/O口,因此,要求具有输出锁存功能。内部总线有事分时操作,因此每个I/O端口都有相应的锁存器。然而I/O端口又是外部的输入/输出通道,必须有相应的引脚,故形成了I/O端口的锁存器加引脚的典型结构。 2,I/O口的复用功能 (1)I/O口的总线复用。80C51在使用并行总线扩展时,P0口可作为数据总线口和低8位地址总线口,这是,P0为三态双向口。P0口输出总线的地址数据信号,P2口输出高8位地址信号。 (2)I/O口的功能复用。I/O口的P3为功能复用的I/O端口。端口有复用输出的控制端;引脚也有复用输入的控制端。 3,准双向结构 P0,P1,P2,P3口做普通I/O口使用时,都是准双向口结构。准双向口的典型结构见P1口位结构图。准双向口的输入操作和输出操作本质不同,输入操作时读引脚状态;输出操作时对口锁存器的写入操作。有口锁存器和引脚电路可知:当有内部总线对只1或只0时,锁存器的0、1状态立即反应到引脚上。但是输入操作(读引脚)时,如果口锁存器的状态为0,引脚被嵌位在0状态,导致无法读出引脚的高电平输入。 二,I/O端口的应用特性 1,引脚的自动识别。无论P0,P2口的总线复用,还是P3口的功能复用,内部资源会自动选择,不需要通过指令的状态选择。 2,口锁存器的读、该、写操作。许多涉及到I/O端口的操作,只是涉及口锁存器的读出、修改、写入的操作。这些指令都是一些逻辑运算指令、置位/清除指令、条件转移指令以及将I/O口作为目的地址的操作指令。 3,读引脚的操作指令。如果某个I/O口被指定为源操作数,则为

51IO端口的驱动能力

人生的意义在于进化 299792458 / 40075704 = 7.47316 2011-09-22 18:47 51单片机IO端口的驱动能力 单片机输出驱动分为高电平驱动和低电平驱动两种方式,所谓高电平驱动,就是端口输出高电平时的驱动能力,所谓低电平驱动,就是端口输出低电平时的驱动能力,当单片机输出高电平时,其驱动能力实际上是端口的上拉电阻来驱动的,实际测试表明,51单片机的上拉电阻的阻值在330K左右,也就是说如果高电平驱动,本质上就是330K的上拉电阻来提供电流的,当然该电流是非常小的,小的甚至连发光二极管也难以点亮,如果要保证LED正常发光,必须要外接一个 1K左右的上拉电阻,如果是一个led还好,要是10个、20个led的话,就要接10个、20个1K的上拉电阻,接电阻的本身是可以的,问题是接了上拉电阻以后,每当端口变为低电平0的时候,那么就有10个、20个上拉电阻被无用的导通,假设每个电阻的电流为5mA计算,20个电阻就是100mA,这将造成电源效率的严重下降,导致发热,纹波增大,以至于造成单片机工作不稳,因此很少有采用高电平直接驱动led的,高电平驱动led实际上就是共阴。 低电平驱动就不同了,端口为低电平0时,端口内部的开关管导通,可以驱动高达30多毫安的驱动电流,可以直接驱动led等负载,当端口为低电平0时,尽管内部的上拉电阻也是消耗电流的,但是由于内部的上拉电阻很大,有330K,因此消耗电流极小,基本上不会影响电源效率,不会造成无用功的大量消耗。 因此51单片机是不能用高电平直接驱动led的,只能用低电平直接驱动led,即只能用共阳数码管,而不能直接用共阴数码管。 youki12345 ( https://www.wendangku.net/doc/8615238741.html,/thread-160467-1-1.html ) 在51单片机系列中,现在生产厂家很多,兼容型号也很多。不同厂家生产的单片机P1口的驱动能力是不同的。下面仅举最常用的3种单片机为例,谈谈驱动能力。先说说LS型TTL负载。 LS型TTL负载是指单片机端口所接负载是74LS 系列的数字芯片。以TI公司的74LS00芯片为例,其输入端接高电平时,输入电流为20μA,输入端接低电平时,输入电流是-0.4mA。因此,单片机端口输出高电平时,每个LS型的输入端将是20μA的拉电流型负载;输出低电平时,将是0.4mA的灌电流负载。 1. 标准的Intel8051单片机:其P0口是一个漏极开路的准双向口,驱动能力是8个LS型TTL负载。楼上3楼说“51单片机P1口只是准双向口,内部没有上拉的。(上拉的概念只是对于I/O的输入来说,对于输出来说,无所谓上拉,下拉的)。”,其实并不对。不对之处有两点:①没有上拉的是P0口,而不是P1口。P1口是有上拉的。② 没有上拉(即漏极开路)其实只对输出有影响,以致只能输出低电平,不能输出高电平,而不妨碍高低电平

PLC的IO端口接线

PLC的I/O端口接线 正确接线是PLC发挥功能的前提条件,熟练的掌握PLC输入端口和输出端口的接线是每一个电力作业人员所必需的。一般情况下,PLC电源输入端接AC220V,是为了给PLC提供运行电源。PLC输出电源端口一般为DC24V,是PLC自带的电源输出。PLC使用过程中,输入端和输出端正确的接线是非常重要,接线正确是PLC工作的前提。 下面我们重点来分析一下PLC的输入端,输出端常见的接线类型:

1、输入端口常见的接线类型和对象 2、PLC输入端口一般是输入1、开关量信号:按钮,行程开关,转换开关,接近开关。 举个简单的例子更加容易说清楚:按钮或者接近开关的接线所示:

PLC开关量接线,一头接入PLC的输入端(X0,X1,X2等),另一头并在一起接入PLC公共端口(COM端)。2、模拟量信号:一般为各种类型的传感器,例如:压力变送器,液位变送器,远传压力表,热电偶和热电阻等等信号。模拟量信号采集设备不同,设备线制(二线制或者三线制)不同,接线方法也会稍有不同 3、输出端口接线PLC输出端口接线一般可以分为以下三种情况: A、继电器输出。 B、晶体管输出。 C、晶闸管输出PLC输出方 式不同,输出负载所接的电源类型也不同。 如图所示:这是PLC输入端和输出端的基本接线,属于PLC 基本知识。 PLC接线过程中的三点常识1、PLC电源电路PLC控制系统的电

源除了交流电源外,还包括PLC直流电源,一般而言,PLC交流电源可以由市电直接供应,而输入设备(开关,传感器等)的直流电源和输出设备(继电器)的直流电源等,最好采取独立的直流电源供电。大部分的PLC自带24V直流电源,只有当输入设备或者输出设备所需电流不是很大的情况下,才能使用PLC自带直流电源。 4、PLC输入口和输出口的电流定额PLC自带的输入口电源一般 为DC24v,输入口每一个点的电流定额在5mA-7mA之间,这个电流是输入口短接时产生的最大电流,当输入口有一定的负载时,其流过的电流会相应减少。PLC输入信号传递所需的最小电流一般为2mA,为了保证最小的有效信号输入电流,输入端口所接设备的总阻抗一般要小于2K欧。也就是说当输入端口的传感器功率较大时候,需要接单独的外部电源。 5、PLC输出端口一般所能通过的最大电流随PLC机型的不同而不

IO端口和IO内存

几乎每一种外设都是通过读写设备上的寄存器来进行的。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。CPU对外设IO端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。而具体采用哪一种则取决于CPU 的体系结构。 有些体系结构的CPU(如,PowerPC、m68k等)通常只实现一个物理地址空间(RAM)。在这种情况下,外设I/O端口的物理地址就被映射到CPU的单一物理地址空间中,而成为内存的一部分。此时,CPU可以象访问一个内存单元那样访问外设I/O端口,而不需要设立专门的外设I/O指令。这就是所谓的“内存映射方式”(Memory-mapped)。 而另外一些体系结构CPU(典型地如X86)则为外设专门实现了一个单独地地址空间,称为“I/O地址空间”或者“I/O端口空间”。这是一个与CPU地RAM物理地址空间不同的地址空间,所有外设的I/O端口均在这一空间中进行编址。CPU通过设立专门的I/O指令(如X86的IN和OUT指令)来访问这一空间中的地址单元(也即I/O端口)。这就是所谓的“I/O 映射方式”(I/O-mapped)。与RAM物理地址空间相比,I/O地址空间通常都比较小,如x86 CPU的I/O空间就只有64KB(0-0xffff)。这是“I/O映射方式”的一个主要缺点。 Linux将基于I/O映射方式的或内存映射方式的I/O端口通称为“I/O区域”(I/O region)。在讨论对I/O区域的管理之前,我们首先来分析一下Linux是如何实现“I/O资源”这一抽象概念的. 在驱动程序编写过程中,很少会注意到IO Port和IO Mem的区别。虽然使用一些不符合规范的代码可以达到最终目的,这是极其不推荐使用的。 结合下图,我们彻底讲述IO端口和IO内存以及内存之间的关系。主存16M字节的SDRAM,外设是个视频采集卡,上面有16M字节的SDRAM作为缓冲区。

IO端口扩展方法

1、精简ISA总线GPIO扩展原理 在工业领域,GPIO的应用非常广泛,英利嵌入式Linux工控板上自带有16路GPIO。然而在实际应用中,经常需要多于16路的GPIO作为控制或者数据信号使用,这时候可以通过英利精简ISA总线进行GPIO扩展。采用最普遍的逻辑芯片74HCT138、74HCT245和74HCT273即可以扩展出满足需求数量的GPIO。此外,由于上述芯片的成本极其低廉,单片采购价只有几角钱,因此在满足功能需求的同时,也有效地控制了产品成本。 采用精简ISA总线进行GPIO扩展的方法是:使用74HCT138对片选控制信号CS1#、读信号RD#、写信号WE#以及地址线SA0-SA2进行地址译码,产生不同地址偏移量的片选信号,应用程序通过对不同地址的读写操作来控制相应的GPIO(GPIO通过74HCT245或者74HCT273连接到数据线SD0-SD7)。 2、DIN扩展示例(输入不需要锁存) 数字输入DIN的扩展原理图如下所示: 如图所示,地址译码产生了8个读片选信号,每一个信号通过控制一片74HCT245可以操作8路GP IO,这样,一次译码之后可以扩展出64路DIN。本图中只使用了RD0#和RD1#两个片选信号,客户如有需要可以使用RD2#-RD7#继续进行扩展。

3、DOUT扩展示例(输出需要锁存) 数字输出DOUT的扩展原理图如下所示: 如图所示,地址译码产生了8个写片选信号,每一个信号通过控制一片74HCT273可以操作8路GP IO,这样,一次译码之后可以扩展出64路DOUT。本图中只使用了WE0#和WE1#两个片选信号,www.l https://www.wendangku.net/doc/8615238741.html,客户如有需要可以使用WE2#-WE7#继续进行扩展。 综上所述,通过一次地址译码能够扩展出64路输入、64路输出一共128路GPIO,可以满足绝大多数工业控制领域的需求。而这128路GPIO扩展所需的器件成本只有十几元,相对于工控整机产品而言,几乎可以忽略不计。 此外需强调的是,如果用户扩展出的GPIO是用做不同的功能,那么最好将不同的功能单元完全分开。 比如,需要进行如下扩展控制: ?3路DIN ?2x3矩阵键盘 ?5个LED ?4路继电器单元 ?7路DOUT 则分配思路如下:由于有5个功能单元,每一个功能单元所需的GPIO都不超过8个,因此使用2 片74HCT245分别用于矩阵键盘、DIN;4片74HCT273分别用于矩阵键盘、LED、继电器、DOUT,读信

单片机IO端口工作原理

一、P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 输入缓冲器:在P0口中,有两个三态的缓冲器,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态。图中有一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器’端)有效。图中另一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。 D锁存器:一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。图中的锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是反向输出端。 对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。 多路开关:在51单片机中,当内部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为‘地址/数据’总线使用。那么这个多路选择开关就是用于选择是做为普通I/O口使用还是作为‘数据/地址’总线使用的选择开关了。大家看上图,当多路开关与下面接通时,P0口是作为普通的I/O口使用的,当多路开关是与上面接通时,P0口是作为‘地址/数据’总线使用的。 输出驱动部份:从上图中我们已看出,P0口的输出是由两个MOS管组成的推拉式结构,也就是说,这两个MOS管一次只能导通一个,当V1导通时,V2就截止,当V2导通时,V1

IO端口

USB(通用串行总线)接口针脚定义 USB电缆有4条线,2条信号线,2条电源线,可提供5伏特电源。允许的电压范围是4.75V 至5.25V,可提供的最大电流500mA 线缆最大长度可以达到5米。 USB接口有上行口和下行口两种不同的物理接口,目的是防止形成回路。两种接口都是四个引脚,针脚定义是相同的。 RS485 简介 在当今的PC 产品中,RS232 已经被广泛的使用,您可能已经对RS232 非常熟悉,但对于用来控制系统和数据传输的RS485,知道的人就少多了。 在介绍RS485 之前,我们先看一下RS232。RS232 的信号通过与地的电压级别来表示,每个信号使用一个线缆,与地线进行比较。这种接口对于低速的点到点的通讯很有用。例如,PC上使用的用来接鼠标或者调制解调器的串口等,一个端口接一个设备。由于RS232 的信号需要地线,限制了线缆的长度,一般30到60米,主要针对局部的通讯。 RS485 使用了与RS232 不同的原理。每个信号使用一对双绞线,如果把它们定为A和B,A是正电压而B是负电压时是活动信号,A是负电压而B是正电压时是不活动信号,如此一来,RS485 的线缆可以达到1200米长,提供2.5MB/s 的传输速度。 RS485 可以进行多点通讯,可以把多个设备连接在一起,有点象以太网。大部分的RS485 系统使用主/从结构,每个从设备都有自己唯一的地址,只响应针对自己的数据包,这些数据包由主设备生成。 并口针脚定义 25针并口的针脚定义:

如何查看调制解调器的硬件资源 在Windows 95/98系统下,如何查看调制解调器所配置的资源。 首先,您需要了解串口的标准资源: 串口(COM) 中断请求(IRQ) 输入/输出(I/O) COM1 4 03F8 COM2 3 02F8 COM3 4 03E8 COM4 3 02E8 现在您可以按照以下的步骤查看调制解调器的资源: 1. 打开计算机,进入Windows 95/98系统; 2. 点击“开始”、“设置”、“控制面板”; 3. 双击“系统”,点击“设备管理器”; 4. 在设备管理器选项卡中,选择“调制解调器”; 5. 打开调制解调器的属性,选择“资源”; 6. 在“资源”选项卡中列出了调制解调器资源。 USB 2.0背景简介 USB 2.0是由以Compaq, HP, Intel, Lucent, Microsoft, NEC和Philips等公司为核心的研发小组的成果。开发USB 2.0的最初目的是提供40倍于USB 1.1的传输速率,并且提供向上兼容的特性,包括使用同样的电缆,

基本的IO接口

第3章基本的IO接口 3.1 I/O概述 I/O接口基本概念 1.为什么要引入接口 ?微机和I/O设备的信息类型和格式可能不一样。 ?微机和I/O设备信号传输处理的速度可能不匹配。 ?不用接口,I/O直接接CPU,随着外设增加,会大大降低CPU的效率。 ?I/O直接接CPU,会使外设硬件结构过于依赖CPU,对外设本身发展不利。 2.接口的概念

3.I/O接口与I/O设备 不同I/O设备对应I/O接口不同。 I/O接口受CPU控制,I/O设备受I/O接口控制。 为增加通用性,I/O接口的接口电路一般均具有可编程功能。 微机的应用离不开与外部设备接口的设计、选用和连接。 4.I/O接口功能 .数据缓冲功能:

通过寄存器或锁存器实现。存放数据的寄存器或锁存器称之为数据口(输入、输出、双 向)。数据传送的方向以CPU/MPU为基准。 .接受和执行CPU命令功能: 存放CPU命令代码的寄存器称之为命令口,存放执行状态信息的寄存器称之为状态口。 一般,命令口为输出口,状态口为输入口。 .设备选择功能: CPU通过地址译码选择不同外设。即CPU通过地址译码选择不同I/O接口。 .信号转换功能: 协调总线信号与I/O设备信号。转换包括信号的逻辑关系、时序配合和电平转换。 .中断管理功能: 当外设需要及时得到CPU的服务,特别是在出现故障时,在接口中设置中断控制电路,为CPU处理有关中断事务(如发出中断请求、进行中断优先级排队、提供中断向量等),这样既做到微机系统对外界的实时响应,又使CPU与外设并行工作,提高了CPU的效率。 .数据宽度变换的功能 CPU能直接处理的是并行数据(8位、16位或32位等),而有的外设(如串行通信设备、绘图仪、电传打字机等)只能处理串行数据,在这种情况下,接口就应具有数据"并-串"和"串-并"变换的能力。可以通过编程改变接口性能及工作方式的接口芯片称为通用接口芯片,反之,称为专用接口芯片。 .可编程功能:

关于IO端口和编址方式的知识

关于I/O端口和编址方式的知识 以下涉及到的指令都是汇编指令,如IN、OUT、STI、CLI、MOV等。 一:I/O端口知识 1.什么是I/O端口? CPU使用什么指令与外设进行数据交换? 答:CPU与I/O设备通过硬件接口或控制器相连接,这些接口或控制器都有数量不等的端口,这些端口有统一的地址编码,CPU通过这些端口使用输入输出指令IN、OUT与外设进行数据交换。 2.CPU为什么不能用MOV指令进行I/O数据传输? 答:在80x86微机系统中,I/O端口编址在一个独立的地址空间中,它和存储器是完全分离的。因此,对于存储器的存取操作使用MOV指令,而与端口进行信息交换的操作使用专门的I/O指令,二者不能混淆。 3.使用查询方式进行输入输出的优缺点是什么? 答:使用查询方式编程可直接在端口级上输入输出信息,数据的传送速度和吞吐量比较高,另外在控制多个设备的I/O时,可在程序中安排它们的优先级,最先查询的设备,其工作的优先级也最高。修改程序中的查询次序,实际上也就修改了设备的优先级,这样以最简便的方法实现了对设备优先级的控制。查询方式的缺点主要是在查询过程中,要反复的查询等待,浪费了CPU原本可执行大量指令的时间,而且由询问转向相应的处理程序的时间较长,尤其在设备比较多的情况下。 4.什么是中断? 答:计算机在执行程序过程中,遇到需要处理的事件时,暂停当前正在运行的程序,转去执行有关的服务程序,处理完后自动返回原程序,这个过程称为中断(interrupt)。中断在现代计算机系统中是一种非常重要的技术,输入输出设备和主机交换数据、分时操作、实时系统、多处理机系统、计算机网络和分布式计算机系统都要用到这种技术。 5.中断分为几类? 答:中断可分为内中断和外中断。内中断是由计算机内部原因引起的中断,内中断又称为软中断,它通常由三种情况引起: (1) 由中断指令INT引起; (2) 由于CPU的某些错误而引起,如溢出中断、除法错中断等; (3) 为调试程序(DEBUG)设置的中断,如单步中断、断点中断;外中断指由外部事件引起的中断,又称为硬中断。 硬件中断主要有两种来源: (1) 非屏蔽中断(NMI),如电源故障中断、实时钟中断等。 (2) 可屏蔽中断,一般是由于各种外部设备请求CPU提供服务所引起的中断。

相关文档