找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8333|回复: 3

51單片机pin腳說明﹗

[复制链接]
发表于 2006-6-28 15:42:47 | 显示全部楼层 |阅读模式
/ W" P& h, {; P) C' t3 x
& c3 Y4 `% K' o& a' I3 w6 }9 R6 }3 f. \ f( E* X1 ?+ R% J* e. C1 V' x8 w" @* O& s9 d3 {/ \& Y3 d* n* I) j
h" U, ?# Z- S4 H# s1 S1 x3 d/ ~& {
 
5 y6 G+ o' ^( ^7 E

引脚功能:

" N5 _4 y7 j0 w! d+ O _

MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图:

5 \2 M# R" u$ ^* o2 U* M$ o

l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。

' c8 j& D" M8 f0 q! W% m

l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。

- G. m3 M' V4 X8 G; J

l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。

' ^3 K5 I4 N7 v$ W

l P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。

$ A! m1 n- M8 L8 t: C5 E

这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,对于初学者来说很难理解的,我这里都是按我自已的表达方式来写的,相信你也能够理解的。

! h; q( f0 Q- k5 _7 }

P0口有三个功能:

" E: |" c! D. v* \* O6 b

1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)

0 S4 p' j0 O1 F" w% ^

2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)

5 D& k( q' \$ n; q+ C8 Q2 L

3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。

0 z* V3 {0 M$ L" b. j+ m& r

P1口只做I/O口使用:其内部有上拉电阻。

5 Y$ T% E" x4 G0 b

P2口有两个功能:

* \: A, s5 O1 ]8 t

1、扩展外部存储器时,当作地址总线使用

$ f; S7 M7 k1 E% ^* }; K% l

2、做一般I/O口使用,其内部有上拉电阻;

! a( m4 L+ S! r7 d* i: Y0 d

P3口有两个功能:

1 X$ U9 P ?* j- m2 x

除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。

7 _- d# V- g0 C+ d5 {

有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,

# _3 l% o' n7 K8 ?: u4 G* f8 P

即:编程脉冲:30脚(ALE/PROG)

, f6 I8 O, N1 d# J g& C

编程电压(25V):31脚(EA/Vpp)

5 X% t% Q# D, Q6 i \( K1 V

接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢?这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由第9脚(即RST/VPD)引入,以保护内部RAM中的信息不会丢失。

$ S) f+ U0 U; f$ s: [5 [+ g% F

(注:这些引脚的功能应用,除9脚的第二功能外,在“新动力2004版”学习套件中都有应用到。)

) M# E. w9 \6 F3 t& N4 n+ Q

在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。

6 Y, P7 A7 ]% ]

ALE 地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。参见图2(8051扩展2KB EEPROM电路,在图中ALE与4LS373锁存器的G相连接,当CPU对外部进行存取时,用以锁住地址的低位地址,即P0口输出。

+ \( |! |7 k3 K& C3 s

由于ALE是以晶振六分之一的固定频率输出的正脉冲,当系统中未使用外部存储器时,ALE脚也会有六分之一的固定频率输出,因此可作为外部时钟或外部定时脉冲使用。

. Q3 _& j- O9 ]# K0 ^

PSEN 外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。

7 q7 x! B8 t5 y: o" j' Z1 B2 y( q

1、内部ROM读取时,PSEN不动作;

g0 i& S' B; S$ o) J3 @" m

2、外部ROM读取时,在每个机器周期会动作两次;

" t. A V2 {) I; e8 e" M+ R

3、外部RAM读取时,两个PSEN脉冲被跳过不会输出;

1 g% e$ E$ |: ^: p& i( X) Y

4、外接ROM时,与ROM的OE脚相接。

! _% U7 l+ s N) z; d# T3 {+ t! T

参见图2—(8051扩展2KB EEPROM电路,在图中PSEN与扩展ROM的OE脚相接)

6 C7 `2 a, m$ E3 ] H3 m

EA/VPP 访问和序存储器控制信号

, S( ^! E6 |% ?/ Y/ K

1、接高电平时:

7 R% w* D6 b* X K5 n; A/ s

CPU读取内部程序存储器(ROM)

2 C) T, s# ~- g& t

扩展外部ROM:当读取内部程序存储器超过0FFFH(8051)1FFFH(8052)时自动读取外部ROM。

% z# n- L* s3 j3 x$ g- [2 X

2、接低电平时:CPU读取外部程序存储器(ROM)。

