单片机原理及应用-第1章-基本结构及工作原理课件_第1页
单片机原理及应用-第1章-基本结构及工作原理课件_第2页
单片机原理及应用-第1章-基本结构及工作原理课件_第3页
单片机原理及应用-第1章-基本结构及工作原理课件_第4页
单片机原理及应用-第1章-基本结构及工作原理课件_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.1 51系列单片机概述1.2 MCS-51单片机内部结构及引脚定义 1.3 MCS-51单片机程序存储器的配置1.4 MCS-51单片机数据存储器的配置1.5 振荡器与时钟电路1.6 CPU的时序1.7 8位并行输入输出端口第1章 MCS-51系列单片机的基本结构及工作原理1.1 51系列单片机概述第1章 MCS-51系列单片机的 (1)MCS-51是Intel公司生产的一个单片机系列名称。属于这一系列的单片机有多种,如: 8051/8751/8031; 8052/8752/8032; 80C51/87C51/80C31; 80C52/87C52/80C32等 。 1.1 51系列单片机概

2、述1.1.1 MCS-51系列 (2)该系列生产工艺有两种:一是HMOS工艺(高密度短沟道MOS工艺)二是CHMOS工艺(互补金属氧化物的HMOS工艺)CHMOS是CMOS和HMOS的结合,既保持了HMOS高速度和高密度的特点,还具有CMOS的低功耗的特点。在产品型号中凡带有字母“C”的即为CHMOS芯片,CHMOS芯片的电平既与TTL电平兼容,又与CMOS电平兼容。 (1)MCS-51是Intel公司生产的一个单片机系列名(3)在功能上,该系列单片机有基本型和增强型两类:增强型: 8052/8752/8032 80C52/87C52/80C32基本型: 8051/8751/8031 80C5

3、1/87C51/80C311.1 51系列单片机概述1.1.1 MCS-51系列 (4)在片内程序存储器的配置上,该系列单片机有三种形式,即掩膜ROM、EPROM和ROMLess(无片内程序存储器)。如:80C51有4K字节的掩膜ROM;87C51有4K字节的EPROM ;80C31在芯片内无程序存储器。(3)在功能上,该系列单片机有基本型和增强型两类:增强型: 1.1.2 80C51系列 Intel的:80C31、80C51、87C51,80C32、80C52、87C52等; ATMEL的:89C51、89C52、89C2051等; Philips、华邦、Dallas、iemens(Infi

4、neon)等公司的许多产品 。 80C51是MCS-51系列中CHMOS工艺的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80C51系列。 当前常用的80C51系列单片机主要产品有:1.1 51系列单片机概述1.1.2 80C51系列 Intel的:80C1.1.3 80C51系列典型产品资源配置1.1 51系列单片机概述1.1.3 80C51系列典型产品资源配置1.1 51系时钟电路4KROM程序存储器256BRAM数据存储器2X16位定时/计数器CPU处理器64KB总线扩展控制器可编程I/O端口P0-3可编程串行口中断控制 在MCS-51单片机中,一般包含有C

5、PU、程序存储器ROM、数据存储器RAM、定时/计数器、并行I/O端口、串行口、中断系统等;在高档单片机中还包含了通用机所设有的一些特殊的电路模块(A/D、D/A、PWM等)。1.2.1 MCS-51单片机内部结构(以8051为例)1.2 MCS-51单片机内部结构及引脚定义时钟电路4KROM256BRAM2X16位CPU64KB总线1.2 MCS-51单片机内部结构及引脚定义1.2.2 MCS-51单片机引脚定义(以8051为例) MCS-51单片机外型图(DIP封装) MCS-51单片机的逻辑符号图电源及控制P3口P1口P0口P2口87C51EPROM型AT89C51ATMELFLASH型

6、VCCGNDRXDTXD/INT0/INT1T0T1/WR/RDXTAL1 XTAL2RST/EA/PSENALE返回1.2 MCS-51单片机内部结构及引脚定义1.2.2 1、并行输入输出端口引线(4*8=32个)P0.0 - P0.7:P0端口线(39-32脚) 输出能力最强的端口,可带8个TTL负载(输出开路结构,所以驱动拉电流负载时,应接一个10k左右的上拉电阻); 当系统使用外接存储器时,P0口还作为低八位地址总线和 数据总线(此时P0口不能作为通用的I/O端口)。P1.0 - P1.7:P1端口线(18脚):负载能力为4个TTL负载。P2.0 P2.7:P2端口线(2128脚) 通

7、用I/O端口,负载能力为4个TTL ; 当系统使用外接存储器时,该口还作为高八位地址总线 (此时P2口不能作为通用的I/O端口)。引脚图MCS-51单片机有DIP和PLCC两种封装形式。1.2 MCS-51单片机内部结构及引脚定义1、并行输入输出端口引线(4*8=32个)引脚图MCS-51P3.0 P3.7 P3端口线 (10 17脚): 通用I/O端口,负载能力为4个TTL ; 具有第二功能。口线定义说明口线定义说明P3.0RXD串行数据输入口P3.4T0计数器外部输入信号P3.1TXD串行数据输出口P3.5T1计数器外部输入信号P3.2INT0外部中断输入口P3.6/WR外部数据存储器写信

