《第一次实验示例程序必读课件》由会员分享,可在线阅读,更多相关《第一次实验示例程序必读课件(29页珍藏版)》请在金锄头文库上搜索。
1、(1)P0和P2口,P0口锁存器和缓冲器结构,P0口除了作普通的I/O口,直接和外部设备打交道外;还用作片外总线的地址总线AB0-AB7的低八位、数据总线。,P2口锁存器和缓冲器结构,P2口除了作普通的I/O口,直接和外部设备打交道外;还用作片外总线的地址总线的高八位地址线AB8-AB15,注意:P0口在作输出入口使用时,由于它无内部上拉电阻,为了在口线上输出高电平并具有一定的驱动能力,必须外接上拉电阻。作输入口使用时,为了防止口锁存器对输入口线的输入信号造成影响,必须先往口锁存器写1。同理,P2口作输入时,也必须先往口锁存器写1。,(2)P1口,P1口锁存器和缓冲器结构,P1口只用作普通输入
2、输出口,注意:和P0、P2口一样,为防止口锁存器对输入口线造成影响,P1口作输入时,也必须先往口锁存器写1。,(3)P3口,P3口锁存器和缓冲器结构,P3口除了作普通的I/O口(功能和P1口一样)直接和外部设备打交道外;还具有第二功能。,P3.0串行输入口(RXD) P3.1串行输出口(TXD) P3.2外中断0(INT0) P3.3外中断1(INT1) P3.5定时/计数器1的外部输入口(T1) P3.6外部数据存储器写选通(WR) P3.4定时/计数器0的外部输入口(T0) P3.7外部数据存储器读选通(RD),2.单片机的软件及数据如何存放?,从前面的任务中,我们还看到要控制灯闪烁,必须
3、编制程序,还必须将控制灯的相关数据预先存储,那么,在单片机中的程序和数据是怎样保存的?原来,在单片机内部有程序存储器和数据存储器,如果内部程序存储器和数据存储器的容量不够的话,还可以在单片机外部为它扩展,最大我们可以将程序存储器空间总容量扩大到64K,将数据存储器在片外再单独扩展64K,这样,以89S51为例,数据存储器的总容量可达64K(片外)128字节(片内)。,MCS-51单片机的存储器组织结构,采用典型的哈佛结构,即程序存储器和数据存储器完全独立,拥有各自的寻址系统,包括片内数据存储器与片外数据存储器都拥有自己独立的寻址系统。,MCS-51单片机存储器组织结构,(1)程序存储器,用途:
4、 存放程序及程序运行时所需的常数。,寻址范围:0000H FFFFH 容量64KB,即地址长度:16位,,寻址内部ROM;,说明:当PC值超过片内ROM容量时会自动转向 外部存储器 空间。,,寻址外部ROM。,程序存储器中6个具有特殊含义的单元,0000H 系统复位,PC指向此处; 0003H 外部中断0入口 000BH T0溢出中断入口 0013H 外中断1入口 001BH T1溢出中断入口 0023H 串口中断入口,(2)数据存储器,用途:存放程序执行的中间结果和过程数据的 。,物理上分为两大区域: 00H 7FH即128B用户RAM区。 80H FFH即特殊功能寄存器区。,位寻址区,位寻
5、址区(20H2FH)16个字节。 16*8=128位,每一位都有一个位地址,范围为:00H7FH,位地址区也可作为一般的用户RAM使用。,(3)特殊功能寄存器,1)程序计数器PC(program Counter),程序计数器在物理上是独立的,它不属于特殊内部数据存储器块中。 PC是一个16位的计数器,由两个八位寄存器PCH和PCL组成,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。 PC本身并没有地址,因而不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序的执行顺序。,2)累加器ACC(Ac
6、cumulator),累加器A是一个最常用的专用寄存器,大部分单操作指令的一个操作数取自累加器,很多双操作数指令中的一个操作数也取自累加器。 加、减、乘、除法运算的指令,运算结果都存放于累加器A或寄存器B中。 大部分的数据操作都会通过累加器A进行,它形象于一个数据运输中转站,在数据传送过程中,任何两个不能直接实现数据的传送单元之间,通过累加器A中转,都能送达目的。,3)寄存器B,在乘除法指令中,乘法指令中的两个操作数分别取自累加器A和寄存器B,其结果存放于AB寄存器对中。除法指令中,被除数取自累加器A,除数取自寄存器B,结果商存放于累加器A,余数存放于寄存器B中。,4)程序状态字(Progra
7、m Status Word),CY 进位/借位标志;位累加器。 AC 辅助进/借位标志;用于十进制调整。 F0 用户定义标志位;软件置位/清零。 OV 溢出标志; 硬件置位/清零。 P 奇偶标志;A中1的个数为奇数 P = 1;否则 P = 0。,5)数据指针(DPTR),数据指针为16位寄存器,编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用,即高位字节寄存器DPH和低位字节DPL。,DPTR主要是用来保存16位地址,当对64kB外部数据存储器寻址时,可作为间址寄存器使用,此时,使用如下两条指令: MOVXA,DPTR MOVXDPTR,A,在访问程序存储器时,DPTR可用来
8、作基址寄存器,采用基址+变址寻址方式访问程序存储器,这条指令常用于读取程序存储器内的表格数据。 MOVCA,A+DPTR,6)堆栈指针SP(Stack Pointer),指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H。,7)I/O口专用寄存器(P0、P1、P2、P3),I/O口寄存器P0、P1、P2和P3分别是MCS-51单片机的四组I/O口锁存器。,8)定时/计数器(TL0、TH0、TL1和TH1),MCS-51单片机中有两个16位的定时/计数器T0和T1,它们由四个8位寄存器组成的,两个16位定时/计数器却是完全独立的。我们可以单独对这四个寄存器进行寻址,但不能把T0和T
9、1当作16位寄存来使用。,9)定时/计数器方式选择寄存器(TMOD),TMOD寄存器是一个专用寄存器,用于控制两个定时计数器的工作方式,TMOD可以用字节传送指令设置其内容,但不能位寻址 。,3.单片机如何运行程序?,知道了单片机通过I/O口与外设打交道,也知道了单片机的程序与数据如何保存,到底单片机是如何运行程序的?原来单片机和其他微机一样,也拥有一个中央处理器(CPU)。,它通过单片机的内部总线,将单片机内部的各个部分:程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等联系在一起 。,内部总线有三种,数据总线:专门用来传送数据信息 。,地址总线:专门用
10、来传送地址信息,选中各操作单元。,控制总线:专门用来传送CPU各种控制命令,以便CPU统一指挥协调工作。完成程序所要执行的各种功能。,CPU执行程序一般包括两个主要过程,第一,就是从程序存储器中取出指令,指令的地址由PC指针提供。,第二,就是执指过程,取出的指令代码首先被送到CPU中控制器中的指令寄存器,再通过指令译码器译码变成各种电信号,从而实现指令的各种功能。,执行,取指令,分析,4.怎样保证CPU工作 ?,现在我们知道了单片机怎样取指、执指,即怎样运行程序了。那么怎样才能保证CPU有序的工作?这就必须提到单片机的两个非常重要的外围电路:单片机的时钟电路和复位电路。,Pin19: 时钟XT
11、AL1脚,片内振荡电路的输入端。 Pin18: 时钟XTAL2脚,片内振荡电路的输出端。,时钟电路如下,【振荡周期】:单片机外接石英晶体振荡器的周期。如外接石英晶体的频率若为12MHz,这其振荡周期就是1/12微秒。 【状态周期】:单片机完成一个最基本的动作所需的时间周期。如扫描一次定时器T0引脚状态所需要的时间。一个状态周期2个振荡周期。 【机器周期】:单片机完成一次完整的具有一定功能的动作所需的时间周期。如一次完整的读操作或写操作对应的时间。一个机器周期6个状态周期。 【指令周期】: 执行完某条指令所需要的时间周期,一般需要14个机器周期,如MUL AB指令是四机器周期指令。一个指令周期1
12、4个机器周期。,单周期单字节指令时序,复位电路如下,单片机工作时,除了需要时钟支持外,还必须有一个初始状态,即单片机的复位状态。复位不改变RAM(包括工作寄存器R0-R7)的状态,89S51的初始态如下表:,Pin9: RESET复位信号脚,当89S51通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。,5.按键为何能打断原来的工作?,在前面的任务中,我们还看到一个现象,只要按一下S1键,发光管的闪动就停止5秒,这就相当于打断了原来既定的工作,等到5秒延时一到,又恢复原来的工作。这就象我们平时通常所说的“中断”。单片机中也有中断系统,它有5个中断源,它们
13、能打断单片机原来的工作,直到中断结束才能继续原来的工作。,6.发光二极管为何按一定频率闪烁?,在前面的任务中,灯有规律的闪动和按键停5秒,都离不开时间。那么,这个时间我们在前面的程序中是怎样得到的?原来,在89S51单片机中有两个定时器T0、T1,我们在前面也已经提到了,它在单片机中能够实现定时或计数功能。,7.单片机的其他资源,通过本次任务的分析,我们基本上知道MCS-51单片机的结构,它由CPU、程序存储器、数据存储器、并行输入输出口、定时计数器、中断系统等构成,当然除了本次任务用到的以上资源外,51单片机还有一个串行通讯口。,单片机的引脚除了我们前面介绍的4个并I/O口,两根时钟引脚(18、19脚),一根复位引脚(9脚),两根电源脚(40、20脚)外,还有以下一些引脚。,外部程序存储器读选通信号,地址锁存信号输出端1/6fosc,