- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2讲单片机IO端口
MEGA16通用I/O 接口基本结构与应用 ATmega16 芯片有PORTA、PORTB、PORTC、PORTD(简称PA、PB、PC、PD)4 组8 位,共32 路通用I/O 接口,分别对应于芯片上32 根I/O 引脚。所有这些I/O 口都是双(有的为3)功能复用的。其中第一功能均作为数字通用I/O 接口使用,而复用功能则分别用于中断、时钟/计数器、USART、I2C 和SPI 串行通信、模拟比较、捕捉等应用。 通用I/O 口的基本结构与特性 图6-1 为通用I/O 口的基本结构示意图。从图中可以看出,每组I/O 口配备三个8 位寄存器,它们分别是方向控制寄存器DDRx,数据寄存器PORTx,和输入引脚寄存器PINx(x=A\B\C\D)。I/O 口的工作方式和表现特征由这3 个I/O 口寄存器控制。 方向控制寄存器DDRx 用于控制I/O 口的输入输出方向,即控制I/O 口的工作方式为输出方式还是输入方式。 当DDRx=1 时,I/O 口处于输出工作方式。此时数据寄存器PORTx 中的数据通过一个推挽电路输出到外部引脚。AVR 的输出采用推挽电路提高了I/O 口的输出能力,当PORTx=1 时,I/O 引脚呈现高电平,同时可提供输出20mA 的电流;而当PORTx=0 时,I/O 引脚呈现低电平,同时可吸纳20mA 电流。因此,AVR 的I/O 在输出方式下提供了比较大的驱动能力,可以直接倾动LED 等小功率外围器件。 当DDRx=0 时,I/O 处于输入工作方式。此时引脚寄存器PINx 中的数据就是外部引脚的实际电平,通过读I/O 指令可将物理引脚的真实数据读入MCU。此外,当I/O 口定义为输入时(DDRx=0),通过PORTx 的控制,可使用或不使用内部的上拉电阻。 表中的PUD 为寄存器SFIOR 中的一位,它的作用相当AVR 全部I/O 口内部上拉电阻的总开关。当PUD=1 时,AVR 所有I/O 内部上拉电阻都不起作用(内部不上拉);而PUD=0 时,各个I/O 口内部上拉电阻取决于DDRXn 的设置。 1) 使用AVR 的I/O 口,首先要正确设置其工作方式,确定其工作在输入方式还是输入方式。 2) 当I/O 工作在输入方式,要读取外部引脚上的电平时,应读取PINxn 的值,而不是PORTxn 的值。 3) 当I/O 工作在输入方式,要根据实际情况使用或不使用内部的上拉电阻。 4) 一旦将I/O 口的工作方式由输出设置成输入方式后,必须等待一个时钟周期后才能正确的读到外部引脚PINxn 的值。 LED 发光二极管的控制 例6.1 简易彩灯控制系统 1) 硬件电路设计: 发光二极管一般为砷化镓半导体二极管,其电路入图6-5所示。当电压U1 大于U2 约1V 以上时,二极管导通发光。当导通电流大于5mA 时,人的眼睛就可以明显地观察到二极管的发光,导通电流越大,亮度越高。一般导通电流不要超过10mA,否则将导致二极管的烧毁或I/O 引脚的烧毁。因此在LED 二极 管电路中要串接一个限流电阻,阻值在100~500Ω之间,调节阻值的大小可以控制发光二极管的发光亮度。导通电流与限流电阻之间的关系由下面的计算公式确定: 式中,Vled 为LED 的导通电压。 由于AVR 的I/O 口输出“0”时,可以吸收最大40mA 的电流,因此采用控制发光二极管 负极的设计比较好。8 个LED 发光二极管控制系统的硬件电路见图6-6。 2) 软件设计 ATmega16 的PA 口工作在输出方式下,8 个引脚分别控制8 个发光二极管。 当I/O 口输出“0”时LED 导通发光,输出“1”时LED 截止熄灭。 下面给出一个简单的控制程序,其完成的功能是8 个LED 逐一循环发光1 秒,构成“走马灯” #include mega16.h #include delay.h void main(void) { char position = 0; // position 为控制位的位置 PORTA=0xFF; // PA 口输出全1,LED 全灭 DDRA=0xFF; // PA 口工作为输出方式 while (1) { PORTA = ~(1position); // if (++position = 8) position = 0; delay_ms(1000); }; } 继电器控制 例6.2 控制恒温箱的加热的硬件电路设计 恒温箱的加热源采用500W 电炉,电炉的工 作电压220v,电流2.3A。选用HG4200 继电器, 开关负载能力为5A/AC220V,继电器吸合线圈 的工作电压5v,功耗0.36W,计算得吸合电流 为0.36/5 = 72mA。设计控制电路如图6-8。I/O 引脚输出“1”时,三极管导通,继电器吸合, 电炉
您可能关注的文档
最近下载
- 湖南省名校联考联合体2025-2026学年高一上学期10月联考语文试卷含答案.pdf VIP
- 部分常用岩土物理力学参数经验数值.doc
- 中南大学网校马克思主义基本原理考试.doc VIP
- 浙江省精诚联盟2025-2026学年高一上学期10月联考生物试卷含答案.docx VIP
- 2025-2026学年广东省广州市第一中学高一上学期10月月考数学试卷含详解.docx VIP
- 抖音爸爸博主“新父职”的数字实践研究_.pdf VIP
- 演示文稿青春期生长发育.ppt VIP
- 2023年中南财经政法大学公共课《马克思主义基本原理概论》期末试卷B(有答案).docx VIP
- 2024-2025学年广东省珠海市文园中学九年级(下)开学物理试卷.docx VIP
- 保健品营销策划.pdf VIP
文档评论(0)