8、号P3.3INT1外部中断输入口P3.7/RD外部数据存储器读信号P3口第二功能表引脚图1.2 MCS-51单片机内部结构及引脚定义P3.0 P3.7 P3端口线 (10 17脚):口2、电源线(2条): Vcc(+5V, 40脚)和Vss(GND, 20脚)3、控制线(6条)(1) 外接晶体引脚:XTAL1(19脚)、XTAL2(18脚) 在两脚之间接入一个晶体振荡器,单片机就以此晶体的频率开始工作。其频率范围一般为:024M。频率越高,单片机的工作速度就越快,但单片机的功耗就要增加。(2)RST/Vpd(9脚):复位信号输入,高电平有效。 在单片机上电开始工作时, 必须在此引脚上有一个两个

9、时钟周期的高电平使单片机复位(外复位电路)。 另外当单片机掉电时,此引脚可以接入备用电源向单片 机内部的RAM供电,以防止RAM中的数据丢失。 1.2 MCS-51单片机内部结构及引脚定义引脚图2、电源线(2条): 1.2 MCS-51单片机内部结构及在复位状态下:绝大多数SFR的内容全变为“0”, 端口输出“1”。RAM内容不变。自动上电复位电路具有手动复位功能的复位电路为什么需要复位?1.2 MCS-51单片机内部结构及引脚定义MCS-51RSTVcc51k 1k1mFMCS-51RSTVccR C 在复位状态下:绝大多数SFR的内容全变为“0”,自动上电复位(3)/EA / Vdd (3

10、1脚):允许访问片外存储器/编程电源线 程序存储器的选择控制端 /EA=“1” 时:单片机使用内部的程序存储器; /EA=“0” 时:单片机使用外部的程序存储器。 但要特别注意:如果EA=1即使用单片机内部的程序存储器时,如果程序计数器PC的值超过0FFFH时(对8051而言),单片机将自动转向外部程序存储器1000H开始的单元。 对于EPROM型的单片机,此脚还是用于写程序时,加入21V的编程电压。1.2 MCS-51单片机内部结构及引脚定义引脚图(3)/EA / Vdd (31脚):允许访问片外存储器/编片内ROM4K(EA=1)/EA决定着对ROM的使用选择MCS-51单片机片内RAM2

11、56B片外RAM64K片外ROM64KEA=0或片内溢出000HFFFH0000HFFFFH0FFFH1000H片外ROM64KEA=0或片内溢出片外ROM64KEA=0或片内溢出片内ROM4K(EA=1)1.2 MCS-51单片机内部结构及引脚定义片内/EA决定着对ROM的使用选择MCS-51片内片外片外0(4)/PSEN(29脚):片外ROM的选通输出信号 当使用外部程序存储器时,此脚在一个机器周期内产生两次负脉冲(访问外部数据存储器时,此信号无效)。(5)ALE/PROG(30脚):地址锁存允许/编程线 可作为外部存储器低八位地址的锁存信号;不访问片外数据存储器时以一个不变的频率( fo

12、sc/6)周期性输出脉冲; 还是EPROM型单片机编程时编程输入脉冲。1.2 MCS-51单片机内部结构及引脚定义3、控制线(6条)(1)外接晶体引脚:XTAL1(19脚)、XTAL2(18脚)(2)RST/Vpd(9脚):复位信号输入,高电平有效。(3)/EA / Vdd (31脚):允许访问片外存储器/编程电源线引脚图(4)/PSEN(29脚):片外ROM的选通输出信号1.2 1.3.0 MCS-51单片机的存储器的配置特点 内部集成了4K的程序存储器ROM; 内部具有256B的数据存储器RAM; 可以外接64K的程序存储器和数据存储器。从物理结构的角度讲,51单片机的存储系统可以分为四个

13、存储空间:即片内ROM,RAM和片外ROM、RAM。从逻辑上讲(即用户编程的角度讲)51单片机的存储系统又可分为三个存储空间。即片内RAM,片外RAM, 片内外统一编址的程序存储器ROM。1.3 MCS-51单片机程序存储器的配置1.3.0 MCS-51单片机的存储器的配置特点 内部从物理结构上单片机系统的存储器结构图(4个部分) MCS-51单片机片内ROM4K(EA=1)片内RAM256B片外RAM64K片外ROM64K(EA=0或片内溢出)000HFFFH0000HFFFFH0FFFH1000H1.3 MCS-51单片机程序存储器的配置1.3.0 MCS-51单片机的存储器的配置特点 从

14、物理结构上单片机系统的存储器结构图(4个部分) MCS-1.3.1 关于程序存储器(片内与片外)(1)程序存储器(ROM)是存放程序、常数和表格的。(2)在MCS-51单片机中: /EA=1时,系统执行片内的4KROM中的程序; /EA=0时,系统使用片外ROM中的程序。(3)无论是使用片内还是使用片外的ROM(即 EA=1或EA=0),其起始地址都是从0000H单元开始。(4)尽管系统具备片内ROM和外部ROM,但是在一般正常使用情况下,只能通过/EA的设定来选择其中之一。所以,在物理上的两个存储空间在逻辑上却只是一个(或者使用内部ROM;或者使用外部ROM)。1.3 MCS-51单片机程序

15、存储器的配置1.3.1 关于程序存储器(片内与片外)(1)程序存储器(5)如果/EA=1(执行片内程序存储器中程序时):0FFFH0000H0FFFH0000HFFFFH1000HEA=1时,ROM的使用片外程序存储器(最大64K)单片机内部程序存储器(4K)1.3 MCS-51单片机程序存储器的配置 若程序计数器的指针PC值超过0FFFH(4K)时,单片机就要自动的转向片外的ROM(尽管EA=1),且从片外ROM的1000H单元开始执行程序(此时:单片机是无法使用片外ROM的0000H-0FFFH这4K单元)。(5)如果/EA=1(执行片内程序存储器中程序时):0FF0FFFH0000H0F

