单片机的介绍
前述:我差不多也学习了挺长时间,以为学会了很多东西,但是其实不会的还有很多,包括一些很基本很简单的东西,我认为有必要重新梳理一下单片机的内部结构,以及他的原理,从根源入手可能会好一些,当然也是对前面的一些东西进行总结,慢慢的也会补全,也会一直在学习
80c51内部结构
CPU(8位):
其他寄存器: 堆栈指针SP+数据指针DPTR
控制器:译码及控制逻辑+指令寄存器IR(保存当前执行的指令)+程序寄存器PC(存放下一个要取指令的存储单元,复位后从0000H开始)
时钟电路
运算器:
ACC累加器(存放运算结果和提供操作数)+暂存器1 2+B寄存器(再进行/,*运算时候提供一个操作数并且存放部分结果的)+程序状态字寄存器PSW(CY 最高位的进位AC第四位是否进位 F0自定义 RS1工作寄存器分区 RS0 OV数据最后是否溢出 6 7位异或 1 溢出 F1 P 奇偶位检验 奇数个1为1)+ALU算术逻辑运算单元(逻辑运算和位处理能力)
存储器
128B的数据寄存器RAM=工作寄存器区(00h到1fh)+位寻址区(1fh到30h)+通用RAM区(30h到80h)
4KB的程序寄存器ROM
1个特殊功能寄存器SFR(80h到ffh)
4个并行I/O口
P0:一般的I/O口(C=0通用IO口,准双向口)引脚或者使数据/低位地址总线复用引脚(C=1真正的双向口)
P1:一般的I/0口引脚(通用的准双向I/O口)
P2:一般的I/O口引脚(C=0通用IO口,准双向口)或数据/高位地址总线复用引脚(C=1用作地址总线)
P3:一般的I/O口引脚或第二功能引脚(通用IO口,准双向口)
一个全双工异步串行口
2个16位定时计数器
五个中断源两个优先级
80c51的引脚
RST:复位信号输入引脚 (保持两个机器周期以上才生效,I/O口都为FFH,SP为0
H,SBUF不确定,IP,IE,PCON有效位为0,其他特殊功能寄存器状态均为00H)
RXD:串口的接受引脚 (receive)
TXD:串口的输入引脚
NT0:外部中断0
INT1’:外部中断1
T0:T0计数器0外部输入
T1:T1计数器1外部输入
WR’:外部写控制
RD’:外部读控制
XTAL1:晶振振荡器接入一个引脚
XTAL2:晶振振荡器接入的另外一个引脚
ALE:地址锁存引脚
EA:外部程序存储器选通引脚ROM(EA=1,先读片内的ROM 地址为0000H~FFFFH,然后再读片外的ROM,=0直接读片外的ROM)
PSEN:外部程序存储器选通信号输出引脚
最小系统
EA一般是接高电平
最小系统=单片机芯片+复位电路+晶振电路