嵌入式系统设计.pptx

上传人:可**** 文档编号:91052913 上传时间:2023-05-21 格式:PPTX 页数:108 大小:645.69KB
返回 下载 相关 举报
嵌入式系统设计.pptx_第1页
第1页 / 共108页
嵌入式系统设计.pptx_第2页
第2页 / 共108页
点击查看更多>>
资源描述

《嵌入式系统设计.pptx》由会员分享,可在线阅读,更多相关《嵌入式系统设计.pptx(108页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、嵌入式系统设计嵌入式系统设计.ppt1.1 MCS-51系列芯片举例型 号 片内ROM片内RAMI/O口线封 装8031无128B+SFR84DIP 40脚8051掩膜4KB128B+SFR84DIP 40脚8751EPROM 4KB128B+SFR84DIP 40脚AT89C2051FLASH 2KB128B+SFR15DIP 20脚SOIC 20脚AT89C51FLASH 4KB128B+SFR84DIP 40脚PLCC 44脚AT89C52FLASH 8KB256B+SFR84DIP 40脚PLCC 44脚P89C51RD2FLASH 64KBEEPROM 2KB1024B+SFR86D

2、IP 40脚PLCC 68脚本次实验用 MCS-51 单片机P89LV51RD2 的主要性能和特点 增强形增强形增强形增强形INTEL 8052 CPU INTEL 8052 CPU 内核内核内核内核 内部程序存储器内部程序存储器内部程序存储器内部程序存储器ROM ROM:64KB64KB(FLASH FLASH)内部数据存储器内部数据存储器内部数据存储器内部数据存储器RAMRAM:1KB RAM 1KB RAM 寄存器区:有寄存器区:有寄存器区:有寄存器区:有4 4个寄存器区,每个区有个寄存器区,每个区有个寄存器区,每个区有个寄存器区,每个区有R0-R7R0-R7八个工作寄存器八个工作寄存器

3、八个工作寄存器八个工作寄存器 8 8位并行输入输出端口:位并行输入输出端口:位并行输入输出端口:位并行输入输出端口:P0P0、P1P1、P2P2、P3P3 定时定时定时定时/计数器:计数器:计数器:计数器:2 2个个个个1616位的定时位的定时位的定时位的定时/计数器计数器计数器计数器 串型口:全双工的端口(串型口:全双工的端口(串型口:全双工的端口(串型口:全双工的端口(RXDRXD:接收端,:接收端,:接收端,:接收端,TXDTXD发送端)发送端)发送端)发送端)硬件硬件硬件硬件SPISPI:支持程序下载:支持程序下载:支持程序下载:支持程序下载 中断系统:设有中断系统:设有中断系统:设有

4、中断系统:设有5 5个中断源个中断源个中断源个中断源 堆栈:设在内堆栈:设在内堆栈:设在内堆栈:设在内RAMRAM单元中,通过堆栈指针单元中,通过堆栈指针单元中,通过堆栈指针单元中,通过堆栈指针SPSP确定堆栈位置确定堆栈位置确定堆栈位置确定堆栈位置 指令系统:指令系统:指令系统:指令系统:111111条指令。按功能分为数据传送、算术运算、逻辑条指令。按功能分为数据传送、算术运算、逻辑条指令。按功能分为数据传送、算术运算、逻辑条指令。按功能分为数据传送、算术运算、逻辑运算、控制转移和布尔操作运算、控制转移和布尔操作运算、控制转移和布尔操作运算、控制转移和布尔操作5 5大类。大类。大类。大类。1

5、.2 MCS-51 单片机内部方框图时钟电路4KROM程序存储器256BRAM数据存储器2X16位定时/计数器CPU处理器64KB总线扩展控制器可编程I/O端口P0-3可编程串行口1.3:MCS-51单片机的引脚定义lMCS-51单片机有两种封装形式:a.40脚的双列直插DIP封装;b.44脚的PLCC。1,主电源引脚:Vcc(+5V-40脚)和Vss(GND 20脚);2,外接晶体引脚:XTAL1(19脚)、XTAL2(18脚),只要在这两脚之间接入一个晶体震荡器,单片机就可以以此晶体的频率开始工作。常用的晶体频率有0-24M,频率越高,单片机的工作速度就越快,但单片机的功耗就要增加。3,控

6、制或与电源复用引脚:RST/Vpd、ALE/PROG、/PSEN和Vdd RST/Vpd(9脚):在系统上电震荡器开始工作时,在内部加在此引脚上有一个两个时钟周期的高电平使单片机复位。但为了使系统复位可靠,建议外加 一个上电复位电路,延长复位的时间。当单片机掉点时,此引脚可以接入备用电源向单片机内部的RAM供电,以防止RAM中的数据丢失。引脚图l在复位状态下:所有SFR的内容全变为“0”,端口输出“1”。RAM内容不变。MCS-51RSTVccMCS-51RSTVcc1K10tVT延长上电复位时间的电路和RST端上电电压曲线具有手动复位功能 的复位电路RC ALE/PROG(30脚):以一个不

7、变的频率(系统时钟 fosc/6)周期性输出正脉。当单片机使用外部存储器时,此信号可作为低八位地址的锁存信。对于EPROM型的单片机,此脚还是用于写程序时,输入编程脉冲。/PSEN(29脚):外部程序程序存储器的选通信号。当单片机使用外部程序存储器时,此脚在一个机器周期内产生两次负脉冲。注意,访问外部数据存储器时,此信号无效。/EA/Vdd(31脚):外部程序存储器的选择端控制端:当此脚加入“1”电平是,单片机使用内部的程序存储器;当EA加入低电平时,系统只使用外部的程序存储器。但要特别注意:如果EA=1既使用单片机内部的程序存储器时,如果程序计数器PC的值超过0FFFH时,单片机将自动转向外

8、部程序存储器1000H开始的单元。对于EPROM型的单片机,此脚还是用于写程序时,加入21伏的编程电压。引脚图4,并行输入输出端口引脚(P0-P3)P0.0-P0.7 P0端口线(39-32脚):输出能力最强的端口,可以带动8个TTL负载。驱动一个MOS负载时,应接一个10K左右的上拉电阻。如果系统使用外接存储器时,该口还作为地址(低八位)总线和数据总线,注意在这种情况下,P0口就不能通用的I/O端口。P1.0-P1.7 P1端口线(1 8脚):负载能力为4个TTL负载。P2.0 P2.7 P2端口线(21 28脚):通用I/O端口。除了做通用I/O端口外,当系统使用外接存储器时,该口还作为地

9、址(高八位)总线,在这种情况下,P0口就不能通用的I/O端口。负载能力为4个TTL。引脚图lP3.0 P3.7 P3端口线(10 17脚):P3口除了做通用的I/O端口外,同时它还有第二功能),负载能力为4个TTL。口线口线定义定义说明说明口线口线定义定义说明说明P3.0RXD串行数据输入口P3.4T0计数器外部输入信号P3.1TXD串行数据输出口P3.5T1计数器外部输入信号P3.2INT0外部中断输入口P3.6/WR外部数据存储器写信号P3.3INT1外部中断输入口P3.7/RD外部数据存储器读信号P3口第二功能表引脚图 MCS-51单片机外型图(DIP封装)MCS-51单片机的逻辑符号图

