版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章80C51单片机内部结构和工作原理2.1内部结构和引脚功能
2.2存储空间配置和功能
2.3MCS-51系列单片机的并行端口结构与操作
2.4时钟和时序
2.5复位和低功耗方式
2.6ATMEL89系列单片机
2.7习题
实训二KeilCx51软件中调试窗口的使用
2.1内部结构和引脚功能
2.1.1内部结构
80C51单片机由CPU、RAM数据存储器、ROM程序存储器、可编程I/O端口P0~P3、定时器/计数器以及各种寄存器组成的特殊功能寄存器SFR所组成。
80C51单片机的内部功能结构如图2-1所示。图2-180C51单片机功能结构图
2.1.2引脚功能
80C51系列单片机的封装形式一般分为两种:双列直插DIP封装和贴装集成电路芯片。80C51单片机芯片共40个引脚,图2-2为引脚排列图。图2-280C51系列单片机引脚图 2.2存储空间配置和功能
80C51系列单片机存储器的配置方式与其他常用的微机系统有所不同,按照存储器的类型分为程序存储器ROM和数据存储器RAM。ROM用来存放编写好的程序和表格数据,而RAM用来存放运算用的中间数据、输入/输出的数据等。
80C51系列单片机的存储器组织结构(见图2-380C51存储器空间配置图)可以分为:
(1)片内程序存储器地址空间(4 KB/ROM);
(2)片外程序存储器地址空间(64 KB/ROM);
(3)片内数据存储器地址空间(256 B/RAM);
(4)片外数据存储器地址空间(64 KB/RAM)。图2-380C51存储器地址空间2.2.1程序存储器ROM
MCS-51系列单片机的程序计数器PC是16位的计数器,因此它的最大寻址空间为216=64 KB,允许用户程序随意调用或转向64 KB范围内的任何存储单元。
8051单片机在芯片内部设置了4 KB的程序存储器ROM,而8751单片机内部设置了4KB的EPROM,8031单片机内部没有设置程序存储器,需要在外部扩展EPROM。无论程序存储器在片内还是在片外,地址空间是统一编址的,不会重叠。为了区别上述这些芯片,如果芯片内部含有ROM(比如80C51、87C51),引脚应该接高电平,单片机复位后首先从0000H开始执行程序,当PC值超出了它内部程序存储器的容量的时候,会自动转向片外ROM10000H依次继续执行程序。对于80C31芯片而言,片内无程序存储器时,引脚必须接地。当单片机读取片内的程序存储器时,以PC程序计数器为16位地址指针,依次读取PC指向的地址单元的指令和数据,每读一个字节,PC指针自动加1。也可以根据具体的情况,由用户修改指针地址,例如长跳转、短跳转和相对跳转等转移类指令和查表指令MOVC,就可以直接修改PC地址,并直接转移到修改后的16位地址读取程序存储器中的指令和数据。当单片机读取片外的程序存储器时,单片机从PC中取出ROM的16位地址后,将低8位地址由P0口送出,高8位地址由P2口送出,这时ALE地址锁存信号有效,将低8位地址信号锁存起来,地址锁存器输出的8位地址信号与P2口输出的高8位地址信号同时加到外ROM16位地址输入端后,当信号有效时,外ROM将相应地址单元中的数据送到数据总线P0口,单片机读取这个数据后送入指定单元存储起来。这样完成读取片外ROM数据的操作。
在程序存储器的64 KB空间中,有一小段范围(0003H~0023H)是80C51系统专用单元,用于存放5个中断源中断程序入口地址,具体的分段如下,用户不能安排其他内容。
0000H:单片机复位后的程序入口地址;
0003H:外部中断0的中断服务程序入口地址;
000BH:定时器0的中断服务程序入口地址;
0013H:外部中断1的中断服务程序入口地址;
001BH:定时器1的中断服务程序入口地址;
0023H:串行端口的中断服务程序入口地址。
由于单片机是按照顺序执行程序的,为了使程序正常执行,需要用一条跳转指令跳转到合适的地址范围去执行真正的主程序。2.2.2外部数据存储器RAM
80C51系列单片机的数据存储器同样分为片内RAM和片外RAM两大部分。2.2.3内部数据存储器RAM
80C51单片机的内部数据存储器可以分为两个不同的存储空间,即低128 B数据存储器空间和分为21个特殊功能寄存器(SFR)的128 B存储器空间。对于增强型单片机,数据存储器容量为256 B。在80C51系列单片机的片内,RAM数据存储器共有256 B,分为低128 B和高128 B。低128位分成工作寄存器区、位寻址区、通用RAM区三部分,其结构图如图2-4所示。图2-480C51片内RAM结构图
1.工作寄存器区
80C51系列单片机内部的低32个字节(00H~1FH)区域属于工作寄存器区,共分成4个寄存器组,每组占8个单元,一般用R0~R7来表示,即寄存器0组:地址为00H~07H;寄存器1组:地址为08H~0FH;寄存器2组:地址为10H~17H;寄存器3组:地址为18H~1FH。每组有8个寄存器R0~R7。80C51单片机的指令系统当中有专门用于工作寄存器操作的指令,这些指令的特点就是工作速度快,要求内RAM的读写速度也要快,并且具有间接寻址的功能,给用户编程带来了方便。程序运行时,只能有一个工作寄存器组作为当前工作寄存器组。当前工作寄存器组是由软件编程来确定的,主要是由特殊功能寄存器的程序状态字PSW中的RS0、RS1两位来确定的(选择方法见表2-1)。这样可以提高单片机的工作效率和响应中断的速度。如果在实际系统中不需要4个工作寄存器组,那么多余的单元还可以作为一般的数据缓冲器使用。表2-1当前工作寄存器组的选择方法
2.位寻址区
80C51系列单片机具有位处理功能,在片内的RAM数据存储器的20H~2FH区间,我们习惯将这一区间称为位寻址区(见表2-2)。位寻址区主要用来存放各种标志位信息和位数据。位寻址区共有16个字节(Byte),128位。每一个字节都有一个地址,而每一个位也同样有一个位地址,这两个概念一定要区别开来。表2-280C51系列单片机的位寻址区
3.通用RAM区
在位寻址区之后的30H~7FH单元共80个字节(Byte)作为通用数据缓冲区,这一区域主要用来存放各种数据和中间计算结果,起到了数据缓冲的作用。另外在实际应用中,80C51系列单片机的堆栈操作一般都设置到30H~7FH这个区间范围内。堆栈的位置由SP寄存器来指示。系统复位后SP的初值为07H,在系统初始化时可以重新设置这个数值。2.2.4MCS-51系列单片机的特殊功能寄存器
在80C51系列单片机内部的80H~FFH区间内分布了21个特殊功能寄存器(SFR),其中十六进制的字节地址码尾数为8、0或能被8整除的就是具有位地址的寄存器。在SFR地址空间内共有有效的位地址83个(详见表2-3)。访问这些SFR特殊功能寄存器只允许使用直接寻址方式。表2-380C51单片机特殊功能寄存器位地址及字节地址表
1.程序状态字寄存器
PSW是8位的程序状态字寄存器,其结构和意义见表2-4。表2-4PSW程序状态寄存器的结构和定义
2.与堆栈相关的寄存器
1) SP堆栈指针
在MCS-51系列单片机中的堆栈设置在内部RAM中,SP是一个8位寄存器,用来专门指示堆栈顶部数据的地址,无论是压入堆栈数据还是弹出堆栈数据后,SP都是指向堆栈顶部。
堆栈是一个特殊的存储区,用来暂存数据和地址,它是按照“先进后出、后进先出”的原则存取数据的。写入堆栈的操作简称为进栈;与之相反,读取堆栈里的数据的操作称为出栈,这两种操作是堆栈的主要操作方式。
2) DPTR数据指针
DPTR是一个16位的特殊功能寄存器,由两个8位寄存器DPH、DPL组成,DPH为DPTR的高8位寄存器,DPL为DPTR的低8位寄存器。DPTR称为数据指针,主要是为了区别于程序计数器(PC)地址指针,实际上DPTR是一个16位的地址寄存器,作为访问片外存储器(数据存储器RAM和程序存储器ROM)的地址指针。
3.与端口相关的寄存器
1) P0、P1、P2、P3I/O端口
MCS-51系列单片机共有4个并行输入/输出端口寄存器P0、P1、P2、P3,特殊功能寄存器中的地址分别为80H、90H、A0H、B0H。通过对这4个特殊功能寄存器的读/写操作就可以实现单片机与外部设备数据的交换。
2) SBUF串行口缓冲寄存器
在单片机与外部设备进行数据交换时,无论是发送数据还是接收数据只要把数据传送到SBUF串行口缓冲寄存器,单片机就会自动完成SBUF中数据的发送或接收,完成数据的交换。
3) SCON串行端口控制寄存器
单片机通过SCON串行口缓冲寄存器来设置串行口工作的方式及中断标志。
4) PCON串行通信波特率倍增寄存器(电源控制寄存器)
PCON在特殊功能寄存器中的字节地址为87H,该寄存器不能进行位寻址。读/写操作时,只能整体字节操作,不能按位操作。
4.与定时器/计数器相关的寄存器
MCS-51系列单片机内部设有两个定时器/计数器T0和T1,其中TH0、TL0是定时器/计数器T0的两个8位计数初值寄存器,可以构成16位的计数器,TH0为高8位计数初值寄存器,而TL0为低8位计数初值寄存器。TH1、TL1为定时器/计数器T1的两个8位计数初值寄存器,同样可以构成16位的计数器,其中TH1为高8位计数初值寄存器,而TL1为低8位计数初值寄存器。
TMOD是定时器/计数器的工作模式寄存器。TCON是定时器/计数器的控制寄存器。
5.与中断相关的寄存器
(1) IE为中断允许控制寄存器,只有IE为1时,单片机的串行口中断才允许进入。
(2) IP为中断优先级控制寄存器,用来设置中断优先级的高低。
2.3MCS-51系列单片机的并行端口结构与操作
2.3.1P0口
当需要扩展外部存储器时,P0口作为分时复用的低8位地址/数据总线,其位结构图如图2-5所示。图2-5P0口的位结构图
(3)外部数据读入到内部总线有两种方式:一种是“读锁存器”;另一种是“读引脚”。采用哪种方式由单片机的指令来决定。当单片机执行“读-修改-写”指令时,单片机选择“读锁存器”方式,采用这种方式可以防止因外部电路的原因导致引脚状态发生变化而产生误读。其他指令均通过“读引脚”方式将引脚状态读入到内部总线上。
2.P0口作为地址/数据总线
P0口除了能作通用的I/O口外,还能用作地址总线低8位和数据总线,供单片机系统的外部资源并行扩展时使用。
(1) P0口作为输出口线。P0口作为地址/数据总线输出时,单片机将“控制”端信号设置为高电平,其作用有两个:一是使多路开关MUX接通高电平“1”端,与P0口的锁存器断开;二是将与门开通,与门的输出端的状态由“地址/数据”端的状态决定。若地址/数据端信号为“1”,并同时输入到与门和反相器(非门),与门输出为“1”,V1导通,反相器输出为“0”,V2截止,P0口的引脚输出为“1”;若“地址/数据”端信号为“0”,则与门输出短信号为“0”,V1截止,反相器输出为“1”,V2导通,引脚输出为“0”。这样单片机的地址/数据信号通过与门和反相器、驱动管V1和V2输出到了P0口的引脚上,就完成了地址/数据总线输出的功能。
(2)P0口作为数据总线输入。当P0口作为数据输入口时,与P0口作为一般输入口情况一样,单片机使V1和V2驱动管均截止。当单片机读引脚信号为高电平时,缓冲器打开,从外部输入到单片机的引脚上的数据就可以经过缓冲器U2进入内部数据总线。
MCS-51系列单片机在不进行并行扩展片外存储器时,能够作为通用的I/O口使用,而在单片机进行并行扩展片外存储器时,P0口只能用作地址/数据总线。2.3.2P1口
P1口只能用作通用的I/O口,其位结构图如图2-6所示。图2-6P1口的位结构图2.3.3P2口
P2口的位结构如图2-7所示。P2端口是由一个输出锁存器(P2.X锁存器)、一个转换开关MCU、两个三态输入缓冲器(U1和U2)、输出驱动电路和一个非门组成。图中的控制信号控制多路开关的状态,当C = 1时,开关拨向地址线位置;而C = 0时,开关拨向锁存器位置。P2口能用作通用的I/O口或地址总线的高8位。图2-7P2口的位结构图
(2)当P2口作为输出口线时,内部数据总线上的数据在单片机发出的“写锁存器”信号的作用下由D端进入锁存器,经过反相器反相后送到场效应管V,再经过V的反相后,在P2口线引脚上出现的数据就是内部数据总线要输出的数据。
2.P2口作为地址总线
当单片机的内部存储器不能满足工业控制系统的要求时,就需要进行片外的扩展。当单片机执行MOVC指令读片外程序存储器,或执行MOVX@DPTR指令读/写片外RAM、I/O口线时,单片机自动将控制信号C置为1,多路开关拨向地址线端,这时P2口线上的状态正好与地址线上的信号数据相同。2.3.4P3口
图2-8为P3口的位结构图,P3口既可用作通用的I/O口同时也可用作第二功能控制口线。P3口由一个输出锁存器(P3.X锁存器)、三个输入缓冲器(U1、U2和U3)、输出驱动电路和一个与非门组成。其中输出驱动电路与P2口和P1口相同,内部设有上拉电阻。图2-8P3口的位结构图
1.P3口作为通用I/O口
当单片机对P3口进行字节或位寻址时,单片机自动将第二功能输出线O置为1。与非门的输出取决于锁存器的Q端信号。当单片机用作输出时,内部总线的数据就会输出到P3口引脚上。作为输入口时,首先要向端口锁存器写入1,锁存器输出为1,与非门输出为0,这样使P3口引脚处于高阻状态,输入到引脚的数据通过单片机控制的“读引脚”信号的作用下,进入内部数据总线。
2.P3口用作第二功能口
当单片机不对P3口进行字节或位寻址时,单片机内部硬件自动将端口锁存器的端置为1,这样与非门和输出状态只受“第二功能输出”端控制,“第二功能输出”引脚的数据经过与非门和场效应管T反相后输出到该位引脚上。
P3.0:RXD串行口输入;
P3.1:TXD串行口输出;2.3.5并行端口的负载能力
MCS-51系列单片机的4个并行I/O口(即P0、P1、P2、P3口)均由内部总线控制,端口的功能复用由硬件自动控制。4个端口均为并行I/O端口,每个口8根口线,共有32个I/O口。P0口是准双向I/O口,当用作片外存储器或接口扩展时,分时复用为数据总线和低8位地址总线,可驱动8个LSTTL负载。在作通用I/O口使用时,输出驱动电路是开漏的,因此驱动集电极开路电路或漏极开路电路时需外接上拉电阻。当作为地址/数据总线使用时,口线不是开漏的,无须外接上拉电阻。P1口是8位准双向I/O口,具有内部上拉电阻,驱动能力为4个LSTTL负载。P2是8位准双向I/O口,具有内部上拉电阻,可驱动4个LSTTL负载,当用来进行外部扩展时用作高8位地址总线。P3口是8位准双向I/O口,具有内部上拉电阻,可驱动4个LSTTL负载。P3口的所有口线都具有第二功能,实现控制总线的作用。
通常,数字逻辑器件在高电平输出时,负载的输出电流很小,因此仅考虑低电平输出时的负载能力。一般情况下,LSTTL电路的低电平输入电流为 -0.4 mA,而MCS-51系列单片机的P0口的低电平输出电流为4 mA,P1、P2、P3口的低电平输出电流为2 mA。
2.4时 钟 和 时 序
2.4.1时钟电路
MCS-51系列单片机的时钟信号通常由两种方式产生:一个是内部振荡方式;另一个是外部时钟方式,如图2-9所示。在MCS-51系列单片机的内部有一个高增益反相放大器,只要在单片机内部的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器,并在单片机内部产生时钟脉冲信号。振荡频率取决于石英晶体的振荡频率,范围可取1.2~12 MHz,典型值为12 MHz和6 MHz,图2-9(a)中的两个电容C1和C2起到了稳定频率和快速起振的作用,一般电容值在5~30 pF,典型值为30 pF。图2-980C51单片机时钟电路2.4.2时钟周期和机器周期
1.时钟周期
时钟周期是80C51系列单片机振荡器产生的时钟脉冲频率的倒数,即为系统时钟信号的振荡周期,简称时钟周期。它是单片机的最基本的定时信号。
2.状态周期
晶振频率经分频器后形成两相错开的时钟信号P1和P2。时钟信号的周期也称为机器状态周期,它是时钟周期的2倍。即一个状态周期包含两个时钟周期,分为两个节拍P1和P2(如图2-10所示),CPU就是以两相时钟P1和P2为基本节拍指挥8051的各个部件协调地工作。图2-1080C51单片机的时钟信号
3.机器周期
CPU完成一种基本操作所需要的时间称为机器周期,基本的机器周期有取指周期、存储器读周期和存储器写周期等,各种指令功能都是由这几种基本机器周期实现的。
一个机器周期含有6个状态周期,分别为S1、S2、S3、S4、S5、S6,每个状态又分为两个节拍P1、P2,则一个机器周期的12个节拍依次为S1P1、S1P2、S2P1、S2P2、…、S6P1、S6P2。机器周期与时钟周期有着固定的倍数关系,即机器周期是时钟周期的12倍(T机器周期
= 12T时钟周期)。如果系统时钟的晶振频率fOSC为12 MHz时,则
4.指令周期指令周期指单片机执行一条指令需要的时间。MCS-51单片机执行各种指令的时间是不一样的,基本上可以分为三种:单周期指令、双周期指令和四周期指令。MCS-51系列单片机的汇编语言指令共有111条指令,按照指令执行时间分为1个机器周期指令64条、2个指令周期指令45条、4个机器周期指令2条。四周期指令只有乘、除两条指令,其余指令全部都是单周期指令或双周期指令,三字节指令均为双机器周期指令。2.4.3MCS-51系列单片机的取指令和执行指令时序
1.单周期指令
对于单周期单字节指令,在S1P2期间把指令读入指令寄存器并开始执行指令,在S4P2期间读的下一个指令的操作码就要丢弃(如图2-11所示),且PC不加1。而对于单周期双字节指令,在S1P2把指令码读入指令寄存器,并开始执行指令。在S4P2读入指令的第二字节(如图2-12所示)。无论是单字节还是双字节指令均在S6P2期间结束该指令的操作。图2-11单字节指令时序图2-12双字节指令时序
2.双周期指令
对于单字节双周期指令,在两个机器周期之内要进行4次读操作,只是后3次的读操作无效(如图2-13所示)。图2-13单字节双周期指令时序2.4.4读外ROM时序
图2-1480C51读外ROM时序2.4.5读/写外RAM时序
1.读外RAM数据存储器过程
读外RAM数据存储器过程(如图2-15所示),可以分为以下几个步骤:
(1)取指令:在第一机器周期的S1~S4内,读写片外的RAM时首先就要读取外RAM中的指令,操作过程与读ROM一样。
(2)输出外RAM地址:在第一周期的S5~S6期间,在ALE的第二个下降沿读取片外RAM的地址,这个片外RAM的地址分别从P2和P0口送出,其中P0口锁存的是低8位地址,而P2口传送的是高8位地址,组合成16位的地址信息。图2-1580C51读外RAM时序
2.5复位和低功耗方式
2.5.1复位方式
复位操作就是使单片机的CPU或系统中的其他部件恢复到某种预先确定的初始状态,并从这一状态开始工作。只需给单片机的复位引脚RST加上大于两个机器周期(即24个时钟振荡周期)的高电平就可以使单片机复位。例如,如果时钟频率为12 MHz,单个机器周期为1 ms,则只需2 ms以上时间的高电平;若时钟频率为6 MHz,每个机器周期为2 ms,则需要持续4 ms以上时间的高电平。
MCS-51系列单片机复位操作后内部各寄存器的值如表2-5所示。表2-5SFR特殊功能寄存器的复位值
1.复位电路
单片机的复位电路通常采用上电自动复位和按钮复位两种方式(如图2-16所示)。
在图2-16(a)所示上电复位电路中,RC构成了微分电路,在上电瞬间,将产生一个微分脉冲,其宽度如果大于2个机器周期,80C51单片机将产生复位操作。为保证微分脉冲宽度大于2个机器周期,RC时间常数应大于2个机器周期,一般电容取22 mF、电阻取1 kW。
在图2-16(b)所示按钮复位电路中,该电路除具有上电复位功能外,如果要复位,只需要按下RESET键,1 kΩ的电阻和10 mF的电容构成了微分电路,使RST端产生一个微分脉冲复位,复位完毕后电容经电阻放电,等待下一次按下复位按键。图2-16MCS-51单片机的复位电路
2.程序运行工作方式
MCS-51单片机的程序运行方式包括连续执行方式和单步执行方式两种。其中,连续执行方式是程序最基本的执行方式,即从当前PC程序计数器指针值开始,连续不断地执行程序,直到遇到程序结束或暂停标志。当CPU执行复位操作后,PC指针总是指向0000H地址单元,而实际的程序运行应允许从程序存储器的任意位置开始,可通过调整程序计数器PC的数值使PC指向程序的实际起始地址。2.5.2低功耗方式
MCS-51单片机具有两种低功耗的工作方式:空闲方式和掉电保护方式。
正常情况下,在电源电压VCC=5 V,fOSC=12 MHz的条件下,MCS-51单片机的工作电流约为20 mA;而空闲方式下电流约为5 mA;掉电保护工作方式下电流仅为75 mA。这两种低功耗工作方式不是自动产生的,硬件本身不具有这种功能,只有通过编程方式置位特殊功能寄存器PCON(电源控制寄存器)有关位才能使MCS-51单片机进入节电工作状态的。
PCON字节地址为87H,不能进行位寻址,读写时只能进行按字节操作,其各位功能定义如表2-6所示。表2-6PCON各位功能定义
2.6ATMEL89系列单片机
ATMEL89系列单片机采用的是8031内核,因此它和8051系列单片机是兼容的。用ATMEL公司的89系列单片机取代8051是非常简单的,而且ATMEL89系列单片机的优点是片内ROM为FlashROM,读写方便,并可多次擦写,价格低廉。
ATMEL89系列单片机可以分为标准型、低档型和高档型三大类。标准型以AT89C51为代表,低档型以AT892051为代表,高档型以AT89S8252为代表。表2-7为ATMEL89系列单片机片内功能配置情况。表2-7AT89系列单片机片内功能配置
89系列单片机与80C51系列单片机相比具有如下优点。
(1)片内含有Flash存储器。
(2)与80C51系列单片机的引脚兼容。
(3)采用静态时钟方式。
(4)在线可编程模式。
(5)89系列单片机型号多样。2.6.1AT89C51系列单片机
AT89C51系列单片机属于标准型,引脚和功能与80C51完全兼容。它是一种带4K字节Flash可编程可擦除只读存储器(FPEROM,FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能8位CMOS单片机。AT89C51系列单片机的主要特点是:
(1)片内含有足够的FlashROM,可避免扩展外ROM。
(2) FlashROM修改程序十分方便。
(3)芯片的价格低廉,而性价比较高。
(4)加密功能更强。
(5)引脚功能。
(6)编程功能。
(7)工作频率更高。
(8)电源范围更宽。
(9)抗干扰性更强。
(10) AT89S51内新增SFR,双数据指针,AT89S51向下完全兼容51系列的所有产品,性价比更高,初学者尽可能选择这类单片机来学习。2.6.2AT89C2051系列单片机
AT89C51系列单片机是美国ATMEL公司生产制造的低电压、高性能8位CMOS低档型非总线型单片机,其型号包括AT89C1051、AT89C2051、AT89C4051等。
AT89C2051是一个带有2 KB字节Flash可编程可擦除只读存储器(EEPROM)的低电压、高性能8位CMOS单片机。它的主要特点是体积小。
图2-17为其引脚示意图。图2-17AT89C2051引脚示意图 2.7习题
1.MCS-51系列单片机内部结构包含哪些功能部件?各自具有什么功能?
2.MCS-51系列单片机有几种制作工艺?分别有什么特点?
3.ALE信号频率与时钟频率有什么关系?ALE信号的功能如何?
6.MCS-51系列单片机片内外数据存储器RAM是如何分配的?
7.片内的位寻址区是如何分配空间的?
8.80C51片内有多少特殊功能寄存器?地址空间如何分配?
9.PSW是什么寄存器?主要功能是什么?
10.什么是堆栈?它的作用是什么?
11.DPTR是什么寄存器?它是如何组成的?主要功能是什么?
12.PC是否属于特殊功能寄存器?它有什么作用?
13.MCS-51系列单片机如何实现工作寄存器组的选择?
14. 80C51单片机外RAM和ROM使用相同的地址,是否会在总线上出现冲突? 为什么?
15.P0口是如何实现通用I/O口的功能的?
16.P0口是如何实现地址和数据复用功能的?
17.P0~P3口的负载能力如何?
18.MCS-51系列单片机的时钟信号通常有几种产生方式?
19.简述时钟周期、状态周期、机器周期和指令周期的关系。
20.MCS-51系列单片机是如何访问片外ROM的?
21.MCS-51系列单片机是如何读写外RAM的?
22.80C51单片机的工作方式有几种?
23.80C51单片机如何实现复位功能的?复位后的状态如何?
24.MCS-51系列单片机有几种低功耗的工作方式?
25.简述89系列单片机与80C51系列单片机相比具有哪些优点。
26.AT89C51-12PI单片机的型号有什么含义?
27.AT89C51系列单片机有什么特点?
28.AT89C2051系列单片机有什么特点?实训二KeilCx51软件中调试窗口的使用
一、实验目的
(1)掌握在KeilCx51软件上编译、连接和运行程序的方法和过程。
(2)熟悉并掌握在KeilCx51软件中调试汇编源程序或单片机的Cx51语言的方法和各种调试窗口的使用。
二、实验设备与元器件
(1)具有至少20 MB硬盘、16 MB内存的Pentium、Pentium-Ⅱ或相应兼容处理器的PC机。
(2) KeilCV8.08版本的 mVision2/3软件。三、实验要求
(1)运行KeilCx51开发环境,熟悉各个菜单的功能。
(2)编写简单的汇编源程序或单片机的Cx51语言,学会源程序的编辑、编译过程。
(3)掌握汇编源程序及Cx51程序的调试方法。
四、实验内容与步骤
(1)在KeilCx51软件中,内建了一个仿真CPU用来模拟执行程序,该仿真CPU功能强大,可以在没有硬件和仿真机的情况下进行程序的调试,单击工具条上的按钮(如图2-18所示)即可进入调试状态。图2-18工程调试选择进入调试状态后,界面与编辑状态相比有明显的变化,Debug菜单项中原来不能用的命令现在可以使用了,工具栏会多出一个用于运行和调试的工具条,如图2-19所示。Debug菜单上的大部分命令可以在此找到对应的快捷按钮,从左至右依次是复位、全速运行、暂停、单步运行、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析和工具按钮等命令。图2-19mVision运行调试工具条在调试过程中,程序的运行有多种方式,主要分为单步执行、全速运行和过程单步运行。所谓全速运行是指从程序的第一条指令开始执行,一直执行到最后一条指令,中间不停止,这样执行的程序速度很快,并可以看到该段程序执行的总体效果。但如果程序有错,则难以确认错误出现在哪些程序行。单步执行时每次执行一行程序,执行完该行程序以后即停止,等待命令再执行下一行程序,此时可以观察该行程序执行完以后得到的结果,是否与我们写该行程序所想要得到的结果相同,借此可以找到程序中的问题所在。过程单步运行是指将汇编语言中的子程序或高级语言中的函数作为一个语句来全速执行。程序调试中,这三种运行方式都要用到。单击工具栏上的STEP按钮或使用功能键F11即可单步执行程序(如图2-20所示),单击工具栏上的STEPOVER按钮或使用功能键F10可以过程单步形式执行命令。按下F11命令键,可以看到源程序窗口的左边出现了一个黄色调试箭头,指向源程序的第一行,每次按下F11键即执行该箭头所指程序行,然后箭头指向下一行。当箭头指向ACALLDELAY行时,再次按下F11键,会发现箭头指向了延时子程序DELAY的第一行。不断按F11键,即可逐步执行延时子程序。图2-20单步运行示意图通过单步执行程序,可以找到一些问题的所在,但是仅仅依靠单步执行来查错有时是困难的,虽然能查出错误,但效率较低,为此必须辅之其他的方法,如本例中的延时程序。如果用按F11键的方法来执行完该程序行显然不合适,为此可以采取以下一些方法:①用鼠标在子程序的最后一行点一下,把光标定位于该行,然后选择菜单Debug→RuntoCursorLine(执行到光标所在行),即可全速执行完黄色箭头与光标之间的程序行;②在进入该子程序后,使用菜单Debug→StepOutofcurrentfunction(单步执行到该函数外),使用该命令后,即全速执行完调试光标所在的子程序或子函数并指向主程序中的下一行程序(这里是AJMPSTART);③在开始调试时,按F10键而非F11键,程序也将单步执行,不同的是,执行到ACALLDELAY行时,按下F10过程单步执行键,调试光标不进入子程序的内部,而是全速执行完该子程序,然后直接指向下一行AJMPSTART。灵活使用上述这几种方法,可以大大提高查错的效率。
(2)在线汇编。在进入Keil的调试环境以后,如果发现程序有错,可以直接对源程序进行修改。但是要使修改后的代码起作用,必须先退出调试环境,重新进行编译、连接后再次进入调试。如果只是需要对某些程序行进行测试,或仅需对源程序进行临时的修改,这样的过程就有些麻烦。为此,Keil软件提供了在线汇编能力,将光标定位于需要修改的程序行上,选择菜单Debug→InlineAssembler…,即可出现如图2-21所示的对话框。在EnterNew后的文本框内直接输入需更改的程序语句,输入完成后按Enter键。同时,文本框内容自动变为下一条语句,可以继续修改
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025厂长劳动合同签订与劳动争议调解协议4篇
- 2025年度体育设施承包经营协议范本3篇
- 二零二五新春企业复工环境保护合同2篇
- 2025年度环保型产品宣传册创意设计制作服务合同4篇
- 2025年厂房租赁合同智能化管理版4篇
- 个人二手车辆交易合同2024年专用
- 2025年度文化遗产地拆迁产权保护协议4篇
- 2025年度智能安防产品委托设计合同4篇
- 2025不动产交易担保合同范本3篇
- 两地研学合作协议合同范本 2篇
- GB/T 12494-1990食品机械专用白油
- 运输供应商年度评价表
- 成熙高级英语听力脚本
- 北京语言大学保卫处管理岗位工作人员招考聘用【共500题附答案解析】模拟试卷
- 肺癌的诊治指南课件
- 人教版七年级下册数学全册完整版课件
- 商场装修改造施工组织设计
- (中职)Dreamweaver-CC网页设计与制作(3版)电子课件(完整版)
- 统编版一年级语文上册 第5单元教材解读 PPT
- 加减乘除混合运算600题直接打印
- ASCO7000系列GROUP5控制盘使用手册
评论
0/150
提交评论