原创 51-PIC-ARM的I/O口比较

2008-3-14 22:53 4657 6 8 分类: MCU/ 嵌入式

51-PIC-ARM的I/O口比较


      51-PIC-ARM的I/O口比较
**********************
51的I/O口:
1:准双向口
2:单独控制I/O口输出的置位或清零(位方式CLR,SETB)
3:复位后上拉成高电平,可以用做输入
4:带载能很弱(未考虑变异产品)
P1等直接控制

**********************
PIC的I/O口:
1:真正的双向口
2:单独控制I/O口输出的置位或清零(位方式BSF,BCF)
3:所有I/O口在复位后默认为输入
4:带载能力强
由2个寄存器控制(忽略其他功能)以PORTC为例
TRISC:I/O口方向控制寄存器 输入为1,输出为0
PORTC:I/O引脚值寄存器       

***********************
ARM7的I/O口:
1:真正的双向口
2:单独控制I/O口输出的置位或清零(其实还是字方式)
3:所有I/O口在复位后默认为输入
4:带载能力不强
由4个寄存器控制(忽略其他功能)
IOPIN:IO引脚值寄存器,引脚的当前状态可从该寄存器中读出
       (不管I/O口是输入还是输出)其实PIC的也一样
IOSET:I/O输出置位寄存器,写入1输出高电平,写入0无效
       好象不存在读-修改-写的问题,这个比较特殊
IOCLR:I/O输出清0寄存器,作用同上
IODIR:I/O口方向控制寄存器(同PIC的TRISC等)
       输入为0,输出为1(同PIC的相反)
注:IOSET与IOCLR是一对
***************
***************


I/O口优缺点(个人愚见):

1:输出1或0
   51: SETB P1.0
   PIC:BSF  PORTC,0
        或
        BCF  PORTC,0
        要注意其他端口的情况(读-修改-写的问题)
   ARM:如要求在P0.0输出1,只要IO0SET=0x00000001即可
        不用担心其他引脚的情况
2:取反(例对第0位)
   51: 可以用异或也可用取反(因为有布尔取反指令)
   PIC:用异或 PORTB="PORTB"^0x01;
   ARM:只能分开搞了
        if(IO0SET&0x00000001==0)
         {IO0SET=0x00000001;}
        else
         {IO0CLR=0x00000001;}
3:同时改变P0口的某几位为1,某几位为0
   如原P0=0x00000055,现要求P0=0x000000aa
   51: P0=0xaa;
   PIC:PORTC=0xaa;
   ARM:比较麻烦了
        写法1:IO0SET=0x0000aaaa
              IO0CLR=0xffff5555
        不但要分2次写,而且还出现了中间状态
        这种情况在51和PIC中是不会出现的
4:读I/O口状态
   51: 必须先对端口写1(SETB  P1.0)
        然后再判断是1还是0    
   PIC:先设为输入,然后判断
   ARM:先设为输入,然后判断

4:驱动能力
   51最低,PIC最强
   例:在I/O口与地间接一个100欧的电阻
       I/O口输出1,然后读此I/O口,只有PIC可读回高电平
       如果ARM读的是IOSET则读到高电平,如果读IOPIN则读到
       低电平,输出和实际电平不符

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

jizzll_617398179 2008-4-29 18:41

bu cuo

用户1294193 2008-4-14 17:23

不错
相关推荐阅读
用户1569227 2012-04-07 11:44
MT8880与电话线相连
 MT8880是我们应用电话拨号应用中常用的一款芯片,它集发送、接收于一体。如果设计得法还是一款相当稳定 的IC,优点是:通过少量的几个元件就可以组成拨号及接收的电路。唯一的缺点:我认为还是其价格...
用户1569227 2008-07-01 22:59
无线龙
zigbee芯片厂家对比2007-07-04 09:24三主要ZigBee芯片供应商ZigBee方案竞争能力比较 目前市场上主要ZigBee芯片提供商(2.4GHZ),主要有:TI/CHIPCON、E...
用户1569227 2008-05-19 16:28
Visio画图几个技巧
Visio画图几个技巧  对于工科学生来说,很多时候都要用到Visio画图软件,你用的熟练么?是否也曾因为某个细节问题烦恼不已,比如:在Visio里明明画的是虚线,怎么粘贴到Word里就变成实线了?还...
用户1569227 2008-05-05 12:05
什么是IP Core?
IP核是指用于产品应用专用集成电路(ASIC)或者可编辑逻辑器件(FPGA)的逻辑块或数据块。将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器,SDRAM控制器,PCI接口等等设计成可修改参数...
用户1569227 2008-04-28 10:33
各种电感的计算公式
加载其电感量按下式计算:线圈公式 阻抗(ohm) = 2 * 3.14159 * F(工作频率) * 电感量(mH),设定需用 360ohm 阻抗,因此: 电感量(mH) = 阻抗 (ohm) ÷ (...
用户1569227 2008-04-25 21:35
ARM入门
ARM入门最好的文章      1.抓住51开发ARM            这几个月来我一直都爬在51的问题,自己都有一点笑自己了,用了4个月的时间,来巩固51的原理和程序,还好我自己算是走过来了,...
我要评论
2
6
关闭 站长推荐上一条 /4 下一条