第章单片机结构原理本章内容SingleChipMicrocomputer单片机内部结构及引脚单片机时序及接口单片机存储器配置单片机输入输出口§2-1MCS-51单片机内部结构及引脚MCS-51系列单片机是英特尔公司1980推出的高档8位机分为二个子系列,、三个版本:/8KB8052//803252子系列4KB/8751/4KB8051//803151子系列MCS-51EPROM掩膜ROM存储器类型单片机系列型号片内ROM片内RAMI/O口线备注8031无128B+SFR8×4DIP40脚8051掩膜4KB128B+SFR8×4DIP40脚8751EPROM4KB128B+SFR8×4DIP40脚89C51FLASH4KB128B+SFR8×4DIP40脚89C2051FLASH2KB128B+SFR15简化DIP20脚8XC5528K256B+SFR8×6增强多功能型掩膜ROMPROM/OTP-ROMEPROMEEPROMFLASHMCS-51单片机硬件结构时钟电路CPUROMRAMT0T1中断系统串行接口并行接口P0P1P2P3TXDRXDINT0INT1定时计数器结构框图•中央处理器CPU:8位,运算和控制功能•内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。•内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。•定时/计数器:两个16位的定时/计数器,实现定时或计数功能。•并行I/O口:4个8位的I/O口P0、P1、P2、P3。•串行口:一个全双工串行口。•中断控制系统:5个中断源(外部中断2个,定时/计数中断2个,串行中断1个)•时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ1、8051单片机的基本组成1.中央处理器CPU:8位,运算和控制功能2.内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。3.内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。4.定时/计数器:两个16位的定时/计数器,实现定时或计数功能。5.并行I/O口:4个8位的I/O口P0、P1、P2、P3。6.串行口:一个全双工串行口。7.中断控制系统:5个中断源(外中断2个,定时/计数中断2个,串行中断1个)8.时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ2、MCS-51单片机信号引脚简介P3口线的第二功能VCCVSSXTAL2XTAL1RSTP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.72、振荡电路:XTAL1、XTAL23、复位引脚:RST4、并行口:P0、P1、P2、P37、ALE:地址锁存控制信号1、电源线:VCC(+5V)、VSS(地)EAPSEN5、EA:访问程序存储控制信号6、PSEN:外部ROM读选通信号RXD/TXD/INT0/INT1/T0/T1/WR/RD/1234567891011121314151617181920403938373635343332313029282726252424222180318051875189C51=0时,只访问外部程序存储器,即外ROM=1时,访问内部程序存储器,即内ROM/Vpp——内\外ROM选择端对于8751单片机编程时,该端施加编程电压IO引脚P0.0~P0.7;P1.0~P1.7;P2.0~P2.7;P3.0~P3.7四个I/O口,每口八条线;还兼作地址/数据线。EAEAEAALE/PROG——地址锁存控制端,访问外部存储器用来锁存由P0口送出的低8位地址;不访问外存时,提供1/6fosc振荡频率;PROG用于对8751片内的EPROM输入编程脉冲;PSEN——外部程序存储器的读选通信号端3、时钟电路与复位电路(1)时钟振荡电路几个工作周期的区别:振荡周期状态周期机器周期指令周期时钟周期,T:时序中最小的时间单位.其值由外接晶体或外输入时钟来决定,其值为石英振荡器频率的倒数。例如:在单片机外接1MHZ的晶体,则单片机的系统时钟的频率为1M,时钟周期为1us.机器周期:完成特定功能所需要的时间,在MCS-51单片机中机器周期由12个时钟周期构成,并分为6个状态(S1-S6),每个状态又分为P1和P2两拍.这样一个机器周期的12个震荡周期可以表示为:S1P1,S1P2,S2P1,S2P2,S3P1,S3P2…S6P1,S6P2将12个震荡周期用6个状态和2拍来替代。TS1S2S6S5S4S3机器周期指令周期:这是时序图中最大的时间单位,既执行一条指令所需要的时间.在MCS-51系统中,不同的指令它所包含的机器周期数不同.它们分别是:1,单机器周期指令;2,双机器周期指令;3,四机器周期指令我们知道:一个机器周期包含了12个震荡周期.如果我们使用一个12M的晶体震荡器,那么:一个机器周期为1us,两个机器周期为2us,四个机器周期为4us.可见一条指令的运算速度与它所包含的机器周期数有关.机器周期数越少,执行的速度就越快.在MCS-51单片机的指令系统中,除了乘、除法指令为四个机器周期外,其余都是单周期和双周期指令.返回(2)、控制或复位引脚RST/VPD—当出现两个机器周期高电平时,单片机复位。复位后,P0-P3输出高电平;SP寄存器为07H;其它寄存器全部清0;不影响RAM状态。参考复位电路如下:(2)复位电路单片机复位条件:必须使RST引脚持续10us以上高电平(外部时钟12MHz)谁知道复位电路怎么起到复位的作用?12345678910111213142827262524232221201918171615EPROM276412345678910111213142827262524232221201918171615EPROM27641234567891011121314151617181920403938373635343332313029282726252424222112345678910111213142827262524232221201918171615RAM626412345678910111213142827262524232221201918171615RAM62642-2存储器配置80318751805189C51片内RAM片内ROM256B(字节)4K64K64K物理上分为:4个空间,即片内ROM、片外ROM片内RAM、片外RAM逻辑上分为:3个空间,即程序内存(片内、外)统一编址MOVC数据存储器(片内)MOV数据存储器(片外)MOVX冯.诺依曼结构哈佛结构改进哈佛结构/超级哈佛结构储存器结构(1)程序存储器程序存储器内部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序执行的起始单元,在这三个单元存放一条无条件转移指令中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位...0FFFH0FFEH程序存储器资源分布中断入口地址EA=1EA=0七个具有特殊含义的单元是:0000H——系统复位,PC指向此处;0003H——外部中断0入口000BH——T0溢出中断入口0013H——外中断1入口001BH——T1溢出中断入口0023H——串口中断入口002BH——T2溢出中断入口0000HFFFFH(64K)内部外部(2)数据存储器数据存储器00HFFH7FH80H(高128B)(低128B)RAM专用寄存器00H07H08H0FH10H17H18H1FH0区R0R7R0R7R0R7R0R71区2区3区工作寄存器区可位寻址区20H2FH7F78070030H7FH数据缓冲区/堆栈区内部RAM存储器11第3区18H~1FH01第1区08H~0FHRS1RS0寄存器区片内RAM地址00第0区00H~07H10第2区10H~17H工作寄存器区选择位RS0、RS1PSW位地址CYACF0RS1RS0OVF1P位寻址区(20H—2FH)16个字节。16*8=128位,每一位都有一个位地址,范围为:00H—7FH,位地址区也可作为一般RAM使用。位寻址区单元地址位地址EH2FH2H20H21H77FH7H76EH7H75DH7H74CH7H73BH7H72AH7H71H79H70H78H07FH0H06EH0H05DH0H04CH0H03BH0H02AH0H01H09H00H08特殊功能寄存器SFRMCS-51单片机内共有22个特殊功能寄存器,包括PC及SFR。PC为程序计数器。它是一个双字节寄存器,寻址范围为:0000H~FFFFH,即0~64KB。SFR为特殊功能寄存器。其寻址空间:80H~FFH其中,51子系列有18个寄存器,占有21个字节;52子系列有21个寄存器,占有26个字节。51子系列SFR的地址分配及位地址见下页表:高128个单元☆离散分布有21个特殊功能寄存器SFR。☆11个可以进行位寻址。☆特别提示:对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。寄存器位地址/位定义地址F7F6F5F4F3F2F1F0BF0HE7E6E5E4E3E2E1E0ACCE0D7D6D5D4D3D2D1D0PSWCYACF0RS1RS0OV/PD0HBFBEBDBCBBBAB9B8IPB8HB7B6B5B4B3B2B1B0P3P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0B0HIEA8HA7A6A5A4A3A2A1A0P2P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0A0HSBUF99H++9F9E9D9C9B9A9998SCONSM0SM1SM2RENTB8RB8TIRI98H9796959493929190P1P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.090HTH18DHTH08CHTL18BHTL08AHTMODGATEC/TM1M0GATEC/TM1M089H8F8E8D8C8B8A8988TCONTF1TR1TF0TR0IE1IT1IE0IT088HPCONSMOD///GF1GF0PDIDL87HDPH83HDPL82HSP81H8786858483828180P0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.080H注意:1、表中共有3个双字节寄存器。2、PC也为双字节寄存器,但是不在80H~FFH范围内。3、表中,凡地址能被8整除的寄存器都是可位寻址的寄存器。各寄存器的名称:1、算术运算寄存器(1)A——累加器。(2)B——B寄存器,乘、除法运算用。(3)PSW——程序状态字寄存器:包含程序运行状态、信息。程序状态字PSW:8位寄存器.表征程序执行的状态信息。CY(PSW.7)进位标志:在加减法运算中,累加器A的最高位A7有进位,则CY=1,否则CY=0.同理,在减法运算中,如果A7有借位,则CY=1.因此CY往往作为无符号数运算是否有溢出的标志。AC(PSW.6):辅助进位位:用来判断加减法运算时,低四位是否向高四位进位或借位(既A3的进位或借位).往往用来判断压缩的BCD码的运算处理.F0(PSW.5)用户标志位:完全由用户来定义和使用。RS1,RS0工作寄存器区选择位:确定工作寄存器R0-R7在哪个区中.单片机在上电或复位后RS1、RS0=00。当需要人为的修改RS1,RS0的值来改变工作寄存器区的位置。00:0区R0~R701:1区R0~R710:2区R0~R711:3区R0~R7CYACF0RS1RS0OV-POV(PSW.2)溢出标志位:判断有符号数(补码)