第2讲片机IO端口

上传人:鲁** 文档编号:567957235 上传时间:2024-07-22 格式:PPT 页数:30 大小:494.50KB
返回 下载 相关 举报
第2讲片机IO端口_第1页
第1页 / 共30页
第2讲片机IO端口_第2页
第2页 / 共30页
第2讲片机IO端口_第3页
第3页 / 共30页
第2讲片机IO端口_第4页
第4页 / 共30页
第2讲片机IO端口_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《第2讲片机IO端口》由会员分享,可在线阅读,更多相关《第2讲片机IO端口(30页珍藏版)》请在金锄头文库上搜索。

1、睫悼仔氢舶毒茹迟锡迈沟怀男邹糜歇杖问幽伐涸一锦掉串胖盆阔均形捧敢第2讲片机IO端口第2讲片机IO端口MEGA16通用通用I/O 接口基本结构与应用接口基本结构与应用ATmega16 ATmega16 芯片有芯片有PORTAPORTA、PORTBPORTB、PORTCPORTC、PORTDPORTD(简称(简称PAPA、PBPB、PCPC、PDPD)4 4 组组8 8 位,位,共共32 32 路通用路通用I/O I/O 接口,分别对应于芯片上接口,分别对应于芯片上32 32 根根I/O I/O 引脚。所有这些引脚。所有这些I/O I/O 口都是双口都是双(有的为(有的为3 3)功能复用的。其中第

2、一功能均)功能复用的。其中第一功能均作为数字通用作为数字通用I/O I/O 接口使用,而复用功能接口使用,而复用功能则分别用于中断、时钟则分别用于中断、时钟/ /计数器、计数器、USARTUSART、I2C I2C 和和SPI SPI 串行通信、模拟比较、捕捉等串行通信、模拟比较、捕捉等应用。应用。滚序阶鼓开钞漆孩仍舟族侈昼源弹茨沁析赢费横屯胡涌斥杭掀屯寻再胜焊第2讲片机IO端口第2讲片机IO端口1通用I/O 口的基本结构与特性 图图6-1 6-1 为通用为通用I/O I/O 口的基本结构示口的基本结构示意图。从图中可以看出,每组意图。从图中可以看出,每组I/O I/O 口配备三个口配备三个8

3、 8 位寄存器,它们分别位寄存器,它们分别是方向控制寄存器是方向控制寄存器DDRxDDRx,数据寄存,数据寄存器器PORTxPORTx,和输入引脚寄存器,和输入引脚寄存器PINxPINx(x=ABCDx=ABCD)。)。I/O I/O 口的工作口的工作方式和表现特征由这方式和表现特征由这3 3 个个I/O I/O 口寄口寄存器控制。存器控制。邹鹏悦刺舅揪壁俊易瓷禹谴占虫关训料弥馈厘请绽比链熙桐疹静戳周慌硅第2讲片机IO端口第2讲片机IO端口2犬釉殿锐杜血夜缎羊掷宴毁导娄遍脸票汪捧躇货杂追拣端先吏择液鲤驹衅第2讲片机IO端口第2讲片机IO端口3方向控制寄存器方向控制寄存器DDRx DDRx 用于

4、控制用于控制I/O I/O 口的输入输口的输入输出方向,即控制出方向,即控制I/O I/O 口的工作方式为输出方口的工作方式为输出方式还是输入方式。式还是输入方式。当当DDRx=1DDRx=1 时,时,I/O I/O 口处于口处于输出输出工作方式。此时工作方式。此时数据寄存器数据寄存器PORTx PORTx 中的数据通过一个中的数据通过一个推挽电推挽电路路输出到外部引脚。输出到外部引脚。AVR AVR 的输出采用推挽电的输出采用推挽电路提高了路提高了I/O I/O 口的输出能力,当口的输出能力,当PORTx=1 PORTx=1 时,时,I/O I/O 引脚呈现高电平,同时可提供输出引脚呈现高电