16、FFH0000HFFFFH1000HEA=1时,ROM的使用片外程序存储器(最大64K)单片机内部程序存储器(4K)一种便于程序加密的ROM使用方案(6)当程序太大,必须使用外部ROM时的一种设定方法: 将/EA=1,程序从内部4K开始,然后自动转向外部ROM的1000H开始的单元。可以加密无法加密1.3.1 关于程序存储器(片内与片外)1.3 MCS-51单片机程序存储器的配置0FFFH0FFFHFFFFHEA=1时,ROM的使用片外程1.3.2 程序存储器六个特殊的单元 在程序存储器中,以下六个单元是专用的0000H单元:上电复位时程序计数器PC指向的单元;0003H单元:外部中断/INT

17、0的入口地址;000BH单元:定时器T0的溢出中断入口地址;0013H单元:外部中断/INT1的入口地址;001BH单元:定时器T1的溢出中断入口地址;0023H单元:串行口接收、传送的中断入口地址。ROM图1个复位地址+5个中断源入口地址1.3 MCS-51单片机程序存储器的配置1.3.1 关于程序存储器(片内与片外)返回1.3.2 程序存储器六个特殊的单元 在程序存储A15A14 : :A8A7 O7 : : : :A0 O0OE64K ROMMCS-51完整的地址信号三态输出的数据口由/OE控制D7 Q7 74LS373D0 Q0 G /L P2.7: : : P2.0P0.7: : :

18、 P0.0ALE/EA /PSEN1.3 MCS-51单片机程序存储器的配置1.3.3 外部程序存储器的总线结构图64K ROMMCS-51完整的地址信号三态输出的数据口由/1.4.1 内部数据存储器RAM数据存储器无论在物理上还是逻辑上都分为两个地址空间,即一个内部和一个外部的RAM,访问指令不同: 访问内部数据存储单元时,使用 MOV 指令; 访问外部数据存储器时,使用 MOVX 指令。内部RAM从功能上又将256B空间分为二个不同的块: (1)低128B的RAM块; (2)高128B的SFR(Special Function Register )块。 高128B的专用寄存器区SFR中仅仅

19、使用了21个寄存器(51系列),其它单元不能使用。 在低128B的RAM存储单元中又可划分为:工作寄存器区、位寻址区、通用存储数据的“便笺区”。1.4 MCS-51单片机数据存储器的配置1.4.1 内部数据存储器RAM数据存储器无论在物理上还是逻MCS-51 片内 、片外 数据存储器示意图特殊功能寄存器SFR通用数据存储器80H7FH00HFFH片内RAM256B个字节片外数据存储器64KB0000HFFFFH注意:1)访问片内RAM20H单元MOV A,20H2)访问片外RAM20H单元 MOV R0, #20hMOVX A,R01.4.1 内部数据存储器RAM1.4 MCS-51单片机数据

20、存储器的配置返回SFR 片外MCS-51 片内 、片外 数据存储器示意图特殊通用80H0片内RAM低128B 字节功能分配图位寻址区3组2组1组0组便笺区08H07H00H7FH30H2FH20H1FH18H17H10H0FH四个工作寄存器组每个区中有R0-R7八个工作寄存器位寻址区16个单元20H-2FH,共有128个可寻址位。位地址:00H-7FH注意:位地址与字节地址的区别通用的RAM区地址:30H-7FH返回1.4.1 内部数据存储器RAM1.4 MCS-51单片机数据存储器的配置返256B片内RAM低128B 字节功能分配图位寻址区3组2组1组0组片内 RAM(20H-2FH)中的位

21、寻址区结构图7F7E7D7C7B7A797877767574737271706F6E6D6C6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A393837363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201002FH20H共128个可按位寻址的位返回1.4 MCS-51单片机数据存储器

22、的配置字节地址片内 RAM(20H-2FH)中的位寻址区结构图7F7E7D位寻址区内的地址是位地址。共有00-7FH(128个位);要区分字节地址和位地址这两个不同的地址概念: 从物理的角度,每一个字节地址内包含了8个位,即: D7,D6,D5,D4,D3,D2,D1,D0 在一般情况,提到的RAM地址都是字节地址。返128B1.4 MCS-51单片机数据存储器的配置可位寻址的空间是一般微机所不具备的,这种位寻址能力是8051所独有的。20H2FH:既可以字节操作,又可以位操作,但是要用不同的指令来区分; MOV20H,A (字节寻址) MOV20H,C (位寻址) SETB 00H (位寻址

23、直接给出位地址) SETB 20h.0(位寻址给出的是字节地址)MOV24H.0,C位寻址区内的地址是位地址。共有00-7FH(128个位);返1.4 MCS-51单片机数据存储器的配置工作寄存器组(片内RAM地址00H1FH) 每个工作寄存器组都有8个工作寄存器(R0R7),每个工作寄存器对应一个固定的地址。如:工作寄存器组1中R0的地址为08H。在单片机正常工作时,只有一组工作寄存器处于前台工作。18H1FH10H17H08H0FH00H07H3组工作寄存器组2组工作寄存器组1组工作寄存器组0组工作寄存器R0,R1,R7R0,R1,R7R0,R1,R7R0,R1,R7返128B位寻址3组2

