新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > C8051F320-并行端口与交*开关

C8051F320-并行端口与交*开关

作者:时间:2012-08-16来源:网络收藏

具有25个I/O引脚,分别为P0、P1、P2、P3.0。为了能根据需要使用内部数字系统资源,必须利用数字将所用的资源映射到具体引脚上。分析如下:

如果没有用到任何资源,那么所有25个引脚都可以作为正常的并行引脚使用,若用到数字资源,必须牺牲一部分并行口,将引脚提供给内部资源使用。假设有A、B、C三种资源,所需要的引脚数分别为2、1、3。

1、如果ABC都不用,那么可以正常使用P0、P1、P2以及P3.0

2、如果使用A资源,那么将会占用P0.0、P0.1,其余引脚照样可以作为并行口用,但是被占用的口无法控制

3、如果同时使用ABC资源,则需要6个脚,故P0口只剩下P0.6、P0.7可用,其他口不受影响

以上只是大概意思,不精确。以下为详细笔记。

一、寄存器

P0口有P0MDIN、P0MDOUT、P0SKIP三个控制寄存器,同理P1、P2都有,P3没有SKIP

PxMDIN:设置对应是否作为模拟输入,“0”表示模拟输入。当任意引脚作为模拟输入时,不能作为IO口受到控制

PxMDOUT:设置对应为漏极开路或推挽,“0”表示开漏。开漏时只能输出低电平或高阻,若需要输出高电平,需要另外加上拉电阻,其电流小于推挽。不过实测还没感觉出开漏与推挽的区别,待查。

PxSKIP:用来保护特定的引脚不被内部资源使用。为“1”时,表示该引脚被跳过。本来内部数字资源是按照优先级列表按顺序占用,如果某个脚你希望留下来自己用,那么可以设置为“1”,那么该脚必然不被占用,可以作为正常的IO口。

二、

寄存器XBR0、XBR1用来分配引脚给内部数字资源,收到PxSKIP寄存器的影响,分配优先级见下图:
点击浏览下一页

三、实测细节

准备工作:

1、P0口连接八个发光二极管,P1.0连接触点开关,P1.1~P1.7连接7个发光二极管。

2、编程,首先令PxMDIN=FF,PxMDOUT=FF。再令PxSKIP=0,但P1.0例外,跳过,否则没法测试

main函数的作用是开关控制所有的灯,按下全亮,松开全暗。

*XBR1的D6必须等于1,要不所有引脚全都不受控。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