单片机硬件基础知识.ppt

上传人:夺命阿水 文档编号:246801 上传时间:2023-03-22 格式:PPT 页数:92 大小:2.42MB
返回 下载 相关 举报
单片机硬件基础知识.ppt_第1页
第1页 / 共92页
单片机硬件基础知识.ppt_第2页
第2页 / 共92页
单片机硬件基础知识.ppt_第3页
第3页 / 共92页
单片机硬件基础知识.ppt_第4页
第4页 / 共92页
单片机硬件基础知识.ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《单片机硬件基础知识.ppt》由会员分享,可在线阅读,更多相关《单片机硬件基础知识.ppt(92页珍藏版)》请在课桌文档上搜索。

1、1,第二讲:单片机硬件基础,本讲重点:MCS-51的基本特性;单片机的引脚与I/O口结构;存储器、堆栈与特殊功能寄存器;低功耗运行方式 最小系统设计,2,MCS-51系列单片机配置一览表,注意:今后将会经常提到ATMEL的AT89C2051/51/52等MCU!,3,MCS-51单片机基本特性,8 位的 CPU,片内有振荡器和时钟电路,工作频率为 112MHz(Atmel 89Cxx为024MHz)片内有 128/256字节 RAM片内有 0K/4K/8K字节 程序存储器ROM可寻址片外 64K字节 数据存储器RAM可寻址片外 64K字节 程序存储器ROM片内 18个(21字节)/21个(26

2、字节)特殊功能寄存器(SFR)4个8位 的并行I/O口(PIO)1个 全双工串行口(SIO/UART)2/3个16位 定时器/计数器(TIMER/COUNTER)可处理 5/6个中断源,两级中断优先级内置1个布尔处理器和1个布尔累加器(Cy)MCS-51指令集含 111条指令,4,MSC-51系列单片机内部结构,5,内部结构框图,6,单片机的引脚定义,从一片集成电路的角度去认识单片机,7,认识单片机的引脚,MCS-51单片机40脚Vcc,GND 2XTAL1,XTAL2 2RESET 1EA/Vpp 1ALE/PROG 1PSEN 1,P0.0P0.7 8 P1.0P1.7 8 P2.0P2.

3、7 8 P3.0P3.7 8,8,单片机的引脚(电源端),Vcc,GND:正电源端与接地端(+5V/3.3V/2.7V)不同的单片机可以允许不同的工作电压,不同的单片机表现出的功耗也不同。,9,单片机的引脚(晶振端),Vcc,GND:正电源端与接地端(+5V/3.3V/2.7V)不同的单片机可以允许不同的工作电压,不同的单片机表现出的功耗也不同。,XTAL1,XTAL2:片内振荡电路输入/输出端,10,单片机的引脚(晶振端),Vcc,GND:正电源端与接地端(+5V/3.3V/2.7V)XTAL1,XTAL2:片内振荡电路输入/输出端,1545pfx2,112MHz(MCS-51)024MHz

4、(Atmel-89C),XTAL1,XTAL2,通常外接一个晶体两个电容,(1)内部时钟方式,11,常见无源晶振外形和种类,12,单片机的引脚(晶振端),Vcc,GND:正电源端与接地端(+5V/3.3V/2.7V)XTAL1,XTAL2:片内振荡电路输入/输出端,112MHz(MCS-51)024MHz(Atmel-89C),可以根据情况由 XTAL1或XTAL2端接入外部时钟,当一个引脚接时钟时,另一个引脚此时应将接地或悬空:,XTAL2/XTAL1,XTAL1/XTAL2,外部时钟,(2)外部时钟方式,13,单片机的引脚(晶振端),Vcc,GND:正电源端与接地端(+5V/3.3V/2.

5、7V)XTAL1,XTAL2:片内振荡电路输入/输出端,HMOS(高密度沟道MOS)芯片XTAL2端接外部时钟,XTAL1接地,如:8051。,XTAL1,XTAL2,外部时钟,(2)外部时钟方式,CHMOS(互补金属氧化物HMOS)芯片XTAL1端接外部时钟,XTAL2悬空,如:89C51。,XTAL2,XTAL1,外部时钟,14,常见有源晶振外形,15,单片机的引脚(晶振端),Vcc,GND:正电源端与接地端(+5V/3.3V/2.7V)XTAL1,XTAL2:片内振荡电路输入、输出端,CPU总是按照一定的时钟节拍与时序工作:,振荡周期/时钟周期:Tc=晶振频率fosc(或外加频率)的倒数

