AVR单片机I/O口位操作,置位、清位、取反

发布者:不懂之人最新更新时间:2017-11-20 来源: eefocus关键字:AVR单片机  IO口  位操作  置位  清位  取反 手机看文章 扫描二维码
随时随地手机看文章

看到好多新手对AVR单片机位变量使用不明白,现在提供一个I/O口位操作方法供大家学习:

下面是我用的宏定义方式:

#define LED_SET    PORTD |= (1 << PD5)           //位置高
#define LED_CLR    PORTD &= ~(1 << PD5)          //位置低
#define LED_COM    PORTD ^= (1 << PD5)           //位取反
#define LED_R      PIND & (1 << PD5)             //位读取

通过上面的定义就可以在程序中直接操作I/O了。

本帖链接文字,方便回帖时直接复制使用:AVR单片机I/O口位操作,置位、清位、取反。


关键字:AVR单片机  IO口  位操作  置位  清位  取反 引用地址:AVR单片机I/O口位操作,置位、清位、取反

上一篇:AVR 软件操作库函数
下一篇:AVR单片机—(五)、ATMEGA16的USART与PC机串行通信—03

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

建立一个AVR单片机RTOS(8)—占先式内核(完善的服务)
第八篇:占先式内核(完善的服务) 如果将前面所提到的占先式内核和协作式内核组合在一起,很容易就可以得到一个功能较为完善的占先式内核,它的功能有: 1,挂起和恢复任务 2,任务延时 3,信号量(包括共享型和独占型) 另外,在本例中,在各个任务中加入了从串口发送任务状态的功能。 #include avr/io.h #include avr/Interrupt.h #include avr/signal.h unsigned char Stack ; register unsigned char OSRdyTbl asm( r2 ); //任务运行就绪表 register unsigned char OSTaskRun
[单片机]
AVR单片机中的中断嵌套
AVR响应中断后,由硬件自动清零全局中断标志位,此时任何中断都无法响应。直到中断响应程序执行完毕后,全局中断自动打开。因此,若不作特别处理,AVR单片机是无法实现中断嵌套的。 但,如果在中断服务程序中开放全局中断,一旦有中断(包括中断级别较低的,或者是自己本身)申请,AVR将立即响应中断,打断当前正在执行的任何程序(包括正在执行中断服务程序),进入新的中断服务程序,从而实现中断嵌套。此时如有多个中断申请同时存在,MCU响应高优先权的中断。 可见,AVR单片机中,若软件合理设计,即可实现中断嵌套。 和MCS51特别不同的是,AVR中断嵌套不仅可处理优先级更高的中断,也可以处理同优先级甚至优先级较低的中断。这能满足一些特殊的设计,
[单片机]
AVR单片机的主要特性及应用领域解析
AVR单片机是ATMEL公司研发的增强型内置Flash的RISC精简指令集高速8位单片机,设计时吸取了8051及PIC单片机的优点,具备单时钟周期执行一条指令的能力,运行速度高达1Mips/MHz。AVR单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。 AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑),提高了指令执行速度,克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。AVR单片机在软/硬件开销;速度、性能和成本诸多方面取
[单片机]
<font color='red'>AVR单片机</font>的主要特性及应用领域解析
STM8学习笔记----普通IO口模拟串口功能
串口在产品应用中很常见,但是单片机的默认带的串口往往比较少,有时候就会出现串口不够用,所以就想着能不能用普通IO口模拟串口来实现串口的功能。 要模拟串口首先要清楚串口数据传输过程中的原理。 常用的串口格式为 1位起始位,8位数据位,无校验位,1位结束位。起始位为低电平,结束位为高电平。数据0为低电平,数据1为高电平。 所以最简单的串口传输一个字节总共有10个电平变化,每个电平的宽度由波特率决定的。 具体的串口数据分析,可以参考这篇文章:STM8学习笔记---通过示波器分析串口数据。 下面看一个通过波特率如何计算每个位的电平宽度。 发送一个字节,以stm8中9600bit/s的波特率计算的过程为例(1秒钟传输
[单片机]
STM8学习笔记----普通<font color='red'>IO口</font>模拟串口功能
高速AVR实现振动/温度信号采集和存储
  本文所介绍的新型智能充电机系统,解决了动态跟踪电池可接受充电电流曲线的技术关键,形成了独具特色的智能充电机系列,提高了充电质量和效率,充电工人只担任辅助性工作,为充电技术和充电设备闯出了一条崭新的路。   1硬件部分   电池充放电过程中,可进行恒流、恒压、涓流、充放电时间以及终止电压等多种控制规律选择。整个系统分2层,下层是执行层,上层为控制层。   1.1节点层   利用三相桥式全控整流桥技术实现充放电转换。晶闸管的触发由MSP430来完成。拟采用双窄冲触发,以减少触发装置的输出功率。下层的核心就在于对MSP430的控制。MSP430F135是TI 公司新近推出的Flash系列的16位单片机,他具有内置12位A/D
[单片机]
高速AVR实现振动/温度信号采集和存储
AVR单片机程序——电脑键盘(P/S2口协议)——pckey
#include avr/io.h #include avr/interrupt.h #include inttypes.h #include avr/delay.h #include avr/signal.h #include scancodes.h #include 74c922.h #define GETPSDATA() ((PIND PIND7)&0x1) //connect to PD7 #define GETPSCLK() ((PIND PIND2)&0x1) //connetc to PD2 static unsigned char IntNum = 0; //count the in
[单片机]
stmf103 操作
今天学习了位带操作。 在CM3中实现了位带。其中一个就是SRAM区的最低位1MB范围,第二个则是片内外设的最低位1MB范围。这两个区中的地址除了可以像普通的RAM一样使用外,它们都还有自己的“未带别名区”。位带别名区把每个比特位膨胀成一个32位的字。我们可以通过操作为带区进而操作原始的比特区。 Cortex-M3中内存存储器映射: 位带的计算方法: AliasAddr = 0x22000000 + ((A - 0x20000000) * 8 + n)*4 即 公式:位别名地址=0x42000000(外设区位别名基地址) + 外设区位字节地址偏移量× 32 + 操作位号(0~7) × 4 其他类似。
[单片机]
stmf103 <font color='red'>位</font>带<font color='red'>操作</font>
基于AVR的LED显示屏的灰度设计与实现
LED点阵块具有亮度高、发光均匀、可靠性好、拼装方便等优点,能构成各种尺寸的显示屏。目前,LED显示屏已被广泛应用于文字显示并取得了很好的效果,但是大部分仅能显示滚动的文字信息而不能显示图像,并且还存在系统复杂等缺点。本文提出了一种主从式单片机的 LED显示屏 解决方案,该设计方案利用AVR单片机自身的FLASH ROM和RAM,外部无需任何存储电路,电路结构简单。该系统实现了图像的16阶灰度显示,可广泛用于商场、车站等公共场合。 1 AVR单片机简介 AVR单片机是增强型内置FLASH的RISC(ReducedInstruction Set CPU)精简指令集高速8位单片机,硬件采用哈佛(Harward)结构
[单片机]
基于AVR的LED显示屏的灰度设计与实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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