C8051F410单片机的端口配置PPT演示课件

上传人:日度 文档编号:146271942 上传时间:2020-09-29 格式:PPT 页数:29 大小:416KB
返回 下载 相关 举报
C8051F410单片机的端口配置PPT演示课件_第1页
第1页 / 共29页
C8051F410单片机的端口配置PPT演示课件_第2页
第2页 / 共29页
C8051F410单片机的端口配置PPT演示课件_第3页
第3页 / 共29页
C8051F410单片机的端口配置PPT演示课件_第4页
第4页 / 共29页
C8051F410单片机的端口配置PPT演示课件_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《C8051F410单片机的端口配置PPT演示课件》由会员分享,可在线阅读,更多相关《C8051F410单片机的端口配置PPT演示课件(29页珍藏版)》请在金锄头文库上搜索。

1、1,C8051F410单片机的端口配置,2,端口输入/输出,C8051F410单片机共有24个I/O端口可以使用,即P0.0 P2.7 。这些I/O端口可以用作通用I/O,或者模拟输入/输出。 P0.0 P2.7可以被分配给内部数字资源。设计者完全控制数字功能的引脚分配,只受物理I/O引脚数的限制。,3,端口输入/输出,4,端口输入/输出,从图18.1可以看出,C8051F410单片机之所以可以实现内部数字资源的灵活分配,是通过优先级交叉开关译码器实现,即图中的Priority Crossbar Decoder。,5,和普通单片机I/O的不同,那么C8051F410单片机的I/O配置和普通的单

2、片机差别在哪里呢?我们用一个例子说明。 比如要对一个单片机外的脉冲进行计数,普通的单片机会有一个端口作为脉冲的输入端口,假设是P1.0,这个引脚是固定的,但由于某种原因(比如PCB布线),我们希望这个外部脉冲可以接到P2.3引脚,这时普通单片机就做不到了,而C8051F410单片机就可以做到。,6,和普通单片机I/O的不同,此外, C8051F410单片机的I/O端口在使用前都要进行输入/输出的设置。 设置输入方式:模拟输入还是数字输入。 设置输出方式:漏极开路(open-drain)输出还是推挽输出(push-pull)。,7,优先权交叉开关译码器,优先权交叉开关译码器为每个I/O功能分配优

3、先权,从优先权最高的UART0开始。当一个数字资源被选择时,尚未分配的端口引脚中的最低位被分配给该资源(UART0除外,它总是被分配到引脚P0.4和P0.5)。,8,优先权交叉开关译码器,如果一个端口引脚已经被分配,则交叉开关在为下一个被选择的资源分配引脚时将跳过该引脚。此外,交叉开关还将跳过在PnSKIP寄存器中被置1的那些位所对应的引脚。PnSKIP寄存器允许软件跳过那些被用作模拟输入、特殊功能或GPIO的引脚。,9,优先权交叉开关译码器,注意:如果一个端口引脚被一个外设使用而不经过交叉开关,则该引脚在PnSKIP寄存器中的对应位应被置1。,10,优先权交叉开关译码器,这种情况适用于P1.

4、0和/或P1.1(如果外部振荡器电路被使能)、P1.2(如果使用VREF)、P0.6(如果使用外部转换启动信号NVSTR)、P0.0(如果使用IDA0)、P0.1(如果使用IDA1)、以及任何被选择为ADC或比较器输入的引脚。交叉开关跳过那些被选择的引脚(如同将它们已分配),移向下一个未被分配的引脚。,11,优先权交叉开关译码器,12,优先权交叉开关译码器,13,优先权交叉开关译码器,说了这么多,到底什么意思呢?我们一条一条的讲。 假设你要将P0.1和P0.2用作接外部晶振,或者P1.2用于Vref,或者P0.6用作外部cnvstr信号,或者P0.0用作IDA0,或者P0.1用作IDA1,或者

5、某个端口(比如P1.3)用作ADC或者比较器的输入,则应在PnSKIP中将相应的位置1,即让交叉开关跳过这些端口。,14,优先权交叉开关译码器,此外,假如你希望某个端口用作普通的I/O端口(至于干什么,由你自己决定),而不是特殊的功能,比如PCA,SPI等,你也可以将PnSKIP中相应的位置1,这样交叉开关译码器在为内部数字资源(比如SPI,ECI,PCA登)分配端口时,就会跳过这些端口,傻呼呼的认为这些端口已经有某种用途了。,15,端口初始化的步骤,1.选择输入模式,模拟还是数字,在PnMDIN寄存器中设置。 2.选择输出模式,漏极开路(open-drain)还是推挽输出(push-pull

6、),在PnMDOUT寄存器中设置。 3.选择被交叉开关译码器跳过的端口,在PnSKIP寄存器中设置。,16,端口初始化的步骤,4.用XBRn寄存器将引脚分配给要使用的外设。 5.使能交叉开关(XBARE = 1)。,17,端口初始化步骤的注意事项,对于端口初始化的第三步,被交叉开关译码器跳过的端口包括2种情况: 1)将P0.1和P0.2用作接外部晶振,或者P1.2用于Vref,或者P0.6用作外部cnvstr信号,或者P0.0用作IDA0,或者P0.1用作IDA1,或者某个端口(比如P1.3)用作ADC或者比较器的输入。,18,端口初始化步骤的注意事项,2)某个端口使用者有特殊的用处(而不是希

7、望用做PCA,UART,ECI等用途),比如你想将P1.3用来驱动一个LED,此时你就要让交叉开关译码器跳过P1.3,这样CrossBar在为内部数字资源(比如PCA,UART,ECI等)分配端口时,就会跳过P1.3。,19,端口初始化步骤的注意事项,对于端口初始化中的第4步,其实就是把你需要的功能模块激活。比如,你希望PCA的CEX0输出到P0.0,而且交叉开关译码器已经把CEX0分配到P0.0,这时候千万记得将XBR1中的相应位设置好,即激活这个功能。,20,Example 1,说了这么多,还是通过例子来说明吧! 这里我们假设所有的端口都没有被跳过(skip),此时我们可以参考图18.3(

8、ppt第11页)。 第一个例子,我们驱动一个LED。,21,Example 1,22,Example 1,P2MDIN |= 0 x02; /设置P2.1为数字输入 P2MDOUT |= 0 x02; /设置P2.1为推挽输出 P2SKIP |= 0 x02; /CrossBar跳过P2.1,23,Example 1,其实这里P2SKIP |= 0 x02可以不要,因为我们这里只用了一个端口,但最好加上。,24,Example 2,P2.1接一外部的模拟信号,对其进行AD转换。,25,Example 2,P2MDIN /CrossBar跳过P2.1,26,Example 3,设置P2.1为PC

9、A的CEX0的输出,27,Example 3,P2MDIN |= 0 x02; /P2.1为数字输入 P2MDOUT |= 0 x02; /P2.1为推挽输出 P0SKIP = 0 xFF; /跳过P0的所以端口 P1SKIP = 0 xFF; /跳过P1的所以端口 P2SKIP |= 0 x01; /跳过P2.0端口 XBR1 /使能CrossBar,28,Example 4,P0.0用作模拟信号输入,进而进行AD转换。 P0.1用来驱动一个led。 P0.4和P0.5用作UART。 PCA的CEX0输出到P0.7。,29,Example 4,P0SKIP = 0 x4F; XBR0 |= 0 x01; XBR1 |= 0 x41; 端口的输入/输出设置前面已经讲过,这里不再叙述。,

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

当前位置:首页 > 高等教育 > 其它相关文档

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