版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MEGA16通用通用I/O 接口基本结构与应用接口基本结构与应用ATmega16 ATmega16 芯片有芯片有PORTAPORTA、PORTBPORTB、PORTCPORTC、PORTDPORTD简称简称PAPA、PBPB、PCPC、PDPD4 4 组组8 8 位,位,共共32 32 路通用路通用I/O I/O 接口,分别对应于芯片接口,分别对应于芯片上上32 32 根根I/O I/O 引脚。所有这些引脚。所有这些I/O I/O 口都是口都是双有的为双有的为3 3功能复用的。其中第一功功能复用的。其中第一功能均作为数字通用能均作为数字通用I/O I/O 接口使用,而复用接口使用,而复用功能则
2、分别用于中断、时钟功能则分别用于中断、时钟/ /计数器、计数器、USARTUSART、I2C I2C 和和SPI SPI 串行通信、模拟比较、串行通信、模拟比较、捕捉等应用。捕捉等应用。通用I/O 口的基本结构与特性 图图6-1 6-1 为通用为通用I/O I/O 口的基本结构示口的基本结构示意图。从图中可以看出,每组意图。从图中可以看出,每组I/O I/O 口配备三个口配备三个8 8 位寄存器,它们分别位寄存器,它们分别是方向控制寄存器是方向控制寄存器DDRxDDRx,数据寄存,数据寄存器器PORTxPORTx,和输入引脚寄存器,和输入引脚寄存器PINxPINxx=ABCDx=ABCD)。)
3、。I/O I/O 口的工作方式口的工作方式和表现特征由这和表现特征由这3 3 个个I/O I/O 口寄存器口寄存器控制。控制。方向控制寄存器方向控制寄存器DDRx DDRx 用于控制用于控制I/O I/O 口的输入输口的输入输出方向,即控制出方向,即控制I/O I/O 口的工作方式为输出方口的工作方式为输出方式还是输入方式。式还是输入方式。当当DDRx=1 DDRx=1 时,时,I/O I/O 口处于输出工作方式。此时口处于输出工作方式。此时数据寄存器数据寄存器PORTx PORTx 中的数据通过一个推挽电中的数据通过一个推挽电路输出到外部引脚。路输出到外部引脚。AVR AVR 的输出采用推挽
4、电的输出采用推挽电路提高了路提高了I/O I/O 口的输出能力,当口的输出能力,当PORTx=1 PORTx=1 时,时,I/O I/O 引脚呈现高电平,同时可提供输出引脚呈现高电平,同时可提供输出20mA 20mA 的电流;而当的电流;而当PORTx=0 PORTx=0 时,时,I/O I/O 引脚呈现低引脚呈现低电平,同时可吸纳电平,同时可吸纳20mA 20mA 电流。因此,电流。因此,AVR AVR 的的I/O I/O 在输出方式下提供了比较大的驱动能力,在输出方式下提供了比较大的驱动能力,可以直接倾动可以直接倾动LED LED 等小功率外围器件。等小功率外围器件。当当DDRx=0 DD
5、Rx=0 时,时,I/O I/O 处于输入工作方式。此处于输入工作方式。此时引脚寄存器时引脚寄存器PINx PINx 中的数据就是外部引中的数据就是外部引脚的实际电平,通过读脚的实际电平,通过读I/O I/O 指令可将物指令可将物理引脚的真实数据读入理引脚的真实数据读入MCUMCU。此外,当。此外,当I/O I/O 口定义为输入时口定义为输入时DDRx=0DDRx=0),通过),通过PORTx PORTx 的控制,可使用或不使用内部的的控制,可使用或不使用内部的上拉电阻。上拉电阻。表中的表中的PUD PUD 为寄存器为寄存器SFIOR SFIOR 中的一位,它的作用相中的一位,它的作用相当当A
6、VR AVR 全部全部I/O I/O 口内部上拉电阻的总开关。当口内部上拉电阻的总开关。当PUD=1 PUD=1 时,时,AVR AVR 所有所有I/O I/O 内部上拉电阻都不起作内部上拉电阻都不起作用内部不上拉);而用内部不上拉);而PUD=0 PUD=0 时,各个时,各个I/O I/O 口内口内部上拉电阻取决于部上拉电阻取决于DDRXn DDRXn 的设置。的设置。1 1) 使用使用AVR AVR 的的I/O I/O 口,首先要正确设置其工口,首先要正确设置其工作方式,确定其工作在输入方式还是输入方作方式,确定其工作在输入方式还是输入方式。式。2 2) 当当I/O I/O 工作在输入方式
7、,要读取外部引脚工作在输入方式,要读取外部引脚上的电平时,应读取上的电平时,应读取PINxn PINxn 的值,而不是的值,而不是PORTxn PORTxn 的值。的值。3 3) 当当I/O I/O 工作在输入方式,要根据实际情况工作在输入方式,要根据实际情况使用或不使用内部的上拉电阻。使用或不使用内部的上拉电阻。4 4) 一旦将一旦将I/O I/O 口的工作方式由输出设置成输口的工作方式由输出设置成输入方式后,必须等待一个时钟周期后才能正入方式后,必须等待一个时钟周期后才能正确的读到外部引脚确的读到外部引脚PINxn PINxn 的值。的值。LED 发光二极管的控制例例6.1 6.1 简易彩
8、灯控制系统简易彩灯控制系统1) 1) 硬件电路设计:硬件电路设计:发光二极管一般为砷化镓半导体二极管,其电路入图发光二极管一般为砷化镓半导体二极管,其电路入图6-56-5所示。当电压所示。当电压U1 U1 大于大于U2 U2 约约1V 1V 以上时,二极管以上时,二极管导通发光。当导通电流大于导通发光。当导通电流大于5mA 5mA 时,人的眼睛就可时,人的眼睛就可以明显地观察到二极管的发光,导通电流越大,亮以明显地观察到二极管的发光,导通电流越大,亮度越高。一般导通电流不要超过度越高。一般导通电流不要超过10mA10mA,否则将导致,否则将导致二极管的烧毁或二极管的烧毁或I/O I/O 引脚的
9、烧毁。因此在引脚的烧毁。因此在LED LED 二极二极管电路中要串接一个限流电阻,阻值在管电路中要串接一个限流电阻,阻值在100100500500之之间,调节阻值的大小可以控制发光二极管的发光亮间,调节阻值的大小可以控制发光二极管的发光亮度。导通电流与限流电阻之间的关系由下面的计算度。导通电流与限流电阻之间的关系由下面的计算公式确定:公式确定:式中,式中,Vled Vled 为为LED LED 的导通电压。的导通电压。由于由于AVR AVR 的的I/O I/O 口输出口输出“0 0时,可以吸收最大时,可以吸收最大40mA 40mA 的电流,因此采用控制发光二极管的电流,因此采用控制发光二极管负
10、极的设计比较好。负极的设计比较好。8 8 个个LED LED 发光二极管控制系发光二极管控制系统的硬件电路见图统的硬件电路见图6-66-6。2) 2) 软件设计软件设计ATmega16 ATmega16 的的PA PA 口工作在输出方式下,口工作在输出方式下,8 8 个个引脚分别控制引脚分别控制8 8 个发光二极管。个发光二极管。当当I/O I/O 口输出口输出“0 0时时LED LED 导通发光,输出导通发光,输出“1 1时时LED LED 截止熄灭。截止熄灭。下面给出一个简单的控制程序,其完成的功下面给出一个简单的控制程序,其完成的功能是能是8 8 个个LED LED 逐一循环发光逐一循环
11、发光1 1 秒,构成秒,构成“走马灯走马灯”#include #include void main(void)char position = 0; / position 为控制位的位置PORTA=0 xFF; / PA 口输出全1,LED 全灭DDRA=0 xFF; / PA 口工作为输出方式while (1)PORTA = (1= 8) position = 0;delay_ms(1000);继电器控制例例6.2 6.2 控制恒温箱的加热的硬件电路设计控制恒温箱的加热的硬件电路设计恒温箱的加热源采用恒温箱的加热源采用500W 500W 电炉,电炉的工电炉,电炉的工作电压作电压220v220v
12、,电流,电流2.3A2.3A。选用。选用HG4200 HG4200 继电器,继电器,开关负载能力为开关负载能力为5A/AC220V5A/AC220V,继电器吸合线圈,继电器吸合线圈的工作电压的工作电压5v5v,功耗,功耗0.36W0.36W,计算得吸合电流,计算得吸合电流为为0.36/5 = 72mA0.36/5 = 72mA。设计控制电路如图。设计控制电路如图6-86-8。I/OI/O引脚输出引脚输出“1 1时,三极管导通,继电器吸合,时,三极管导通,继电器吸合,电炉开始加热。电炉开始加热。I/O I/O 引脚输出引脚输出“0 0时,三极管时,三极管截止,继电器释放,加热停止。截止,继电器释
13、放,加热停止。图中的三极管应采用中功率管,导通电流大于图中的三极管应采用中功率管,导通电流大于300mA300mA。电阻。电阻R1 R1 的作用是限制从的作用是限制从I/O I/O 流出的电流出的电流太大,保护流太大,保护I/O I/O 端口,称为限流电阻。留意:端口,称为限流电阻。留意:三极管集电极的负载继电器吸合线圈在三极管三极管集电极的负载继电器吸合线圈在三极管截止时会产生一个很高的反峰电压,在吸合线截止时会产生一个很高的反峰电压,在吸合线圈两端并接一个二极管圈两端并接一个二极管D D,其用途是释放反峰电,其用途是释放反峰电压,保护三极管和压,保护三极管和I/O I/O 口不会被反峰电压
14、击穿,口不会被反峰电压击穿,提高系统的可靠性。设计中还要考虑系统在上提高系统的可靠性。设计中还要考虑系统在上电时的状态。由于电时的状态。由于AVR AVR 在上电时,在上电时,DDRx DDRx 和和PORTx PORTx 的值均初始化为的值均初始化为“0”0”,I/OI/O引脚呈高阻引脚呈高阻输入方式,因此电阻输入方式,因此电阻R2 R2 的作用是确保三极管的的作用是确保三极管的集电极电位在上电时为集电极电位在上电时为“0 0电平,三极管截止,电平,三极管截止,保证了加热电炉控制系统上电时不会误动作。保证了加热电炉控制系统上电时不会误动作。AVR mega16单片机单片机 I/O端口端口作为
15、通用数字作为通用数字I/O 使用时,所有使用时,所有AVR I/O 端端口都具有真正的读口都具有真正的读- 修正修正- 写功能。这意味着写功能。这意味着用用SBI 或或CBI 指令改变某些管脚的方向指令改变某些管脚的方向( 或者或者是端口电平、制止是端口电平、制止/ 使能上拉电阻使能上拉电阻) 时不会时不会无意地改变其他管脚的方向无意地改变其他管脚的方向( 或者是端口电平、或者是端口电平、制止制止/ 使能上拉电阻使能上拉电阻)。输出缓冲器具有对。输出缓冲器具有对称的驱动能力,可以输出或吸收大电流,直接称的驱动能力,可以输出或吸收大电流,直接驱动驱动LED。所有的端口引脚都具有与电压无。所有的端
16、口引脚都具有与电压无关的上拉电阻。并有保护二极管与关的上拉电阻。并有保护二极管与VCC 和地相和地相连。连。 每个端口都有三个I/O 存储器地址: 数据寄存器 PORTx、 数据方向寄存器 DDRx 和端口输入引脚 PINx。数据寄存器和数据方向寄存器为读/ 写寄存器,而端口输入引脚为只读寄存器。但是需要特别注意的是,对PINx 寄存器某一位写入逻辑1“ 将造成数据寄存器相应位的数据发生0“ 与“1“ 的交替变化。当寄存器MCUCR 的上拉禁止位PUD 置位时所有端口引脚的上拉电阻都被禁止。作为通用数字I/O 的端口 DDxn 用来选择引脚的方向。用来选择引脚的方向。DDxn 为为“1“ 时,时, Pxn 配置为输出,否则配置为输入。配置为输出,否则配置为输入。 引脚配置为输入时,若引脚配置为输入时,若PORTxn 为为1“,上拉电阻将使能。如果需要关闭这个上拉电阻,上拉电阻将使能。如果需要关闭这个上拉电阻,可以将可以将PORTxn 清零,或者将这个引脚配置为清零,或者将这个引脚配置为输出。复位时各引脚为高阻态,即使此时并没有输出。复位时各引脚为高阻态,即使此时并没有时钟在运行。时钟在运行。 当引脚配置为输出时,若当引脚配置为输出时,若PORTxn 为为1“,引脚输出高电平引脚输出高电平(1“),否则输出低电平,否则输出低电平(“0“)。下面的例子演示了如何置位端口下面的例子
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- c 棋牌室系统课程设计
- 酒店人偶活动方案策划(3篇)
- 集体游玩策划活动方案(3篇)
- 顺德论坛活动策划方案(3篇)
- 船舶浮台专用电缆防水处理技术应用可行性研究报告
- 燃料储配站建设项目可行性研究报告
- 智慧产业可行性研究报告
- 2025 日本根雕艺术的选材与创作技巧课件
- 2026年基层政权建设服务中心招聘考试笔试试题(含答案)
- 2026年中国高帧率电竞显示器行业市场规模及投资前景预测分析报告
- 安全和职业健康、环境管理体系培训资料课件
- 农药管理制度流程目录及文本
- 无线电基础(第五版)中职PPT完整全套教学课件
- 公司章程范本免费
- 函数的凹凸性
- 科学计算与数学建模课件
- 西周王朝的档案和档案工作
- 热处理工艺卡片
- 部编四年级语文下册 全册教案 (表格式)
- 《土地宝忏》2019版定稿
- 篆香-PPT精品课件
评论
0/150
提交评论