|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、AT89C2051单片机的硬件结构 89系列单片机是ATMEL公司的8位单片机系列产品,其最大特点是片内含有Flash存储器(取代MCS-51中的ROM),并且和MCS-51兼容(AT89的片内含有51系列的8031)。89系列单片机共有7种型号,在这里以它的低档型、低电压产品AT89C2051为例,介绍设计单片机系统的方法和步骤。- d( ^/ c9 W5 d; p- m
单片机系统,应包括相应的硬件和软件。软件是指编程用的指令系统;硬件即芯片提供的硬件资源和与外部结构配置的器件,两者缺一不可。初学单片机系统时,一旦确定了单片机的型号(即选型),首先得认识它的内部硬件结构才能最佳配置单片机的硬件系统。
5 C+ ~, N% E- R$ u* ?5 ?. e AT89C2051芯片的片内硬件资源请参见常用MCS-51系列(8位)单片机内部硬件资源表。有关片内硬件功能,请参见前述连载的有关内容。: r+ a9 s+ S3 V
1?信号引脚功能
; N# b: E; M* O AT89C2051是一种20引脚的双列直插式IC芯片,其引脚排列参看图10所示。引脚是单片机的硬件外特性,用户通过引脚连接外部器件就能组建单片机系统。
! w4 F! r2 \( }& d (1)P1口:它是8位双向口线,即P1?0~P1?7。口引脚P1?0({12}脚)和P1?1({13}脚)用于外部接口工作时,要求配置外部的上拉电阻;P1?2~P1?7内部设有上拉电阻,用于外部接口工作时,由外部负载工作方式决定是否配置上拉电阻。P1口带有输出缓冲器,可吸收20mA的电流并能直接驱动LED显示。P1口的功能之一是在闪速编程和程序校验期间接收代码数据(即编程的数据输入口)。- Y0 q* H" _% k% [* a# s( ?! V' l
(2)P3口:它是带有内部上拉电阻的7位双向口线,即P3?0~P3?5和P3?7。P3?6因内部功能的需要,它虽是通用的I/O口引脚但不可访问。P3口的其它特性与P1口相同,此外P3口还具有第二功能。
' I+ v' T; a& s (3)复位端RST(1脚):当1脚加“H”高电平时芯片内部的功能电路复位,此时I/O口线引脚复位到“1”电平。
" Q7 Q: E0 x3 D2 {) M/ y) I (4)XTAL1(5脚):振荡器外接晶振,内部时钟发生器输入。
& ]7 o. \% a; D D0 J (5)XTAL2(4脚):振荡器外接晶振、反相放大器输出。4 T1 P0 g- E9 ]8 {! u
(6)电源端{20}脚(+2?7~6V)和10脚(地端)。! g* q8 w# A, b) @
2?引脚的复用功能/ X/ W/ A6 _$ n+ T8 ]7 \& F& W+ }
由上述对AT89C2051引脚介绍可见:
4 g9 A j- k, K( e P1和P3口共占用15个引脚,外加复位、振荡(时钟)和电源端等已把芯片的引脚全部占完。然而单片机在执行各种功能时还需要更多的引脚才能受控或与外界交换的信息,为解决这种矛盾,生产厂家给芯片的某些引脚设置了第二功能,通过它可完成单片机的多种控制功能。例如要给AT89C2051编程,需由P3口的P3?3、P3?4、P3?5和P3?7端加控制信号以完成闪速编程(如附表所示);AT89C2051要完成串行的输入、输出,外中断功能和外部输入定时,需P3?0~P3?5端提供端口(功能表从略)。再有P1?0、P1?1是内部比较器输入端口。
8 z$ \7 @: u+ H( ?) S) e. c9 F 二、AT89C2051应用实例1 H, |" a# C$ z6 ` B3 ?
1?AT89C2051的最小系统( h7 |. F* w* u8 Q
单片机的最小系统是指它的最简配置方式,其特点是结构简单,通常用于简单的控制功能或学习单片机的实验制作。例如连载八中表2的LED循环灯制作,就属于单片机的最小系统,要完成该表对电路的要求,只需在AT89C2051的管脚上配置晶振、复位电路、8只LED管和电源就构成了LED循环灯的硬件配置(即循环灯电路),如图11所示。本电路配置的元器件完全符合上述的AT89C2051的I/O口要求。读者可以按上述要求检查:如{12}和{13}脚上的电阻R1、R2是P1?0和P1?1要求的上拉电阻;C、R3是1脚上电清零网络。, X0 F) z. c) l' S# j, f
2?对AT89C2051闪速存储器(即程序存储器)的编程步骤9 j2 S. B3 J+ S
要编程需要建立LED循环灯的汇编程序,再进行汇编。但进行这些工作之前必须了解AT89C2051的编程控制步骤,才能达到汇编目的,编程时一次编程一个字节,其步骤如下:(1)对AT89C2051上电(在{20}脚与10脚之间加5V电压);(2)设置RST1脚和XTAL1为GND,保持其它引脚悬空其等待时间10ms以上;(3)设置RST1脚和P3?66脚为“H”高电平(5V);(4)设置P3?37脚为“L”低电平,P3?4~P3?5、P3?7为高电平。(5)在000H单元对P1?0~P1?7口加入数据代码(即汇编程序中的代码数);(6)升高RST1脚电压为+12V(编程电压)以激活编程;(7)使P3?66脚跳变一次(见附表中代码数据栏P3?2中的脉冲信号)来编程闪速存储器的一个字节(即一次编程),写字节周期为1?2ms(自定时);(8)校验已被编程的数据:把RST1脚电平从12V降到“H”电平(5V),再按附表1读代码数据栏中对各口的设置加“H”或“L”电平,就可在P1口引脚输出编程的数据;(9)在下一地址单元编程字节,使XTAL1跳变一次(加单脉冲信号,如图12所示)则内部地址计数器加1,又可对P1口加新数据,重复(5)至(8)的步骤达到又一次的编程;(10)下电次序:设置XTAL1为“L”,设置RST为“L”,悬空所有其它I/O引脚,关闭Vcc电源。 |
|