10、VCCRSTXTAL1 P0口XTAL2/EA/PSENALE P1口P3口RXDTXD/INT0/INT1 P2口T0T1/WR/RDGND87C51EPROM型AT89C51ATMELFLASH型返回上一次1.4.0 MCS-51单片机的存储器的配置特点(89C51)l在MCS-51单片机的内部集成了4K的程序存储器和256B的数据存储器,同时还可以使用片外的程序存储器和数据存储器,其扩展能力都是64K。l从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内ROM,RAM和片外ROM、RAM。l从逻辑上讲(既用户编程的角度讲)51单片机的存储系统又可分为三个存储空间。既片内

11、RAM,片外RAM和片内、外的程序存储器ROM。从物理结构上单片机系统的存储器结构图(四个部分)MCS-51单片机片内ROM4K片内RAM256B片外RAM64K片外ROM64K返回上一次1.4.1 程序存储器(片内与片外)l程序存储器是用来存放编好的程序、常数和表格的。l在MCS-51单片机中,当引脚EA=1时,系统使用片内的4KROM来存储程序。EA=0时,系统使用片外的ROM。l无论是使用片内还是使用片外的ROM(既 EA=1或EA=0),其起始地址都是从0000H单元开始。l如果EA=1(使用片内的程序存储器时):程序从0000H开始执行。注意:在这种情况下,如果程序计数器的指针PC值

12、超过0FFFH(4K)时,单片机就要自动的转向片外的ROM存储器(尽管EA=1),且从片外ROM的1000H单元开始执行程序。但单片机是无法使用片外ROM的0000H-0FFFH这4K单元。l本次实验所使用的 P89C52RD2 单片机,其片内即有 64KB 程序存储器,已是全部程序存储空间,该型单片机不会使用片外ROM;但可片外RAM。MCS-51单片机片内、外程序存储器的使用示意图 0FFFH0000H0FFFH0000HFFFFH1000HEA=1时,ROM的使用EA=0时ROM的使用片外程序存储器(最大64K)单片机内部程序存储器(4K)程序存储器六个特殊的单元l在程序存储器中,有六个

