AVR单片机IO端口操作方法

发布者:DreamySerenity最新更新时间:2017-11-26 来源: eefocus关键字:AVR单片机  IO端口  操作方法 手机看文章 扫描二维码
随时随地手机看文章
AVR单片机的IO端口操作是撑握AVR技术的基础,因此需要清晰的理解。下面的例子列出了操作IO端口的方法,资料来源于OURAVR。

举例一:将PB0定义为输出,且输出为高电平

DDRB=BIT(0); //定义 PB0为输出

PORTB|=BIT(0); // PB0 输出高电平

举例二:将PB0、PB1定义为输出,PB0、PB1均为高电平

DDRB|=BIT(0)|BIT(1); //定义 PB0、PB1为输出

PORTB|=BIT(0)|BIT(1);// PB0、PB1 输出高电平

举例三:将PB0数据寄存器的数值翻转,即如果是1时变成0,如果是0时变成1

PORTB^=BIT(0); //翻转PB0口

举例四:将PB0、PB1数据寄存器的数值翻转,即如果是1时变成0,如果是0时变成1

PORTB^=BIT(0)|BIT(1); // 翻转PB0 、PB1口

举例五:将PB2、PB3定义为输入,不带上拉电阻

DDRB&=~(BIT(2)|BIT(3)); //定义 PB2、PB3为输入

PORTB&=~(BIT(2)|BIT(3)); // 将 PORT 置0,没有上拉电阻

举例六:将PB2、PB3定义为输入,带上拉电阻。即没有引用这些引脚时,缺省值为高电平

SFIOR&=~BIT(PUD); // SFIOR寄存器的上拉电阻控制位PUD置0,在整个代码中,这句话可以不出现,或仅出现一次即可。因为它是一个控制全部上拉电阻的控制位。

DDRB&=~(BIT(2)|BIT(3)); //定义 PB2、PB3为输入

PORTB|=BIT(2)|BIT(3); // 将 PORT 置1,满足上拉电阻的另一个条件

举例七:DDRB=BIT(0)|BIT(1) 与 DDRB|=BIT(0)|BIT(1) 的区别

假定在执行上面两句指令前,DDRB 的状态为: 1000 0000

如果执行 DDRB="BIT"(0)|BIT(1) ,DDRB的状态变为: 0000 0011
如果执行 DDRD|=BIT(0)|BIT(1),,DDRB的状态变为: 1000 0011

那前一句会先清空以前的所有状态,后一句保留前面的状态。

在实际应用中,后一句更常用。

举例八:将第三位置1,除了用BIT(3),还有其它的表达方法吗?

DDRB|=BIT(3);

DDRB|=1<<3;

DDRB|=0x08;

DDRB|=0b00001000;


关键字:AVR单片机  IO端口  操作方法 引用地址:AVR单片机IO端口操作方法

上一篇:关于AVR CSTACK和RSTACK的总结
下一篇:AVR单片机的熔丝与解锁

推荐阅读最新更新时间:2024-03-16 15:47