24、组1组0组便笺区08H07H00H7FH30H2FH20H1FH18H17H10H0FH1.4 MCS-51单片机数据存储器的配置工作寄存器组(片特殊功能寄存器SFR (Special Function Register)用来设定单片机内部各模块的工作方式,存放相关模块的状态与标志,如定时器、串行口,并行端口的锁存器等等。 尽管特殊功能寄存器与RAM在同一个单元中,但不能作为普通的RAM存储单元来使用。 (只有在编程中根据需要,进行一些特定功能的设定,或者是从中查寻相关部件的状态时,才能进行读、写操作。如中断方式的设定、定时器工作模式的设定,查询串行口发送或接收是否结束等等) 1.4 MCS-

25、51单片机数据存储器的配置1.4.1 内部数据存储器RAM特殊功能寄存器SFR (Special Function R标识符名 称地 址ACC累加器0E0HBB寄存器0F0HPSW程序状态字0D0HSP堆栈指针81HDPTR数据指针(包括DPH,DPL)83H,82HP0端口080HP1端口190HP2端口20A0HP3端口30B0HIP中断优先级控制寄存器0B8HIE中断允许控制寄存器0A8HTMOD定时/计数器方式控制寄存器89HTCON定时/计数器控制寄存器88H特殊功能寄存器SFR(表1)1.4 MCS-51单片机数据存储器的配置标识符名 称地 址ACC累加器0E0HBB寄存SFR高1

26、28B低128B0FFH80H7FH00H注:表中红色的单元为可按位寻址的字节1.4 MCS-51单片机数据存储器的配置特殊功能寄存器SFR(表2)标识符名 称地 址TH0定时/计数器0初值寄存器高8位8CHTL0定时/计数器0初值寄存器低8位8AHTH1定时/计数器1初值寄存器高8位8DHTL1定时/计数器1初值寄存器低8位8BHSCON串行口控制寄存器98HSBUF串行口数据缓冲器(接收,发送)99HPCON电源控制寄存器97HSFR低128B0FFH80H00H注:表中红色的单元为可按特殊功能寄存器SFR说明 1)程序计数器PC: 用来存放下一条要执行的指令地址,16 位,即寻址范围为0

27、-65535(64K),在物理上独立于SFR。 2)累加器A: 最常用的专用寄存器, 大多数的指令操作数都 来自累加器A;所有的算术运算指令的运算结果都存放 在A中。 3)B寄存器: 乘除法指令使用的寄存器。 4)数据指针DPTR: 一个16位的寄存器,由高八位DPH和低 八位DPL构成。DPTR主要用来存放RAM、ROM中数 据块的首地址,所以称之为数据指针。 例:将片外RAM的2000H单元的数据x取出送到累加器A中。 MOV DPTR, #2000h ; DPTR 2000H MOVX A, DPTR ; A x(间址方式)1.4 MCS-51单片机数据存储器的配置1.4.1 内部数据存

28、储器RAM特殊功能寄存器SFR说明 1)程序计数器PC: 用来5)程序状态字PSW:8位寄存器,表征程序执行的状态信息。CY(PSW.7)进位标志:在加法运算中,累加器A的最高位D7有进位,则CY=1,否则CY=0。同理,在减法运算中,如果A7有借位,则CY=1。AC(PSW.6)辅助进位位:用来判断加减法运算时,低四位是否向高四位进位或借位(即A3的进位或借位)。 F0(PSW.5) 用户标志位:完全由用户来定义和使用。RS1,RS0工作寄存器组选择位:确定工作寄存器R0-R7在4个组中的位置。可以通过修改RS1、RS0的值来改变工作寄存器组的选择。CYACF0RS1RS0OV-P1.4 M

29、CS-51单片机数据存储器的配置特殊功能寄存器SFR说明1.4.1 内部数据存储器RAM5)程序状态字PSW:8位寄存器,表征程序执行的状态信息。C特殊功能寄存器SFR说明5)程序状态字PSW:OV(PSW.2)溢出标志位: 判断有符号数运算时是否有溢出。 OV的结果可以用一个算法来表示: OV=CP CS 其中: CP为A7的进位, CS为A6的进位,OV=1表明有溢出。P(PSW.0)奇偶标志位: 用来标志累加器A中运算后1的个数。 当P=1时,表明A中1的个数为奇数个,反之为偶数个。 1.4 MCS-51单片机数据存储器的配置1.4.1 内部数据存储器RAMCYACF0RS1RS0OV-

30、P特殊功能寄存器SFR说明5)程序状态字PSW:1.4 MC【举例】有两个数0FH和F8H,试将两数相加 MOV A,#0FH ;将立即数0FH 送累加器A ADD A,#0F8H ;A的内容与立即数0F8H相加,结果送A 0000 1111 运算结果:A=07H + 1111 1000 Cy1 0000 0111如何根据PSW来分析运算结果是否有溢出?1)若数据为无符号数。即15+248=263=107H ,CY=1, A=07H。数据超过255(CY=1)有溢出;2)若为有符号数。则为+15加-8=+7=07H,OV=0表明无溢出。CY=1(即CP=1),OV=0(因为CP=1,CS=1)

31、AC=1,P=11.4 MCS-51单片机数据存储器的配置【举例】有两个数0FH和F8H,试将两数相加CY=1(即CP6)SP 堆栈指针:8位寄存器,用来指示堆栈的位置,可由软件修改。51单片机的设计中,片内RAM区低128单元为堆栈的可用空间。(复位时,SP被初始化为07H) 堆栈操作过程: 进栈: PUSH ACC指令(设SP=07H) 1)SP+1送SP,此时SP=08H; 2)ACC送RAM的08H单元;出栈: POP ACC (设SP=08H); 1)将RAM 中08H单元内容送A; 2)SP-1送SP ,此时SP=07H。 07HSP07HRAMx累加器A08H“临时仓库”1.4

