1.在头文件“sfr_defs.h”中定义的宏“_BV(bit)”也常用来实现位操作。
其中,宏“_BV(bit)”的定义为:
#define _BV(bit) (1<<(bit))
例子:
DDRD = _BV(PD0) | _BV(PD1)
//在相应器件的ioxxxxxxx.h中PD0定义为0,PD1定义为1
所以,DDRD = _BV(PD0) | _BV(PD1) 等价于DDRD=0x03.
2.ATmega128每个I/O端口都有3个寄存器来控制,分别是:
方向寄存器DDRx、数据寄存器PORTx和输入引脚寄存器PINx。
其中,方向寄存器DDRx和数据寄存器PORTx是可读可写寄存器,而PINx为只读寄存器。
例子:
在进行写操作的时候,方向寄存器DDRB用于指定PB口是作为输入口还是输出口用;
在进行读操作的时候,从方向寄存器DDRB读出来的是端口的方向设定值。
DDRA = 0xFF;//初始化端口A为输出模式。
#define LED0 0
#define LED1 1
DDRC = 0xFF;
PORTC = 0xFF;
...
PORTC &= ~ _BV (LED0);// 输出低电平
PORTC | = _BV (LED1);//输出高电平
...
PORTC &= ~ _BV (LED1);// 输出低电平
PORTC | = _BV (LED0);//输出高电平
SPDR :SPI数据寄存器
SPSR :SPI状态寄存器
SPCR :SPI控制寄存器
关键字:AVR单片机 IO寄存器 端口操作
引用地址:
AVR单片机的I/O寄存器和端口操作
推荐阅读最新更新时间:2024-03-16 15:00
基于AVR单片机与DS18B20的实时温度采集与分析系统
简介:文中所讲的实时温度采集与分析系统是一种基于AVR系列单片机ATmega16与温度传感器DS18B20相结合的实时温度采集与分析系统。 文中所讲的实时温度采集与分析系统是一种基于AVR系列单片机ATmega16与温度传感器DS18B20相结合的实时温度采集与分析系统。随着计算机技术尤其是单片微型机技术的发展,温度对人们的生活与工作影响很大,所以要实时采集温度并且对其进行分析。本系统介绍了以ATmega16单片机为核心,以及自动化控制装置GTJJ4-10A固态继电器和数字温度传感器DS18B20,报警与指示电路等,在分析中基于MFC的软件处理。其中包括温度曲线的绘制,以及温度值的保存,显示历史记录等。在经过烧水温度的测试,该
[单片机]
AVR单片机与串行时钟器件DS3231的应用设计
1引言 由单片机构成的测控系统或智能显示屏经常需要用到实时日历或时钟信号。为节省CPU资源,本文介绍了串行时钟器件DS3231的应用及其与AVR单片机ATmega8的接口,该系统具有抗干扰能力强,计时准确且不随季节变化产生误差的特点。 2 DS3231的结构及工作原理 DS3231是低成本、高精度I2C实时时钟(RTC)器件,具有集成的温度补偿晶体振荡器(TCXO)。该器件包含电池输入端,断开主电源时仍可保持精确计时。集成的晶体振荡器可提高器件的长期精确度。DS3231的寄存器能保存秒、分、时、星期、日期、月、年和闹钟设置等信息。少于31天的月份,可自动调整月末日期,包括闰年补偿。时钟的工作格式为24小时或带AM/P
[单片机]
AVR单片机用哪个编译器好
我现在用AVR STUDIO+WINavr,刚开始还行,但慢慢发现当你在程序中想看一个函数或者变量的定义时,没办法跳转过去,只能自己找到相应的定义(至少我不知道怎么跳转),这个很不方便,我用AVR STUDIO+WINavr是因为能和protues一起单步调试仿真,但无法跳转很不舒服,另外我没有仿真器,其实连个AVR的片子都没有,别说买个,暂时没这打算,我买的有51的板子,ARM9的 板子,这几天需要了解AVR但不打算买什么硬件,在这种情况下,用哪个编译软件好要,最好能和protues一起仿真。 IAR效率最高,但收费。atmel studio是atmel自己的编译器,基于gcc,免费。 不二选择:AVR Studio 4.1
[单片机]
LCD2004AVR单片机驱动源程序
/*======================================================= 20x4字符液晶主程序,编译软件(I CC AVR_6.31) CPU内部 晶振 8M 数据线B0~B7接PORTB, E=D7 RW=D6 RS=D5 ========================================================= 接线图如下: _______________ ______________ | --1|GND | | --2|+5V | | --3|V0 |
[单片机]
小小的水果竟能驱动AVR单片机?
能工作的水果供电的AVR单片机的配置如下: 硬件:Mega88,32KHz外部晶振,2倍负压电路由AVR的PWM驱动,LCD是静态的笔端式LCD,用Mega88的IO口直接驱动,没有分时扫描。 软件:在Timer0中断服务程序中每2秒钟刷新LCD显示,平时AVR工作在空闲模式。Timer1提供PWM波形驱动2倍负压电路。 测量数据: 电路工作时水果电池电压2.5V,整机电流30uA,2倍负电压提供电压大约-3V。 本来觉得水果电池驱动LCD只是展示会上的噱头,三片柠檬的电力,应该足够带动LCD的。不过最初当我用Mega8L做了一个电路却不能用水果电池驱动时,我下决心亲自实践一番,看看水果供电的AVR单片机能否成功。这样
[单片机]
基于LabVIEW和AVR单片机的镇痛仪系统实现
疼痛治疗一向是临床医学深感棘手的问题之一,在疼痛治疗领域,穴位刺激镇痛一直备受推崇,即通过对穴位施加低频的脉冲电压实现对神经系统的刺激,使其释放阿片肽,达到减轻疼痛的目的。上世纪80年代以来,电子技术在疾病诊疗领域的取得广泛应用,穴位刺激镇痛治疗仪器成为其中的一个研究热点,韩式仪是其中的一个典型代表。随着电子技术便携化和智能化的发展,利用当前最新技术革新产品,研发新型镇痛医疗器械势在必行。 针对镇痛仪电路研发要求,以及人体对低电频生理反映的特征,设计了基于LabVIEW和AVR单片机的一个精度高、稳定可靠、抗干扰能力强、功耗低、可扩展性强的医疗器械镇痛仪。 1 系统总体介绍 本系统包括上位机模块、通信模块和下位机模块,其
[单片机]
AVR单片机8位数据产生随机数
源程序:SLAVR737.ASM 用AVR 单片机 8位数据产生随机数,由PORTA 口及PORTC 口输出随机数,在8X8 LED上显示,硬件接线电路见“7.3.8按钮猜数”。随机数的种子由程序设定(也可外接开关设定),启动种子后,由移位寄存器以互斥的异或逻辑组合返回循环产生。 .include 8515def.inc rjmp RESET .def temp =r16 ;暂存器 .def temp1 =r17 ;暂存器1 .def udata =r21 ;存随机数送A口 .def ddata =r22 ;存随机数送C口
[单片机]
基于单片机的卷取机张力控制系统设计
张力控制,通俗地讲,就是要控制卷取物体时保持物体相互拉长或者绷紧的力。张力应用于最广泛的造纸、纤维、塑料薄膜、电线、印刷品、磁带等轻工业中,带材或线材的收放卷张力对产品的质量起着至关重要的作用。在收卷和放卷的过程中,为保证生产的质量及效率,保持恒定的张力是很重要的。 1 张力控制系统的简介及基本原理 在冶金、造纸、纺织等行业中,在加工过程中或者是加工完成之后,最后的一道工序一般就是将加工物卷绕成筒状。在这一过程中,卷绕的好坏将是决定产品质量的关键,卷的太紧,容易使织物变形,拉断,卷的太松又容易使卷取不紧凑,不利于搬运和运输,因而为了达到使卷绕紧凑,保证产品的质量,都要求在卷绕过程中,在织物上建立一定的张力,并保持张
[单片机]