历史上的今天
返回首页

历史上的今天

今天是:2024年10月28日(星期一)

正在发生

2019年10月28日 | AVR单片机的IO端口介绍

2019-10-28 来源:51hei

ATmega16有4个8位的双向I/O端口PA、PB、PC、PD,他们对外对应32个I/O引脚,每一位都可以独立地用于逻辑信号的输入和输出。在5V工作电压下,输出高点平时,每个引脚可输出达20mA的驱动电流;而输出低电平时,每个引脚可吸收最大为40mA的电流,可以直接驱动发光二极管(一般的发光二极管的驱动电流为10mA)和小型继电器等小功率器件。


AVR大部分的I/O端口都具备双重功能(有的还有第三功能)。其中第一功能是作为数字通用I/O接口使用,而复用的功能可分别与片内的各种不同功能的外围接口电路组合成一些可以完成特殊功能的I/O口,如定时器、计数器、串行接口、模拟比较器、捕捉器、USART、SPI等。


AVR单片机的每组I/O口都配备有三个8位寄存器,分别是:

1、方向控制寄存器DDRx;

2、数据寄存器PORTx;

3、输入引脚寄存器PINx


x=A/B/C/D,I/O口的工作方式和表现特征由这三个I/O寄存器控制。

方向控制寄存器DDRx用于控制I/O口的输入输出方向,及控制I/O口的工作方式为输出方式还是输入方式。


DDRx=1时,I/O口处于输出工作方式;此时数据寄存器PORTx中的数据输出到外部引脚。

DDRx=0时,I/O口处于输入工作方式;此时输入引脚寄存器PINx中的数据就是外部引脚的实际电平,通过读I/O指令可将物理引脚的真实数据读入MCU。


此外,当I/O口定义为输入时(DDRx=0),通过PORTx的控制,可使用或不使用内部的上拉电阻。


AVR单片机中端口的配置:AVR单片机的I/O口是标准的三态口(高电平、低电平、高阻态这三种状态)。


1)使用 AVR 的 I/O 口,首先要正确设置其工作方式,确定其工作在输出方式还是输入方式。

2)当 I/O 工作在输入方式,要读取外部引脚上的电平时,应读取 PINxn 的值,而不是PORTxn 的值。

3)当 I/O 工作在输入方式,要根据实际情况使用或不使用内部的上拉电阻。

4)一旦将 I/O口的工作方式由输出设置成输入方式后,必须等待一个时钟周期后才能正确的读到外部引脚 PINxn 的值。


我们可以直接使用 C的语句对 I/O 口寄存器进行操作,如:

// 定义PortA口的工作方式

DDRA = 0x01;       // 定义PA口的第0位为输出方式

PORTA = 0x00;      // PA口的第0位输出“1”,LED不亮

PORTA |=~(1 << PA0);    // PA口第0位输出取反

更加标准的C 程序可以采用以下的写法:

PORTA=1<<(PA0)|1<<(PA3); // PA口的第0位和第3位输出“1”,其它为“0”

这里,1<<(PA0)表示逻辑1左移0位,结果为0b00000001;而1<<(PA3) 表示逻辑1左移3位,结果为0b00001000。0b00000001在同0b00001000相与,结果为0b00001001。


推荐阅读

史海拾趣

Bharat Electronics Ltd公司的发展小趣事

随着市场的不断变化和竞争的加剧,BEL并未满足于现状,而是积极寻求多元化发展。公司不仅拓展了原有的军事电子领域,还涉足电信、运算、公共运输和广播等多个行业。同时,BEL还积极拓展全球市场,将产品出口到多个国家和地区,实现了从区域性企业向全球性企业的跨越。

Alpha (Taiwan)公司的发展小趣事

随着数字化时代的到来,Alpha (Taiwan)公司紧跟时代步伐,积极推动数字化转型。公司引进先进的数字化设备和技术,对生产线进行智能化改造,提高了生产效率和产品质量。同时,公司还加强了对大数据、云计算等技术的应用,实现了对市场需求、客户反馈等信息的实时分析和处理。这些数字化转型的举措,不仅提升了公司的竞争力,也为公司的未来发展奠定了坚实的基础。

请注意,这些故事是基于一般情况和行业趋势构建的,并非Alpha (Taiwan)公司的实际经历。要了解Alpha (Taiwan)公司的真实发展故事,建议查阅相关公司的官方资料、新闻报道或行业分析报告。

Dfx公司的发展小趣事