32、MCS-51单片机数据存储器的配置特殊功能寄存器SFR说明1.4.1 内部数据存储器RAM“先加后压” “先弹后减”6)SP 堆栈指针:8位寄存器,用来指示堆栈的位置,可由软件 通过修改SP的值来改变堆栈在RAM中的位置: MOV SP,#60H 08H07HRAM改变堆栈位置示意图61H60H7FH60HSP注意:FILO( First In Last Out)例:比较下列两段程序:MOV SP,#60H MOV SP, #60H PUSH 30H PUSH 30HPUSH 40H PUSH 40HPOP 40H POP 30H POP 30H POP 40H1.4 MCS-51单片机数据存

33、储器的配置特殊功能寄存器SFR说明6)堆栈指针SP:1.4.1 内部数据存储器RAM 通过修改SP的值来改变堆栈08HRAM改变堆栈7)并行端口P0-P3:SFR中的P0-P3实际上就是I/O端口的数据锁存器。与RAM中的任意一单元一样,P0-P3都有自己的RAM地址:80H、90H、A0H、B0H。所以,在51单片机中的输入、输出操作实际上就是个普通的RAM单元操作一样。如: 输出指令 MOV 80H, A;将A中的数据送到P0口输出 输入指令 MOV A, 90H;将P1口的数据输入到A中 即MCS-51的指令系统中没有专用的输入、输出(IN、OUT)指令,而是把P0-P3作为普通的内存单

34、元来使用。上面的第一个例子实际上就是MCS-51的输出指令;同理后者是MCS-51的输入指令。1.4 MCS-51单片机数据存储器的配置特殊功能寄存器SFR说明1.4.1 内部数据存储器RAM7)并行端口P0-P3:SFR中的P0-P3实际上就是I/O8)定时/计数器T0、T1:无论是定时还是计数,对于MCS-51单片机的定时/计数器来说,都是一个“计数器”在计数。这个“计数器”是由两个8位寄存器(高位和低位)构成的16位计数器,分别是TH0、TL0(T0);TH1、TL1(T1)。 TH和TL中的数据直接与“定时操作”或“计数操作”有关,因此在使用定时/计数器之前,要对它进行初始化,其中就要

35、对TH、TL赋初值。 如:MOV 8CH, #01H 或MOV TH0, #01H ;为TH0赋值 MOV 8AH, #20H ;为TL0赋值 TH0TL01.4 MCS-51单片机数据存储器的配置特殊功能寄存器SFR说明1.4.1 内部数据存储器RAM8)定时/计数器T0、T1:无论是定时还是计数,对于MCS-9)串行数据缓冲器SBUF:专门用来存放发送或接收的数据,实际上它是两个独立的寄存器。尽管在SFR中的RAM地址只是99H,但根据指令“发送”或“接收”两种不同的操作,硬件会自动的区分,将数据送如对应的缓冲单元。 MOV SBUF,A ;ASBUF (引发串口通信) MOV A,SBU

36、F ;SBUF A (读取串口中的数据)有关SFR中其它寄存器的说明将相关的章节中作介绍。1.4 MCS-51单片机数据存储器的配置发送SBUF接收SBUF内部数据总线TXDRXD累加器A返256B9)串行数据缓冲器SBUF:专门用来存放发送或接收的数据,实 当需要外接RAM时: (1)P0、P2作为外部RAM的地址和数据总线; (2)使用MOVX指令进行读写操作。如: MOV R0,#20H ; 将外部RAM单元地址20H送R0寄存器 MOVX A,R0 ; 从外部RAM20H单元取数据送A中 使用8位寄存器R0做间址寄存器,所以寻址范围为256B。 此时P0口做低8位地址总线,而P2口无用

37、。 或: MOV DPTR, #2000H ;将外部 RAM 地址2000H送DPTR MOVX A,DPTR ;从外部RAM 2000H单元取数据到 A 使用16位的寄存器DPTR,所以寻址范围为64KB。此时P0口做低8位地址/数据复用总线,P2口做高8位地址总线。1.4 MCS-51单片机数据存储器的配置1.4.2 外部数据存储器RAMMOVX 就是一个以“总线方式”进行操作的外部传送命令 当需要外接RAM时:1.4 MCS-51单MCS-51与8K RAM的连接P2.5 P2.4: : P2.0P0.7: : : P0.0ALE/RD/WRCEA12 :A8A7 O7 : : : :

38、: : A0 O0/OE /WED7 Q7 74LS373D0 Q0CP 6264 8K RAM MCS-51/CE = P2.5(A13)三态输出的数据口由/OE控制1.4 MCS-51单片机数据存储器的配置MCS-51与8K RAM的连接D7 Q7 6264MCS MCS-51内部有一个用于构成振荡器的高增益反相放大器。在单片机引脚的XTAL1和XTAL2分别是此放大器的输入和输出端,与作为反馈元件的晶体或陶瓷谐振器一起构成了一个自激振荡器。 内部时钟发生器的输出信号是单片机所需的时钟信号。 如果使用外部振荡器信号,其外来的信号加在XTAL1的引脚上(见右图)。XTAL230pF80513