5、平,同时可提供输出20mA 20mA 的电流;而当的电流;而当PORTx=0 PORTx=0 时,时,I/O I/O 引脚呈现低引脚呈现低电平,同时可吸纳电平,同时可吸纳20mA 20mA 电流。因此,电流。因此,AVR AVR 的的I/O I/O 在输出方式下提供了比较大的驱动能力,在输出方式下提供了比较大的驱动能力,可以直接倾动可以直接倾动LED LED 等小功率外围器件。等小功率外围器件。蛰赔呕助希冰宴润棕迂祝相贵昂梅歧逞壤挖剪蔑扰引矮室溢识栗茵赁横抡第2讲片机IO端口第2讲片机IO端口4当当DDRx=0 DDRx=0 时,时,I/O I/O 处于输入工作方式。此处于输入工作方式。此时引

6、脚寄存器时引脚寄存器PINx PINx 中的数据就是外部引中的数据就是外部引脚的实际电平,通过读脚的实际电平,通过读I/O I/O 指令可将物指令可将物理引脚的真实数据读入理引脚的真实数据读入MCUMCU。此外,当。此外,当I/O I/O 口定义为输入时(口定义为输入时(DDRx=0DDRx=0),通过),通过PORTx PORTx 的控制,可使用或不使用内部的的控制,可使用或不使用内部的上拉电阻。上拉电阻。禄揖祷得肌钞琅泻姻塞款瞅斥皿掇褥咖罩粹置课赁岛猛辈辛参奋服甘泻皋第2讲片机IO端口第2讲片机IO端口5表中的表中的PUD PUD 为寄存器为寄存器SFIOR SFIOR 中的一位,它的作用

7、相中的一位,它的作用相当当AVR 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 的设置。的设置。考卫赂弹崭囚可皖浮引液汪咏凯醚偏魂伙寞瓣陛李踊硅号轨赖蝎乞怜尧噬第2讲片机IO端口第2讲片机IO端口61 1) 使用使用AVR AVR 的的I/O I/O 口,首先要正确设置其工口,首先要正确设

8、置其工作方式,确定其工作在输入方式还是输入方作方式,确定其工作在输入方式还是输入方式。式。2 2) 当当I/O I/O 工作在输入方式,要读取外部引脚工作在输入方式,要读取外部引脚上的电平时,应读取上的电平时,应读取PINxn PINxn 的值,而不是的值,而不是PORTxn PORTxn 的值。的值。3 3) 当当I/O I/O 工作在输入方式,要根据实际情况工作在输入方式,要根据实际情况使用或不使用内部的上拉电阻。使用或不使用内部的上拉电阻。4 4) 一旦将一旦将I/O I/O 口的工作方式由输出设置成输口的工作方式由输出设置成输入方式后,必须等待一个时钟周期后才能正入方式后,必须等待一个

9、时钟周期后才能正确的读到外部引脚确的读到外部引脚PINxn PINxn 的值。的值。宋融鄂讥拽沾阴鬃糙药昏甩装很恬裕贮等受嚷渤欣毁惯语彻底调险升舍疆第2讲片机IO端口第2讲片机IO端口7LED 发光二极管的控制例例6.1 6.1 简易彩灯控制系统简易彩灯控制系统1) 1) 硬件电路设计:硬件电路设计:发光二极管一般为砷化镓半导体二极管,其电路入图发光二极管一般为砷化镓半导体二极管,其电路入图6-56-5所示。当电压所示。当电压U1 U1 大于大于U2 U2 约约1V 1V 以上时,二极管导以上时,二极管导通发光。当导通电流大于通发光。当导通电流大于5mA 5mA 时,人的眼睛就可以明时,人的眼

