上一课我们的第一个项目完成了,可能有懂C语言的朋友会说,"这和PC机上的C语言没有多大的区别呀"。的确没有太大的区别,C语言只是一种程序语言的统称,针对不同的处理器相关的C语言都会有一些细节的改变。编写PC机的C程序时,如要对硬件编程你就**对硬件要有一定的认识,51单片机编程就更是如此,因它的开发应用是不可与硬件脱节的,所以我们先要来初步认识一下51苾片的结构和引脚功能。MSC51架构的芯片种类很多,具体特点和功能不尽相同(在以后编写的附录中会加入常用的一些51芯片的资料列表),在此后的教程中就以Atmel公司的AT89C51和AT89C2051为中心对象来进行学习,两者是AT89系列的典型代表,在爱好者中使用相当的多,应用资料很多,价格便宜,是初学51的**芯片。嘿嘿,口水多多有点卖广告之嫌了。:P
图2-1 AT89C51和AT89C2051引脚功能图
AT89C51 |
AT89C2051 |
4KB可编程Flash存储器(可擦写1000次) |
2KB可编程Flash存储器(可擦写1000次) |
三级程序存储器保密 |
两级程序存储器保密 |
静态工作频率:0Hz-24MHz |
静态工作频率:0Hz-24MHz |
128字节内部RAM |
128字节内部RAM |
2个16位定时/计数器 |
2个16位定时/计数器 |
一个串行通讯口 |
一个串行通讯口 |
6个中断源 |
6个中断源 |
32条I/O引线 |
15条I/O引线 |
片内时种振荡器 |
1个片内模拟比较器 |
图2-1中是AT89C51和AT89C2051的引脚功能图。而表2-1中则是它们的主要性能表。以上可以看出它们是大体相同的,由于AT89C2051的IO线很少,导致它无法外加RAM和程序ROM,片内Flash存储器也少,但它的体积比AT89C51小很多,以后大家可根据实际需要来选用。它们各有其特点但其核心是一样的,下面就来看看AT89C51的引脚具体功能。
1.电源引脚
Vcc 40 电源端
GND 20 接地端
*工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。
2.外接晶体引脚
图2-2 外接晶体引脚
XTAL1 19
XTAL2 18
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。
*型号同样为AT89C51的芯片,在其后面还有频率编号,有12,16,20,24MHz可选。大家在购买和选用时要注意了。如AT89C51 24PC就是**高振荡频率为24MHz,40P6封装的普通商用芯片。 3.复位 RST 9
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。常用的复位电路如图2-3所示。
*复位操作不会对内部RAM有所影响。
P3引脚 |
兼用功能 |
P3.0 |
串行通讯输入(RXD) |
P3.1 |
串行通讯输出(TXD) |
P3.2 |
外部中断0( INT0) |
P3.3 |
外部中断1(INT1) |
P3.4 |
定时器0输入(T0) |
P3.5 |
定时器1输入(T1) |
P3.6 |
外部数据存储器写选通WR |
P3.7 |
外部数据存储器写选通RD |
|
Vpp = 12V |
Vpp = 5V |
||
印刷在芯片面上的型号 |
AT89C51 xxxx YYWW |
AT89LV51 xxxx YYWW |
AT89C51 xxxx-5 YYWW |
AT89LV51 xxxx-5 YYWW |
片内特征字 |
030H=1EH |
030H=1EH |
030H=1EH |
030H=1EH |
031H=51H |
031H=61H |
031H=51H |
031H=61H |
|
032H=FFH |
032H=FFH |
032H=05H |
032H=05H |