13、单元是具有特定功能。编程者是不能随便使用的。0000H单元:上电时,程序计数器PC所指向的单元0003H单元:外部中断/INT0的入口地址;000BH单元:定时器T0的溢出中断入口地址;0013H单元:外部中断/INT1的入口地址;001BH单元:定时器T1的溢出中断入口地址;0023H单元:串行口接收、传送的中断入口地址。1.4.2 内部数据存储器RAMl数据存储器无论在物理上还是逻辑上都分为两个地址空间,既一个内部和一个外部的数据存储空间。l访问内部数据存储单元时,使用 MOV 指令;而访问外部数据存储器时,使用 MOVX 指令。l内部数据存储器从功能上又将256B空间分为二个不同的块:1

14、,低128B的RAM块;2,高128B的SFR(Special Function Register)块。l在低128B的RAM存储单元中又可划分为:工作寄存器区、可位寻址区、通用存储数据的便签区。l高128B的专用寄存器区中仅仅使用了21寄存器(51系列),其它单元未定义不能使用。存储结构图MCS-51 片内、片外 数据存储器示意图 特殊功能寄存器SFR通用数据存储器80H7FH00HFFH片内数据存储器 片外数据存储器256B个字节 64KB个字节片外数据存储器64KB0000HFFFFH注意:1,访问片内RAM20H存储单元;MOV A,20H2,访问片外RAM存储单元;MOV R0,#2

15、0hMOVX A,R03,尽管片内与片外的RAM单元 的00H-FFH地址相重叠但由于指令的不同不会发生地址混乱。片内RAM低 128B 字节功能分配图 位寻址区3区2区1区0区便笺区08H07H00H7FH30H2FH20H1FH18H17H10H0FH四个工作寄存器区每个区中有R0-R7八个工作寄存器位寻址区16个单元20H-2FH,共有128 可寻址位个位。位地址:00H-7FH注意:位地址与字节地址的区别通用的RAM区地址:30H-7FH返回上一次片内 RAM(20H-2FH)中的位寻址区结构图7F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69

16、6867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A393837262524232221202F2E2D2C2B2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201002FH20H字节地址l位寻址区内的地址是位地址。共有00-7FH(共128个位);l要区分字节地址和位地址这两个不同的地址概念:从物理的角度,每一个字节地址内包含了8个位,既:D7

17、,D6,D5,D4,D3,D2,D1,D0 在一般情况,我们提到的RAM地址都是字节地址。从逻辑的角度讲,字节地址和位地址是靠不同类型的指令来区分的。如:MOV A,20h ;将RAM的20单元内容送累加器A;MOV C,20h ;将RAM位寻址区中20H位送CY中。在这二个例子中,第一条指令为字节传送指令,所以20H为字节地址;第二个例子中的指令为位操作指令,所以20H为位地址。有关详细内容将在第二章中描述。0区工作寄存器区结构图R7R6R5R4R3R2R1R0RAM地址07H06H05H04H03H02H01H00H返回上一次特殊功能寄存器SFRl特殊功能寄存器SFR(Special Fu

18、nction Register)特殊用途寄存器的集合。用来设定单片机内部各个部件的工作方式,存放相关部件的状态,定时器初值寄存器,并行端口的锁存器等等。尽管特殊功能寄存器与RAM在同一个单元中,但不能作为普通的RAM存储单元来使用。只有在编程中根据需要,进行一些特定功能的设定,或者是从中查寻相关部件的状态时,才能进行读、写操作。如中断方式的设定、定时器工作模式的设定,查询串行口发送或接收是否结束等等。标识符名 称地 址ACCBPSWSPDPTRP0P1P2P3IPIETMODTCON累加器B寄存器程序状态字堆栈指针数据指针(包括DPH,DPL)口0口1口2口3中断优先级控制寄存器中断允许控制寄

