电子发烧友网 > 控制/MCU > 正文

PIC单片机以及51和AVR单片机的IO口操作方法解析

2020年03月06日 18:37 次阅读

对于pic单片机的学习,很多朋友总是能充满激情,不断利用闲余时间研究pic单片机的各类技术。而谈及pic单片机,必须牵扯至51、AVR单片机。因此本文中,将探讨pic单片机以及51、AVR单片机对于IO口的操作。对于本文,希望大家认真研读,以在pic单片机的学习之路上更为精进。

PIC单片机以及51和AVR单片机的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;

}

PIC单片机以及51和AVR单片机的IO口操作方法解析

二.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口的功能越强大结构越复杂操作越繁琐。

以上便是小编带来的全部内容,希望大家对此次小编带来的内容比较满意。
责任编辑;zl

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

云龙51单片机视频教程

目前国内公认的最好的视频教程,通俗易懂,容易上手,非常适合初学者,被大量的培训机构采用。只要你认真看,认真听,保证让你学
发烧友学院发表于 2018-08-02 00:00 15156次阅读
云龙51单片机视频教程

PIC16F874单片机为中心处理器的直流电机调...

本调速系统采用PIC16F874单片机作为中心处理器,充分利用了PIC16F874单片机捕捉、比较、....
发表于 2020-03-07 13:21 7次阅读
PIC16F874单片机为中心处理器的直流电机调...

LED屏无线控制器的设计方案

本系统主要由上位机和下位机组成。上位机为安装有LED 屏管理软件而且能连接Internet 或GPR....
发表于 2020-03-06 14:56 20次阅读
LED屏无线控制器的设计方案

AVR单片机对电梯外呼板系统的控制设计

AVR单片机具有高可靠性、功能强、高速度、低功耗和低价位的特点,本系统选用了高档ATmega列AVR....
发表于 2020-03-06 14:48 30次阅读
AVR单片机对电梯外呼板系统的控制设计

浅谈51单片机的规格与DS18B20传感器说明

注:获取全套资源,请见后文说明 设计要求 1.测量温度值精度为1℃; 2.系统允许的误差范围为1℃以....
发表于 2020-03-06 13:59 38次阅读
浅谈51单片机的规格与DS18B20传感器说明

51单片机控制gsm模块一直发送AT+CREG指令

用串口监视单片机一直发送AT+CREG?指令,就算gsm模块注册好了还是一直发这个指令。   单片机都不出...
发表于 2020-03-06 05:55 15次阅读
51单片机控制gsm模块一直发送AT+CREG指令

请问有As608指纹模块基于51单片机的驱动程序代码吗?

求各位大神分享一下As608指纹模块基于51单片机或者stm32战舰f1的驱动程序代码。谢谢您了...
发表于 2020-03-06 04:35 128次阅读
请问有As608指纹模块基于51单片机的驱动程序代码吗?

51单片机与RTL8019AS接入以太网,请问怎么测试51单片机是否已经接入了以太网?

51单片机与RTL8019AS接入以太网的板子是现成的,不知道怎么测试51单片机是否已经接入了以太网,除了ping还需要什...
发表于 2020-03-06 00:21 10次阅读
51单片机与RTL8019AS接入以太网,请问怎么测试51单片机是否已经接入了以太网?

单片机通过串口采集电流传感器的电流(数字量),通过WIFI(串口)发给手机,手机通过WIFI给单片机发命令。

电流传感器和WIFI都是通过串口(RXD和TXD)接的单片机,想求解一下二者通信的冲突问题。 电流传感器就是从...
发表于 2020-03-05 22:08 172次阅读
单片机通过串口采集电流传感器的电流(数字量),通过WIFI(串口)发给手机,手机通过WIFI给单片机发命令。

需要一个合适的人体呼吸速率检测模块,求推荐!!

做单片机相关的设计,需要一个现成、可以快速移植的呼吸速率检测模块。求推!! ...
发表于 2020-03-05 17:34 202次阅读
需要一个合适的人体呼吸速率检测模块,求推荐!!

利用AT89S52单片机总线方式点亮LM6063CCW(ST7565)显示

液晶显示模块通常用来作为控制设备的人机交互的窗口,把机器/设备的内部参数显示在液晶屏幕上,今天和大家来分享一下,...
发表于 2020-03-05 11:47 407次阅读
利用AT89S52单片机总线方式点亮LM6063CCW(ST7565)显示

51单片机驱动4个电机同时运行比一个或两个运行的转速低

我用的是51单片机,驱动4个电机,4个三极管的c都连的是板子上的vcc,b连的4个io口,pwm输出,但4个电机同时运行的转速,...
发表于 2020-03-04 23:59 155次阅读
51单片机驱动4个电机同时运行比一个或两个运行的转速低

儿童观看电视时间监视器制作(光照、人体红外、定时、语音)

[table] [tr][td]      随着我们生活节奏的加快,人们越来越倾向于长时间盯着手机或电视,而且...
发表于 2020-03-02 11:30 403次阅读
儿童观看电视时间监视器制作(光照、人体红外、定时、语音)

单片机托盘式电子秤制作(HX711)

24位A/D转换器芯片                HX711是一款专为高精度...
发表于 2020-03-01 19:01 369次阅读
单片机托盘式电子秤制作(HX711)

花房监控系统(环境温湿度、土壤湿度、光照度),实现浇水、排风、帘子控制等

51单片机控制的花房监控系统(环境温湿度、土壤湿度、环境光照度):通过手机]通过手机]该系统传感器有:   ...
发表于 2020-02-28 11:01 407次阅读
花房监控系统(环境温湿度、土壤湿度、光照度),实现浇水、排风、帘子控制等

