当前位置:首页 > 单片机 > 单片机
[导读]51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作

51单片机AVR单片机PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

一.51单片机IO口的操作

51单片机IO口的结构比较简单,每个IO口只有一个IO口寄存器Px,而且这个寄存器可以位寻址,操作起来是所有单片机里最简单的,可以直接进行总线操作也可以直接进行位操作,这也是51单片机之所以成为经典的原因之一。下例的运行坏境为Keil软件,器件为AT89S52。

#i nclude

sbit bv=P2^0;//定义位变量,关联P2.0管脚。sbit是C51编译器特有的数据类型

int main(void)

{

unsigned char pv;

//位操作,以P2口的第0位为例:

bv=0;//直接对P2口的第0位管脚输出低电平

bv=1;// 直接对P2口的第0位管脚输出高电平

//总线操作输出数据,以P2口为例:

P2=0xaa;//直接赋值,P2口输出数据0xaa

//总线操作读取数据,以P2口为例:

pv=P2;//直接读取P2口的数据放到pv变量

return 0;

}

二.AVR单片机IO口的操作

AVR单片机IO口的结构比较复杂,每个IO由三个寄存器组成:IO口数据寄存器POTx、IO口方向寄存器DDRx和IO口输入引脚寄存器PINx。AVR单片机IO口操作相当麻烦,需要设置IO口的方向,而且只能进行总线操作,如果进行位操作还需要掌握编程技巧---通过逻辑运算来实现位操作。下例的运行坏境为ICCAVR软件,器件为ATMEGA16。

#i nclude

int main(void)

{

unsigned char pv;

//总线操作输出数据,以D口为例:

DDRD=0xff;//先设置D口的方向为输出方式(相应位设0为输入,设1为输出)

PORTD=0xaa;//赋值,D口输出数据0xaa

//总线操作读取数据,以D口为例:

DDRD=0x00//先设置D口的方向为输入方式(相应位设0为输入,设1为输出)

PORTD=0xff;//再设置D口为带上拉电阻(相应位设0为无上拉,设1为有上拉),才能准确读取数据

pv=PIND;//读取D口的PIND寄存器的数据放到pv变量

//位操作,以D口的第0位为例:

DDRD|=0x01;//先设置D口第0位的方向为输出方式,其他位的方向不变

PORTD|=0x01;//D口的第0位输出高电平,技巧:使用位或运算,其他位不变

PORTD&=~0x01;//D口的第0位输出低电平,技巧:使用取反位与运算,其他位不变

return 0;

}

三.PIC单片机IO口的操作

PIC单片机IO口的结构也比较复杂,每个IO由两个寄存器组成:IO口数据寄存器PORTx、和IO口方向寄存器TRISx。操作起来比AVR单片机简单一些,同样需要设置IO的方向,可以进行总线操作也可以进行位操作。下例的运行坏境为MPLAB IDE软件,器件为PIC16F877。

#i nclude

__CONFIG(0x3B32);

int main(void)

{

unsigned char pv;

//总线操作输出数据,以B口为例:

TRISB=0x00;//先设置B口的方向为输出方式(相应位设0为输出,设1为输入)

PORTB=0xaa;//赋值,B口输出数据0xaa

//总线操作读取数据,以B口为例:

TRISB=0xff;//先设置B口的方向为输入方式(相应位设0为输出,设1为输入)

pv=PORTB;//读取B口的数据放到pv变量

//位操作,以B口的第0位为例:

TRISB=0xfe;//先设置B口的第0位(RB0)的方向为输出方式(相应位设0为输出,设1为输入)

RB0=1;//B口的第0位输出高电平

RB0=0;//B口的第0位输出低电平

return 0;

}

经过比较这三种单片机IO口的操作,我们知道,51单片机IO口结构简单,操作简单,但没有高电平大电流驱动能力;AVR和PIC单片机IO 口结构复杂,操作麻烦,但具备高电平大电流驱动能力。换句话说,单片机的IO口的功能越强大结构越复杂操作越繁琐。

扩展阅读:AVR I/O口使用方法

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...

关键字: STM32 51单片机 MCU

51单片机将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对51单片机的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 单片机 51单片机

在嵌入式系统开发中,单片机是不可或缺的重要组成部分。其中,STM32单片机和51单片机是两种常见的单片机芯片。本文将对比分析这两种单片机的区别,并探讨STM32单片机的优势。

关键字: stm32单片 51单片机

51单片机是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了许多品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基...

关键字: 51单片机 串行通信

51单片机是一种常见的微控制器,它具有串行通信接口(Serial Communication Interface,SCI)。通过串口通信接口,51单片机可以与其他设备或系统进行串行通信,实现数据传输和控制。

关键字: 51单片机 串口通信

Pic单片机和51单片机是两种应用广泛的微控制器,它们各自具有不同的特点和优势,选择哪种单片机取决于具体应用需求。下面将对Pic单片机和51单片机进行详细的介绍和对比。

关键字: PIC单片机 51单片机 单片机

南京2023年9月16日 /美通社/ -- 今日,由中国 "双一流"建设高校南京医科大学、全球基因测序和芯片技术的领导者因美纳与"Nature Research Custom Media&q...

关键字: IO BSP GO OV

香港2023年9月5日 /美通社/ -- 狮子集团控股有限公司(Lion Group Holding Ltd.)("狮子集团"或"该集团")(纳斯达克股票代码:LGHL),是一家为...

关键字: PHOENIX LG AI技术 IO

深圳2023年9月5日 /美通社/ -- 9月4日,《财经网》发布了微众银行等数字金融的相关报道,以下为报道全文: 中国经济的新周期悄然而至,面对"工具"爆发、"边界"消失、服务...

关键字: 数字化 IO AN 分布式

北京2023年9月5日 /美通社/ -- 浪潮云海在2023年5月正式发布新一代InCloud Rail G7系列超融合一体机,其内置的InCloud dSAN超融合存储组件,基于新一代的硬件平台设计,支持全栈RDMA协...

关键字: IO 读写 软件 测试
关闭
关闭