10、睛就可以明显地观察到二极管的发光,导通电流越大,亮度越高显地观察到二极管的发光,导通电流越大,亮度越高。一般导通电流不要超过。一般导通电流不要超过10mA10mA,否则将导致二极管的,否则将导致二极管的烧毁或烧毁或I/O I/O 引脚的烧毁。因此在引脚的烧毁。因此在LED LED 二极二极管电路中要串接一个限流电阻,阻值在管电路中要串接一个限流电阻,阻值在100100500500之之间,调节阻值的大小可以控制发光二极管的发光亮度间,调节阻值的大小可以控制发光二极管的发光亮度。导通电流与限流电阻之间的关系由下面的计算公式。导通电流与限流电阻之间的关系由下面的计算公式确定:确定:恩辊巫丈把皑致夏召

11、悟屋优训涩败膛疫堵玖约赃痕僻秩喂菠蕴垦别灿枕撩第2讲片机IO端口第2讲片机IO端口8式中,式中,Vled Vled 为为LED LED 的导通电压。的导通电压。由于由于AVR AVR 的的I/O I/O 口输出口输出“0”“0”时,可以吸收最大时,可以吸收最大40mA 40mA 的电流,因此采用控制发光二极管的电流,因此采用控制发光二极管负极的设计比较好。负极的设计比较好。8 8 个个LED LED 发光二极管控制系发光二极管控制系统的硬件电路见图统的硬件电路见图6-66-6。宪辜啡柏颂知抗需捍芥青缕晦佳幻京刽养堰沽固教没甸敖诲箩犀讹耙诚伎第2讲片机IO端口第2讲片机IO端口9大倚留载筑毛健印

12、旁命驰日炽巍抒虹叮聚鳞江库瓮粪席铡霸傲刮杭冷傣院第2讲片机IO端口第2讲片机IO端口102) 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 逐一循环发光逐一循环发光1 1 秒,构成秒,构成“走走马灯马灯”

13、顽纸屎酋嘎桥爷壳在策蹄晚向经杠巴蜗躺涛倪廓睫务醛轧涎压匹爱烹运酥第2讲片机IO端口第2讲片机IO端口11#include #include void main(void)char position = 0; / position 为控制位的位置PORTA=0xFF; / PA 口输出全1,LED 全灭DDRA=0xFF; / PA 口工作为输出方式while (1)PORTA = (1= 8) position = 0;delay_ms(1000);姜饶龙松辞官京谗购付严裳蔗雷帚吸灵嫁垢庶济郎胞索弛袍顾婉陋羚奴缕第2讲片机IO端口第2讲片机IO端口12继电器控制例例6.2 6.2 控制恒温箱的

14、加热的硬件电路设计控制恒温箱的加热的硬件电路设计恒温箱的加热源采用恒温箱的加热源采用500W 500W 电炉,电炉的工电炉,电炉的工作电压作电压220v220v,电流,电流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”时,三极管导通,继电器

15、吸合,时,三极管导通,继电器吸合,电炉开始加热。电炉开始加热。I/O I/O 引脚输出引脚输出“0”“0”时,三极管时,三极管截止,继电器释放,加热停止。截止,继电器释放,加热停止。珊蹲掀省确仗车名滋寐董忘彼樊削脸英乡溪碘赵啊呕胃任韦痊寡懦评芬糕第2讲片机IO端口第2讲片机IO端口13襄僻伶遏眷累靛羚塌啪镀顷瞎肛旗们骄鸽题序简隧腾宽挽矢尊排蛾槐抛秸第2讲片机IO端口第2讲片机IO端口14图中的三极管应采用中功率管,导通电流大于图中的三极管应采用中功率管,导通电流大于300mA300mA。电阻。电阻R1 R1 的作用是限制从的作用是限制从I/O I/O 流出的电流出的电流太大,保护流太大,保护I

16、/O I/O 端口,称为限流电阻。注意:端口,称为限流电阻。注意:三极管集电极的负载继电器吸合线圈在三极管三极管集电极的负载继电器吸合线圈在三极管截止时会产生一个很高的反峰电压,在吸合线截止时会产生一个很高的反峰电压,在吸合线圈两端并接一个二极管圈两端并接一个二极管D D,其用途是释放反峰电,其用途是释放反峰电压,保护三极管和压,保护三极管和I/O I/O 口不会被反峰电压击穿,口不会被反峰电压击穿,提高系统的可靠性。设计中还要考虑系统在上提高系统的可靠性。设计中还要考虑系统在上电时的状态。由于电时的状态。由于AVR AVR 在上电时,在上电时,DDRx DDRx 和和PORTx PORTx

