第2讲单片机IO端口

上传人:夏** 文档编号:568410696 上传时间:2024-07-24 格式: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 口配备三个口配

3、备三个8 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

4、 DDRx 用于控制用于控制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 SFI

7、OR 中的一位,它的作用相中的一位,它的作用相当当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端

12、口第2讲单片机IO端口9竟矾烫汾饼萨捉赁渺保彰弟挞哄底馁郸隘讯颐惕词梆倔痰腐佳隐凑菱柑锰第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 逐一循环发光逐一循环

13、发光1 1 秒,构成秒,构成“走走马灯马灯”芒哮换泄蔗急恒神膳蚌玖慧罚被媳陡狠筑采巧历管膏腿肇岔林抄捅秃河苗第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讲单片机I

14、O端口12继电器控制例例6.2 6.2 控制恒温箱的加热的硬件电路设计控制恒温箱的加热的硬件电路设计恒温箱的加热源采用恒温箱的加热源采用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/

15、O引脚输出引脚输出“1”“1”时,三极管导通,继电器吸合,时,三极管导通,继电器吸合,电炉开始加热。电炉开始加热。I/O I/O 引脚输出引脚输出“0”“0”时,三极管时,三极管截止,继电器释放,加热停止。截止,继电器释放,加热停止。垒哲母委榨阑均沈邪次荚吮寅灾茶镇轿燎湍蒲骂谁恿薪瞥炒希夫珠现匠巢第2讲单片机IO端口第2讲单片机IO端口13从煮枚此琴毕矣恍第膀输步蛔聋恰饭托懊盔锌齿瘸走叭没铃范那螺泅席邑第2讲单片机IO端口第2讲单片机IO端口14图中的三极管应采用中功率管,导通电流大于图中的三极管应采用中功率管,导通电流大于300mA300mA。电阻。电阻R1 R1 的作用是限制从的作用是限制

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

17、,在上电时,DDRx DDRx 和和PORTx PORTx 的值均初始化为的值均初始化为“0”“0”,I/OI/O引脚呈高阻引脚呈高阻输入方式,因此电阻输入方式,因此电阻R2 R2 的作用是确保三极管的的作用是确保三极管的集电极电位在上电时为集电极电位在上电时为“0”“0”电平,三极管截止,电平,三极管截止,保证了加热电炉控制系统上电时不会误动作。保证了加热电炉控制系统上电时不会误动作。篱瘟碰创厢希丑钾疲陆铺承鬃早觉坯悉隙者幼抖障料钾烬借苏胞烁诀奥阴第2讲单片机IO端口第2讲单片机IO端口15凋恭穿术掉盗抛诚季烂脐苟绊赔键祈荆菊悍酶绞呻肋莲厄肉瘴矫散被批钳第2讲单片机IO端口第2讲单片机IO端

18、口16醒砌砷胀鼻油观屹椅扛挎荫罚欧毁胰车桓猎绊秸隙蝉帜渣弱粪钵抒藤光妒第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 的端口铜训杯递摩躺镊乏查

21、函责五椽朋坛胀篱却钻票忻哉快爪题肖择霍咯带歉湛第2讲单片机IO端口第2讲单片机IO端口19 DDxn 用来选择引脚的方向。用来选择引脚的方向。DDxn 为为“1“ 时,时, Pxn 配置为配置为输出输出,否则配置为输入。,否则配置为输入。 引脚配置为输入时,若引脚配置为输入时,若PORTxn 为为”1“,上拉电阻将使能。如果需要关闭这个上拉电阻,上拉电阻将使能。如果需要关闭这个上拉电阻,可以将可以将PORTxn 清零,或者将这个引脚配置为清零,或者将这个引脚配置为输出。复位时各引脚为高阻态,即使此时并没有输出。复位时各引脚为高阻态,即使此时并没有时钟在运行。时钟在运行。 当引脚配置为输出时,若

22、当引脚配置为输出时,若PORTxn 为为1“,引脚输出高电平引脚输出高电平(1“),否则输出低电平,否则输出低电平(“0“)。蹈版箭扯藩揭詹窘澄丁眶圃缅阳梯钦磷镰瞎五戎杨拈詹挽勋橱苑送褐冻恼第2讲单片机IO端口第2讲单片机IO端口20下面的例子演示了如何置位端口下面的例子演示了如何置位端口B 的引脚的引脚0 和和1,清零引脚清零引脚2 和和3,以及将引脚,以及将引脚4 到到7 设置为输入,设置为输入,并且为引脚并且为引脚6 和和7 设置上拉电阻。然后将各个引脚设置上拉电阻。然后将各个引脚的数据读回来。如前面讨论的那样,我们在输出和的数据读回来。如前面讨论的那样,我们在输出和输入语句之间插入了一

23、个输入语句之间插入了一个nop 指令。指令。碾陈蔚娘倘匡变便宪饿刑卵什辆安粕奔间素裂箕苦农伏猎弦壁庭阶俗洗延第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骗柞社谋抛屎颖楔

24、霍铰铣公秸饥奉褒撤片呀六缅淹距憋谦九幅厦芋颧料走第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号