1 / 109

嵌入式系统设计

嵌入式系统设计. 摘自其他学校单片机讲义. 实验准备( MCS-51 单片机介绍). 1.1 MCS-51 系列芯片举例. 本次实验用 MCS-51 单片机 P89LV51RD2 的主要性能和特点. 增强形 INTEL 8052 CPU 内核 内部程序存储器 ROM : 64KB ( FLASH ) 内部数据存储器 RAM : 1KB RAM 寄存器区:有 4 个寄存器区,每个区有 R0-R7 八个工作寄存器 8 位并行输入输出端口: P0 、 P1 、 P2 、 P3 定时 / 计数器: 2 个 16 位的定时 / 计数器

Download Presentation

嵌入式系统设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 嵌入式系统设计 摘自其他学校单片机讲义 实验准备(MCS-51单片机介绍)

  2. 1.1 MCS-51系列芯片举例

  3. 本次实验用 MCS-51 单片机P89LV51RD2 的主要性能和特点 • 增强形INTEL 8052 CPU 内核 • 内部程序存储器ROM :64KB( FLASH ) • 内部数据存储器RAM:1KB RAM • 寄存器区:有4个寄存器区,每个区有R0-R7八个工作寄存器 • 8位并行输入输出端口:P0、P1、P2、P3 • 定时/计数器:2个16位的定时/计数器 • 串型口:全双工的端口(RXD:接收端,TXD发送端) • 硬件SPI:支持程序下载 • 中断系统:设有5个中断源 • 堆栈:设在内RAM单元中,通过堆栈指针SP确定堆栈位置 • 指令系统:111条指令。按功能分为数据传送、算术运算、逻辑运算、控制转移和布尔操作5大类。

  4. 1.2 MCS-51 单片机内部方框图 时钟电路 4KROM 程序存储器 256BRAM 数据存储器 2X16位 定时/计数器 CPU 处理器 64KB总线 扩展控制器 可编程I/O 端口P0-3 可编程 串行口

  5. 1.3:MCS-51单片机的引脚定义 • MCS-51单片机有两种封装形式: a.40脚的双列直插DIP封装; b.44脚的PLCC。 1,主电源引脚 :Vcc(+5V--- 40脚)和Vss(GND 20脚); 2,外接晶体引脚:XTAL1(19脚)、XTAL2(18脚),只要在这两脚之间接入一个晶体震荡器,单片机就可以以此晶体的频率开始工作。常用的晶体频率有0-24M,频率越高,单片机的工作速度就越快,但单片机的功耗就要增加。 3,控制或与电源复用引脚:RST/Vpd、ALE/PROG、/PSEN和Vdd RST/Vpd(9脚):在系统上电震荡器开始工作时, 在内部加在此引脚上有一个两个时钟周期的高电平使单片机复位。但为了使系统复位可靠,建议外加 一个上电复位电路,延长复位的时间。当单片机掉点时,此引脚可以接入备用电源向单片机内部的RAM供电,以防止RAM中的数据丢失。 引脚图

  6. 在复位状态下:所有SFR的内容全变为“0”, 端口输出“1”。RAM内容不变。 Vcc Vcc V MCS-51 RST MCS-51 RST 10Ω C 1K R T t 具有手动复位功能 的复位电路 延长上电复位时间的电路 和RST端上电电压曲线

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

  8. 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端口外,当系统使用外接存储器时,该口还作为地址(高八位)总线,在这种情况下,P0口就不能通用的I/O端口。负载能力为4个TTL。 引脚图

  9. P3.0 – P3.7 P3端口线 (10 – 17脚): P3口除了做通用的I/O端口外,同时它还有第二功能),负载能力为4个TTL。 P3口第二功能表 引脚图

  10. VCC RST XTAL1 P0口 XTAL2 /EA /PSEN ALE P1口 P3口 RXD TXD /INT0 /INT1 P2口 T0 T1 /WR /RD GND 87C51 EPROM型 AT89C51 ATMEL FLASH型 MCS-51单片机外型图(DIP封装) MCS-51单片机的逻辑符号图 返回上一次

  11. 1.4.0 MCS-51单片机的存储器的配置特点(89C51) • 在MCS-51单片机的内部集成了4K的程序存储器和256B的数据存储器,同时还可以使用片外的程序存储器和数据存储器,其扩展能力都是64K。 • 从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内ROM,RAM和片外ROM、RAM。 • 从逻辑上讲(既用户编程的角度讲)51单片机的存储系统又可分为三个存储空间。既片内RAM,片外RAM和片内、外的程序存储器ROM。

  12. 从物理结构上单片机系统的存储器结构图(四个部分)从物理结构上单片机系统的存储器结构图(四个部分) MCS-51 单片机 片外 ROM 64K 片外 RAM 64K 片内 ROM 4K 片内 RAM 256B 返回上一次

  13. 1.4.1 程序存储器(片内与片外) • 程序存储器是用来存放编好的程序、常数和表格的。 • 在MCS-51单片机中,当引脚EA=1时,系统使用片内的4KROM来存储程序。EA=0时,系统使用片外的ROM。 • 无论是使用片内还是使用片外的ROM(既 EA=1或EA=0),其起始地址都是从0000H单元开始。

  14. 如果EA=1(使用片内的程序存储器时): 程序从0000H开始执行。 注意:在这种情况下,如果程序计数器的指针PC值超过0FFFH(4K)时,单片机就要自动的转向片外的ROM存储器(尽管EA=1),且从片外ROM的1000H单元开始执行程序。但单片机是无法使用片外ROM的0000H-0FFFH这4K单元。 • 本次实验所使用的 P89C52RD2 单片机,其片内即有 64KB 程序存储器,已是全部程序存储空间,该型单片机不会使用片外ROM;但可片外RAM。

  15. MCS-51单片机片内、外程序存储器的使用示意图 FFFFH 1000H 片外程序存储器 (最大64K) 0FFFH 0000H 0FFFH 0000H 单片机内部 程序存储器 (4K) EA=1时,ROM的使用 EA=0时ROM的使用

  16. 程序存储器六个特殊的单元 • 在程序存储器中,有六个单元是具有特定功能。编程者是不能随便使用的。 0000H单元:上电时,程序计数器PC所指向的单元 0003H单元:外部中断/INT0的入口地址; 000BH单元:定时器T0的溢出中断入口地址; 0013H单元:外部中断/INT1的入口地址; 001BH单元:定时器T1的溢出中断入口地址; 0023H单元:串行口接收、传送的中断入口地址。

  17. 1.4.2 内部数据存储器RAM • 数据存储器无论在物理上还是逻辑上都分为两个地址空间,既一个内部和一个外部的数据存储空间。 • 访问内部数据存储单元时,使用MOV 指令; 而访问外部数据存储器时,使用MOVX 指令。 • 内部数据存储器从功能上又将256B空间分为二个不同的块: 1,低128B的RAM块; 2,高128B的SFR (Special Function Register)块。 • 在低128B的RAM存储单元中又可划分为:工作寄存器区、可位寻址区、通用存储数据的便签区。 • 高128B的专用寄存器区中仅仅使用了21寄存器(51系列),其它单元未定义不能使用。 存储结构图

  18. MCS-51 片内 、片外 数据存储器示意图 注意: 1,访问片内RAM20H存储单元; MOV A,20H 2,访问片外RAM存储单元; MOV R0,#20h MOVX A,@R0 3,尽管片内与片外的RAM单元 的00H-FFH地址相重叠但由 于指令的不同不会发生地址 混乱。 FFFFH 片外数据 存储器 64KB FFH 特殊功能 寄存器 SFR 80H 7FH 通用数据 存储器 00H 0000H 片内数据存储器 片外数据存储器 256B个字节 64KB个字节

  19. 片内RAM低 128B 字节功能分配图 7FH 便笺区 通用的RAM区 地址:30H-7FH 30H 2FH 位寻址区 16个单元20H-2FH, 共有128 可寻址位个位。 位地址:00H-7FH 注意:位地址与字节地址的区别 位寻址区 20H 1FH 3区 18H 17H 四个工作寄存器区 每个区中有R0-R7 八个工作寄存器 2区 10H 0FH 1区 08H 07H 00H 0区 返回上一次

  20. 片内 RAM(20H-2FH)中的位寻址区结构图 2FH 字节地址 20H

  21. 位寻址区内的地址是位地址。共有00-7FH(共128个位);位寻址区内的地址是位地址。共有00-7FH(共128个位); • 要区分字节地址和位地址这两个不同的地址概念: 从物理的角度,每一个字节地址内包含了8个位,既: D7,D6,D5,D4,D3,D2,D1,D0 在一般情况,我们提到的RAM地址都是字节地址。 从逻辑的角度讲,字节地址和位地址是靠不同类型的指令来区分的。如: MOV A, 20h ;将RAM的20单元内容送累加器A; MOV C ,20h ;将RAM位寻址区中20H位送CY中。 在这二个例子中,第一条指令为字节传送指令,所以20H为字节地址;第二个例子中的指令为位操作指令,所以20H为位地址。有关详细内容将在第二章中描述。

  22. 0区工作寄存器区结构图 RAM地址 07H 06H 05H 04H 03H 02H 01H 00H 返回上一次

  23. 特殊功能寄存器SFR • 特殊功能寄存器SFR (Special Function Register) 特殊用途寄存器的集合。用来设定单片机内部各个部件的工作方式,存放相关部件的状态,定时器初值寄存器,并行端口的锁存器等等。 尽管特殊功能寄存器与RAM在同一个单元中,但不能作为普通的RAM存储单元来使用。只有在编程中根据需要,进行一些特定功能的设定,或者是从中查寻相关部件的状态时,才能进行读、写操作。如中断方式的设定、定时器工作模式的设定,查询串行口发送或接收是否结束等等。

  24. 特殊功能寄存器 SFR(表一)

  25. SFR(表二) 注:表中黄色的单元为可按位寻址的字节 0FFH SFR 高128B 80H 7FH 特殊功能寄存器 SFR在片内RAM 中的位置 低128B 00H

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

  27. 程序状态字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在哪个区中. 单片机在上电或复位后RS1、RS0=00。当需要人为的修改RS1,RS0的值来改变工作寄存器区的位置。 RAM分配图

  28. 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的内容与立即数0f8h相加,结果送A 0000 1111 运算结果:A=07H,CY=1(既CP=1), + 1111 1000 CS=1,OV=0(因为CP=1,CS=1) Cy→1 0000 0111 AC=1,P=1 如何根据PSW来分析运算结果是否正确?是否有溢出? 1,若数据为无符号数。既15+248=263=107H 既CY=1,A=07H。 2,若数据为有符号数。既+15加-8=+7=07H,OV=0表明无溢出。

  29. RAM 累加器A • SP 堆栈指针:8位寄存器,用来指示堆栈的位置,可由软件修改。在MCS-51单片机的设计中,片内RAM区为堆栈的可用空间。上电或复位时,SP被初始化为07H,既堆栈底部被确定在RAM的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。 x SP 08H 07H 07H 堆栈操作示意图

  30. 并行端口P0-P3:SFR中的P0-P3实际上就是I/O端口的数据锁存器。与RAM中的任意一个单元一样,P0-P3都有自己的RAM地址:80H、90H、A0H、B0H。所以,在51单片机中的输入、输出操作实际上就是个普通的RAM单元操作一样:如并行端口P0-P3:SFR中的P0-P3实际上就是I/O端口的数据锁存器。与RAM中的任意一个单元一样,P0-P3都有自己的RAM地址:80H、90H、A0H、B0H。所以,在51单片机中的输入、输出操作实际上就是个普通的RAM单元操作一样:如 输出指令 MOV 80H,A ;将累加器中的数据送到P0口输出 输入指令 MOV A,90H ;将P1口的数据输入到累加器A中 既MCS-51的指令系统中没有专用的输入、输出(IN、OUT)指令,而是把P0-P3作为普通的内存单元来使用。上面的第一个例子实际上就是MCS-51的输出指令;同理后者是MCS-51的输入指令。

  31. 串行数据缓冲器SBUF:它是专门用来存放发送或接收的数据,实际上它是两个独立的寄存器。尽管在SFR中的RAM地址只是99H,但根据指令“发送”或“接收”两种不同的操作,硬件会自动的区分,将数据送如对应的缓冲单元。串行数据缓冲器SBUF:它是专门用来存放发送或接收的数据,实际上它是两个独立的寄存器。尽管在SFR中的RAM地址只是99H,但根据指令“发送”或“接收”两种不同的操作,硬件会自动的区分,将数据送如对应的缓冲单元。 • 定时/计数器T0、T1:无论是定时还是计数,对于MCS-51单片机的定时/计数器来说,都是一个“计数器”在计数。这个“计数器”是由两个8位寄存器(高位和低位)构成的16位计数器,分别是TH0、TL0(T0);TH1、TL1(T1)。TH和TL中的数据直接与“定时操作”或“计数操作”有关,因此在使用定时/计数器之前,要对它进行初始化,其中就要对TH、TL赋初值。如: MOV 8CH,#01H MOV 8AH,#20H 大家试分析上面两条指令的作用。 有关SFR中其它寄存器的说明将相关的章节中作介绍。 TH0 TL0

  32. 1.4.3 外部数据存储器 • 在片内RAM不能满足需要时,就要外接RAM。P0、P1作为外部RAM的地址和数据总线。 MCS-51对外部数据存储器的扩展能力为64KB。除了硬件电路外,系统主要是靠专门的指令来访问外部数据存储器。 如: 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。

  33. 1.6.1 P0口: 特点:“通用数据I/O端口”和“地址、数据复用总线”端口. 1,在作为通用数据I/O端口时,具有较强的驱动能力(8个TTL负载),与MOS负载连接时,需要外接一个上拉电阻。 2,作为“地址、数据复用总线”使用时,P0口首先输出外部存储器的低八位地址,然后再变为数据总线进行数据的输入或输出.此时,P0口不能再作为通用I/O口。

  34. P0口的位结构图 Vcc Vcc 读锁存器 控制(=0时) 地址/数据 1/0 内部总线 P0.x 引脚 D Q 锁存器 CL /Q 写锁存器 MUX (控制=0时) 读引脚 硬件组成: 1,一个输出锁存器(D型触发器); 2,二个三态门(控制读引脚或读锁存器); 3,与门和MUX等元件组成的输出控制电路; 4,一对场效应晶体管FET构成的输出电路. 1,P0口的I/O操作; 2,P0口的总线方式 返回前一次

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

  36. 输入操作(读引脚,读锁存,输入前写一) a,读引脚:读外部送到端口引脚的电平,即通常所说的输入操作(如:MOV A,P0).此时,单片机控制“读引脚”的三态门,使引脚处的外部电平经三态门送入内部总线. b,读锁存器:将进行读锁存器并进行处理,最后再写回锁存器的操作称之为: “读—修改—写”操作。在这种情况下, 读入的数据不是来自引脚,而是端口内部的锁存器的内容。 当前面完成一次端口的输出后,要再将前面输入的状态取回来,进行再处理,然后重新输出,在MCS-51的指令系统中这种“读—修改—写”的操作有: ORL 、XRL 、JBC 、CPL 、INC 、DEC 、DJNZ 、MOV Px,y 、 CLR Px,y和SET Px,y。 如: ORL P0,A ;P0 ∨ A → P0 P0. X 返回结构图

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

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

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

  40. 特点:单纯的通用I/O端口,负载能力为3个TTL输入。与P0口的区别在于内部具有上拉电阻,所以输出时不用外接上拉电阻。特点:单纯的通用I/O端口,负载能力为3个TTL输入。与P0口的区别在于内部具有上拉电阻,所以输出时不用外接上拉电阻。 1.6.2 P1口的位结构图 Vcc 读锁存器 内部上拉电阻 P1.x 引脚 D Q 锁存器 CL /Q 内部总线 写锁存器 读引脚 返回前一次

  41. 1.6.3 P2口 特点:“通用数据I/O端口”和“高八位地址总线”端口 地址/数据 1/0 Vcc 控制 读锁存器 内部上拉电阻 内部总线 P2.x 引脚 D Q 锁存器 CL /Q MUX (地址/数据=0) 写锁存器 读引脚 返回上一次

  42. 与P0口一样,P2口在系统使用外部存储器时,做高八位的地址总线。与P0口一样,P2口在系统使用外部存储器时,做高八位的地址总线。 • 应当注意的是:仅使用外部数据存储器时,P2口分两种情况: 1,仅仅使用256B的外部RAM时,既使用movx a,@r0指令访问外部RAM,此时用8位的寄存器R0或R1作间址寄存器,这时P2口无用,所以在这种情况下,P2口仍然可以做通用I/O端口。 2,如果访问外部ROM或使用大于256BRAM时,P2口必须作为外存储器的高八位地址总线。 如:movx a,@dptr ;访问外部数据存储器 movc a,@a+dptr ;访问外部程序存储器 这里使用了16位的寄存器DPTR 上一页

  43. 1.6.4 P3口 特点:通用I/O端口、多用途端口 Vcc 读锁存器 替代输出功能 • 在多用途情况下,P3口分别作为串行口、外中断输入、外部计数输入和系统扩展时使用的WR和RD信号的端口。在这种情况下,锁存器Q端为“1”电平以保证与门是打开的。 • 在通用I/O模式下,“替代输出功能”端为“1”电平,以保证与门打开。 P3.x 引脚 内部总线 D Q 锁存器 CL /Q 写锁存器 MUX (地址/数据=0) 读引脚

  44. “拉电流”还是“灌电流”----与大电流负载的连接“拉电流”还是“灌电流”----与大电流负载的连接 (我们以美国ATMEL公司生产的AT8951为例) 1,使用灌电流的方式与电流较大的负载直接连接时, 端口可以吸收约20mA的电流而保证端口电平不高于0.45V(见右上图)。 2,采用拉电流方式连接负载时,AT89C51所能提供“拉电流”仅仅为80μA,否则输出的高电平会急剧下降.如果我们采用右下图的方式,向端口输出一个高电平去点亮LED,会发现,端口输出的电平不是“1”而是“0”! 当然,不是所有的单片机都是这样,PIC单片机就可以提供30mA的拉电流和灌电流。单对于大多数IC电路,最好还是使用“灌电流”去推动负载。 1.6.5 并行端口在使用时应注意的几个问题 Vdd Vdd Px.y 灌电流方式 输出”0”点 亮LED 拉电流方式 输出高电平 点亮LED Vdd Px.y

  45. 单片机与继电器等大电流负载的接口 Vcc 负载 • 我们知道:AT89C51的端口可以吸收约20mA的电流.对于继电器等大于20mA的负载,单片机可以采用右图的接法,用一个三极管来承担负载所需的大电流. • 若于负载电流易造成干扰单片机的环境,应采用右下图”光电隔离”的方式.其中: A 、B两处没有 任何电的联系. Px.y Vdd Vcc J Px.y B A

  46. 1.7 MCS-51单片机的定时/计数器 定时/计数器工作方式与原理: 1.7.1 定时/计数器的四种工作模式 1,模式0:既13位计数器模式 2,模式一:既16位计数器模式 3,模式二: 自动重装初值模式 4,模式三: 组合扩展模式 1.7.2 MCS-51定时/计数器的控制和状态寄存器 1,模式控制寄存器TMOD (SFR的地址:89H) 2,控制寄存器 TCON (SFR地址:88H)

  47. 定时/计数器工作方式与原理: 定时/计数器是一种应用非常广泛的逻辑电路,它可以完成两种不同的方式工作----“定时”、“计数”。

  48. 定时/计数器工作方式与原理: 1,定时:产生一个标准的时间间隔;如20mS,100mS或1000mS等.单片机使用这种方式可以产生一个符合某一要求的脉冲方波(如下图)。 2,计数:对外部的事件(脉冲)进行统计.很明显外部事件的发生是随机的,单片机不可能预知外部事件何时发生,但可以进行统计,当达到所要求的数值时,单片机进行相应的操作。 20mS 40mS

  49. 3,定时/计数器的工作原理:用一个简单的框图构造它的模型 :N位计数器构成了电路的核心。定时,计数两种方式的区别在于计数器的脉冲来源.初值寄存器是用来设定“定时/计数的具体参数” (1):何时控制启动计数? (2):如何控制定时还是计数? (3):如何控制定时/计数的长短? 系统内部 时钟fosc 计数脉冲CP 定时/计数 控制C/T TF N位+1计数器 计数器溢出 中断信号 N位初值寄存器 外部脉冲 启动控制TR 返回

  50. 1.7.1 定时/计数器的四种工作模式 1,模式0:13位计数器模式。 当计数器计满为全”1”时,再来一个计数脉冲时,就产生一个“溢出中断信号”TF1=1. 启动控制 震荡器 1/12 13位加1计数器 C/T=0 TF1 TH1 TL1 中断 C/T=1 T1 引脚 (8位) (低5位) TR1 高三位弃用 GATE INT1

More Related