控制/MCU
CPU包括运算器和控制器,运算器主要包括算术运算、逻辑运算和位运算,控制逻辑包括定时和控制、指令寄存器、译码器、地址指针和程序计数器PC。
CPU外还有时钟电路、ROM、RAM、定时/计数器、并行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一般用灌电流方式。
参考:
常用术语:内部中断、外部中断、中断响应、中断服务程序、中断优先级、中断嵌套、中断源、中断矢量。
中断作用:①快速的CPU和慢速外部设备的速度配合;②实现实时控制;③实时故障发现和处理;④实时干预计算机工作。
单片机六个中断源:外部0、外部1、定时器0/1/2、串口。
外部中断可以设置为电平触发或边沿触发。
四个与中断有关的寄存器:TCON、SCON、IP、IE.
串行中断标志需要软件清除。
若是外部中断用电平触发,若是电平触发不撤销,跳出中断程序后会再次进入中断程序。
中断响应受阻断:正在执行RETI或访问IE、IP,必须执行完该指令,并执行下一条指令后才能响应中断(如强一行,电平触发会每次执行一条主程序)。
51是两个寄存器,52是三个寄存器,都是16位的。
工作方式寄存器TMOD、控制寄存器TCON
内部RAM,一般为128B,其中包括了可为寻址的16B,用C 语言时都是编译器在帮忙分配。RAM是用于存放运行时临时数据的。
内部ROM,一般是4KB,用于存放程序的,也就是keil编译出来的bin文件需要存储到单片机里面。
外部存储器,通过IO口,可以扩展外部RAM最大64KB,外部ROM最大64KB。
全部0条评论
快来发表一下你的评论吧 !