. T$ `- V8 N9 L

3、8751烧写内部EPROM时,利用此脚输入21V的烧写电压。

/ W1 ~* V5 ]2 E6 A. k2 p: L: d

RST 复位信号:当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。

4 W. g1 ]; V i7 C3 k

XTAL1和XTAL2 外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

VCC:电源+5V输入

( q X; ]+ R" @) I1 O! [% d$ K+ a

VSS:GND接地。

' ]0 _4 i% H/ R1 G6 N- s1 Y

各端口工作原理讲解

/ G1 Q/ g. Z! t

并行端口

4 Q, b/ D* ~- C( E* C( Y% }( i2 g

P0端口

[" g# f8 t' m# D7 x5 X

总线I/O端口,双向,三态,数据地址分时复用,该端口除用于数据的输入/输出外,在8031单片机外接程序存储器时,还分时地输出/输入地址/指令。由Po端口输出的信号无锁存,输入的信息有读端口引脚和读端口锁存器之分。P0端口8位中的一位结构图见下图:

; f# [/ @" a+ x0 s9 n+ z3 ]

 

! L9 y7 G8 e$ R

4 B f& Q: {6 _


由上图可见,P0端口由锁存器、输入缓冲器、切换开关与相应控制电路、场效应管驱动电路构成。
在输出状态下,当切换开关MUX向下时,从内部总线来的数据经锁存器反相和场效应管T2反相,输出到端口引脚线上。此时,场效应管T1关断,因而这种输出方式应为外接上拉电阻的漏极开路式。当切换开关MUX向上时,一位地址/数据信号分时地输出到端口线上。此外,由T1、T2的通断组合,形成高电平、低电平与高阻浮动三态的输出。
在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。例如,当从内部总线输出低电平后,锁存器Q=0,Q=1,场效应管T2开通,端口线呈低电平状态。此时无论端口线上外接的信号是低电乎还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。又如,当从内部总线输出高电平后,锁存器Q=1,Q=0,场效应管T2截止。如外接引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同。为此,8031单片机在对端口P0一P3的输入操作上,有如下约定:为此,8031单片机在对端口P0一P3的输入操作上,有如下约定:凡属于读-修改-写方式的指令,从锁存器读入信号,其它指令则从端口引脚线上读入信号。
读-修改-写指令的特点是,从端口输入(读)信号,在单片机内加以运算(修改)后,再输出(写)到该端口上。下面是几条读--修改-写指令的例子。

! ^- }; u+ j# u/ `8 }9 j2 A$ H, l& i* n: ~) O, D% S5 C4 v- Y, y/ V9 L8 `' Q/ Y0 D1 B2 M3 Y2 N( e! B3 W6 E& }) |1 }; M) n+ Q2 ^1 o! X3 y0 T: r& h0 E" z$ ~: ]/ {; q) c8 E$ _: R+ e5 r% @3 K# z$ y7 k- m; n- U' h; x& X. @: M( O" s6 {" {, k3 |: T; v- e9 j; C5 c" d8 ?. P; ^7 t [8 ^: X1 R$ J0 F/ }0 I' w5 a; s& q/ T" b' t' Y: B% l- Z+ |/ l, v, X ]* K) n' m. j& _6 E( C+ l1 e+ N8 H+ S) Z9 T1 n# a6 J3 w% @& M! F0 p5 ~& c! u$ N
ANL P0,#立即数 0→立即数P0
ORL P0,A 0→AP0
INC P1 1+1→P1
DEC P3 ;P3-1→P3
CPL P2 ;P2→P2
& G6 |! I. R; A+ n' B X; t" T

这样安排的原因在于读-修改-写指令需要得到端口原输出的状态,修改后再输出,读锁存器而不是读引脚,可以避免因外部电路的原因而使原端口的状态被读错。
P0端口是8031单片机的总线口,分时出现数据D7一D0、低8位地址A7一AO,以及三态,用来接口存储器、外部电路与外部设备。P0端口是使用最广泛的I/O端口。

1 D" E# O: B6 {! U7 E8 u

P1端口:

$ @- Z% ]6 w5 V

通用I/0端口,准双向静态口。输出的信息有锁存,输入有读引脚和读锁存器之分。P1端口的一位结构见下图. 由图可见,P1端口与P0端口的主要差别在于,P1端口用内部上拉电阻R代替了P0端口的场效应管T1,并且输出的信息仅来自内部总线。由内部总线输出的数据经锁存器反相和场效应管反相后,锁存在端口线上,所以,P1端口是具有输出锁存的静态口。
由下图可见,要正确地从引脚上读入外部信息,必须先使场效应管关断,以便由外部输入的信息确定引脚的状态。为此,在作引脚读入前,必须先对该端口写入l。具有这种操作特点的输入/输出端口,称为准双向I/O口。8031单片机的P1、P2、P3都是准双向口。P0端口由于输出有三态功能,输入前,端口线已处于高阻态,无需先写入l后再作读操作。

- d" _ [/ Y+ Z

$ _. K' j7 J4 E" m7 S" W


单片机复位后,各个端口已自动地被写入了1,此时,可直接作输入操作。如果在应用端口的过程中,已向P1一P3端口线输出过0,则再要输入时,必须先写1后再读引脚,才能得到正确的信息。此外,随输入指令的不同,H端口也有读锁存器与读引脚之分。
Pl端口是803l单片机中唯一仅有的单功能I/O端口,并且没有特定的专用功能,输出信号锁存在引脚上,故又称为通用静态口。

4 T; Y5 \, ?4 n1 a9 T! H* o8 O

P2端口:
P2端口的一位结构见下图:

% Q$ g0 Z& {4 y

' Y- d( Q2 X8 I, ~

由图可见,P2端口在片内既有上拉电阻,又有切换开关MUX,所以P2端口在功能上兼有P0端口和P1端口的特点。这主要表现在输出功能上,当切换开关MUX向左时,从内部总线输出的一位数据经反相器和场效应管反相后,输出在端口引脚线上;当MUX向右时,输出的一位地址信号也经反相器和场效应管反相后,输出在端口引脚线上。
由于8031单片机必须外接程序存储器才能构成应用电路,而P2端口就是用来周期性地输出从外存中取指令的地址(高8位地址),因此,P2端口的切换开关MUX总是在进行切换,分时地输出从内部总线来的数据和从地址信号线上来的地址。因此P2端口是动态的I/O端口。输出数据虽被锁存,但不是稳定地出现在端口线上。其实,这里输出的数据往往也是一种地址,只不过是外部RAM的高8位地址。
在输入功能方面,P2端口与P0和H端口相同,有读引脚和读锁存器之分,并且P2端口也是准双向口。
可见,P2端口的主要特点包括:
①不能输出静态的数据;
②自身输出外部程序存储器的高8位地址;
②执行MOVX指令时,还输出外部RAM的高位地址,故称P2端口为动态地址端口。
 
P3端口:
双功能静态I/O口P3端口的一位结构见下图。
 

+ { a8 b: r) {' _

由上图可见,P3端口和Pl端口的结构相似,区别仅在于P3端口的各端口线有两种功能选择。当处于第一功能时,第二输出功能线为1,此时,内部总线信号经锁存器和场效应管输入/输出,其作用与P1端口作用相同,也是静态准双向I/O端口。当处于第二功能时,锁存器输出1,通过第二输出功能线输出特定的内含信号,在输入方面,即可以通过缓冲器读入引脚信号,还可以通过替代输入功能读入片内的特定第二功能信号。由于输出信号锁存并且有双重功能,故P3端口为静态双功能端口。

# ^$ l* A, O' a

P3口的特殊功能(即第二功能):

. M8 q) k7 r) u & k) f1 I. ~& r) o Z, ]# D+ A. E- ?" g/ P1 L8 Z( Z1 E e4 y7 z7 D4 L6 P0 u n# \2 q9 D4 i# M- l7 t7 N3 o- U: _# N j1 N+ ]& e# l4 e4 @0 L* [% a. B" I1 {2 ~, Z4 F$ H. L9 p* |! ~, B$ {0 c9 n& I2 J$ U/ G5 i- ~( a/ I/ I( q! [9 Q. N ~9 P: ~3 k8 ]; K+ N; q0 ^$ m4 F6 e4 V/ S- s2 C" w; n+ Q, | p% y5 x6 G' {( S1 s% X1 X' i9 `# j. g7 s! W6 l+ u- d% G: B; h, g# t4 X! N1 N3 e$ J: ]6 \! A8 k9 {( m5 M2 D$ c1 F, Z! G1 D( ]+ Q# M! W* \ f' }# D" c2 M( K! K' B! F, A! W9 D$ r: ~# N9 d7 p7 j! [* F& }1 H+ u0 C) j I1 T/ c! L, Z- h$ R9 \. c1 H6 [% A/ J U* N4 M% {. [1 m* u, P! z" n) ]! k1 W' x6 i3 c: Q) ~! z) u) |$ P1 T" x& j; o) }& r6 G! k- o5 b2 {3 t t3 ]6 ]9 C. |, X6 w5 W9 P! Q! A( ^5 M# P! h$ a+ g$ V" ^ S- @" r% z$ I2 I( A1 l* {2 O8 w) a0 C* }& W* f" g5 F- H. g8 q% g6 U4 {9 e5 r3 {& P' ?; l9 a- j0 i% v6 T! k5 k: x5 o# A7 m, |$ h: P1 F& u; l5 y8 k" [1 G5 M3 H4 k ]* T9 `# `# G$ T4 A% Z4 D0 B3 E8 z/ n) z) p+ K( m
3 C& m7 }& C. d* ~2 { j
口线
- o8 t- J- P' [ U& |
第二功能
0 h) E# {& a" R0 Q1 r# E0 x
信号名称
; g3 ?. q* B6 I8 m4 N- @, d* g
P3.0
RXD 串行数据接收
! U0 C8 O, v3 X' [0 {% P$ f6 A3 G
P3.1
TXD 串行数据发送
' Z& D, h+ N$ _( \4 C. m
P3.2
INT0 外部中断0申请
8 j i& z+ J: c' X x. X
P3.3
INT1 外部中断1申请
; U) j/ K3 J5 a7 u, T
P3.4
T0 定时器/计数器0计数输入
/ g( w% e: v! ]7 G, b8 x
P3.5
T1 定时器/计数器1计数输入
& y0 R9 q6 @$ S' R) J
P3.6
WR 外部RAM写选通
$ c) z: v) l* L. G9 A
P3.7
RD 外部RAM读选通
, q' ^% V5 G: @ z# W% }