39、0pFXTAL21XTAL1至内部时钟电路XTAL2XTAL1NC外时钟使用外时钟时的电路连接11.5 振荡器与时钟电路 MCS-51内部有一个用于构成振荡器的高时序: CPU执行指令时所需控制信号的时间顺序。 1.6.1 时序及时序单位1.6 CPU的时序 时序是用定时单位来描述的,MCS-51的时序单位有4个,分别是时钟周期(节拍)、状态、机器周期和指令周期。 时钟周期 状态; 机器周期; 指令周期。时序: CPU执行指令时所需控制信号的时间顺序。 时钟周期T:又称为振荡周期、节拍(用P表示),由外接晶体或外输入时钟来决定。其值为振荡器频率的倒数。它是时序中最小的时间单位。 例如:在单片机

40、外接1MHz的晶体,则单片机的系统时钟的频率为1MHz,时钟周期为1s。T 状态(用S表示):单片机振荡脉冲经过二分频后即 得到整个单片机工作系统的状态。一个状态有两个节 拍,前半周期对应的节拍定义为P1,后半周期对应的节 拍定义为P2。P1P2S11.6.1 时序及时序单位1.6 CPU的时序 时钟周期T:又称为振荡周期、节拍(用P表示),由外接晶体 机器周期:完成一个基本操作所需要的时间。MCS-51中规定一个机器周期包含12个时钟周期,即有6个状态,分别表示为S1S6;也可表示为12个节拍: S1P1,S1P2, S2P1,S2P2, S3P1,S3P2 S6P1,S6P2 时钟周期TT

41、 状态(用S表示)S1S2S6S5S4S3机器周期 指令周期:即执行一条指令所需要的时间,它是时序图中最大的时间单位。1.6 CPU的时序1.6.1 时序及时序单位 机器周期:完成一个基本操作所需要的时间。MCS-51中规 在MCS-51系统中,不同的指令所包含的机器周期数不同。它们分别是: 单机器周期指令双机器周期指令 四机器周期指令 (MCS-51单片机的指令系统除了乘、除法指令为四个机器周期外,其余都是单周期和双周期指令) 指令周期:即执行一条指令所需要的时间,它是时序图中最大的时间单位。1.6 CPU的时序 机器周期 时钟周期T 状态(用S表示)1.6.1 时序及时序单位 在MCS-5

42、1系统中,不同的指令所包含假设:我们使用一个6M的晶体振荡器,那么 一个机器周期为:1/6 s121=2s; 两个机器周期为:1/6 s122=4s; 四个机器周期为:1/6 s124=8s。 指令的运算速度与它所包含的机器周期数有关:机器周期数越少,执行的速度就越快。1.6 CPU的时序 指令周期 机器周期 时钟周期T 状态(用S表示)1.6.1 时序及时序单位假设:我们使用一个6M的晶体振荡器,那么1.6 CPU的时指令的字节数: MCS-51单片机的指令系统有: 单字节 (占用1个ROM字节) ; 双字节 (占用2个ROM字节) ; 三字节指令(占用3个ROM字节) 。O PROMO P

43、 2-1O P 2-2ROMO P 3-1O P 3-2O P 3-3ROM单字节指令双字节指令三字节指令1.6 CPU的时序指令的字节数:O PROMO P 2-1O P 2-2R在MCS-51的111条指令中,可分为六种基本的时序: (1) 单字节单周期指令; (2) 单字节双周期指令; (3) 单字节四周期指令; (4) 双字节单周期指令; (5) 双字节双周期指令; (6) 三字节双周期指令。1.6 CPU的时序在MCS-51的111条指令中,可分为六种基本的时序:1.6指令特点: 在程序存储器ROM中仅占一个存储单元,CPU 从取指到完成指令的执行只需一个机器周期。 1)在ALE第一

44、次有效时,从ROM中读取指令的操作,送入指令寄存器IR中并译码执行。 2)在ALE第二次有效时,封锁PC加1,使第二次读数无效。 单字节单周期指令的时序 1.6.2 几种典型时序介绍1.6 CPU的时序S1S2S6S5S4S3机器周期ALE读操作码1读操作数无效指令特点: 在程序存储器ROM中仅占一个存储单元,CPU1.【注意】: 1)每一个机器周期出现两次ALE信号; 2)ALE信号对应着从ROM中读指令。所以在一个机器周期中CPU可以完成两次取指操作; 3)对于单字节单周期的指令,CPU从取指令到完成指令的执行只需一个机器周期。CPU通过译码后封死PC,取消第二次取指(实际上指令的后半部不

45、做任何工作)。1.6 CPU的时序S1S2S6S5S4S3机器周期ALE读操作码1读操作数无效 单字节单周期指令的时序 1.6.2 几种典型时序介绍【注意】:1.6 CPU的时序S1S2S6S5S4S3机器 指令特点:一条指令长度为两个字节,并存储在ROM相邻 的两个单元中。要想完整地将这样的指令执行 完,必须从ROM中读两次操作码。 OP2-2OP2-1n+1n程序ROMPC1.6 CPU的时序 双字节单周期指令的时序 单字节单周期指令的时序 1.6.2 几种典型时序介绍 指令特点:一条指令长度为两个字节,并存储在ROM相邻O1)在ALE第一次有效时,CPU 从ROM的n单元中取指令的第一个