基于AVR单片机的数控移相信号发生器设计

本文结合AVR系列单片机ATmega16和采用FPGACyclone器件实现DDS的一种数字式移相信....
发表于 2020-02-17 16:46 288次阅读
基于AVR单片机的数控移相信号发生器设计

基于PIC单片机的精确加油系统设计

精确加油系统由低功耗单片机(PIC16C57)、IC卡读写控制电路、EEPROM存储电路、液晶显示、....
发表于 2020-02-17 16:26 295次阅读
基于PIC单片机的精确加油系统设计

如何利用AVR单片机设计出语音识别系统

本系统采用的主控MCU为Atmel公司的ATMEGA128,语音识别功能则采用ICRoute公司的单....
发表于 2020-02-17 15:07 817次阅读
如何利用AVR单片机设计出语音识别系统

pic单片机键盘系统的设计方案

行列式键盘的接法比独立式键盘的接法复杂,编程实现上也会比较复杂。但是,在占用相同的I/O端口的情况下....
发表于 2020-02-09 10:38 178次阅读
pic单片机键盘系统的设计方案

pic单片机多路ad切换程序与循环程序设计

pic单片机(Peripheral Interface Controller)是一种用来开发和控制外....
发表于 2020-02-09 10:13 174次阅读
pic单片机多路ad切换程序与循环程序设计

pic单片机程序设计的基本方法解析

pic单片机在学习和工作中均扮演着重要角色,在往期文章中,小编曾对pic单片机汇编指令加以介绍,以帮....
发表于 2020-02-09 09:58 167次阅读
pic单片机程序设计的基本方法解析

PIC单片机实现AD转换的设计方案

AD转换就是模数转换。顾名思义,就是把模拟信号转换成数字信号。主要包括积分型、逐次逼近型、并行比较型....
发表于 2020-02-08 16:16 149次阅读
PIC单片机实现AD转换的设计方案

PIC单片机实现多回路温度控制系统的设计

本系统被设计为8个温度检测回路, 每一个回路将热电偶产生的对温度的微弱信号, 经过温度变送单元转换成....
发表于 2020-02-08 15:20 165次阅读
PIC单片机实现多回路温度控制系统的设计

pic单片机的各种汇编语言指令解析

因此,熟练 pic 单片机编程尤为重要。为保证大家能准确、熟练掌握 pic 单片机的使用,本文特带来....
发表于 2020-02-08 09:31 157次阅读
pic单片机的各种汇编语言指令解析

基于pic单片机的评估板设计方案

近年来,由于数据通信需求的推动,加上半导体、计算机等相关电子技术领域的快速发展,短距离无线与移动通信....
发表于 2020-02-07 09:05 125次阅读
基于pic单片机的评估板设计方案

AVR单片机实现轮胎内径测量系统的设计

基于AVR的轮胎内径测量系统主要由AVR单片机、上位机、光栅尺、数显表、激光测距仪、驱动器、步进电机....
发表于 2020-01-17 16:53 184次阅读
AVR单片机实现轮胎内径测量系统的设计

如何自制一个AVR单片机ISP下载线

自制AVR单片机ISP下载线 单片机编程器的作用是将调试好的程序烧写到单片机的存储器中。本文介绍的A....
发表于 2020-01-13 15:34 234次阅读
如何自制一个AVR单片机ISP下载线

PIC单片机开发的一些经验和技巧解析

功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,....
发表于 2020-01-10 16:08 266次阅读
PIC单片机开发的一些经验和技巧解析

基于PIC单片机的多回路温度控制系统设计

本系统被设计为8个温度检测回路, 每一个回路将热电偶产生的对温度的微弱信号, 经过温度变送单元转换成....
发表于 2020-01-09 16:45 226次阅读
基于PIC单片机的多回路温度控制系统设计

基于AVR单片机的红外接收程序设计

使用一体化的红外接收头,直接就解码出来了,平时红外接收头输出的是高电平,当有红外数据的时候,就会根据....
发表于 2020-01-07 16:20 226次阅读
基于AVR单片机的红外接收程序设计

51单片机中断的意义及单片机有多个硬件入口的简介

中断的意思就是打断正在进行的任务去执行更紧急的任务,显而易见至少要2套程序,一套主程序,一套中断程序....
发表于 2020-01-04 10:11 655次阅读
51单片机中断的意义及单片机有多个硬件入口的简介

基于PIC单片机的测试评估板设计

它被广泛应用于无线数据采集、无线水表、煤气表、电力表抄表、工业遥控、遥测、工业数据采集、楼宇自动化、....
发表于 2020-01-03 15:59 240次阅读
基于PIC单片机的测试评估板设计

AVR单片机的复位操作方法解析

复位是单片机芯片本身的硬件初始化操作,例如,单片机在上电开机时都需要复位,以便CPU以及其它内部功能....
发表于 2020-01-03 15:37 302次阅读
AVR单片机的复位操作方法解析

PIC单片机驱动LCD模块的设计

偏置电压是通过使用外部梯形电阻网络(电路见下图)而产生。因为梯形电阻网络连接在VDD和Vss之间,所....
发表于 2019-12-31 15:19 293次阅读
PIC单片机驱动LCD模块的设计

PIC单片机和AVR单片机IO的操作方法解析

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的....
发表于 2019-12-30 15:50 349次阅读
PIC单片机和AVR单片机IO的操作方法解析

PIC单片机的多路AD切换程序设计

pic单片机(Peripheral Interface Controller)是一种用来开发和控制外....
发表于 2019-12-30 15:41 279次阅读
PIC单片机的多路AD切换程序设计