6、状态周期:Ts=2个时钟周期(Tc)(很少用到此概念)机器周期:Tm=6个状态周期(Ts)=12个振荡周期(Tc)指令周期:Ti:执行一条指令所需的机器周期(Tm)数,牢牢记住:振荡周期=晶振频率fosc的倒数;,1个机器周期=12个振荡周期;,1个指令周期=1、2、4个机器周期,16,单片机的引脚(复位端),Vcc,GND:电源端(+5V/3.3V/2.7V)XTAL1,XTAL2:片内振荡电路输入、输出端RESET:复位端(正脉冲有效,宽度8 ms),17,复位使单片机进入某种确定的初始状态:PC值归零(0000H);各个SFR被赋予初始值(见P.42):P0P3=0FFH,Acc=0,B

7、=0,TH0=0,TL0=0,TH1=0,TL0=0,SP=7,PSW=0 退出处于节电工作方式的停顿状态、退出一切程序进程、退出程序的死循环,从头开始。,单片机的引脚(复位端),Vcc,GND:电源端(+5V/3.3V/2.7V)XTAL1,XTAL2:片内振荡电路输入、输出端RESET:复位端(正脉冲有效,宽度8 ms),18,PC与SFR复位状态表,19,单片机的引脚(复位端),A.上电复位,B.手动&上电复位,Vcc,GND:电源端(+5V/3.3V/2.7V)XTAL1,XTAL2:片内振荡电路输入、输出端RESET:复位端(正脉冲有效,宽度8 ms),20,单片机的引脚(复位端),

8、C.同步复位电路,Vcc,GND:电源端(+5V/3.3V/2.7V)XTAL1,XTAL2:片内振荡电路输入、输出端RESET:复位端(正脉冲有效,宽度8 ms),21,D.专用复位芯片,应用于可靠性要求较高的嵌入式系统中。,22,单片机的引脚(EA端),Vcc,GND:电源端(+5V/3.3V/2.7V)XTAL1,XTAL2:片内振荡电路输入、输出端RESET:复位端(正脉冲有效,宽度8 ms)EA/Vpp:寻址外部ROM控制端/编程电源输入端。低有效,片内无ROM时必须接地;片内有ROM时应当接高电平;对片内ROM编程时编程正电源加到此端。,23,单片机的引脚(ALE端),Vcc,GN

9、D:电源端(+5V/3.3V/2.7V)XTAL1,XTAL2:片内振荡电路输入、输出端RESET:复位端(正脉冲有效,宽度8 ms)EA/Vpp:寻址外部ROM控制端/编程电源输入端。ALE/PROG:地址锁存允许/编程脉冲输入端。P0口寻址外部低8位地址时接外部锁存器 G端;ALE端平时会输出周期正脉冲:f fosc/6;对片内ROM编程时编程脉冲由此端加入。,24,单片机的引脚(PSEN端),PSEN:寻址外部程序存储器时选通外部EPROM的 读控制端(OE)低有效。,25,单片机,锁存器74LS373,P0.0-P0.7,ALE,PSEN,P2.0-P2.4,8D,8Q,OE,A8-A

10、12,A0-A7,D0-D7,G,EA,OE,CE,EPROM,单片机的引脚(PSEN端),PSEN:寻址外部程序存储器时选通外部EPROM的 读控制端(OE)低有效。,26,单片机的I/O引脚结构,众多功能各异的I/O引脚源于它结构的不同,27,单片机的引脚(P1口),P1.0P1.7:准双向I/O口(内置了上拉电阻)输出时一切照常,仅在作输入口用时要先对其 写“1”。,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,Vcc,引脚P1.X,内部上拉电阻,28,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,Vcc,引脚P1.X,内部上拉电阻,输出数据=1

11、时,1,1,0,截止,=1,单片机的引脚(P1口),P1.0P1.7:准双向I/O口(内置了上拉电阻)输出时一切照常,仅在作输入口用时要先对其 写“1”。,29,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,Vcc,引脚P1.X,内部上拉电阻,输出数据=0 时,0,0,1,=0,导通,单片机的引脚(P1口),P1.0P1.7:准双向I/O口(内置了上拉电阻)输出时一切照常,仅在作输入口用时要先对其 写“1”。,30,2,1,D,Q,CK,/Q,读引脚=1,读锁存器,写锁存器,内部总线,Vcc,引脚P1.X,内部上拉电阻,输入数据时,要先对其写“1”,1,1,0,截止,单片机

12、的引脚(P1口),P1.0P1.7:准双向I/O口(内置了上拉电阻)输出时一切照常,仅在作输入口用时要先对其 写“1”。,31,简单测控实例原理图,32,P1.3作输入端口,光路通畅,R亮2K光路阻断,R暗 400K,33,JOB3:CLR P1.1;亮绿灯REDO:SETB P1.3;P1.3作输入口必先置1CHECK:JNB P1.3,CHECK;检测通道是否被阻断?LOOP:;有入侵者,报警!AJMP REDO;再跳回去检测,任务:红外防盗报警,P1.3口用于输入状态检测的语句:,红外线光路通畅时,P1.3端低电平红外线光路阻断时,P1.3端高电平,34,单片机的引脚(P0口),P0.0

13、P0.7:双向I/O(内置场效应管上拉)寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,地址/数据,控制,引脚P0.X,3,4,Vcc,35,2,1,D,Q,CK,/Q,读引脚=1,读锁存器,写锁存器,内部总线,地址/数据,控制,引脚P0.X,3,4,控制=0 时,此脚作输入口(事先必须对它写“1”),0,0,1,0,0,截止,截止,=0,Vcc,单片机的引脚(P0口),P0.0P0.7:双向I/O(内置场效应管上拉)寻址外部程序存储器时分时作为双向8位数据口

14、和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。,36,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,地址/数据,控制,引脚P0.X,3,4,控制=0 时,此脚作输出口(输出引脚必须加上拉电阻),0,0,1,0,0,截止,截止,=0,Vcc,单片机的引脚(P0口),P0.0P0.7:双向I/O(内置场效应管上拉)寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。,37,2,1,D,Q,CK,/Q,读引脚=0,读锁存器,写锁存器,内部总线,地址/数据,控制=1,引脚P0.X,3,4,控

15、制=1时,此脚作地址/数据复用口:(1)输出地址/数据=0 时,1,0,1,1,=0,导通,截止,=0,Vcc,单片机的引脚(P0口),P0.0P0.7:双向I/O(内置场效应管上拉)寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。,38,2,1,D,Q,CK,/Q,读引脚=0,读锁存器,写锁存器,内部总线,地址/数据,控制=1,引脚P0.X,3,4,控制=1时,此脚作地址/数据复用口:(2)输出地址/数据=1 时,1,1,0,0,=1,截止,导通,=1,Vcc,单片机的引脚(P0口),P0.0P0.7:双向I/O(内置场效应

16、管上拉)寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。,39,2,1,D,Q,CK,/Q,读引脚=1,读锁存器,写锁存器,内部总线,地址/数据,控制=1,引脚P0.X,3,4,控制=1时,此脚作地址/数据复用口:(3)输入数据时,输入指令将使引脚与内部总线直通,Vcc,单片机的引脚(P0口),P0.0P0.7:双向I/O(内置场效应管上拉)寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。,40,单片机的引脚(P2口),P2.0P2.7:双向I/O(内置了上拉

17、电阻)寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,地址高8位,控制,引脚 P2.X,3,内部上拉电阻,Vcc,41,2,1,D,Q,CK,/Q,读引脚=0,读锁存器,写锁存器,内部总线,地址高8位,控制,引脚P2.X,控制=0时,此脚作通用输出口:输出=0时,0,0,1,导通,3,内部上拉电阻,0,0,Vcc,=0,=0,单片机的引脚(P2口),P2.0P2.7:双向I/O(内置了上拉电阻)寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。,42,2

18、,1,D,Q,CK,/Q,读引脚=0,读锁存器,写锁存器,内部总线,地址高8位,控制=1,引脚P2.X,控制=1 时,此脚作高8位地址A8A15输出口:当输出=1 时,1,0,截止,3,内部上拉电阻,1,=1,Vcc,=1,单片机的引脚(P2口),P2.0P2.7:双向I/O(内置了上拉电阻)寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。,43,2,1,D,Q,CK,/Q,读引脚=0,读锁存器,写锁存器,内部总线,地址高8位,控制=1,引脚P2.X,0,1,导通,3,内部上拉电阻,0,=0,Vcc,=0,控制=1 时,此脚作高8位地址A8A15输出口:当

19、输出=0 时,单片机的引脚(P2口),P2.0P2.7:双向I/O(内置了上拉电阻)寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。,44,单片机的引脚(P3口),P3.0P3.7:双功能口(内置了上拉电阻)它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向I/O口。,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,第二功能输出,引脚 P3.X,3,内部上拉电阻,Vcc,第二功能输入,4,45,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,第二功能输出(WR,RD,TxD),引脚 P3.X,3,内部上拉

20、电阻,Vcc,4,第二功能输出时,内部自动 D=1,1,1,1,反相器,单片机的引脚(P3口),P3.0P3.7:双功能口(内置了上拉电阻)它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向I/O口。,46,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,此端自动1,引脚 P3.X,3,内部上拉电阻,Vcc,第二功能输入(RxD,T0,T1,INT0,INT1),4,第二功能输入时,信号经缓冲器4 直接进入内总线,1,1,1,0,截止,单片机的引脚(P3口),P3.0P3.7:双功能口(内置了上拉电阻)它具有特定的第二功能。在不使用它的第二功能时它就是普通的通

21、用准双向I/O口。,47,P3口第二功能表(P.31 表2-3),48,51单片机的8个特殊引脚,Vcc,GND:电源端XTAL1,XTAL2:片内振荡电路输入、输出端RESET:复位端 正脉冲有效(宽度8 ms)EA/Vpp:寻址外部ROM控制端。低有效 片内有ROM时应当接高电平。ALE/PROG:地址锁存允许控制端。PSEN:选通外部ROM的读(OE)控制端。低有效,小结,49,51单片机的4个8位的I/O口,P0.0P0.7:8位数据口和输出低8位地址复用口(复用时是双向口;不复用时也是准双向口)P1.0P1.7:通用I/O口(准双向口),P2.0P2.7:输出高8位地址(用于寻址时是

22、输出口;不寻址时是准双向口)P3.0P3.7:具有特定的第二功能(准双向口),注意:在不外扩ROM/RAM时,P0P3均可作通用I/O口使用,而且都是准双向I/O口(例如:AT89C51)!,小结,50,P3口第二功能表(P.31 表2-3),小结,51,存储器、堆栈、SFR,52,程序存储器ROM(Read Only Memory)MASK ROMPROMProgrammable ROMEPROM(UV)Erazible Programmable ROMEEPROM/E2PROMElectrical Erasable Programmable ROM闪速存储器Flash Memory按字节寻

23、址:每个字节(8个位)占一个地址按位寻址:有的存储器每一个位就有一个地址,单片机的存储器几个有关的概念:,53,数据存储器RAM(Random Access Memory)静态存储器 SRAMStatic RAM动态存储器 DRAMDynamic RAM,单片机的存储器几个有关的概念:,54,89C51单片机存储器配置,单片机的存储器系统采用哈佛结构,ROM空间和RAM空间是分开的。片内Flash ROM 4K字节(000HFFFH)片内RAM 128字节(00H7FH)可寻址片外ROM 64K字节(0000HFFFFH)可寻址片外RAM 64K字节(0000HFFFFH),55,89C51单

24、片机存储器配置 ROM,程序存储器编址原则:(P37)先片内,后片外,片内、片外连续,二者一般不重叠。,56,89C51单片机存储器配置 ROM,ROM中7个特殊入口地址(P37),57,89C51单片机存储器配置 RAM,片内RAM 128字节(00H7FH):片内RAM前32个单元是工作寄存器区(00H1FH)片内RAM有128个可按位寻址的位,占16个单元。位地址编号为:00H7FH,分布在20H2FH单元 片内RAM有80个单元是数据缓冲区(30H7FH)(52有208个单元,30HFFH)片内18/21(51/52)个特殊功能寄存器(SFR)中:地址号能被8整除的 SFR中的各位也可

25、按位寻址(P.3940),58,存储器配置(片内RAM),片内RAM 128字节(00H7FH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,SFR分布在80H-FFH其中93个位可位寻址,80H,FFH,所有的RAM区(包括位寻址区、工作寄存器区)都可以用于存放数据,故也称为数据缓存寄存器,89C51 128字节,59,片内RAM前32个单元是工作寄存器区(00H1FH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,存储器配置

26、(片内RAM),60,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,R0,R2,R1,R3,R4,R5,R6,R7,07H,02H,01H,00H,06H,04H,05H,03H,08H,1FH,工作寄存器区3,工作寄存器区2,工作寄存器区1,工作寄存器区0,0FH,10H,17H,18H,片内RAM前32个单元是工作寄存器区(00H1FH),存储器配置(片内RAM),61,R0,R2,R1,R3,R4,R5,R6,R7,07H,02H,01H,00H,06H,04H,05H,03H,08H,1FH,工作寄存器区

27、3,工作寄存器区2,工作寄存器区1,工作寄存器区0,0FH,10H,17H,18H,工作寄存器选择(通过PSW中第4位、第3位,即RS1、RS0两位的值进行选择),存储器配置(片内RAM),62,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,片内RAM中有128个可按位寻址的位。位地址:00H7FH 分布在:20H2FH单元,存储器配置(片内RAM),63,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,27H,22H,21H,20H

28、,26H,24H,25H,23H,28H,2FH,单元地址,07 06 05 04 03 02 01 00,0F 0E 0D 0C 0B 0A 09 08,17 16 15 14 13 12 11 10,1F 1E 1D 1C 1B 1A 19 18,27 26 25 24 23 22 21 20,2F 2E 2D 2C 2B 2A 29 28,37 36 35 34 33 32 31 30,3F 3E 3D 3C 3B 3A 39 38,47 46 45 44 43 42 41 40,7F 7E 7D 7C 7B 7A 79 78,位地址,总共128个可按位寻址的位,片内RAM中有128个可

29、按位寻址的位。位地址:00H7FH 分布在:20H2FH单元,存储器配置(片内RAM),64,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,27H,22H,21H,20H,26H,24H,25H,23H,28H,2FH,单元地址,07 06 05 04 03 02 01 00,0F 0E 0D 0C 0B 0A 09 08,17 16 15 14 13 12 11 10,1F 1E 1D 1C 1B 1A 19 18,27 26 25 24 23 22 21 20,2F 2E 2D 2C 2B 2A 29 28,

30、37 36 35 34 33 32 31 30,3F 3E 3D 3C 3B 3A 39 38,47 46 45 44 43 42 41 40,7F 7E 7D 7C 7B 7A 79 78,位地址,总共128个可按位寻址的位,存储器配置(片内RAM),注意:MOV C,00HMOV A,00HMOV A,20H的区别,65,堆栈:在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循顺序存取和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。,功用:1)子程序调用和中断服务时CPU自动将当前PC 值压栈保存,返回时自动将PC值弹栈。2)保护现场/恢复现场3)数据传输,6

31、6,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,SP栈顶,下一个进栈的数据将存在此,数据进栈,已经进栈的数据存放在此,初始 SP,复位后 SP=07H,数据进栈时:首先SP+1指向08H单元,第一个放进堆栈的数据将放进08H单元,然后SP再根据进栈指令自动增 1,始终指着栈顶,堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。,67,从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然

32、后SP再自动减1,仍指着栈顶,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,SP栈顶,当前要出栈的数据,数据出栈,SP-1指向下一个将要出栈的数据,初始 SP,堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。,68,从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,

33、普通RAM区,位寻址区,工作寄存器区,SP-1 指向新的栈顶,也就是下一个将要出栈的数据,数据出栈,初始 SP,堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。,69,可寻址片外RAM 64K字节(0000HFFFFH)*片内片外地址可以重叠,存储器配置(片外RAM),70,89C51特殊功能寄存器(SFR),特殊功能寄存器SFR(专用寄存器)专用于控制、选择、管理、存放单片机内部各部分的工作方式、条件、状态、结果的寄存器。,不同的SFR管理不同的硬件模块,负责不同的功能各司其职换言之:要

34、让单片机实现预订的功能,必须有相应的硬件和软件,而软件中最重要的一项工作就是对SFR写命令(要求)。,71,程序计数器PC(Program Counter)PC 不是一个在特殊功能寄存器区的SFR,但其作用又十分重要和特殊!,特点:它是16位的按机器周期自动增1计数器,一切分支/跳转/调用/中断/复位 等操作的本质就是:改变 PC 值,总指向下一条指令所在首地址(当前PC值),特殊功能寄存器(PC),72,89C51有21个字节SFR(89C52有26个字节)P3940 已知的P0、P1、P2、P3等四个8位I/O口分别由名为P0、P1、P2、P3四个SFR代表。,堆栈指针寄存器 SP(Sta

35、ck Pointer):总是指向栈顶,压栈时先(SP)+1 然后数据进栈;弹栈时数据先出栈 然后(SP)-1。,累加器 ACC:一个被众多指令用得最频繁的特殊功能寄存器(如:运算、数据传输)。,特殊功能寄存器(P0P3,SP,A,B,DPTR),73,副累加器 B:一个经常与 ACC 配合在一起使用的特殊功能寄存器(如:乘法、除法),此外,它也经常当作普通寄存器使用。,特殊功能寄存器(P0P3,SP,A,B,DPTR),数据指针寄存器DPTR:一个16位寄存器,可以暂存片外的16位地址,作间址寄存器使用,对外部存储器和I/O口寻址,也可拆成高低两字节DPH,DPL单独使用。,74,程序状态字寄

36、存器 PSW,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,CY(PSW.7)进位/借位标志位。若ACC在运算过程中发生了进位或借位,则CY=1;否则=0。它也是布尔处理器的位累加器,可用于布尔操作。,AC(PSW.6)半进位/借位标志位。若ACC在运算过程中,D3位向D4位发生了进位或借位,则AC=1,否则=0。机器在执行“DA A”指令时自动要判断这一位,我们可以暂时不关心它。,F0(PSW.5)可由用户定义的标志位。,PSW.6,PSW.5,特殊功能寄存器(PSW),75,程序状态字寄存器 PSW(续):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PS

37、W.0,RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位。,RS1,RS0=0 1 则选择了工作寄存器组 1 区R0R7分别代表08H 0FH单元。,RS1,RS0=1 0 则选择了工作寄存器组 2 区 R0R7分别代表10H 17H单元。,RS1,RS0=1 1 则选择了工作寄存器组 3 区R0R7分别代表18H 1FH单元。,PSW.4 PSW.3,RS1,RS0=0 0 则选择了工作寄存器组 0 区R0R7分别代表00H 07H单元。,76,片内RAM前32个单元(00H1FH)是工作寄存器区(由PSW中的RS1,RS0决定),00H,20H,2FH,7FH,1FH,30H,

38、80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,R0,R2,R1,R3,R4,R5,R6,R7,07H,02H,01H,00H,06H,04H,05H,03H,08H,1FH,工作寄存器区3,工作寄存器区2,工作寄存器区1,工作寄存器区0,77,程序状态字寄存器 PSW(续):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,OV(PSW.2)溢出标志位。OV=1时特指累加器在进行带符号数(-128+127)运算时出错(超出范围);OV=0时未出错。,PSW.1 未定义。,P(PSW.0)奇偶标志位。P=1表示累加器中“1”的个数为奇数 P=

39、0表示累加器中“1”的个数为偶数 CPU随时监视着ACC中的“1”的个数,并反映在PSW中,PSW.2,PSW.1,78,PC与SFR复位状态表,回顾,79,89C51单片机存储器配置,片内RAM 128字节(00H7FH);片内RAM前32个单元是工作寄存器区(00H1FH)片内RAM有128个可按位寻址的位,占16个单元。位地址编号为:00H7FH 分布在:20H2FH单元片内21个特殊功能寄存器(SFR)中:地址号能被 8整除的 SFR中的各位也可按位寻址可寻址片外RAM 64K字节(0000HFFFFH)可寻址片外ROM 64K字节(0000HFFFFH)片内Flash ROM 4K字

40、节(000HFFFH),小结,80,存储器配置(片内RAM),片内RAM 128字节(00H7FH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,SFR分布在80H-FFH其中93个位可位寻址,80H,FFH,所有的RAM区(包括位寻址区、工作寄存器区)都可以用于存放数据,故也称为数据缓存寄存器,128字节,小结,81,单片机存储器配置(片外RAM/ROM),可寻址片外RAM 64K字节(0000HFFFFH);可寻址片外ROM 64K字节(0000HFFFFH);片内 Flash ROM 4K字节(000HF

41、FFH);,FFFFH,0000H,可寻址片外RAM,64K字节,FFFFH,0000H,可寻址片外ROM,64K字节,FFFH,000H,可寻址片内 Flash ROM,4K字节,89C51,7FH,00H,片内 RAM,128字节,FFH,80H,小结,82,低功耗运行方式,83,电源控制寄存器PCON(97H):,SMOD:波特率倍增位,主要用于串行通信。,SMOD,GF1,GF0,IDL,PCON.7,PCON.0,PCON.3,PCON.1,PD,GF1,GF2:通用标志位,由用户自己定义。,PD:掉电方式位,PD1则进入掉电工作方式。,IDL:待机方式位,IDL1则进入待机工作方式

42、。,PCON.2,84,掉电工作方式,当电源控制寄存器PCON的PD为1时,进入掉电工作方式。在该方式下,振荡器停止工作,一切功能停止,但是片内RAM的数据可以保持不变,退出掉电工作方式的方法:硬件复位,进入掉电工作方式的方法:,85,掉电工作方式,待机方式和掉电方式的硬件结构,86,待机工作方式,当电源控制寄存器PCON的IDL为1时,进入待机工作方式。在该方式下,振荡器继续工作,时钟信号仍然提供给中断系统、串行口和定时器/计数器,但是通向CPU的时钟被冻结。,退出待机工作方式有两种方法:1.硬件复位 2.中断唤醒,进入待机工作方式的方法:,实际应用:通常在主程序中完成系统的初始化操 作后,

43、就使CPU进入待机工作方式,系 统所有的任务通过中断来触发完成。,这种程序结构程序在前后台系统结构中称为中断(事件)驱动系统,87,最小系统的设计,88,89,1.单片机的I/O口都是“准双向口”,在把I/O口设置为输入状态时,要先对端口的锁存器写入1。同时P0口作I/O口时,不带有上拉电阻;而P1,P2和P3口作I/O口时,自带上拉电阻。2.单片机的存储器系统采用哈佛结构,程序空间和数据空间是分开的,I/O空间占用数据空间的地址,二者采用相同指令访问,注意它和PC的区别。3.片内RAM空间的地址:0X800XFF和特殊功能寄存器SFR的地址重合,二者采用不同的寻址方式来加以区分。4.对于集成

44、在单片机片内的中断系统,定时/计数器和串行通信等内部资源,都是通过SFR来管理的,这实际上是一种软件管理硬件的方式。,实战经验,90,5.单片机的堆栈指针SP一般指向系统最后一个使用的RAM单元,因此初始化时,要留出足够的堆栈长度,避免堆栈的溢出。同时在入栈时,先把SP加一后,数据再入栈;出栈时,数据先出栈,再把SP减一。6.注意区别单片机的时钟周期和机器周期。时钟周期等于单片机采用的石英晶体振荡频率的倒数,而机器周期等于时钟周期的12倍7.复位电路设计时,并不仅仅要求复位时间大于两个机器周期就可以。因为电压的稳定性问题,一般要求提供几百个ms的复位脉冲。因此在实际中常采用专用的复位芯片来提供

45、标准的复位脉冲,这类芯片一般还提供了电压监控功能。,实战经验,91,8.单片机I/O口线的第二功能是自动选择的,不需要专门的指令去设置。9.单片机的堆栈是向上生长的,即堆栈指针向地址的高端增加,而PC的堆栈则是向下生长的,即堆栈指针向地址的低端增加。10.单片机的时钟电路可以采用石英晶体来构成,也可以采用有源晶振来构成,这里注意晶体和晶振的区别。11.EA接高电平访问片内ROM,接低电平访问片外ROM,由于目前集成在片内ROM的空间已经很大,则在实际使用中一般采用EA接高电平的方式。,实战经验,92,12.单片机的待机模式可以用来构成前后台模式中的“中断(事件)驱动系统”。主程序是一个死循环模式,在主程序中完成系统的初始化后进入待机工作模式,利用系统的中断来完成任务的执行。关于“前后台”工作模式的解释:“前后台”是一种编程模式,它是相对于采用了实时操作系统的编程模式而言的。这种结构的主程序是一个无限循环,该循环调用一些模块完成相关操作,成为“后台程序”,而中断服务程序处理异步事件和时间要求紧迫的事件,成为“前台程序”。,实战经验,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号