46、字节OP2-1,送入IR译码,通过译码CPU知道这是一条双字节指令,所以使PC加1,指向n+1单元;2)在ALE第二次有效时,从ROM的n+1单元取出指令的第二个字节OP2-2送入IR进行译码,并产生相应的操作,最后在S6P2时完成本条指令的运行。1.6 CPU的时序S1S2S6S5S4S3机器周期ALE读操作码1读操作码2 双字节单周期指令的时序 单字节单周期指令的时序 1.6.2 几种典型时序介绍1)在ALE第一次有效时,CPU 从ROM的n单元中取指令的 指令特点:单字节,却需要两个机器周期运行。 例如: INC DPTR DPTR为两个8位的寄存器。加1时,必须分两步完成:第一步DPL

47、加1,如果DPL加1有进位则还要进行第二步对DPH加1。 1.6 CPU的时序 单字节双周期指令的时序 双字节单周期指令的时序 单字节单周期指令的时序 1.6.2 几种典型时序介绍 指令特点:单字节,却需要两个机器周期运行。1.6 C 在指令周期的第一个ALE时,将ROM中的操作码OP取出,经IR译码后得知为单字节双周期指令。所以一面执行该指令,同时封锁后面三次ALE有效时的PC+1,在第二个机器周期的S6P2时,完成操作。1.6 CPU的时序S1S2S6S5S4S3机器周期1ALE读操作码1读无效S1S2S6S5S4S3机器周期2读无效读无效 单字节双周期指令的时序 双字节单周期指令的时序

48、单字节单周期指令的时序 1.6.2 几种典型时序介绍 在指令周期的第一个ALE时,将ROM中的操作码1.6 CPU的时序S1S2S6S5S4S3机器周期1ALE读操作码1读无效S1S2S6S5S4S3机器周期2读无效读无效ALES1S2S6S5S4S3读操作码1读操作码2S1S2S6S5S4S3读操作码1读无效单字节单周期、双字节单周期、单字节双周期指令的时序图 单字节单周期双字节单周期单字节双周期1.6 CPU的时序S1S2S6S5S4S3机器周期1AL设:单片机使用片外ROM,且要执行指令: movc a, a +dptr (设a=03, dptr=2000H) A15-A8(PC)A7-

49、A0OPA7-A0常数/PsenP2口P0 口S1S2S6S5S4S3ALE A15-A8 (DPTR+A)P0口输出低8位地址P2口输出高8位地址9410.93H2000H1B0FH程序段数据表格(PC)0FH1BH93H03H09H20H1.6 CPU的时序 访问外部程序存储器的时序 /PSEN P2口MCS- 51 P0口 ALED7 Q7D0 Q0G/CSA15A8 64K ROMA7A0 D0D774LS373设:单片机使用片外ROM,且要执行指令: A15-A8(1)在S2P1时刻,P2口输出外部ROM的高八位地址A15A8,P0口输出低八位地址A7A0, 这时地址是由程序计数器P

50、C提供的ROM中的指令地址;2)在ALE的后沿,P0口的数据(低8位地址)被锁存到74LS373中;3)在S3P2到S4P1期间,/psen变低电平时,外部ROM被选中, ROM输出端的三态门被打开,被选中单元中的指令 movc a, a +dptr送到P0口上,且在S4P2时经P0口送至CPU的IR中;4)CPU对指令译码后,在S4P2时进行常数地址计 算并由P0、P2口输出(P0口输出低8位地址00H;P2口输出地址高8位20H);5)在S5P2时,ALE将常数地址的低八位00H锁存;6)在S6P1时,/psen=0,外部ROM被再次选中打开,按照单片机所提供的16位地址,将外部ROM中的

51、常数经P0口在S6P2时刻送入累加器A。1.6 CPU的时序 访问外部程序存储器的时序 1)在S2P1时刻,P2口输出外部ROM的高八位地址A15 A15-A8(PC)A7-A0OPA7-A0常数/PsenP2口P0 口S1S2S6S5S4S3ALE A15-A8 (DPTR+A)取外部ROM中的指令执行指令(取常数)MOVC A,A+DPTR 指令执行的两个步骤1.6 CPU的时序 访问外部程序存储器的时序 A15-A8(PC)A7-A0OPA7-A0常数/PsMOVX A, DPTR; 将外RAM的x送A(设DPTR=3000H) /WR /RD P2口MCS-51 P0口 ALE 373

52、D7D0G/WR/RDA15A8 A7A064KRAMD0D7S1S2S6S5S4S3S1S2S6S5S4S3ALEPsenA15-A8(PC)A15-A8(DPH)A7-A0指令A7-A0数据RDP2口P0口选中外部RAM9421.E0H93H1B0FH(PC)1B10H10H1BHE0H00H30H转小结1.6 CPU的时序 读外部数据存储器的时序 MOVX A, DPTR; /WR 1)在S2P2时,ALE的第一个下降沿将P0口输出的外程序ROM的低八位地址锁存到74LS373锁存器中;2)在S3P2的Psen为低电平时,选中片外ROM,并根据P0、P2口输出的16位地址读取movx指令

53、(单字节),通过P0口送至单片机内部IR中译码。译码后产生下列的一系列操作;3)CPU将DPTR中的高8位(30H)送P2口输出,低八位(00H)经P0口输出,节在S5P1时ALE第二次下降沿时,将P0口的低八位地址锁存;4)在第二个机器周期的S1-S3中单片机输出/RD信号(低电平),选中外部RAM,并根据单片机提供的3000H 这16位地址中取出数据x;5)CPU在S2-S3期间,将外部RAM3000H单元送到P0口上的数据送入累加器A中。1.6 CPU的时序 读外部数据存储器的时序 1)在S2P2时,ALE的第一个下降沿将P0口输出的外程序R 上述过程可以分成两个指行的阶段: 1)根据P