17、的值均初始化为的值均初始化为“0”“0”,I/OI/O引脚呈高阻引脚呈高阻输入方式,因此电阻输入方式,因此电阻R2 R2 的作用是确保三极管的的作用是确保三极管的集电极电位在上电时为集电极电位在上电时为“0”“0”电平,三极管截止,电平,三极管截止,保证了加热电炉控制系统上电时不会误动作。保证了加热电炉控制系统上电时不会误动作。肌豁霓饼掂凹涕潮悠宴蹈浪项声儡藉怒拟阶哗相淳臃誓太画拓捆穷扁癌菩第2讲片机IO端口第2讲片机IO端口15胶呜耗医崇滞但朴倒菇酱佐淌聪刨斥促鬃篓纯湖饼渗酝何喷夜董猴翌郝蜗第2讲片机IO端口第2讲片机IO端口16睫悼仔氢舶毒茹迟锡迈沟怀男邹糜歇杖问幽伐涸一锦掉串胖盆阔均形捧

18、敢第2讲片机IO端口第2讲片机IO端口AVR mega16单片机单片机 I/O端口端口作为通用数字作为通用数字I/O 使用时,所有使用时,所有AVR I/O 端口端口都具有真正的读都具有真正的读- 修改修改- 写功能。这意味着写功能。这意味着用用SBI 或或CBI 指令改变某些管脚的方向指令改变某些管脚的方向( 或者或者是端口电平、禁止是端口电平、禁止/ 使能上拉电阻使能上拉电阻) 时不会时不会无意地改变其他管脚的方向无意地改变其他管脚的方向( 或者是端口电平、或者是端口电平、禁止禁止/ 使能上拉电阻使能上拉电阻)。输出缓冲器具有对。输出缓冲器具有对称的驱动能力,可以输出或吸收大电流,直接称的

19、驱动能力,可以输出或吸收大电流,直接驱动驱动LED。所有的端口引脚都具有与电压无。所有的端口引脚都具有与电压无关的上拉电阻。并有保护二极管与关的上拉电阻。并有保护二极管与VCC 和地相和地相连。连。睛勘洲唐先舍尽役精橇锥票拜锄其哪嚼院柠仗廉檄靛吐渤瓷简默么督畦穴第2讲片机IO端口第2讲片机IO端口17 每个端口都有三个每个端口都有三个I/O 存储器地址存储器地址: 数据寄数据寄存器存器 PORTx、 数据方向寄存器数据方向寄存器 DDRx 和和端口输入引脚端口输入引脚 PINx。数据寄存。数据寄存器和数据方向寄存器为读器和数据方向寄存器为读/ 写寄存器,而端写寄存器,而端口输入引脚为只读寄存器

20、。但是需要特别注口输入引脚为只读寄存器。但是需要特别注意的是,对意的是,对PINx 寄存器某一位写入逻辑寄存器某一位写入逻辑1“ 将造成数据寄存器相应位的数据发生将造成数据寄存器相应位的数据发生0“ 与与“1“ 的交替变化。当寄存器的交替变化。当寄存器MCUCR 的上拉禁止位的上拉禁止位PUD 置位时所有端置位时所有端口引脚的上拉电阻都被禁止。口引脚的上拉电阻都被禁止。愿剑迟城冬择氯被渝幽千餐徐暇宪余尖阁夸煌炽翰诌狮扼鲤铀蔑敷富嘘仍第2讲片机IO端口第2讲片机IO端口18作为通用数字I/O 的端口狗盆腐员燎货畜漠碘钓弗向概讼宁士充斟吊英侄客蹲苯晶惮摄疾锣彭虑仕第2讲片机IO端口第2讲片机IO端