使P3端品各线处于第二功能的条件是:

0 j. a: k) }% x6 F6 X0 i8 k

1\串行I/O处于运行状态(RXD,TXD);

3 a" ~# l' v0 ?3 o! l! a0 l

2\打开了处部中断(INT0,INT1);

/ z: |+ u+ h4 i p8 o

3\定时器/计数器处于外部计数状态(T0,T1)

0 s- @2 x/ ^% K9 [1 S7 X W

4\执行读写外部RAM的指令(RD,WR)

: A" n9 K& A4 t

在应用中,如不设定P3端口各位的第二功能(WR,RD信叼的产生不用设置),则P3端口线自动处于第一功能状态,也就是静态I/O端口的工作状态。在更多的场合是根据应用的需要,把几条端口线设置为第二功能,而另外几条端口线处于第一功能运行状态。在这种情况下,不宜对P3端口作字节操作,需采用位操作的形式。

. t9 f: ^- I$ `- U* P( g) N

端口的负载能力和输入/输出操作:

1 Z5 t: Y, Q c, S4 Q/ X# a& H8 j

P0端口能驱动8个LSTTL负载。如需增加负载能力,可在P0总线上增加总线驱动器。P1,P2,P3端口各能驱动4个LSTTL负载。
前已述及,由于P0-P3端口已映射成特殊功能寄存器中的P0一P3端口寄存器,所以对这些端口寄存器的读/写就实现了信息从相应端口的输入/输出。例如:
MOV A, P1 ;把Pl端口线上的信息输入到A
MoV P1, A ;把A的内容由P1端口输出
MOV P3, #0FFH ;使P3端口线各位置l

/ ~/ S: e9 z& k5 m4 m

串行端口:
MCS-51系列单片机片内有一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信。

% y2 b& s" `% W/ N$ q

1.串行端口的基本特点
8031单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同应用场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;方式1多用于双机之间或与外设电路的通信;方式2,3除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统。
串行端口有两个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等。
串行端口有一个数据寄存器SBUF(在特殊功能寄存器中的字节地址为99H),该寄存器为发送和接收所共同。发送时,只写不读;接收时,只读不写。在一定条件下,向阳UF写入数据就启动了发送过程;读SBUf就启动了接收过程。
串行通信的波特率可以程控设定。在不同工作方式中,由时钟振荡频率的分频值或由定时器Tl的定时溢出时间确定,使用十分方便灵活。

, E- [4 d+ d6 A+ A* p

2.串行端口的工作方式
①方式0
8位移位寄存器输入/输出方式。多用于外接移位寄存器以扩展I/O端口。波特率固定为fosc/12。其中,fosc为时钟频率。
在方式0中,串行端口作为输出时,只要向串行缓冲器SBUF写入一字节数据后,串行端口就把此8位数据以等的波特率,从RXD引脚逐位输出(从低位到高位);此时,TXD输出频率为fosc/12的同步移位脉冲。数据发送前,仅管不使用中断,中断标志TI还必须清零,8位数据发送完后,TI自动置1。如要再发送,必须用软件将TI清零。
串行端口作为输入时,RXD为数据输入端,TXD仍为同步信号输出端,输出频率为fosc/12的同步移位脉冲,使外部数据逐位移入RxD。当接收到8位数据(一帧)后,中断标志RI自动置。如果再接收,必须用软件先将RI清零。
串行方式0发送和接收的时序过程见下图。
②方式1

- |& m& {+ h7 n, {% h% B

+ @8 N0 U- a5 ^0 ]6 i

10位异步通信方式。其中,1个起始位(0),8个数据位(由低位到高位)和1个停止位(1)。波特率由定时器T1的溢出率和SMOD位的状态确定。
一条写SBUF指令就可启动数据发送过程。在发送移位时钟(由波特率确定)的同步下,从TxD先送出起始位,然后是8位数据位,最后是停止位。这样的一帧10位数据发送完后,中断标志TI置位。
在允许接收的条件下(REN=1),当RXD出现由1到O的负跳变时,即被当成是串行发送来的一帧数据的起始位,从而启动一次接收过程。当8位数据接收完,并检测到高电乎停止位后,即把接收到的8位数据装入SBUF,置位RI,一帧数据的接收过程就完成了。
方式1的数据传送波特率可以编程设置,使用范围宽,其计算式为:
波特率=2SMOD/32×(定时器T1的溢出率)
其中,SMOD是控制寄存器PCON中的一位程控位,其取值有0和l两种状态。显然,当SMOD=0时,波特率=1/32(定时器Tl溢出率),而当SMOD=1时,波特率=1/16(定时器T1溢出率)。所谓定时器的溢出率,就是指定时器一秒钟内的溢出次数。波特率的算法,以及要求一定波特率时定时器定时初值的求法,后面将详细讨论。 ·
串行方式1的发送和接收过程的时序见下图。
③方式2,3
11位异步通信方式。其中,1个起始位(0),8个数据位(由低位到高位),1个附加的第9位和1个停止住(1)。方式2和方式3除波特率不同外,其它性能完全相同。方式2,3的发送、接收时序见下图。
由图可见,方式2和方式3与方式l的操作过程基本相同,主要差别在于方式2,3有第9位数据。

`5 L, j Y: G. I% O4 h' U r

 

: d# v" q! R( A, {+ b- z


发送时,发送机的这第9位数据来自该机SCON中的TB8,而接收机将接收到的这第9位数据送入本机SCON中的RB8。这个第9位数据通常用作数据的奇偶检验位,或在多机通信中作为地址/数据的特征位。
方式2和方式3的波特率计算式如下:
方式2的波特率=2SMOD/64×fosc
方式3的波特率=2SMOD/32×定时器T1的溢出率
由此可见,在晶振时钟频率一定的条件下,方式2只有两种波特率,而方式3可通过编程设置成多种波特率,这正是这两种方式的差别所在。
3.串行端口的控制寄存器
串行端口共有2个控制寄存器SCON和PCON,用以设置串行端口的工作方式、接收/发送的运行状态、接收/发送数据的特征、波特率的大小,以及作为运行的中断标志等。

. W4 {5 m+ d, s1 V* o7 L- S, w" {

# ], l' v. I% H1 n; [

* _+ B1 R. U8 L3 g


 

" i2 S/ g" z! E3 ^6 i8 b0 C# |+ u

 

' }7 R/ n) Z9 p: r+ }$ n
 
回复

使用道具 举报

发表于 2006-9-16 20:13:23 | 显示全部楼层

Re: 51單片机pin腳說明﹗

看不到图片,楼主可否重新发一下
发表于 2007-2-5 14:14:05 | 显示全部楼层

Re: 51單片机pin腳說明﹗

我这里都有的,呵或
) T* [" S/ L; M* J* v4 o
发表于 2007-2-5 18:43:17 | 显示全部楼层

Re: 51單片机pin腳說明﹗

我这也看不到图片,不过我从文字部份已经知道了:)$ p0 I( \9 j/ D! N5 ]! o0 l/ g
都是51的最基础的知识,呵呵~~~
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-6-16 14:08 , Processed in 0.066220 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表