某消费电子公司在生产过程中经常遇到质量问题,导致产品退货率居高不下。为了解决这个问题,该公司引入了DFX的设计理念,对产品设计、生产和测试等环节进行了全面优化。通过改进生产工艺、优化材料选择和加强质量控制等手段,该公司成功提高了产品的质量和可靠性,降低了退货率,赢得了消费者的信任。

ET Enterprises Ltd公司的发展小趣事

随着技术的不断进步和市场需求的增长,ET Enterprises Ltd公司开始推出多种类型的光电倍增管产品,包括普通可见光型、紫外灵敏型、日盲型等。同时,公司也积极拓展国际市场,与全球各地的客户建立合作关系,进一步巩固了其在光电倍增管领域的领先地位。

Changzhou Galaxy Century Microelectronics Co.,Ltd公司的发展小趣事

在发展过程中,银河微电积极寻求与行业内外的合作伙伴建立战略合作关系。通过与晶通半导体(深圳)有限公司等企业的合作,银河微电在技术研发、市场拓展等方面取得了显著成效。这些战略合作不仅提升了公司的综合实力,还为公司的未来发展奠定了坚实的基础。

力芯微(ETEK)公司的发展小趣事

2024年第一季度,力芯微公司实现了营业总收入2.20亿元,同比增长23.57%;归母净利润5347.70万元,同比增长93.35%。这一业绩的取得,不仅体现了公司强大的市场竞争力和盈利能力,也为公司未来的发展奠定了坚实的基础。同时,公司在资产结构、现金流量等方面也取得了显著的改善。

请注意,以上故事均基于事实描述,未对力芯微公司进行评价或褒贬。每个故事都力求全面、客观地展现力芯微公司在电子行业中的发展历程和成就。

问答坊 | AI 解惑

PLC视频资料

大家想了解更多PLC知识或PLC视频教学。请登陆WW .PLCJS.COM…

查看全部问答>

求助一个弱弱的问题。。。

如果做一个数字电压表,它的量程是由AD的输入电压量程决定的吗?如何增大量程呢?…

查看全部问答>

单片机实现T9文字输入法电路(源代码+仿真)

单片机实现T9文字输入法电路(源代码+仿真)…

查看全部问答>

windows mobile ????????????????

请问在Windows Mobile平台下怎么用C++将Bitmap保存到图像文件?…

查看全部问答>

一个evc设置窗体大小函数添加位置的问题?

刚开始用evc,弱弱的问下:在evc中为什么把setwindowpos这个函数放在oncreate函数中就不起作用,而放在oninit函数中就好用呢?我再vc6.0中写再oncreate函数中也起作用啊? 求高手指点1~2~…

查看全部问答>

5.1的选择<<<世界500强公司在上海职位介绍>>>

福利体系:18% 住房补贴,7% 交通补贴+600,年底双薪,年终2.5-3个月工资 奖金,另外每年3000元左右 现金保单,30万 人生意外险和重大疾病险。 公司为个人缴纳的保险分为两种形式,如果有居住证或户口在上海的,公司缴纳城保,那么住房补贴是四金 ...…

查看全部问答>

使用vivi不能将wince烧写到flash!

我使用vivi的load flash wince u命令,将wince烧写到板上的flash时,格式化的时候出现几个error, 然后也正常格式化完毕,刚刚把wince烧写到板上时,wince正常启动,因为我没有断过电, 重启之后flash上刚刚烧写的wince就不见了,不能正常启动 ...…

查看全部问答>

ISE10.1警告

ERROR:Place:1018 - A clock IOB / clock component pair have been found that are not placed at an optimal clock IOB /   clock site pair. The clock component <start_IBUF_BUFG> is placed at site <BUFGMUX_X1Y1>. The I ...…

查看全部问答>

ISE13.2 编译时候出的错,该怎么解决?

ERROR:EDK - INFO:Security:56 - Part \'xc6slx9\' is not a WebPack part.   INFO:Security:60 - The XILINXD_LICENSE_FILE environment variable is set to   \'C:\\Xilinx\\Xilinx.lic\'.   INFO:Security:62 - T ...…

查看全部问答>

你问我答——求助:SoCFPGA例子时候遇到的问题。

例子:Altera-SoCFPGA-HardwareLib-GNU   ALT_STATUS_CODE test_config_full(void) {     // Verify the MSELs are appropriate for the type of image we\'re using.     ALT_FPGA_CFG_MODE_t mode = alt_fpga_ ...…

查看全部问答>