单片机IO口相关知识

控制/MCU

1876人已加入

描述

CPU包括运算器和控制器,运算器主要包括算术运算、逻辑运算和位运算,控制逻辑包括定时和控制、指令寄存器、译码器、地址指针和程序计数器PC。

CPU外还有时钟电路、ROM、RAM、定时/计数器、并行IO、串行接口、中断系统。

1.IO口相关知识

这些IO口实际上就是GPIO,它是单片机内的特殊功能寄存器SFR里面的4个8bit的寄存器。

IO可以作为输出或输入。

IO作为输出时自带锁存功能,也就是写1后,输出一直是1(锁存器上的值),引脚上可能被外部电路影响而不是1了。

单片机4组IO口,P0输出时需要上拉;P1/P2/P3是准双向口。

有些口还可以作为数据或地址输入输出口。P1只能作为双向口,P0扩展数据和地址,P2扩展地址高8位,P3有第二特殊功能。

注意读引脚和读锁存器的区别:因为有时候输出设定为1,但是可能被外部电路钳制到低电平,所以当设置P0=1时想再设定P0=2时,就用读锁存器,这样就是1+1,不然就是读引脚可能就会变成0+1.常见的读锁存器的指令是:在使用ANL、ORL、XRL、CLR、SETB等位操作指令对I/O口进行按位修改时,单片机将首先读回端口锁存器的值,送入ALU进行相应位修改,再写回端口寄存器,通过驱动电路输出给外围电路。

读引脚时需要先想端口写1,把T2截止,这样读到才是外部真实电平。

双向IO口/准双向IO口的区别

标准双向IO口的特点有两条:

1、在输出模式下,可以输出高低电平;

2、在输入模式下,如果没有接外部电路,应呈现高阻态。

对于51单片机的P1、P2、P3口,由于有内部上拉电阻,输入模式下不可能出现高阻态,所以称之为准双向IO口。而P0口作为IO口工作时,如果不加上拉电阻就无法输出高电平;而加了上拉电阻,输入时又不会出现高阻态,所以也是准双向IO口。

单片机的P0口如果工作在第二功能状态下,则是双向IO口。当P0口工作在第二功能状态下,两个晶体管都可以工作。如果上面的晶体管断开,下面的导通,就输出低电平;反之上面的导通下面的断开,就输出高电平并且不需要上拉电阻;如果两个晶体管都断开,则可以作为输入,并且在没有外界电路时呈现高阻态。所以是双向IO口。

注:灌电流比拉电流能通过更大的电流;点亮LED一般用灌电流方式。

参考:

2.中断

常用术语:内部中断、外部中断、中断响应、中断服务程序、中断优先级、中断嵌套、中断源、中断矢量。

中断作用:①快速的CPU和慢速外部设备的速度配合;②实现实时控制;③实时故障发现和处理;④实时干预计算机工作。

单片机六个中断源:外部0、外部1、定时器0/1/2、串口。

外部中断可以设置为电平触发或边沿触发。

四个与中断有关的寄存器:TCON、SCON、IP、IE.

串行中断标志需要软件清除。

若是外部中断用电平触发,若是电平触发不撤销,跳出中断程序后会再次进入中断程序。

中断响应受阻断:正在执行RETI或访问IE、IP,必须执行完该指令,并执行下一条指令后才能响应中断(如强一行,电平触发会每次执行一条主程序)。

3.定时器和计数器

51是两个寄存器,52是三个寄存器,都是16位的。

工作方式寄存器TMOD、控制寄存器TCON

4.存储资源

内部RAM,一般为128B,其中包括了可为寻址的16B,用C 语言时都是编译器在帮忙分配。RAM是用于存放运行时临时数据的。

内部ROM,一般是4KB,用于存放程序的,也就是keil编译出来的bin文件需要存储到单片机里面。

外部存储器,通过IO口,可以扩展外部RAM最大64KB,外部ROM最大64KB。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分