您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > STC89C51系列单片机的结构和原理
第二章STC89C51系列单片机的结构和原理2.2STC89C51系列单片机的内部结构2.3STC89C51系列单片机的主要组成部分2.1STC89C51如何控制流水灯2.4单片机的复位电路2.5单片机最小系统2.1STC89C51如何控制流水灯任务:使用单片机控制发光管按一定顺序亮1.利用Proteus7连接电路图2.利用keilc软件编写程序#includereg51.h#includestdio.hunsignedinttemp1;voiddelay(unsignedinttemp)//延时程序{while(--temp);}voidmain(){P2=0XFF;//ledisoffwhile(1){P2=0XFE;temp1=35000;delay(temp1);P2=0XFD;temp1=35000;delay(temp1);P2=0XFB;temp1=35000;delay(temp1);P2=0XF7;temp1=35000;delay(temp1);P2=0XEF;temp1=35000;delay(temp1);P2=0XDF;temp1=35000;delay(temp1);P2=0XBF;temp1=35000;delay(temp1);P2=0X7F;temp1=35000;delay(temp1);}}3.利用keilc软件将C语言转化成HEX文件4.将HEX文件添加到Proteus7软件中,进行仿真思考:单片机如何使用?2.2STC89C51系列单片机的内部结构增强的80C51CPU12时钟模式,6时钟模式4K/8K/64KB程序FLASH512B/1280B数据RAM端口3可配置的I/O口端口0可配置的I/O口端口1可配置的I/O口端口2可配置的I/O口振荡器晶体或谐振器看门狗定时器定时器2定时器0定时器1全双工增强型UART...51系列单片机结构框图1.电源引脚VSS(20脚):接地,0V参考点。VCC(40脚):电源,提供掉电、空闲、正常工作2.外接晶体引脚XTAL1(19脚):接外部晶体的一端,振荡反向放大器的输入端和内部时钟电路输入端。XTAL2(18脚):接外部晶体的另一端,振荡反向放大器的输出端。3.控制信号或与其它电源复用引脚控制信号或与其它电源复用引脚有RST/VPD、、和等4种形式。/.ALEPROGPSEN/PPEAV•RST(9脚):复位端。当晶体在运行时,只要此引脚上出现2个机器周期高电平即可复位,内部有扩散电阻连接到Vss,仅需要外接一个电容到Vcc即可实现上电复位。•ALE(30脚):地址锁存使能。在访问外部存储器时,输出脉冲锁存地址的低字节,在正常情况下,ALE输出信号恒定为1/6振荡频率。并可用作外部时钟或定时,注意每次访问外部数据时,一个ALE脉冲将被忽略。•PSEN(29脚):程序存储使能。读外部程序存储。当从外部读取程序时,PSEN每个机器周期被激活两次,在访问外部数据存储器时PSEN无效,访问内部程序存储器时PSEN无效。•EA/Vpp(31脚):外部寻址使能/编程电压。在访问整个外部程序存储器时,EA必须外部置低。如果EA为高时,将执行内部程序。当RST释放后EA脚的值被锁存,任何时序的改变都将无效。该引脚在对FLASH编程时用于输入编程电压(Vpp)。输入/输出引脚•P0口(P0.0-P0.7,32-39脚):是双向8位三态I/O口。可向其写入1使其状态为悬浮,用作高阻输入。P0口也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉传送1。•P1口(P1.0-P1.7,1-8脚):是带内部上拉的双向I/O口。向P1口写入1时,P1口被内部上拉为高电平,可用作输入口;当作为输入脚时,被外部拉低的P1口会因为内部上拉而输出电流。•P2口(P2.0-P2.7,21-28脚):是带内部上拉的双向I/O口。向P2口写入1时,P2口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P2口会因为内部上拉而输出电流。在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址,此时通过内部强上拉传送1。当使用8位寻址方式访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容。P3口(P3.0-P3.7,10-17脚):是带内部上拉的双向I/O口。向P3口写入1时,P3口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P3口会因为内部上拉而输出电流。P3口脚具有第二功能,表2-2介绍了P3口的第二功能。口线第二功能类型名称P3.0RxDI串行输入口P3.1TxD0串行输出口P3.2INT0I外部中断0P3.3INT1I外部中断1P3.4T0I定时器0外部输入P3.5T1I定时器1外部输入P3.6WRO外部数据存储器写信号P3.7RDO外部数据存储器读信号2.3STC89C51的系列单片机的主要组成部分该系列单片机由中央处理器(CPU)、存储器和I/O接口三大部分组成。其中CPU包括运算器和控制器两大部分。2.3.1运算器对操作数进行算术、逻辑和位操作运算。主要包括算术逻辑运算单元ALU、累加器A、位处理器、程序状态字寄存器PSW及两个暂存器等。1.算术逻辑运算单元ALU可对8位变量逻辑运算(与、或、异或、循环、求补和清零),还可算术运算(加、减、乘、除)12ALU还有位操作功能,对位变量进行位处理,如置“1”、清“0”、求补、测试转移及逻辑“与”、“或”等。2.累加器A使用最频繁的寄存器,可写为Acc。“A”与“Acc”作用如下:(1)ALU单元的输入数据源之一,又是ALU运算结果存放单元。(2)数据传送大多都通过累加器A,相当于数据的中转站。13A的进位标志Cy是特殊的,因为它同时又是位处理机的位累加器3.程序状态字寄存器PSWPSW(ProgramStatusWord)位于片内特殊功能寄存器区,字节地址为D0H。包含了程序运行状态的信息,其中4位保存当前指令执行后的状态,供程序查询和判断。格式如图2-3所示。图2-3PSW的格式14PSW中各个位的功能:(1)Cy(PSW.7)进位标志位可写为C。在算术和逻辑运算时,若有进位/借位,Cy=1;否则,Cy=0。在位处理器中,它是位累加器。(2)Ac(PSW.6)辅助进位标志位在BCD码运算时,用作十进位调整。即当D3位向D4位产生进位或借位时,Ac=1;否则,Ac=0。(3)F0(PSW.5)用户设定标志位由用户使用的一个状态标志位,可用指令来使它置1或清0,控制程序的流向。用户应充分利用。15(4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区选择选择片内RAM区中的4组工作寄存器区中的某一组为当前工作寄存区。(5)OV(PSW.2)溢出标志位当执行算术指令时,用来指示运算结果是否产生溢出。如果结果产生溢出,OV=1;否则,OV=0。(6)PSW.1位保留位(7)P(PSW.0)奇偶标志位指令执行完,累加器A中“1”的个数是奇数还是偶数。16P=1,表示A中“1”的个数为奇数。P=0,表示A中“1”的个数为偶数。此标志位对串行通信有重要的意义,常用奇偶检验的方法来检验数据串行传输的可靠性。17182.3.2控制器任务识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动协调地工作。控制器包括:程序计数器、指令寄存器、指令译码器、定时及控制逻辑电路等。功能是控制指令的读入、译码和执行,从而对各功能部件进行定时和逻辑控制。程序计数器PC是一个独立的16位计数器,不可访问。单片机复位时,PC中内容为0000H,从程序存储器0000H单元取指令,开始执行程序。PC工作过程是:CPU读指令时,PC的内容作为所取指令的地址,程序存储器按此地址输出指令字节,同时PC自动加1。PC中内容变化轨迹决定程序流程。当顺序执行程序时自动加1;执行转移程序或子程序、中断子程序调用时,自动将其内容更改成所要转移的目的地址。PC的计数宽度决定了程序存储器的地址范围。PC为16位,故可对64KB(=216B)寻址。19程序存储器(FLASH,下载到4KBROM)2.3、存储器1.编址与访问计算机的工作是按照事先编制好的程序命令序列一条条顺序执行的,程序存储器就是用来存放这些已编好的程序和表格常数,它由只读存储器ROM或EPROM组成。计算机为了有序地工作,设置了一个专用寄存器--程序计数器PC,用以存放将要执行的指令地址。每取出指令的1个字节后,其内容自动加1,指向下一字节地址,使计算机依次从程序存储器取出指令予以执行,完成某种程序操作。由于MCS-51单片机的程序计数器为16位,因此,可寻址的地址空间为64KB。2.程序的7个特殊入口地址操作入口地址复位0000H外部中断00003H定时器/计数器0溢出000BH外部中断10013H定时器/计数器1溢出001BH串行口中断0023H定时器/计数器0溢出或T2EX端负跳变(52子系列)002BH表1MCS-51单片机复位、中断入口地址数据存储器1.编址与访问MCS-51单片机片内、外数据存储器是两个独立的地址空间,应分别单独编址。片内数据存储器除RAM块外,还有特殊功能寄存器(SFR)块。对于51子系列,前者有128个字节,其编址为00H~7FH;后者有128个字节,其编址为80H~FFH;二者连续而不重叠。由于访问它们所用的指令不同,并不会引起混乱。片外数据存储器一般是16位编址。2.内部数据存储器MCS-51片内RAM为256字节,地址范围为00H~FFH,分为两大部分:低128字节(00H~7FH)为真正的RAM区;高128字节(80H~FFH)为特殊功能寄存器区SFR。在低128字节RAM中,00H~1FH共32单元是4个通用工作寄存器区。每一个区有8个通用寄存器R0~R7。低128字节(00H~7FH)其中真正用户能用到得只有20H—7FH共96个字节;故一般需要扩展片外存储器。其中20H—2FH为位寻址(重点),故可设位变量。sbitp20=P2^0;sbitp21=P2^1;Ifp20==1thenp21=0表2寄存器与RAM地址对照表表3SFR28特殊功能寄存器位地址字节地址D7D6D5D4D3D2D1D0BF7HF6HF5HF4HF3HF2HF1HF0HF0HAccE7HE6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1HD0HD0HIP———BCHBBHBAHB9HB8HB8HP3B7HB6HB5HB4HB3HB2HB1HB0HB0HIEAFH——ACHABHAAHA9HA8HA8HP2A7HA6HA5HA4HA3HA2HA1HA0HA0HSCON9FH9EH9DH9CH9BH9AH99H98H98HP197H96H95H94H93H92H91H90H90HTCON8FH8EH8DH8CH8BH8AH89H88H88HP087H86H85H84H83H82H81H80H80H表4SFR中的位地址分布特殊功能寄存器(SFR)•特殊功能寄存器(SFR)也称专用寄存器,专门用于控制、管理片内算术逻辑部件、并行I/O口、串行口、定时/计数器、中断系统等功能模块的工作,用户在编程时可以给其设定值,但不能移作它用。SFR离散地分布在片内RAM的80H—FFH地址空间,与片内数据存储器统一编址。•51子系列有18个特殊功能寄存器,其中3个为双字节(DPTR、T0、T1),共占用21个字节;其中11个可位寻址(仅83位有效)。凡是可位寻址的SFR,字节地址末位只能是0H或8H。•52子系列有21个特殊寄存器,其中5个为双字节,共占用26个字节注意:(1)21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,共83个可寻址位。尽管还剩余许多空闲单元,但用户并不能使用。(2)在22个专用寄存器中,唯一一个不可寻址的PC。PC不占据RAM单元,它在物理上是独立的(在控制器中),因此是不可寻址的寄存器。(3)对专
本文标题:STC89C51系列单片机的结构和原理
链接地址:https://www.777doc.com/doc-5000272 .html