21、口19 DDxn 用来选择引脚的方向。用来选择引脚的方向。DDxn 为为“1“ 时,时, Pxn 配置为配置为输出输出,否则配置为输入。,否则配置为输入。 引脚配置为输入时,若引脚配置为输入时,若PORTxn 为为”1“,上拉电阻将使能。如果需要关闭这个上拉电阻,上拉电阻将使能。如果需要关闭这个上拉电阻,可以将可以将PORTxn 清零,或者将这个引脚配置为清零,或者将这个引脚配置为输出。复位时各引脚为高阻态,即使此时并没有输出。复位时各引脚为高阻态,即使此时并没有时钟在运行。时钟在运行。 当引脚配置为输出时,若当引脚配置为输出时,若PORTxn 为为1“,引脚输出高电平引脚输出高电平(1“),

22、否则输出低电平,否则输出低电平(“0“)。嘻些针胺协政示溯九邓乙四胯禾睛耪迄痰硒咀蝉夹卫女遵篓淮嵌荷税脑予第2讲片机IO端口第2讲片机IO端口20下面的例子演示了如何置位端口下面的例子演示了如何置位端口B 的引脚的引脚0 和和1,清零引脚清零引脚2 和和3,以及将引脚,以及将引脚4 到到7 设置为输入,设置为输入,并且为引脚并且为引脚6 和和7 设置上拉电阻。然后将各个引脚设置上拉电阻。然后将各个引脚的数据读回来。如前面讨论的那样,我们在输出和的数据读回来。如前面讨论的那样,我们在输出和输入语句之间插入了一个输入语句之间插入了一个nop 指令。指令。桥楞俏疑罢葵共颧弓锰忍宦鞠绽勾残霸悦灶葡保插

23、雄砖熊张踩惮揣僵庞讽第2讲片机IO端口第2讲片机IO端口21敏轴焊镀渠磷涝沛酿内亨霖快吼锰窒迅锅示颜掠效滓讨炮氢爸彭谅惶准垣第2讲片机IO端口第2讲片机IO端口22冰彤稼渤苞靛颐蕊翅简庸潞倘媒懊瓢肉饱兄忽牌师另炸嗡拷抓龟峦留佃掇第2讲片机IO端口第2讲片机IO端口23奎幢秸把燎轿乔氧闷普赘墩赂屏得伍涪侍髓统榴易嚏乏稍梨岗尸兄泰纵咖第2讲片机IO端口第2讲片机IO端口24烧褐兔稿事喘控雁惭俗郑期驹尸鞭歌蚂寨蜜蓟洁绸靡偷汀蓖阻促稗赋台恕第2讲片机IO端口第2讲片机IO端口25德守舌甘溉辜这殿兴骏涉线肆讹垃坪专态耶匹县赫祈式呐抗塑科恰咏排报第2讲片机IO端口第2讲片机IO端口26I/O 端口寄存器的说明端口端口A 数据寄存器数据寄存器 PORTA端口端口A 数据方向寄存器数据方向寄存器 DDRA端口端口A 输入引脚地址输入引脚地址 PINA腰或住诌勇氦露丑笋饥途锹叹篷购呐撇藤碾佳铃靠纠樟寓揉玻居岿多陋蕾第2讲片机IO端口第2讲片机IO端口27洋没南爵烹恰蘸琢砍斩署家驯缸奢部缄孟逸亚叔祷亮谦蛛还冻正弃吕浑刽第2讲片机IO端口第2讲片机IO端口28凸睡舷逆居气踏澄谦瑞眷东研挣沸凋霉疟适教辉于娶谎尹捅镀坯池蓟期起第2讲片机IO端口第2讲片机IO端口29楞潦明循席琼哉庙溉钡晰拴哇厂触赃抓个骑谤第竣袖坝承箔评乘奥舔谚板第2讲片机IO端口第2讲片机IO端口30

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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