[解析]stc89c52单片机介绍
STC89C52单片机介绍
========================================第1页
======================================== STC89C52
单片机介绍:
单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能
集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU
、
内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、
定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图
像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(
Microcontroler
),是因为它最早被用在工业控制
领域。单片机由芯片内仅有
CPU
的专用处理器发展而来。最早的设计理念是通 过将大量外围设备和
CPU
集成在一个芯片中,使计算机系统更小,更容易集成
进复杂的而对提及要求严格的控制设备当中。 INTEL
的
Z80
是最早按照这种思
想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是
8
位或
4
位的。其中最成功的是
INTEL
的
8031
,因为简
单可靠而性能不错获得了很大的好评。此后在 8031
上发展出了
MCS51
系列单
片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领
域要求的提高,开始出现了
16
位单片机,但因为性价比不理想并未得到很广泛 的应用。
90
年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。
随着
INTEL i960
系列特别是后来的
ARM
系列的广泛应用,
32
位单片机迅速取
代
16
位单片机的高端地位,并且进入主流市场。而传统的
8
位单片机的性能也
得到了飞速提高,处理能力比起 80
年代提高了数百倍。目前,高端的 32
位单片
机主频已经超过
300MHz
,性能直追
90
年代中期的专用处理器,而普通的型号 出厂价格跌落至
1
美元,最高端的型号也只有 10
美元。当代单片机系统已经不 再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应
用在全系列
的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用
专用的
Windows
和
Linux
操作系统。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。
事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子
和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、
掌上电脑以及鼠标等电脑配件中都配有
1-2
部单片机。而个人电脑中也会有为数 不少的单片机在工作。汽车上一般配备 40
多部单片机,复杂的工业控制系统上 ========================================第2页======================================== 甚至可能有数百台单片机在同时工作~单片机的数量不仅远超过
PC
机和其他计
算的综合,甚至比人类的数量还要多。
单片机又称单片微控制器
,
它不是完成某一个逻辑功能的芯片
,
而是把一个计
算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积
小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用
单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如 CPU
,内存,并行总线,还
有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电
脑弱很多,不过价钱也是低的,一般不超过 10
元即可
......
用它来做一些控制电器
一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、
VCD
等等的家电里面都可以看到它的身影~它主要是作为控制部分的核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的
抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用
PC
)的主要区
别。
单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其
是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是
花大力气也很难做到的。一个不是很复杂的功能要是用美国
50
年代开发的
74
系列,或者
60
年代的
CD4000
系列这些纯硬件来搞定的话,电路一定是一块大 PCB
板~但是如果要是用美国
70
年代成功投放市场的系列单片机,结果就会有 天壤之别~只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高
可靠性~
由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语
言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用
呢,很多高级的语言已经达到了可视化编程的水平为什么不用呢,原因很简单,
就是单片机没有家用计算机那样的
CPU
,也没有像硬盘那样的海量存储设备。 一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十
K
的
尺寸~对于家用
PC
的硬盘来讲没什么,可是对于单片机来讲是不能接受的。
单
片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使
用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用
PC
上来
运行,家用
PC
的也是承受不了的。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已
进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称
PC
机。它由主
机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算
机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机
========================================第3页
======================================== 的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通
常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,
它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如
智能仪
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了
单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智
能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞
出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,
可能就卡在产品未使用单片机或其它可编程逻辑器件上。
STC89C52
是一种带
8K
字节闪烁可编程可檫除只读存储器
(
FPEROM-Flash Programable and Erasable Read Only Memory
)的
低电压,高性能
COMOS8
的微处理器,俗称单片机。该器件采用
ATMEL
搞密
度非易失存储器制造技术制造,与工业标准的
MCS-51
指令集和输出管脚相兼 容。
单片机总控制电路如下图 4
—
1
:
========================================第4页
========================================
图
图图
图
4
—
——
—
1
单片机总控制电路 单片机总控制电路 单片机总控制电路 单片机总控制电路
1.
时钟电路
STC89C52
内部有一个用于构成振荡器的高增益反相放大器,引脚
RXD
和
TXD
分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部
方
式产生。内部方式的时钟电路如图 4
—
2(a)
所示,在
RXD
和
TXD
引脚上外接
定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体
和电容组成
的并联谐振回路。晶体振荡频率可以在 1.2
,
12MHz
之间选择,电容值在
5
,
30pF
之间选择,电容值的大小可对频率起微调的作用。
外部方式的时钟电路如图 4
—
2
(
b
)所示,
RXD
接地,
TXD
接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低
于
12MHz
的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟
P1
和
P2
,
供单片机使用。
示,
RXD
接地,
TXD
接外部振荡器。对外部振荡信号无特殊要求,只要求
保证脉冲宽度,一般采用频率低于 12MHz
的方波信号。片内时钟发生器把振荡 频率两分频,产生一个两相时钟 P1
和
P2
,供单片机使用。
RXD
接地,
TXD
接外部振荡器。对外部振荡信号无特殊要求,只要求保证
脉冲宽度,一般采用频率低于 12MHz
的方波信号。片内时钟发生器把振荡频率 两分频,产生一个两相时钟 P1
和
P2
,供单片机使用。
(
((
(
a
)
))
)内部方式时钟电路 内部方式时钟电路 内部方式时钟电路 内部方式时钟电路
(
((
(
b
)
))
)外部方式时钟电路 外部方式时钟电路 外部方式时钟电路 外部方式时钟电路
图
图图
图
4
—
——
—
2
时钟电路
时钟电路
时钟电路
时钟电路
2.
复位及复位电路
(
1
)复位操作
========================================第5页======================================== 复位是单片机的初始化操作。其主要功能是把 PC
初始化为
0000H
,使单
片机从
0000H
单元开始执行程序。除了进入系统的正常初始化之外,当由于程
序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新
启动。
除
PC
之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表一
所示。
表
表表
表一
一一
一
一些寄存器的复位状态 一些寄存器的复位状态 一些寄存器的复位状态 一些寄存器的复位状态
寄存器
复位状态
寄存器
复位状态
PC 0000H TCON 00H ACC 00H TL0 00H PSW 00H TH0 00H SP 07H TL1 00H DPTR 0000H TH1 00H P0-P3 FFH SCON 00H IP XX000000B SBUF 不定
IE 0X000000B PCON 0XXX0000B
TMOD 00H
(
2
)复位信号及其产生
RST
引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持
续
24
个振荡周期
(
即二个机器周期
)
以上。若使用颇率为 6MHz
的晶振,则复位
信号持续时间应超过 4us
才能完成复位操作。
产生复位信号的电路逻辑如图 4
—
3
所示:
========================================第6页========================================
图
图图
图
4
—
——
—
3
复位信号的电路逻辑图
复位信号的电路逻辑图
复位信号的电路逻辑图
复位信号的电路逻辑图
整个复位电路包括芯片内、外两部分。外部电路产生的复位信号
(RST)
送至
施密特触发器,再由片内复位电路在每个机器周期的
S5P2
时刻对施密特触发器
的输出进行采样,然后才得到内部复位操作所需要的信号。
复位操作有上电自动复位相按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图
4
—
4
(
a
)所示。这佯,只要电源 Vcc
的上升时间不超过 1ms
,就可以实现自动上 电复位,即接通电源就成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通
过使复
位端经电阻与 Vcc
电源接通而实现的,其电路如图
4
—
4
(
b
)所示;而按键脉 冲复位则是利用 RC
微分电路产生的正脉冲来实现的,
其电路如图
4
—
4
(
c
)所示:
(
((
(
a
)
))
)上电复位 上电复位 上电复位 上电复位
(
((
(
b
)
))
)按键电平复位 按键电平复位 按键电平复位 按键电平复位
(
((
(
c
)
))
)按键脉冲复位 按键脉冲复位 按键脉冲复位 按键脉冲复位
图
图图
图
4
—
——
—
4
复位电路
复位电路
复位电路
复位电路
上述电路图中的电阻、电容参数适用于
6MHz
晶振,能保证复位信号高电 ========================================第7页
========================================
平持续时间大于
2
个机器周期。
本系统的复位电路采用图 4
—
4
(
b
)上电复位方式。
STC89C52
具体介绍如下:
? 主电源引脚( 2
根)
VCC(Pin40) :电源输入,接, 5V
电源
GND(Pin20) :接地线
?外接晶振引脚( 2
根)
XTAL1(Pin19) :片内振荡电路的输入端
XTAL2(Pin20) :片内振荡电路的输出端
?控制引脚( 4
根)
RST/VPP(Pin9) :复位引脚,引脚上出现
2
个机器周期的高电平将使单片机
复位。
ALE/PROG(Pin30) :地址锁存允许信号
PSEN(Pin29)
:外部存储器读选通信号
EA/VPP(Pin31)
:程序存储器的内外部选通,接低电平从外部程序存储器读
指令,如果接高电平则从内部程序存储器读指令。
?可编程输入
/
输出引脚(
32
根)
STC89C52
单片机有
4
组
8
位的可编程
I/O
口,分别位
P0
、
P1 、 P2 、 P3 口,每个口有
8 位( 8 根引脚),共
32 根。
PO 口( Pin39 , Pin32 ): 8 位双向 I/O 口线,名称为
P0.0 , P0.7 P1 口( Pin1 , Pin8
):
8
位准双向 I/O
口线,名称为 P1.0 ,
P1.7 P2
口( Pin21 ,
Pin28 ):
8
位准双向 I/O
口线,名称为 P2.0 ,
P2.7 P3
口( Pin10 ,
Pin17 ):
8
位准双向 I/O
口线,名称为
P3.0
,
P3.7
STC89C52 主要功能如表二所示。
表二
STC89C52 主要功能
主要功能特性
兼容
MCS51
指令系统
8K
可反复擦写 Flash ROM ========================================第8页
========================================
32
个双向 I/O
口
256x8bit 内部
RAM
3
个
16
位可编程定时 /
计数器中断
时钟频率 0-24MHz 2
个串行中断
可编程
UART
串行通道
2
个外部中断源
共
6
个中断源
2
个读写中断口线
3
级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能