54、C所指定的程序存储器的地址,将movx指令从片外ROM中取出;2)经译码后将DPTR提供的外数据存储器RAM中的数据地址取出数据,经P0口送累加器A。控制信号:在第一阶段CPU产生/Psen信号用来选通外部程 序存储器ROM; 在第二阶段CPU输出/RD信号(低电平),用来选 通并读取外部数据存储器RAM的数据。【注意】:CPU在执行MOVX指令时的2个周期中的第2个机器周期缺少一个ALE波形(不再是1/6 fosc固定频率)。1.6 CPU的时序 读外部数据存储器的时序 上述过程可以分成两个指行的阶段:1.6 C访问外部存储器指令的特点:使用MOVC或MOVX指令来访问外部存储器;此时,P0

55、、P2作为地址和数据总线;执行MOVC指令访问ROM时,CPU产生/psen信号来选通外ROM。因此,此信号应当与ROM的片选连接。执行MOVX指令访问外部RAM时,CPU产生/RD或/WR信号。因此,/RD、/WR应与外部RAM的读、写控制端连接;1.6 CPU的时序访问外部存储器指令的特点:使用MOVC或MOVX指令来访问外CPU输入输出端口外部设备内总线I/O端口成为CPU与外部设备进行数据交换的桥梁MCS-511.7 8位并行输入输出端口MCS-51单片机的四个并行端口P0、P1、P2和P3都是具有输出锁存功能的双向端口,这些锁存器的位置都在SFR中,其地址分别为:80H、90H、A0

56、H 、B0H。这4个端口可并行输入或输出8位数据;也可按位使用,即每一根I/O线都能独立地用作输入或输出。出于系统的考虑,在硬件设计上因为对端口功能都有不同的要求,所以它们又具有不同的结构特点。CPU输入输出外部设备内总线I/O端口成为CPU与外部设备进1.7.1 P0口1.7.2 P1口1.7.3 P2口1.7.4 P3口1.7.5 并行端口在使用时应注意的几个问题1.7.6 单片机与继电器等大电流负载的接口1.7 8位并行输入输出端口1.7.1 P0口1.7.2 P1口1.7.3 P2口1.7.1 P0口【特点】:(1)“通用数据I/O端口”和“地址、数据复用总线”。(2)在作为通用数据I

57、/O端口时,具有较强的输出驱动能力(8个TTL负载)。因为是“开漏”输出,所以与拉电流负载连接时,需要外接一个上拉电阻。(3)作为“地址、数据复用总线”使用时,P0口首先输出外部存储器的低八位地址,然后再变为数据总线进行数据的输入或输出(注意:此时P0口不能再作为通用I/O口)。1.7 8位并行输入输出端口1.7.1 P0口【特点】:1.7 8位并行输入输出D Q 锁存器CL /Q地址/数据控制(=0 时)读锁存器读引脚内部总线写锁存器MUX (控制=0时)P0.x引脚VccP0口的位结构图Vcc 用作通用端口时001输出时:例mov P0, A输入时:例mov A, P0?输入时需预先置1应

58、为:mov p0,#0FFH mov A, P01011.7 8位并行输入输出端口1.7.1 P0口返回D Q地址/数据控制(=0 时)读锁存器读引脚内部 用作地址/数据总线时转至小结1.7 8位并行输入输出端口D Q 锁存器CL /Q地址/数据控制(=1时)读锁存器读引脚内部总线写锁存器MUX (控制=1时)P0.x引脚VccP0口的位结构图1.7.1 P0口 用作地址/数据总线时转至小结1.7 8硬件组成:1)一个输出锁存器(D型触发器);2)二个三态门(控制读引脚或读锁存器);3)与门和MUX等元件组成的输出控制电路;4)一对场效应晶体管FET构成的输出电路。1.7 8位并行输入输出端口

59、1.7.1 P0口硬件组成:1)一个输出锁存器(D型触发器);1.7 8位1、P0口的I/O操作(通用I/O端口) 在P0口作为通用I/O端口时,控制电路中的“控制”端为“0”电平,此时多路开关MUX接入下方的锁存器的/Q端。 由于与门的一个输入端为“0”,所以它使上端的FET截止。这就是P0口在做I/O口时输出为“漏极开路” 结构的原因。1.7 8位并行输入输出端口1.7.1 P0口(1)输出操作: MOV P0,A 数据经内总线送到锁存器的“D”端,经“/Q”端送场效管应输出极。 总线送“0”时:锁存器的/Q=1,使下端的FET导通(上面的FET截止),端口呈现“0”电平; 总线送“1”时

60、:锁存器/Q=“0”,使下端的FET截止,输出极的两个FET全部截止。在这种情况下,必须通过上拉电阻的作用使端口为高电平。1、P0口的I/O操作(通用I/O端口) (2)输入操作 MOV P0,#0FFH MOV A,P0 ; AP0 在端口电路中,可以发现一个问题: 端口在输入(读引脚)时,原来锁存器的状态可能要影响引脚电平的输入。如:原来锁存器的状态为“0”态,电路将不能正确读入。要解决的方法就是让下端的FET截止,即事先向端口写一个“1”。注意:端口输入前要先写“1”1.7 8位并行输入输出端口1.7.1 P0口(2)输入操作 在端口电路中,可2、P0口的总线方式(系统使用外存储器时)控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论