Linux系统对IO端口IO内存的管理
一、I/O端口 端口(port)是接口电路中能被CPU直接访问的寄存器的地址。几乎每一种外设都是通过读写设备上的寄存器来进行的。CPU通过这些地址即端口向接口电路中的寄存器发送命令,读取状态和传送数据。外设寄存器也称为 I/O端口 ,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。 二、IO内存 例如,在PC上可以插上一块图形卡,有2MB的存储空间,甚至可能还带有ROM,其中装有可执行代码。 三、IO端口和IO内存的区分及联系 这两者如何区分就涉及到硬件知识,X86体系中,具有两个地址空间:IO空间和内存空间,而RISC指令系统的CPU(如ARM、Po
[单片机]
Linux系统对<font color='red'>IO</font><font color='red'>端口</font>和<font color='red'>IO</font>内存的管理
AVR单片机(ATMEGA16)外部中断程序
#include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int #pragma interrupt_handler exter1:3 void delay(uint x) { uint y,z; for(y=x;y 0;y--) for(z=1111;z 0;z--); } void main(void) { uchar i,temp; MCUCR=0x00; //外部中断低电平触发 //MCUCR=0x08; //外部中断1下降沿触发 GI
[单片机]
<font color='red'>AVR单片机</font>(ATMEGA16)外部中断程序
AVR单片机与CF卡的接口的电路图和编程实例
1.本文所述内容就是通过8051单片机对CF卡进行读写。 2.CF卡的操作方式 CF卡的操作方式与计算机的硬盘操作方式类似,其扇区的寻址也有两种方式:物理寻址(CHS)和逻辑寻址(LBA),物理寻址使用柱面、磁头和扇区号表示一个特定的扇区,起始扇区是0道、0头、1区,接下来是2区等等,逻辑寻址将整个CF卡统一寻址。逻辑块寻址和物理寻址的关系为: LBA地址=(柱面号×磁头数+磁头号)×扇区数+扇区数一1 在实际使用过程中,用LBA地址进行寻址,可以大大简化编程的工作量,避免柱面、磁头和扇区之间的换算和切换,并且可以突破CHS对大容量的无法寻址的限制。 3.CF卡的文件管理 CF卡的文件管理系统和硬盘的文件管理是一样的,他将CF卡的
[单片机]
<font color='red'>AVR单片机</font>与CF卡的接口的电路图和编程实例
AVR单片机IO仿真I2C
#include iom88v.h #define EEP_PORT PORTC //定义是使用PROTC口 #define EEP_DDR DDRC //定义是使用PROTC口 #define SDA 0X10 //定义sda连接的是portd1 #define SCL 0X20 //定义scl连接的是portd0 //#define WP 0X04 //定义wp连接的是portd2 #define EEP_ADD_R 0xa1 //写I2C从器件地址和读方式 a0,a1接地 #define EEP_ADD_W 0xa0 //写I2C从器件地址和写方式 a0,a1接地 void delay(u
[单片机]
AVR单片机实现IC读卡的程序设计
AVR单片机IC卡程序 #include #include #defineucharunsignedchar #defineuintunsignedint //**********定义全局变量*******************// //查表0123456789EFPOFF uchartable[14]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x79,0x71,0x73,0x00}; ucharICCode[4];//定义IC卡复位时读出的4字节代码; ucharICcon te nt[14];//定义IC卡有效信息; uch arM oney[5];//定义
[单片机]
<font color='red'>AVR单片机</font>实现IC读卡的程序设计
回路电阻测试仪操作方法
回路电阻测试仪操作方法 1、按照回路电阻测试仪接线图接线; 2、关机状态下短按测量按键,液晶屏幕亮起,显示电池电量,此时可以点击左右按键查询历史记录电阻值,显示时间10秒。 3、关机或历史记录查询状态下长按测量按键,蜂鸣器长鸣一次,仪器开机,进入开机画面。 4、开机后默认测试状态为100A电流测试1s,短按时间按键和电流按键可以切换时间档位和电流档位,短按测量按键,蜂鸣器长鸣一次,液晶显示“正在测量”,按设定测量电流和测量时间测量一次,测量结束蜂鸣器长鸣一次,液晶显示电阻值。 5、在时间档位为1s时,双击测量按键可以切换手动模式和自动模式,液晶显示“自动”,每次测量前会自动检测8s是否接好线,未接线蜂鸣器短鸣3声提
[测试测量]
VUSB接口电路原理图
VUSB是用普通的通用AVR单片机,配以较高频率的晶振(12MHz或16MHz),模拟产生USB所需信号,从而模拟出标准的USB HID设备(鼠标、键盘、简单通信)的解决方案,构成一个低成本的USB设备。USB共有4根线,2根5V电源,两根差分信号线D+、D-.由于是低速设备,D-必须要有1.5kΩ的上拉电阻。   VUSB接口电路如图所示,单片机的PD1和PD2通过68Ω的限流电阻分别接入标准USB接口的D-、D+.   需要注意的是D+必须接上单片机的外部中断0管脚,在此为了简化连接直接将PD2(INT0)接入作为其中的一根信号线使用。由于USB信号线的电压最大为3.6V,所以在D-和D+上分别并接了一个3.6V的
[单片机]
VUSB接口电路原理图
基于AVR单片机的中频电源测试系统的设计
1 引言   电参数的测量和监控是电力系统的重要组成部分,本文从测试系统的工程学实际出发,完成了对中频电源系统的电压、电流、频率、功率因数、有功功率等参数的测量和实时监控,较好的实现了中频电源测试系统的功能和工程要求。   AVR单片机相对传统的 51系列单片机,具有更高的集成度和更强的功能,与 C语言有很好的兼容性,RISC指令架构使其运行速度可达 1MIPS/MHZ。随着其越来越广泛的应用,必将取代 51系列成为单片机的主流。其主要功能包括看门狗、FLASH程序存储器、 E2PROM、 A/D转换器、定时器、计数器、USART接口等多种功能,这使得本测试系统的硬件实现变得简单,可靠。   2 硬件结构设计与实现  
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved