1/31回顾80C51单片机的CPU:运算器、控制器、其它寄存器80C51的时钟:外部时钟、内部时钟;一个机器周期包含12个时钟周期80C51的复位:上电复位、按键复位;复位后,PC:0000H,RAM:随机值,SFR(特殊功能寄存器):除P0~P3=FFH,SP=07H外,其他所有的有效位为0。P0、P1、P2、P3作为输出口时,P0口需要外接上拉电阻,其它端口不需要作为输入口时,要先向端口锁存器写入1,再进行读取P0口分时复用的低8位地址/数据总线;P2口高8位地址总线;P1口单一的I/O;P3口具有第二功能。2/31数码管显示某字符,需输入相应的字型码。扩展:锁存器可实现对单片机I/O口的扩展。锁存端高电平,直通方式;锁存端低电平,锁存。回顾3/31教学内容80C51单片机的程序存储器配置片内与片外程序存储器的选择程序存储器低端的特殊单元程序存储器中的指令代码及其观察80C51单片机的数据存储器配置工作寄存器区、位寻址区、通用RAM区80C51单片机的特殊功能寄存器(SFR)蜂鸣器、继电器的原理及操作4/31教学要求掌握片内外程序存储器的选择及特殊保留单元的作用掌握工作寄存器区、位寻址区、通用RAM区的地址空间划分理解特殊功能寄存器的功能及其所在地址空间掌握蜂鸣器、继电器的工作原理及编程操控方法5/3180C51的存储器组织80C51单片机的存储器结构特点之一是将程序存储器和数据存储器分开(哈佛结构),并有各自的访问指令。片内程序存储器片外程序存储器片内数据存储器片外数据存储器80C51存储器程序存储器ROM数据存储器RAM6/3180C51的存储器组织CPU访问片内、片外统一编址的64K程序存储器用MOVC指令;访问片外64K的数据存储器用MOVX指令;访问片内256字节的数据存储器用MOV指令。MCS-51单片机片内ROM4KB片内RAM128B片外RAM64KB片外ROM64KB7/3180C51单片机的程序存储器配置PC中内容变化轨迹决定程序流程。当顺序执行程序时自动加1;执行转移程序或子程序、中断子程序调用时,自动将其内容更改成所要转移的目的地址。PC的计数宽度决定了程序存储器的地址范围。PC为16位,故可对64KB(=216B)寻址。8/3180C51单片机的程序存储器配置0FFFH0000H0FFFH0000H片外程序存储器(最大64KB)单片机内部程序存储器(4KB)80C51单片机片内、外程序存储器80C51从片内ROM和片外ROM取指的速度相同。9/3180C51单片机的程序存储器配置80C51单片机利用EA引脚确定访问片内的还是片外的程序存储器。当EA=“1”时:80C51的PC在0000~0FFFH范围内执行片内ROM中的程序,当指令地址超过0FFFH后就自动转向片外ROM中取指令。当EA=“0”时:80C51片内ROM不起作用,CPU只能从片ROM/EPROM中取指令。可以从0000H开始寻址。10/3180C51单片机的程序存储器配置程序存储器的保留存储单元存储单元保留目的0000H~0002H复位后初始化引导程序0003H~000AH外部中断0000BH~0012H定时器0溢出中断0013H~001AH外部中断1001BH~0022H定时器1溢出中断0023H~002AH串行口中断002BH定时器2中断(8052才有)11/3180C51单片机的程序存储器配置程序存储器中的指令代码12/3180C51单片机的数据存储器配置片内RAM及SFR片外RAM片内RAM共128字节,分成工作寄存器区、位寻址区、通用RAM区;片外RAM地址空间与片内RAM地址空的低地址重叠,用不同的指令及寻址方式区分,访问片外RAM时,RD或WR有效。00H位寻址区工作寄存器区通用RAM区SFR区直接寻址访问1FH30H7FH80HFFH0000HFFFFH外部RAM64K20H2FHWRRD13/3180C51单片机的数据存储器配置工作寄存器区(00H-1FH)由四组(32个)工作寄存器组成,每组8个寄存器(R0-R7),共占32个单元。见教材P33,表2.2。通过程序状态寄存器PSW中RS1、RS0两位设定来选择CPU的当前工作寄存器组。复位时,第0组为当前的工作寄存器。若不需要四组,则其余可作为一般RAM单元。组RS1RS0R0R1R2R3R4R5R6R700000H01H02H03H04H05H06H07H10108H09H0AH0BH0CH0DH0EH0FH21010H11H12H13H14H15H16H17H31118H19H1AH1BH1CH1DH1EH1FH14/3180C51单片机的数据存储器配置位寻址区(20H-2FH)位寻址区有16个单元,每个单元8位,共128位。位地址为00H-7FH。可用位寻址方式访问其各位。RAM位寻址区位地址见教材P34,表2.3。这些可寻址位,通过执行指令可直接对某一位操作,如置1、清0、判断转移等。位寻址是80C51的一个重要特点。15/3180C51单片机的数据存储器配置位寻址区(20H-2FH)字节地址MSB位地址LSB2FH7F7E7D7C7B7A79782EH77767574737271702DH6F6E6D6C6B6A69682CH67666564636261602BH5F5E5D5C5B5A59582AH575655545352515029H4F4E4D4C4B4A494828H474645444342414027H3F3E3D3C3B3A393826H373635343332313025H2F2E2D2C2B2A292824H272625242322212023H1F1E1D1C1B1A191822H171615141312111021H1F1E0D0C0B0A090820H070605040302010016/3180C51单片机的数据存储器配置通用RAM区(30H-7FH)一般用于堆栈和数据缓冲。17/3180C51单片机的特殊功能寄存器(SFR)80C51基本型中设置了21个特殊功能功能寄存器,分布在80H~FFH的地址R空间。见教材P35-P36,表2.4。只能用直接寻址方式。有11个具有位寻址能力。11个SFR的字节地址正好能被8整除。有效的位地址共有83个。18/3180C51单片机的特殊功能寄存器(SFR)SFR位地址及字节地址表SFRMSB位地址/位定义LSB字节地址BF7F6F5F4F3F2F1F0F0ACCE7E6E5E4E3E2E1E0E0D7D6D5D4D3D2D1D0D0PSWCYACF0RS1RS0OVF1PIPBFBEBDBCBBBAB9B8B8P3B7B6B5B4B3B2B1B0B0AFAEADACABAAA9A8IEEAESET1EX1ET0EX0A8P2A7A6A5A4A3A2A1A0A0SBUF999F9E9D9C9B9A9998SCONSM0SM1SM2RENTB8RB8TIRI98P1979695949392919090TH18DTH08CTL18BTL08ATMODGATEC/TM1M0GATEC/TM1M0898F8E8D8C8B8A8988TCONTF1TR1TF0TR0IE1IT1IE0IT088PCONSMOD///GF1GF0PDIDL87DPH83DPL82SP81P087868584838281808019/3180C51单片机的特殊功能寄存器(SFR)80C51单片机的特殊功能寄存器符号名称地址符号名称地址*ACC累加器E0H*BB寄存器F0H*PSW程序状态字D0HSP栈指针81H*P0P0锁存器80H*P2P2锁存器A0H*P1P1锁存器90H*P3P3锁存器B0HDPTR数据指针(高8位DPH低8位DPL)83H82HTL0定时器/计数器0(低字节)8AH*IE中断允许控制寄存器A8H*TCON定时器/计数器控制寄存器88HTMOD定时器/计数器工作方式寄存器89HTH0定时器/计数器0(高字节)8CHTH1定时器/计数器1(高字节)8DHTL1定时器/计数器1(低字节)8BH*SCON串行口控制寄存器98HSBUF串行数据缓冲器99H*IP中断优先级控制寄存器B8HPCON电源控制及波特率选择寄存器87H20/3180C51单片机的特殊功能寄存器(SFR)部分特殊功能寄存器介绍累加器ACC(E0H):用A作为ACC的助记符。用于存放第一个操作数及运算结果寄存器B(F0H):在乘法指令中,B用于存放乘数和乘积的高8位。在除法指令中用于存放除数和余数。在其它指令中用作一般的寄存器或RAM单元。21/3180C51单片机的特殊功能寄存器(SFR)部分特殊功能寄存器介绍PSW程序状态寄存器(D0H):PSW包含了程序执行后的状态信息,供程序查询或判断用。RS1和RS0位用来设定当前工作寄存器组。PSW的格式:ACCYP—OVRS0RS1F0PSW(D0H)D7D6D5D4D3D2D1D022/3180C51单片机的特殊功能寄存器(SFR)部分特殊功能寄存器介绍PSW各位的含义:CY位(PSW.7):进(借)位标志位。执行加法(减法)运算指令时,如运算结果最高位(D7)向前有进位(借位),CY=1;否则,CY=0。在位操作指令中,CY位是布尔累加器,用C表示。AC位(PSW.6):半进位标志位(辅助进位标志)。执行加法(减法)运算指令时,如运算结果的低半字节(D3)向高半字节有进位(借位),AC=1;否则,AC=0。23/3180C51单片机的特殊功能寄存器(SFR)部分特殊功能寄存器介绍PSW各位的含义:FO位(PSW.5):用户标志。由用户自己定义、置位、复位,以作为软件标志。RS0、RS1位(PSW.3和PSW.4):工作寄存器组选择控制位。用户程序改变RS0和RS1的值,以切换当前选用的工作寄存器组。RS0,RS1的组合关系见教材P23。上电复位时,(RS0)=(RS1)=0,CPU自然选择第0组为当前工作寄存器组。24/3180C51单片机的特殊功能寄存器(SFR)部分特殊功能寄存器介绍PSW各位的含义:OV位(PSW.2):溢出标志位。如有溢出,即运算结果超出-128~+127的范围时,OV=1;无溢出时,OV=0。PSW.1:为保留位。P位(PSW.0):奇偶检验位。每条指令执行后,A中“1”的个数为奇数,则P=1;否则,P=0。25/3180C51单片机的特殊功能寄存器(SFR)部分特殊功能寄存器介绍堆栈指针SP(81H):堆栈:在片内RAM中,开辟的一个按“先进后出”的结构方式处理数据的区域。SP的内容可指向片内RAM00H—7FH的任何单元。系统复位时,SP初始化为07H。数据指针DPTR(83H,82H):DPTR是一个16位的特殊功能寄存器。由DPH(83H),DPL(82H)组成。DPH,DPL可以单独使用。26/31单片机与大电流负载的接口AT89C51的I/O口可以吸收约15mA(P0口约26mA)的灌电流,对于继电器等大电流的负载,可以采用下面左图中的接法,用一个三极管来承担负载所需的大电流。Px.y负载VccJVccVddPx.yAB若于负载电流易造成干扰单片机的环境,应采用下面右图“光电隔离”的方式。其中:A、B两处没有任何电的联系。27/31电磁式蜂鸣器及其操作有源蜂鸣器:内部含有音频振荡电路,直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声。无源蜂鸣器:工作时需要接入音频方波,改变方波频率可以得到不同音调的声音。两种蜂鸣器驱动电路相同,但驱动程序不同。28/31继电器及其操作29/31小结80C51单片机的程序存储器片内(4KB)、片外(64KB)ROM的选择:EA程序存储器低端的特殊单元:中断程序的入口80C51单片机的数据存储器工作寄存器区、位寻址区、通用RA