你的位置:电子园51单片机学习网 >> 经典教程>> 详细内容 在线投稿

单片机的c语言教程 第二课 初步认识51芯片

发布: 2009-4-03 21:36 |  作者: 明浩 |   来源: 磁动力工作室 |  查看: 415次

电子园51单片机学习网F Xs.k"Ns`?h#V

单片机的c语言教程...由磁动力工作室明浩编写. 第二课:初步认识51芯片

zZ:`-C5^CF@r0

/L d A-s'c#R.e'}+^0第二课 初步认识51芯片

1OG'X(e;u0

-t;Z1J]5a"e!j0  上一课我们的第一个项目完成了,可能有懂C语言的朋友会说,"这和PC机上的C语言没有多大的区别呀"。的确没有太大的区别,C语言只是一种程序语言的统称,针对不同的处理器相关的C语言都会有一些细节的改变。编写PC机的C程序时,如要对硬件编程你就必须对硬件要有一定的认识,51单片机编程就更是如此,因它的开发应用是不可与硬件脱节的,所以我们先要来初步认识一下51片的结构和引脚功能。MSC51架构的芯片种类很多,具体特点和功能不尽相同(在以后编写的附录中会加入常用的一些51芯片的资料列表),在此后的教程中就以Atmel公司的AT89C51和AT89C2051为中心对象来进行学习,两者是AT89系列的典型代表,在爱好者中使用相当的多,应用资料很多,价格便宜,是初学51的首选芯片。嘿嘿,口水多多有点卖广告之嫌了。:P

6l*j:J!v5\3v Qp!T0

电子园51单片机学习网&BR w7np#B&{ E!_

图2-1 AT89C51和AT89C2051引脚功能图

/|*D*A4^9u-n4\q\ R0 电子园51单片机学习网%}` EIn4y`

 AT89C51电子园51单片机学习网W4bZ4GC G

 AT89C2051

u0C8y6yag]3e0

 4KB可编程Flash存储器(可擦写1000次)电子园51单片机学习网4GQ&k"^O ZR

 2KB可编程Flash存储器(可擦写1000次)

9?ZV2P)bV[s:};^9U0

 三级程序存储器保密

+G3h'}9U/Hz$\0

 两级程序存储器保密电子园51单片机学习网6jG:V)M"y#X j

 静态工作频率:0Hz-24MHz

M`0f9|7p.^0

 静态工作频率:0Hz-24MHz电子园51单片机学习网jed8@cdR0v3s$N

 128字节内部RAM

Y'oTWmO GS0

 128字节内部RAM

