1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,1.1 单片机的概念、特点、应用与开发流程,集成在一块芯片上的微型计算机系统,,简称单片机。,单片机内部集成了中央处理器、程序存储器、数据存储器、并行和串行输入/输出接口、定时器/计数器、中断控制系统等硬件资源,有自己的,指令集,。,.,8031内核的硬件资源,1个CPU;,2个定时器;,4个并行口;,8位字长;,16位宽度程序空间总线;,16位宽度外部数据空间总线;,32根口线;,64K程序空间、64K外部数据空间;,128字节RAM空间,128字节特殊功能寄存器空间,.,1.2.2,MCS51的总体
2、结构,单片机内部集成了中央处理器(CPU)、程序存储器、数据存储器、并行输入输出口、定时器与计数器、中断系统和串行口等功能部件,其内部结构框图如下。,.,1.2.3 特殊功能寄存器SFR,在内部数据空间的固定地址,为不同的功能部件预留寄存器,规定其操作方法,合称,特殊功能寄存器SFR,(Special Function Registers)。,SFR是用户程序与上述功能部件的接口,。,地址范围:80HFFH,用途:设置功能部件的初始状态和工作方式,查询其状态,启动和停止其运行。,特点:1.地址固定、与不同部件对应、操作方式各异。,2.复位值 复位后,SFR都有固定的初值(称为复位值),所有功能
3、部件处在固定的工作状态(称为复位状态)。,返回首页,.,1.3 中央处理器,单片机的中央处理器(CPU),具有,算术运算和逻辑运算,能力。,CPU主要由,运算部件和控制部件,组成,还包括若干个SFR。,.,累加器ACC(Accumulator),累加器可用来保存参加运算的数据以及运算的结果,也可用来存放地址。所有的输入输出操作都要用到累加器。,.,1.3.2.1 复位电路,必须经过复位之后,单片机才能进入正常工作状态。复位之后,所有SFR取初始值,功能部件处于复位状态。,在RST引脚上施加高电平使单片机复位。主电源正常时若RST引脚上出现24个晶振周期以上的高电平,则CPU将复位,直到该引脚变
4、为低电平时开始运行程序。,.,1.3.2.2,晶振与时钟产生电路,见,P5图1-4,,利用单片机XTAL1(19)、XTAL2(18)引脚连接工作时钟。,外接晶振的频率决定了单片机的工作节拍,其,频率上限为12MHz,。晶振频率的典型值为6Mhz、12Mhz和11.0592Mhz。,机器周期6个时钟周期=12/f,一条指令的指令周期就是执行该指令所需的时间,,不同指令的指令周期不同,可为14个机器周期。,.,1.3.2.3,指令部件,指令部件包括程序计数器PC、指令寄存器、指令译码器和数据指针DPTR:,程序计数器PC:16位(64KB程序空间)的存储器,总是保存将要执行的一条指令的地址,具有
5、自动加1的功能。,指令寄存器:存放当前正在执行的指令;,指令译码器:分析指令的操作码,产生相应的控制信号;,数据指针DPTR:16位(64KB外部数据空间)的存储器,用来保存寻址片外数据空间的地址。,.,A、指令系统与汇编,CPU可以执行多种操作,例如算术运算、逻辑运算、数据传送、控制转移、输入输出等等,这些操作用,数字代码(称为机器码),来表示。,单片机能执行的所有各种机器代码的总和,称为,指令系统,,是衡量单片机性能的重要指标。,.,机器码格式,机器码的数据编码规则称为指令格式,或机器码格式。,每条指令的第1个字节称为,操作码,,后面附加02个,操作数,。所以指令的字节数为1,2或3。详见
6、P32的表15。,操作码表示所要执行操作的性质,还隐含获得数据的方法,不同类型指令的操作码必不同;操作数指定操作对象的来源,以及运算结果的保存地址。,.,指令系统综述,MCS51单片机共有111条指令:单字节指令49条,双字节指令49条,三字节指令13条;单机器周期指令64条,双机器周期指令45条,只有乘法和除法指令是四个机器周期指令。,汇编语言指令主要由操作码和操作数两部分组成:,【标号】:操作码【目的操作数】【,源操作数】【;注释】,操作码规定了本语句的功能,操作数提供辅助信息,注解部分可省略。,.,B、,程序可访问的空间,用户程序的操作对象可位于程序空间、片内RAM空间、SFR空间和片外
7、RAM空间。,.,程序可访问的空间(续1),1.程序空间:用户程序可将程序存储器空间任意单元的数值送到ACC,实现查表功能。,2.片内RAM空间:,单片机都有128字节的低端RAM(007F),按用法不同分为:,工作寄存器区(001F),位寻址区(202F),普通RAM区(307F),有的单片机还有高端RAM,.,程序可访问的空间(续2),3.SFR空间:见P7,SFR的地址范围为80FF,,地址能被8整除的SFR最常用,,不同型号单片机SFR的数量不同所以功能差异很大,只能使用直接寻址方式寻址。,4.片外RAM空间:,利用片外的16位数据总线,可以在片外扩展64KB的RAM或输入输出端口,其
8、地址范围为0000FFFFH。只有两条指令可访问该空间外部数据空间输入指令、外部数据空间输出指令。,该扩展需要使用端口P0、端口P2、引脚/WR、引脚/RD和引脚ALE。,外部数据空间的扩展是本课程的难点和重点,。,返回1.4,.,C、寻址方式,1.立即寻址 提供操作数的大小,用符号“#”表示。例如:#3(#03h),#160,(#0A0H)。,MOV A,#8,2.直接寻址 提供操作数的地址,表示该操作数的位置,例如:3,03h,3FH,160,(0A0H)。,MOV 8,A,如果地址小于80H,实际访问片内低端RAM区;如果地址大于7FH,访问SFR区。,3.寄存器寻址,以寄存器形式提供操
9、作数,可为R0R7,(统一记为“Rn”),这些寄存器位于片内地址001F范围的RAM空间(称为工作寄存器组),具体位置取决于程序状态字PSW中RS1、RS0两个数据位的值。,.,寻址方式(2)间接寻址,寄存器寻址的例子:MOV R7,A,若PSW=0,则上述指令操作地址为7的存储单元;若PSW=24,则操作地址为1F的单元。,4.间接寻址,以R0或R1(统一记为“Ri”)内保存的内容作为操作数的地址,,用“”表示。,MOV A,R0,例如:若R0内容为二进制00110011,则上述语句,将51号单元内保存的数值赋给累加器。,.,寻址方式(3),5.变址寻址 以PC作为基地址,以A作为偏移地址,
10、二者之和作为操作数地址,从程序空间取出一个字节,常用于查表。,MOVC A,A+PC,6.相对寻址 将“执行完本指令后的PC指针”与指令第二字节的数值相加,其结果作为新的PC指针。第二字节为补码形式。,JC 98H;?,7.位寻址 每次操作,一个数据位,,,这些数据位位于片内RAM区的位寻址区(202F区域)、地址能被8整除的SFR中。,例如 CLR 98H,.,子程序返回(续2),子程序调用返回语句,格式:RET,;(SP),(PC,158,)SP-1,SP,;(SP),(PC,70,)SP-1,SP,思考题:子程序调用语句与RET语句成对使用的妙处?,答:正确退出子程序并找到出口继续执行!,.,中断返回,4.中断返回,格式:RETI,这是每一个中断处理程序的最后一条语句。,在“中断处理”部分详细介绍。,.,1.5.1 MCS51的电源脚(P11),VCC(40):电源 VSS(20):电源地,MCS51使用5V直流电源。,.,






