单片机幻灯片—通用io接口基本结构与输出应用

上传人:F****n 文档编号:88146035 上传时间:2019-04-19 格式:PPT 页数:24 大小:538.50KB
返回 下载 相关 举报
单片机幻灯片—通用io接口基本结构与输出应用_第1页
第1页 / 共24页
单片机幻灯片—通用io接口基本结构与输出应用_第2页
第2页 / 共24页
单片机幻灯片—通用io接口基本结构与输出应用_第3页
第3页 / 共24页
单片机幻灯片—通用io接口基本结构与输出应用_第4页
第4页 / 共24页
单片机幻灯片—通用io接口基本结构与输出应用_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《单片机幻灯片—通用io接口基本结构与输出应用》由会员分享,可在线阅读,更多相关《单片机幻灯片—通用io接口基本结构与输出应用(24页珍藏版)》请在金锄头文库上搜索。

1、第六章 通用I/O接口基本结构与输出应用,ATmega16芯片具备 PORTA、PORTB、PORTC、PORTD (简称PA、PB、PC、PD)4组8位,共32路通用I/O接口,分别对应于芯片上32根I/O引脚。 所有这些I/O口都是双(有的为3)功能复用的。其中第一功能均作为数字通用I/O接口使用。,通用I/O口的基本结构与特性,I/O口的基本结构,每组I/O口配备三个8位寄存器: 1、方向控制寄存器DDRx; 2、数据寄存器PORTx; 3、输入引脚寄存器PINx(x=ABCD)。,方向控制寄存器DDRx用于控制I/O口的输入输出方向,即控制I/O口的工作方式为输出方式还是输入方式。 当

2、DDRx=1时,I/O口处于输出工作方式。AVR的输出采用推挽电路提高了I/O口的输出能力。 当PORTx=1时,I/O引脚呈现高电平。 当PORTx=0时,I/O引脚呈现低电平。 AVR的I/O在输出方式下提供了比较大的驱动能力(20mA驱动电流),可以直接驱动LED等小功率外围器件。,当DDRx=0时,I/O处于输入工作方式。此时引脚寄存器PINx中的数据就是外部引脚的实际电平,通过读I/O指令可将物理引脚的真实数据读入MCU。 当I/O口定义为输入时(DDRx=0),通过PORTx的控制,可使用或不使用内部的上拉电阻。,PUD为寄存器SFIOR中的一位,它的作用相当AVR全部I/O口内部

3、上拉电阻的总开关。 当PUD=1时,AVR所有I/O内部上拉电阻都不起作用(全局内部上拉无效); 而PUD=0时,各个I/O口内部上拉电阻取决于DDRXn的设置。,AVR通用I/O端口的主要特点为: 1、双向可独立位控的I/O口 2、Push-Pull大电流驱动 3、可控制的引脚内部上拉电阻 4、DDRx可控的方向寄存器 AVR的IO注意事项: 1、首先要正确设置其工作方式,确定其工作在输出方式还是输入方式。 2、在输入方式时,要读取外部引脚上的电平时,应读取PINxn的值,而不是PORTxn的值。 3、在输入方式时,要根据实际情况使用或不使用内部的上拉电阻。 4、一旦将I/O口的工作方式由输

4、出设置成输入方式后,必须等待一个时钟周期后才能正确的读到外部引脚PINxn的值。,I/O端口寄存器,ATmega16的4个8位的端口都有各自对应的3个I/O端口寄存器,它们占用了I/O空间的12个地址。,通用数字I/O口的设置与编程,AVR汇编指令系统中,直接用于对I/O寄存器的操作指令有以下3类,全部为单周期指令: 1)IN/OUT IN/OUT指令实现了32个通用寄存器与I/O寄存器之间的数据交换,格式为: IN Rd,A ;从I/O寄存器A读数剧到通用寄存器Rd OUT A,Rr ;通用寄存器Rr数据送I/O寄存器A,2)SBI/CBI SBI/CBI指令实现了对I/O寄存器(地址空间为

5、I/O空间的0x00-0x31)中指定位的置1或清0,格式为: SBI A,b ;将I/O寄存器A的第b位置1 CBI A,b ;将I/O寄存器A的第b位清0 3)SBIC/SBIS SBIC/SBIS指令为转移类指令,它根据I/O寄存器(地址空间为I/O空间的0x00-0x31)的指定位的数值实现跳行转移(跳过后面紧接的一条指令,执行后序的第二条指令),格式为: SBIC A,b ;I/O寄存器A的第b位为0时,跳行执行 SBIS A,b ;I/O寄存器A的第b位为1时,跳行执行,通用I/O口的输出应用,通用I/O输出设计要点 1、AVR系统的工作电源为5伏(手持系统往往采用1.5v3v电源

6、),所以I/O的输出电平为5v。当连接的外围器件和电路采用3v、9v、12v、15v等与5v不同的电源时,应考虑输出电平转换电路。 输出电流的驱动能力。 2、AVR的I/O口输出为“1”时,可以提供20mA左右的驱动电流。输出为“0”时,可以吸收20mA左右的灌电流(最大为40mA)。 当连接的外围器件和电路需要大电流驱动或有大电流灌入时,应考虑使用功率驱动电路。 3、输出电平转换的延时。AVR是一款高速单片机,当系统时钟为4M时,执行一条指令的时间为0.25us,这意味着将一个I/O引脚置“1”,再置“0”仅需要0.25us,既输出一个脉宽为0.25us高电平脉冲。,LED发光二极管的控制,

7、LED发光二极管是一种经常使用的外围器件,用于显示系统的工作状态,报警提示等,用大量的发光二极管组成方阵,就是构成一个LED电子显示屏,可以显示汉字和各种图形,如体育场馆中的大型显示屏。下面设计一个带有一排8个发光二极管的简易彩灯控制系统。,硬件电路设计: 发光二极管一般为砷化镓半导体。当电压U1大于U2约1V以上时,二极管导通发光。,当导通电流大于5mA时,人的眼睛就可以明显地观察到二极管的发光。一般导通电流不要超过10mA,否则将导致二极管的烧毁或I/O引脚的烧毁。导通电流与限流电阻之间的关系由下面的计算公式确定:,下面给出一个简单的控制程序,其完成的功能是8个LED逐一循环发光1秒,构成

8、“走马灯”。 #include #include void main(void) char position = 0; / position为控制位的位置 PORTA=0xFF; / PA口输出全1,LED全灭 DDRA=0xFF; / PA口工作为输出方式 while (1) PORTA = (1= 8) position = 0; delayms(1000); ,继电器控制,在工业控制以及许多场合中,嵌入式系统要驱动一些继电器和电磁开关,用于控制马达的开启和关闭,阀门的开启和关闭等。 继电器和电磁开关需要功率驱动,驱动电流往往需要几百毫安,超出了AVR本身I/O口的驱动能力,因此在外围硬件电路中要考虑使用功率驱动电路。,控制恒温箱的加热的硬件电路,恒温箱的加热源采用500W电炉,电炉的工作电压220v,电流2.3A。选用HG4200继电器,开关负载能力为5A/AC220V,继电器吸合线圈的工作电压5v,功耗0.36W,计算得吸合电流为0.36/5 = 72mA。因此,要能使继电器稳定的吸合,驱动电流应该大于80mA。该电流已经超出AVR本身 I/O口的驱动能力,因此外部需要使用功率驱动元件。,LED数码显示器的应用,LED 数码显示器是单片机嵌入式系统中经常使用的显示器件。一个“8”字型的显示模块用“a、b、c、d、e、f、g、p” 8个发光二极管组合而成。,硬件电路设计:,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号