单片机学习————51单片机入门(一)

        AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes 的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产兼容标准 MCS-51指令系统,片内置通用8位中央处理器(CPU)和Fash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。                

                           

功能特性概述:
AT89C51提供以下标准功能:4k字节Flash 闪速存储器,128字节内部RAM,32个I/0口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C1可降至 0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停正工作并禁止其它所有部件工作直到下一个硬件复位。

            

引脚功能说明:

1.Vcc:电源电压
2.GND:地

3·PO口:PO口是一组8位漏极开路型双向1/〇口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
4.在 Flash 编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
5·P1口:P1是一个带内部上拉电阻的8位双向I/〇口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I)。
FIash编程和程序校验期问,P1接收低8位地址。
6·P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上
7.拉电阻,某个引脚被外部信号拉低时会输出一个电流(I)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
8.Flash编程或校验时,P2亦接收高位地址和其它控制信号。
9·P3口:P3口是一组带有内部上拉电阻的8位双向1/0口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTI逻辑门电路。对 P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的 P3 口将用上拉电阻输出电流(1)
10.P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:                                                   

11.P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
12·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
13·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

14.对Flash存储器编程期问,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的 DO位置位,可禁止ALE操作。该位置位后,只有条MOVX和MOVC指令 ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE无效。
15.PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。
16.®EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。地)。如EA端为高电平(接VCC端),CPU 则执行内部程序存储器中的指令。Fash 存储器编程时,该引脚加上+12V的编程允许电源 Vpp,当然这必须是该器件是使用12V编程电压 Vpp。
17·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。
18.XTAL2:振荡器反相放大器的输出端。

时钟振荡器:
1.AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTALI和 XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英品体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图5。
2.外接石英品体(或陶瓷谐振器)及电容 C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容 C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英品体,我们推荐电容使用30pE士10pE,而如使用陶瓷谐振器建议选择 40pF士10E。
3.用户也可以采用外部时钟。采用外部时钟的电路如图5右图所示。这种情况下,外部时钟脉冲接到 XTAL1端,即内部时钟发生器的输入端,XTAL2则芯空。

      由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。

       空闲节电模式:AT89C51有两种可用软件编程的省电模式,它们是空闲模式和掉电工作模式。这两种方式是控制专用寄存器PCON(即电源控制寄存器)中的PD(PCON1)和IDL(PCON.0)位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态。IDL是空闲等待方式,当IDL=1,激活空闲工作模式,单片机进入睡眠状态。如需同时进入两种工作模式,即 PD和IDL同时为1,则先激活掉电模式。
        在空闲工作模式状态,CPU保持睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内 RAM和所有特殊功能寄存器的内容保持不变。空闲模式可由任何允许的中断请求或硬件复位终止。
         终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件被激活,IDL(PCON.0)被硬件清除,即刻终止空闲工作模式。程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随RETI(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。
          其二是通过硬件复位也可将空闲工作模式终止。需要注意的是,当由硬件复位来终止空闲工作模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其它端口。为了避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。

作者:创锐科技

物联沃分享整理
物联沃-IOTWORD物联网 » 单片机学习————51单片机入门(一)

发表回复