zlyTX}0

 2个16位定时/计数器电子园51单片机学习网;w,|3TUW%E7iW{'?

 2个16位定时/计数器电子园51单片机学习网8Y;EQw6lJ

 一个串行通讯口

8`lM6?8lg {\0

 一个串行通讯口

h vck]c0

 6个中断源

t5lN#o DU9k0y-Mr%y:os0

 6个中断源

$JD$A Y%D'g a7L0

 32条I/O引线

?;LzNr.f Qs0

 15条I/O引线

:QC'N!a3q-LGy0

 片内时种振荡器

6yKy!O2Oo1s Q:H0

 1个片内模拟比较器电子园51单片机学习网4?V c0nKXy

电子园51单片机学习网H u,_~'b`

表2-1 AT89C51和AT89C2051主要性能表电子园51单片机学习网[(E%}$t^L Ga

8k h^z}ymX&kxW(_V0  图2-1中是AT89C51和AT89C2051的引脚功能图。而表2-1中则是它们的主要性能表。以上可以看出它们是大体相同的,由于AT89C2051的IO线很少,导致它无法外加RAM和程序ROM,片内Flash存储器也少,但它的体积比AT89C51小很多,以后大家可根据实际需要来选用。它们各有其特点但其核心是一样的,下面就来看看AT89C51的引脚具体功能。电子园51单片机学习网 k9B(_2P7g1Xn$d

Cl%O&y9X$gE0  1.电源引脚

k:Dy6L~3Fu(r-@0 电子园51单片机学习网uj^&x F#{

    Vcc 40 电源端

8QZ}:p,sd)a0

`J#[NY|,S0    GND 20 接地端电子园51单片机学习网y L1P8pt n?n

&`_1z wQ)T0    *工作电压为5V,另有AT89LV51工作电压则是2.7-6V,引脚功能一样。

!q @ { ?xG2Wx'J:d!e0 电子园51单片机学习网4^0i-{4^Hk^

  2.外接晶体引脚电子园51单片机学习网"uB3n;Ong

电子园51单片机学习网4tz!Z F5Lt F,[M

图2-2 外接晶体引脚

b?5O:[ NVO;Z[0L0

n,NC.[{+U{q0    XTAL1 19电子园51单片机学习网A!b%g-sn_ W'Hrv5W%o

tSZl1y^3T)\0    XTAL2 18

0@4`4P(i/R0

2\/]#c^#Y9_0    XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。电子园51单片机学习网El{~2?7wh7n$c!e

p2h;u-F H*]#y.O Pv0    *型号同样为AT89C51的芯片,在其后面还有频率编号,有12,16,20,24MHz可选。大家在购买和选用时要注意了。如AT89C51 24PC就是最高振荡频率为24MHz,40P6封装的普通商用芯片。

2n2x5w QwFy0

,KJx'c1Vh1w8gM"[0  3.复位 RST 9电子园51单片机学习网fQ%R/^t

|w V4k2x1Xl0    在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。常用的复位电路如图2-3所示。

R-k,ll1\Z&d0 电子园51单片机学习网{?'dLG0Z:]ud8c

    *复位操作不会对内部RAM有所影响。电子园51单片机学习网iw O u4` Mht

电子园51单片机学习网0Zd\L*E+]k

图2-3 常用复位电路电子园51单片机学习网 e\4s8g1v&\~ xg

电子园51单片机学习网;F(^"v7c1w` SX

  4.输入输出引脚电子园51单片机学习网^,Od.W8^5v

电子园51单片机学习网5`^_!T$q3G.pz^

    (1) P0端口[P0.0-P0.7]电子园51单片机学习网f#zCC kRdn

(AQ4?u!_1[|1}u,k0P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL。

4aa jQK`])d`6|0 电子园51单片机学习网0hrl+W5S

      对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。

8f&?rDd r&_D0 电子园51单片机学习网1K4T'KCqg8| S2W5h

      在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。电子园51单片机学习网D X i2^r*j'KZj

%C}HL:d6hl+sB0    (2)P1端口[P1.0-P1.7]

s.FG'@-i e!Q9v3F u0

/Y1Yc"@:_9\[@-D0P1是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

3L"|6\7d2RA r0

)]PI/q Y0      对内部Flash程序存储器编程时,接收低8位地址信息。

J4S)I+YT V"Q_)j l0 电子园51单片机学习网1gO"B6E^m

    (3)P2端口[P2.0-P2.7]

W.tTk\ j8y7_X;j0 电子园51单片机学习网T0u(c[u~]S2V

P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。电子园51单片机学习网;P-s.SM0R a3U,P

电子园51单片机学习网*~v E)d9j h

      对内部Flash程序存储器编程时,接收高8位地址和控制信息。电子园51单片机学习网:sg3E(},] @

2\*H r L ]Mk0      在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。

I9X[s)cI0 电子园51单片机学习网0U.}mqaG

    (4)P3端口[P3.0-P3.7]电子园51单片机学习网 LNMdQ(bO

5aq4a p#Qj0P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。电子园51单片机学习网C.Hx HBXyR:I

电子园51单片机学习网5L:t8RdSd

      对内部Flash程序存储器编程时,接控制信息。除此之外P3端口还用于一些专门功能,具体请看

x#z {(i)f1hLHr(q0 电子园51单片机学习网4{8~t9X9U Q kn

表2-2.。电子园51单片机学习网&n2[b'g0f(d@^r$v

电子园51单片机学习网2NZ*H)Ru

      *P1-3端口在做输入使用时,因内部有上接电阻,被外部拉低的引脚会输出一定的电流。

x9r r,]GM.LKX0

Na Q+f1B`@Fa0

 P3引脚电子园51单片机学习网f"o&S$X,B?u}k`+^1^

 兼用功能

8h wup'tce0

 P3.0电子园51单片机学习网,|7D2}*|6Qd0Q9Zf{

 串行通讯输入(RXD)电子园51单片机学习网u,H6J h+L @l5`7G!B

 P3.1电子园51单片机学习网Zy5Np&d-e-g

 串行通讯输出(TXD)

+A:}-Z.X,P @0

 P3.2

)gg ~ R+D*p!g0

 外部中断0(INT0)电子园51单片机学习网 j^x/q#|3x

 P3.3

1x%q S6UD(`0

 外部中断1(INT1)电子园51单片机学习网`j\Q:YB@

 P3.4

$~A i6T,]l7M0

 定时器0输入(T0)

#A!liYj y)g0

 P3.5电子园51单片机学习网#q2e;l0k`

 定时器1输入(T1)电子园51单片机学习网~ FUUGk-~z

 P3.6电子园51单片机学习网/r3`e0Wn4]1^1p

 外部数据存储器写选通WR

8^)p4ny^0

 P3.7

7_ }3R:xF CiIq@]0

 外部数据存储器写选通RD电子园51单片机学习网Q+w$E&W^ ~ n)x `

电子园51单片机学习网#a C0ry TH}

表2-2 P3端口引脚兼用功能表

:A?\V]0 电子园51单片机学习网:G2XjD\*m;E

  呼!一口气说了那么多,停一下吧。嗯,什么?什么叫上拉电阻?上拉电阻简单来说就是把电平拉高,通常用4.7-10K的电阻接到Vcc电源,下拉电阻则是把电平拉低,电阻接到GND地线上。具体说明也不是这里要讨论的,接下来还是接着看其它的引脚功能吧。电子园51单片机学习网4Yi b]-znaRHat;V

6L"\1Y _E:ua zC0  5.其它的控制或复用引脚

*fG(Y2prc)mr3e2gx!E0 电子园51单片机学习网$DpJJ[,d%_/[

    (1)ALE/PROG 30电子园51单片机学习网cF;}Z(t'Z5w

Y+T%~](p"~;g!q0f0访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率输出脉冲信号(此频率是振荡器频率的1/6)。在访问外部数据存储器时,出现一个ALE脉冲。对Flash存储器编程时,这个引脚用于输入编程脉冲PROG电子园51单片机学习网n#t@ S/x]KW%p\ T Q1a

Y7U] Q8Q3Ux)X0    (2)PSEN 29

M%Zf2ev-M,Zn _0 电子园51单片机学习网Y|1iz5^g kYE*syK

该引是外部程序存储器的选通信号输出端。当AT89C51由外部程序存储器取指令或常数时,每个机器周期输出2个脉冲即两次有效。但访问外部数据存储器时,将不会有脉冲输出。电子园51单片机学习网0f D(@AB$\4h L5O

电子园51单片机学习网FM;XcRe|#qS2L

    (3)EA/Vpp 31

'L7_ N{)^ Ki+?0 电子园51单片机学习网 t$gR$t*R!S'x7b3~B(D%E

外部访问允许端。当该引脚访问外部程序存储器时,应输入低电平。要使AT89C51只访问外部程序存储器(地址为0000H-FFFFH),这时该引脚必须保持低电平。对Flash存储器编程时,用于施加Vpp编程电压。Vpp电压有两种,类似芯片最大频率值要根据附加的编号或芯片内的特征字决定。

i^)Is%Nk7xB0 电子园51单片机学习网*t-ZErA5p!X3d

具体如表2-3所列。电子园51单片机学习网n'F(A/u0t hj kr ` Q

          Vpp = 12V Vpp = 5V
   AT89C51 AT89LV51 AT89C51 AT89LV51
         
印刷在芯片面上的型号 xxxx xxxx xxxx-5 xxxx-5
         
  YYWW YYWW YYWW 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
电子园51单片机学习网0tra |:or&?

表2-3 Vpp与芯片型号和片内特征字的关系

4O%yjt[+QZC EJ+I0 电子园51单片机学习网 y/l C.`dw L

  看到这您对AT89C51引脚的功能应该有了一定的了解了,引脚在编程和校验时的时序我们在这里就不做详细的探讨,通常情况下我们也没有必要去撑握它,除非你想自己开发编程器。下来的课程我们要开始以一些简单的实例来讲述C程序的语法和编写方法技巧,中间穿插相关的硬件知识如串口,中断的用法等等。电子园51单片机学习网5}2R)fx-g4n?

打印 | 收藏此页 |  推荐给好友 | 举报
上一篇 下一篇
wycwdzgcs (2010-2-26 21:19:19)
评3分
mcu121 (2010-1-24 13:56:24)
评1分
yuyechu (2009-11-21 13:27:34)
评3分
wei2009 (2009-10-04 23:59:45)
评1分
 

评分:0

发表评论
查看全部回复【已有4位网友发表了看法】

单片机开发板推荐

在线客服
在线客服系统