公司研发的80C51系列、Motorola公司推出的M68HC05系列等。本次设计采用的是ATMEL公司推出的AT89系列的单片机。
3.1.1 AT89C52系列单片机
AT89C52美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。单片机AT89C52强大的功能可为许多嵌入式控制应用系统提供高性价比的解决方案。
3.1.2 AT89C52芯片的引脚及特点
AT89C52芯片的引脚结构如图3.1所示:
图3.1 AT89C52引脚
(1)功能特性概括:
AT89C52提供以下标准功能:40个引脚、4K Bytes Flash片内程序存储器、128 Bytes的随机存取数据存储器(RAM)、32个外部双向输入/输出(I/O)口、5个中断优先级2层中断嵌套中断、2个数据指针、2个16位可编程定时/计数器、2个全双工串行通信口、看门狗(WDT)电路、片内振荡器及时钟电路。此外,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲模式下,CPU暂
5
停工作,而RAM、定时/计数器、串行通信口、外中断系统可继续工作。掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 (2)管脚说明:
VCC:供电电压。 GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,也即地址/数据总线复用口。作为输出口用时,能驱动8个TTL逻辑门电路。对端口写“1”时,被定义为高阻输入。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在Flash编程和程序校验期间,P1接收低8位地址。部分端口还有第二功能,如表3.1所示:
表3.1 P1口部分引脚第二功能
端口引脚 P1.5 P1.6 P1.7 第二功能 MOSI(用于ISP编程) MISO(用于ISP编程) SCK (用于ISP编程) P2口:P2口是一个带有内部上拉电阻的8位双向I/O口, P2口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对应端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR
6
指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据寄存器(例如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。
在Flash编程或校验时,P2亦接收高位地址和其它控制信号。
P3口:P3口是一个带有内部上拉电阻的双向8位I/O口,P3口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写“1”时,它们被内部的上拉电阻拉高并可作为输入端口。作输入口使用时,被外部信号拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3.2所示; P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
表3.2 P3口引脚第二功能
端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD (串行输入口) TXD (串行输出口) INT0 (外中断0) INT1 (外中断1) T0 (定时/计数器0) T1 (定时/计数器1) WR (外部数据存储器写选通) RD (外部数据存储器读选通) RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上的高电平时间将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该
功能。 DISRTO位缺省为RESET输出高电平打开状态。
ALE/PROG:当访问外部存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部寄存器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。值得注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。
7
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只要一条MOVX和MOVC指令才会激活ALE。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51PSEN:
由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器时,没有两次有效的PSEN信号。
EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端保持高电平(接VCC端),CPU则执行内部程序存储器中的指令。 Flash存储器编程期间,该引脚用于施加+12V编程电压(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入端。 XTAL2:反向振荡放大器器的输出端。 (3)晶体振荡器特性:
AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为该反向放大器的输入端和输出端。这个反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。
外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性。如果使用石英晶体,电容应该使用30pF?10pF。
还可以使用外部时钟。这种情况下,外部时钟脉冲接XTAL1端,即内部时钟发生器的输入端,XTAL2应悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大低电平持续时间应符合产品技术条件的要求。
8
3.1.3 AT89C52的主要性能参数
(1)与MCS-51产品指令系统完全兼容。
(2)4K字节在系统可编程(ISP)Flash闪速存储器。 (3)1000次擦写周期。
(4)4.0—5.5V的工作电压范围。 (5)全静态工作模式:0Hz--33Hz。 (6)三级程序加密。
(7)128x8字节的内部RAM。 (8)32个双向可编程I/O口线。 (9)2个16位可编程定时/计数器。 (10)6个中断源。
(11)全双工UART串行通道。 (12)低功耗空闲和掉电模式。 (13)中断可从空闲模式唤醒系统。 (14)看门狗(WDT)及双数据指针。 (15)掉电标识和快速编程特性。 (16)灵活的在系统编程。
3.1.4 AT89C52的新功能
AT89C52兼容标准MCS-51指令系统及AT89C51引脚结构,它相对于AT89C51增加的新功能包括:
?ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。
?最高工作频率为33MHz,AT89C52的极限工作频率是24M,所以AT89C52具有更高工作频率,从而具有了更快的计算速度。
?具有双工UART串行通道。
?内部集成看门狗计时器,不再需要像AT89C52那样外接看门狗计时器单元电路。
?双数据指示器。
9