19、存器定时/计数器方式控制寄存器定时/计数器控制寄存器0E0H0F0H0D0H81H83H,82H80H90H0A0H0B0H0B8H0A8H89H88H特殊功能寄存器特殊功能寄存器 SFR(SFR(表一表一)SFR(表二)标识符名 称地 址TH0TL0TH1TL1SCONSBUFPCON定时/计数器0初值寄存器高8位定时/计数器0初值寄存器低8位定时/计数器1初值寄存器高8位定时/计数器1初值寄存器低8位串行口控制寄存器串行口数据缓冲器(接收,发送)电源控制寄存器8CH8AH8DH8BH98H99H97HSFR高128B低128B0FFH80H7FH00H特殊功能寄存器SFR在片内RAM中的位

20、置注:表中黄色的单元为可按位寻址的字节特殊功能寄存器SFR说明l程序计数器PC:用来存放下一条要执行的指令地址,长度为16位,所以寻址范围为0-65535(64K).在物理上是独立于SFR.l累加器A:最常用的专用寄存器,大多数的指令操作数都来自累加器A.所有的算术运算指令的运算结果都存放在A中.lB寄存器:乘除法指令使用的寄存器.l数据指针DPTR:一个16位的寄存器.由高八位DPH和低八位DPL构成.DPTR主要用来存放片内ROM的地址和片外RAM,ROM的地址.这样单片机可以通过间址的方式来访问片内ROM或片外的RAM,ROM。例如:片外RAM的2000H单元中有一个数x,试将其送到累加

21、器A中.MOV DPTR,#2000h ;DPTR 2000H MOVX A,DPTR ;A xl程序状态字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

22、在哪个区中.单片机在上电或复位后RS1、RS0=00。当需要人为的修改RS1,RS0的值来改变工作寄存器区的位置。CYACF0RS1RS0OV-PRAM分配图OV(PSW.2)溢出标志位:判断符号数加减法运算时是否有溢出.OV的结果可以用一个算法来表示:OV=CP异或CS 其中:CP为A7的进位,CS为A6的进位OV=1表明有溢出。P(PSW.0)奇偶标志位:用来标志累加器A中运算后1的个数。当P=1时,表明A中1的个数为奇数个,反之为偶数个。【举例】:有两个数0FH和F8H,试将两数相加 MOV A,#0FH ;将立即数0f h 送累加器A ADD A,#0F 8H ;A的内容与立即数0f8

23、h相加,结果送A 0000 1111 运算结果:A=07H,CY=1(既CP=1),+1111 1000 CS=1,OV=0(因为CP=1,CS=1)Cy1 0000 0111 AC=1,P=1如何根据PSW来分析运算结果是否正确?是否有溢出?1,若数据为无符号数。既15+248=263=107H 既CY=1,A=07H。2,若数据为有符号数。既+15加-8=+7=07H,OV=0表明无溢出。lSP 堆栈指针:8位寄存器,用来指示堆栈的位置,可由软件修改。在MCS-51单片机的设计中,片内RAM区为堆栈的可用空间。上电或复位时,SP被初始化为07H,既堆栈底部被确定在RAM的07H单元。堆栈操

24、作过程:进栈: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。07HSP08H07HRAMx累加器A堆栈操作示意图l并行端口P0-P3:SFR中的P0-P3实际上就是I/O端口的数据锁存器。与RAM中的任意一个单元一样,P0-P3都有自己的RAM地址:80H、90H、A0H、B0H。所以,在51单片机中的输入、输出操作实际上就是个普通的RAM单元操作一样:如输出指令 MOV 80H,A ;将累加器中的数据送到P0口输

25、出输入指令 MOV A,90H ;将P1口的数据输入到累加器A中 既MCS-51的指令系统中没有专用的输入、输出(IN、OUT)指令,而是把P0-P3作为普通的内存单元来使用。上面的第一个例子实际上就是MCS-51的输出指令;同理后者是MCS-51的输入指令。l串行数据缓冲器SBUF:它是专门用来存放发送或接收的数据,实际上它是两个独立的寄存器。尽管在SFR中的RAM地址只是99H,但根据指令“发送”或“接收”两种不同的操作,硬件会自动的区分,将数据送如对应的缓冲单元。l定时/计数器T0、T1:无论是定时还是计数,对于MCS-51单片机的定时/计数器来说,都是一个“计数器”在计数。这个“计数器

26、”是由两个8位寄存器(高位和低位)构成的16位计数器,分别是TH0、TL0(T0);TH1、TL1(T1)。TH和TL中的数据直接与“定时操作”或“计数操作”有关,因此在使用定时/计数器之前,要对它进行初始化,其中就要对TH、TL赋初值。如:MOV 8CH,#01H MOV 8AH,#20H 大家试分析上面两条指令的作用。有关SFR中其它寄存器的说明将相关的章节中作介绍。TH0TL01.4.3 外部数据存储器l在片内RAM不能满足需要时,就要外接RAM。P0、P1作为外部RAM的地址和数据总线。MCS-51对外部数据存储器的扩展能力为64KB。除了硬件电路外,系统主要是靠专门的指令来访问外部数

27、据存储器。如:MOV R0,#20H;将外部RAM单元地址20H送R0寄存器 MOVX A,R0 ;从外部RAM20H单元取数据到累加器A 这里使用了R0做间址寄存器,所以寻址范围为256KB。同理:MOV DPTR,#2000H ;将外部 RAM 单元的地址的2000送DPTR MOVX A,DPTR ;从外部 RAM 2000H单元中取数据到 A 这里使用了16位的寄存器DPTR,所以寻址范围为64KB。1.6.1 P0口:特点:“通用数据I/O端口”和“地址、数据复用总线”端口.1,在作为通用数据I/O端口时,具有较强的驱动能力(8个TTL负载),与MOS负载连接时,需要外接一个上拉电阻

28、。2,作为“地址、数据复用总线”使用时,P0口首先输出外部存储器的低八位地址,然后再变为数据总线进行数据的输入或输出.此时,P0口不能再作为通用I/O口。P0口的位结构图D Q 锁存器CL /QP0.x引脚Vcc地址/数据1/0控制(=0时)读锁存器读锁存器读引脚内部总线写锁存器MUX (控制=0时)硬件组成:1,一个输出锁存器(D型触发器);2 2,二个,二个三态门(控制读引脚或读锁存器)三态门(控制读引脚或读锁存器);3 3,与门和,与门和MUXMUX等元件组成的等元件组成的输出控制电路;输出控制电路;4 4,一对场效应晶体管一对场效应晶体管FETFET构成的输出电路构成的输出电路.Vcc

29、返回前一次1,P0口的I/O操作;2,P0口的总线方式1,P0口的I/O操作(通用I/O端口)l在P0口作为通用I/O端口时,控制电路中的“控制”为“0”电平,多路开关MUX接入下方的锁存器的/Q端。由于与门的一个输入端为“0”,所以它使上端的FET截止.这就是P0口在做I/O口时输出为“漏极开路”的结构原因.l输出操作:在执行以口为目标的指令时,数据送到锁存器的“D”端,经“/Q”端送场效管应输出极.如:送“1”时,/Q=“0”,使下端的FET截止.这样出现输出极的两个FET全部截止.在这种情况下必须在端口线上外加上拉电阻.这样在上拉电阻的作用下,使端口为高电平.同理,若总线向口送“0”时,

30、锁存器的/Q=1,使下端的FET导通(上面的FET仍然截止),这样端口呈现“0”电平.返回结构图l输入操作(读引脚,读锁存,输入前写一)a,读引脚:读外部送到端口引脚的电平,即通常所说的输入操作(如:MOV A,P0).此时,单片机控制“读引脚”的三态门,使引脚处的外部电平经三态门送入内部总线.b,读锁存器:将进行读锁存器并进行处理,最后再写回锁存器的操作称之为:“读修改写”操作。在这种情况下,读入的数据不是来自引脚,而是端口内部的锁存器的内容。当前面完成一次端口的输出后,要再将前面输入的状态取回来,进行再处理,然后重新输出,在MCS-51的指令系统中这种“读修改写”的操作有:ORL、XRL、

31、JBC、CPL、INC、DEC、DJNZ、MOV Px,y、CLR Px,y和SET Px,y。如:ORL P0,A ;P0 A P0 返回结构图P0.Xc,输入时应先写“1”:在端口电路中,可以发现一个问题:端口在输入(读引脚)时,原来锁存器的状态可能要影响引脚电平的输入.例如:原来锁存器的状态为“0”态,既输出极的下端FET是饱和状态,这样如果外电路向引脚输入高电平时,电路将不能正确读入.解决的方法就是让下端的FET截止,既事先向端口写一个“1”.请注意下面的一段程序:MOV A,#0FFH;0FFH送累加器A MOV P0,A ;向P0口“写1”MOV A,P0 ;从P0口输入数据到A你

32、能正确的分析出指令的操作吗?返回结构图2,P0口的总线方式(系统使用外存储器时)l控制电路的“控制”=1,此时与门打开,MUX接向“地址/数据”信号.在这种情况下,输出极的两个FET都处于正常的工作状态。l访问外部存储器的指令movx、movc,就是使用P0口来输出外部存储器的低八位地址和输入、输出存储器的数据。l在进行单片机的硬件系统的设计中,如果使用了外部存储器(或使用movx指令来访问外部接口电路)时,P0口成为整个系统的地址/数据复用总线。换句话,P0口不能再作为通用的I/O端口的形式直接与外部连接。返回结构图1,做通用数据I/O端口时,输出级上端的FET处于截止状态,所以与MOS器件

33、连接时,必须接“上拉电阻”,否则不能正确的输出高电平;2,在输入操作前,为了保证输入正确,必须先向端口“写1”;3,“读引脚”与“读锁存器”是不同的两个数据通道。凡是“读修改写”的操作,CPU读的都是端口锁存器中的数据。4,为了提高电路的可靠性,端口引脚不要直接与三极管一类的器件直接连接,应加隔离电路或与三极管之间加一个电阻.5,在总线方式时,P0口不能再做通用的I/O端口。它分时输出地址、数据总线的信息(此时引脚不用外接上拉电阻)。返回结构图P0口特点小结:特点:单纯的通用I/O端口,负载能力为3个TTL输入。与P0口的区别在于内部具有上拉电阻,所以输出时不用外接上拉电阻。1.6.2 P1口

34、的位结构图D Q 锁存器CL /QP1.x引脚Vcc读锁存器读引脚内部总线写锁存器内部上拉电阻返回前一次1.6.3 P2口 特点:“通用数据I/O端口”和“高八位地址总线”端口D Q 锁存器CL /QP2.x引脚Vcc地址/数据1/0控制读锁存器读引脚内部总线写锁存器MUX (地址/数据=0)内部上拉电阻返回上一次l与P0口一样,P2口在系统使用外部存储器时,做高八位的地址总线。l应当注意的是:仅使用外部数据存储器时,P2口分两种情况:1,仅仅使用256B的外部RAM时,既使用movx a,r0指令访问外部RAM,此时用8位的寄存器R0或R1作间址寄存器,这时P2口无用,所以在这种情况下,P2

35、口仍然可以做通用I/O端口。2,如果访问外部ROM或使用大于256BRAM时,P2口必须作为外存储器的高八位地址总线。如:movx a,dptr ;访问外部数据存储器 movc a,a+dptr ;访问外部程序存储器 这里使用了16位的寄存器DPTR上一页1.6.4 P3口 特点:通用I/O端口、多用途端口l在多用途情况下,P3口分别作为串行口、外中断输入、外部计数输入和系统扩展时使用的WR和RD信号的端口。在这种情况下,锁存器Q端为“1”电平以保证与门是打开的。l在通用I/O模式下,“替代输出功能”端为“1”电平,以保证与门打开。D Q 锁存器CL /QP3.x引脚替代输出功能读锁存器读引脚

36、内部总线写锁存器MUX (地址/数据=0)Vcc1.6.5 并行端口在使用时应注意的几个问题l“拉电流”还是“灌电流”-与大电流负载的连接 (我们以美国ATMEL公司生产的AT8951为例)1,使用灌电流的方式与电流较大的负载直接连接时,端口可以吸收约20mA的电流而保证端口电平不高于0.45V(见右上图)。2,采用拉电流方式连接负载时,AT89C51所能提供“拉电流”仅仅为80A,否则输出的高电平会急剧下降.如果我们采用右下图的方式,向端口输出一个高电平去点亮LED,会发现,端口输出的电平不是“1”而是“0”!当然,不是所有的单片机都是这样,PIC单片机就可以提供30mA的拉电流和灌电流。单

37、对于大多数IC电路,最好还是使用“灌电流”去推动负载。Px.yVddPx.yVddVdd灌电流方式输出”0”点亮LED拉电流方式输出高电平点亮LED单片机与继电器等大电流负载的接口l我们知道:AT89C51的端口可以吸收约20mA的电流.对于继电器等大于20mA的负载,单片机可以采用右图的接法,用一个三极管来承担负载所需的大电流.l若于负载电流易造成干扰单片机的环境,应采用右下图”光电隔离”的方式.其中:A、B两处没有 任何电的联系.Px.yJVccVdd负载VccPx.yAB1.7 MCS-51单片机的定时/计数器定时定时/计数器计数器工作方式与原理工作方式与原理:1.7.1 1.7.1 定

38、时定时/计数器的计数器的四种工作模式四种工作模式1.7.2 MCS-511.7.2 MCS-51定时定时/计数器的计数器的控制和状态寄存器控制和状态寄存器n n1,1,模式模式0 0:既既1313位计数器模式位计数器模式n n2,2,模式一模式一 :既既1616位计数器模式位计数器模式n n3,3,模式二模式二 :自动重装初值模式自动重装初值模式n n1,1,模式控制寄存器模式控制寄存器TMODTMOD(SFR(SFR的地址的地址:89H):89H)n n2,2,控制寄存器控制寄存器 TCON TCON(SFR(SFR地址地址:88H):88H)4,4,模式三模式三:组合扩展模式组合扩展模式定

39、时/计数器工作方式与原理:定时/计数器是一种应用非常广泛的逻辑电路,它可以完成两种不同的方式工作-“定时”、“计数”。l定时/计数器工作方式与原理:1,定时:产生一个标准的时间间隔;如20mS,100mS或1000mS等.单片机使用这种方式可以产生一个符合某一要求的脉冲方波(如下图)。2,计数:对外部的事件(脉冲)进行统计.很明显外部事件的发生是随机的,单片机不可能预知外部事件何时发生,但可以进行统计,当达到所要求的数值时,单片机进行相应的操作。20mS40mS3,定时/计数器的工作原理:用一个简单的框图构造它的模型:N位计数器构成了电路的核心。定时,计数两种方式的区别在于计数器的脉冲来源.初

40、值寄存器是用来设定“定时/计数的具体参数”(1):何时控制启动计数?(2):如何控制定时还是计数?(3):如何控制定时/计数的长短?N位+1计数器TFN位初值寄存器系统内部时钟fosc启动控制TR外部脉冲定时/计数控制C/T计数器溢出中断信号返回计数脉冲CP1.7.1 定时/计数器的四种工作模式1,模式0:13位计数器模式。当计数器计满为全”1”时,再来一个计数脉冲时,就产生一个“溢出中断信号”TF1=1.TH1 TL1震荡器1/12(8位)(低5位)TF1中断启动控制T1 引脚TR1GATEINT1高三位弃用C/T=0C/T=113位加1计数器lGATE=0时,TR1=1开始定时/计数;GA

41、TE=1时(门控方式),TR=1且INT1=1时,开始工作.此种方式主要用于测量加在INT1脚上一个正脉冲的脉宽.TL1TH1震荡器1/12(8位)(8位)TF1中断启动控制T1 引脚TR1GATEINT1C/T=0C/T=12,模式1:既16位计数器模式(以T1为例).16位加1计数器返回上一次l由TL1做计数器,TH1做初值寄存器.工作前TL1,TH1分别预置相同的初值.计数器TL1工作时,每当溢出产生中断的同时,将TH1中的初值自动重装.此模式主要用于做串行口波特率发生器使用.TL1(8位)TH1(8位)震荡器1/12TF1中断控制T1 引脚TR1GATEINT1C/T=1C/T=03,

42、模式2:自动重装初值模式8位加1计数器8位初值寄存器l在这种模式中,单片机将T0和T1重新进行“拆分、组合”.将T0变为由TH0,TL0组成的两个独立的8位定时/计数器.TL0震荡器1/12TF0中断控制T0 引脚TR0GATEINT0C/T=0C/T=1TH0TF1中断控制TR1Fosc/12在模式3时的模式中定时器T0的结构图4,模式3 组合扩展模式l注意:模式3时T0(TH0,TL0)及T1的各自特点:1,TH0计数脉冲来自内部fosc,所以它只能处于”定时”方式;2,TH0分别借用了定时器T1的TR1和TF1来为自己工作,使TH0能象TL0那样用TR1启动定时,并用TF1来作为TH0的

43、溢出中断的标志;3,由于T1缺少了启动控制信号TR1和溢出中断标志TR1,那么在模式3时,T1是如何工作?没有溢出中断标志TF1,则T1就不用中断方式工作(实际上连查询也不行);没有启动控制信号TR1,可以让它在模式3之前就开始工作,并且让它事先设定为自动重装模式.4,模式3就是将单片机原有的T0,T1两个计数器变成三个独立的计数器,其中T1要事先设定为模式2(串行口的波特率发生器)并启动起来。返回结构图在模式3时T0,T1的电路结构图TL0八位定时/计数器TH0八位定时器T1(TL1,TH1)自动重装模式TF0TF1将T0分解为两个计数器TL0和TH0,其中TH0借用了T1的TR1和TF1T

44、1已无TR1,TF1功能,建议T1做波特率发生器TH0,TL0和T1三个计数器返回结构图定时/计数器4种模式比较模 式计数模M 最大定时时间 Tmax模式013位Tmax=8192*1 =8.192ms模式116位Tmax=65536*1=65.536ms模式2,38位Tmax=256*1=0.256ms模 式计数模M 最大计数值模式013位Tmax=8192模式116位Tmax=65536模式2,38位Tmax=256T=(M-TC)t 其中,T:定时时间,M:计数器的模,TC:计数初值,t:计数器计数脉冲的周期(t=fosc/12)。1.7.2 MCS-51定时/计数器的控制和状态寄存器l

45、GATE 选通门:GATE=0时,只要TR=1,计数器就开始工作.GATE=1时,只有INT脚和TR同时为“1”时,计数器才开始工作.主要用于测量INT脚上高电平脉冲的宽度.lC/T 计数、定时方式选择位:C/T=0时,计数方式.既计数器的计数脉冲来自T0或T1引脚的外部事件.C/T=1时:定时方式,计数脉冲来自内部震荡频率fosc的12分频.lM1、M0 模式选择:分别对应四种模式.GATEC/TM1M0GATEC/TM1M0定时/计数器1定时/计数器0n n1,1,模式控制寄存器模式控制寄存器TMOD(SFRTMOD(SFR的地址的地址:89H):89H)结构图lTF1,TF0 定时器T1

46、,T0的溢出标志:计数器溢出时硬件自动置位即TF=1,进入中断后再由硬件自动清除;lTR1.TR0 计数器T1,T0的控制位:由软件置位(计数器开始工作)或清零(计数器停止工作).lIE1,IE0 外部中断INT1,INT0的请求标志:当单片机检测到INT引脚上有下降沿时,IE=1申请中断.进入中断服务程序时,硬件自动清除IE标志.lIT1,IT0 外中断触发类型控制:IT=1时,外中断信号的下降沿出发IE标志,IT=0时,外中断信号的低电平引发IE标志.(关于中断部分将在后面相关章节中再做详细介绍)TF1TR1TF0TR0IE1IT1IE0IT02,控制寄存器TCON(SFR地址:88H)返

47、回前一次1.8 MCS-51单片机的串行接口单片机系统中的串行接口及特点串行通讯应用示意图关于串行通讯中的基本概念1.8.1 1.8.1 数据缓冲寄存器数据缓冲寄存器 SBUFSBUF1.8.2 1.8.2 串行口控制寄存器串行口控制寄存器SCONSCON1.8.3 1.8.3 串行口的串行口的模式模式0 0模式模式0 0 电路框图电路框图模式模式0 0的的工作原理工作原理(发送)(发送)串行口模式串行口模式0 0的的时序信号时序信号(发送)(发送)模式模式0 0的工作原理的工作原理(接收)(接收)模式模式0 0的的时序信号(接收)时序信号(接收)1.8.5 1.8.5 串行口串行口模式模式2

48、 2、3 31.8.5.1 1.8.5.1 模式模式2 2、3 3的应用之一:的应用之一:带奇偶校验位的数据传送带奇偶校验位的数据传送1.8.5.2 1.8.5.2 模式模式2 2、3 3的应用之二:的应用之二:多机通讯多机通讯1.8.5.3 1.8.5.3 模式模式2 2、3 3使用时使用时要注意的问题要注意的问题1.8.61.8.6 波特率及定时器波特率及定时器T1T1的设定的设定串行口模式串行口模式1 1时时数据帧格式数据帧格式及接收采样示意图及接收采样示意图1.8.41.8.4串行口串行口模式模式1 1第八节目录二返回上一页单片机系统中的串行接口既特点l串行口的设计使MCS-51单片机

49、的功能 大大增加.可以用串行通讯的方式实现单片机与单片机或者是单片机与微机等设备之间的数据交换.l串行通讯电路简单,成本低,可以实现远距离的数据传输。缺点是传输速度低于并行数据传输。l在一个嵌入式系统中,往往采用多单片机构成一个完整的控制系统,它们之间以串行通信的方式进行数据交换-多机通讯(如图).从机从机从机从机主机串行通讯应用示意图TXDRXDRXDTXDTXDRXDRXDTXDRS-232或485RS-232或485TXDRXDRS-232PC机COM1,COM2单片机甲、乙之间近距离通讯单片机甲乙两地之间远距离通讯单片机与PC机之间的数据通讯返回前一次关于串行通讯中的基本概念:l字符帧

50、:也称数据帧,它是由“起始位”“数据位”和“停止位”构成(如下图所示)。l波特率:每秒钟传输二进制数据的个数.波特率 使用的单位是:bps(bit per scond),既 位/秒。l异步通讯:数据是以字符或字节为单位组成字符帧传送的.数据是从发送端一帧一帧的发送,通过传输线为接收端一帧一帧的接收.发送与接收相互独立,互不同步。D0D1D2D3D4D5D6D7起始位停止位01一个字符帧的格式1.8.1 数据缓冲寄存器 SBUFlSBUF是用来存放串行口发送和接收数据的寄存器,在SFR的地址为99H.在物理上它对应两个不同的单元:发送寄存器和接收寄存器。lCPU写SBUF就是开始发送数据(MOV

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com