《例说8051:单片机程序设计案例教程》——1-2 8051基本知识

简介:

本节书摘来异步社区《例说8051:单片机程序设计案例教程》一书中的第1章,第1.2节,作者:张义和,陈敌北,更多章节内容可以访问云栖社区“异步社区”公众号查看

1-2 8051基本知识

例说8051:单片机程序设计案例教程
“8051”源自Intel公司的MCS-51系列,而目前所使用的8051并不是都采用Intel公司所生产的芯片,而多采用其他厂商所推出的兼容芯片,如Atmel公司的89C51/89S51系列,其价格低廉,质量稳定,开发工具齐全,广为学校或培训机构所欢迎。

在此,先介绍8051的基本结构,包括基本结构、引脚、基本电路及51系列等,其中很多知识最好要“记”在脑中,本书也会提供很多快速记忆的技巧,让读者能在极短的时间里记住40个引脚、基本电路等。

1-2-1 8051的结构

8051单片机发展至今,虽然有许多厂商各自开发不同的兼容芯片,但其基本结构并没有多大的变动,标准的8051结构图如图1-3所示。现说明如下:

三角形 8051为8位微处理器1;

三角形 程序存储器ROM:内部有4KB,外部最多可扩展至64KB;

三角形 数据存储器RAM:内部有128 B,外部最多可扩展至64KB;

三角形 四个可位寻址2的8位输入/输出端口,即P0、P1、P2及P3;

三角形 一个全双工串行口,即UART;两个16位定时器/计数器;

三角形 五个中断源,即、、T0、T1、RXD或TXD;

三角形 111条指令。

上述结构中,最好能把加波浪线的知识“记忆”下来。

1 8位指的是微处理器内部数据总线、寄存器的宽度是8位。比如计算机(PC)所用的CPU:第一代PC的CPU 8088/8086到第二代PC的CPU 80286都是16位CPU,而从80386到Pentium 4都是32位的CPU。尽管如此,目前所采用的单片机仍是以8位为主,只有在特殊场合才会采用16位的单片机,如8096等。

2 通常存储器的操作是以字节(B)为单位,“可位寻址”是访问存储器、寄存器或输入/输出端口时,可指定其中的一个位,例如要指定P0输入/输出口中的bit 1,则指定为P0.1即可,如图1-4所示。

e69d556c50721f30d0061474ecd0d29f2bf5379e

1-2-2 89C51/89S51的封装与引脚

89C51的封装方式有3种,除了这3种外,89S51的封装方式还有PDIP42封装,说明如下。

圓 QFP封装
89C51/89S51的PQFP或TQFP(Thin Plastic Gull Wing Quad Flatpack)封装为扁平的44个引脚表面贴片式封装,这种封装的体积很小,成本较低,是目前主流的商用芯片;但不适合学校或培训机构使用。如图1-5所示,在俯视图中,左上方有个圆形记号“○”的是第1脚,然后按逆时针排序,分别为2~44脚,其中包括3个空脚,而相邻两个引脚的间距为0.8mm,芯片厚度为1.2mm。

圓 PLCC封装
PLCC(Plastic J-Leaded Chip Carrier)封装也是89C51/89S51常用的封装方式,这也是一个44个表面贴片式引脚(SMT)的封装,其中包括4个空引脚,其引脚编号与QFP封装非常类似(兼容),如图1-6所示,在俯视图里,上面中间有个圆形记号“○”的是第1脚,然后按逆时针排列,分别为2~44脚,相邻两引脚的间距为0.05英寸(即1.270mm),芯片高度(含引脚)为4.572mm。

e498d3a11550a8d7dad374ae768d118e5e0d5539

一般来说,采用这种面贴片式封装的部件可直接贴装于电路板上,而不必钻孔(其引脚如图1-7所示)。在研发、实验或教学时,可利用插座,以缩短开发与生产的时间。

圓 直插式封装PDIP42
89S51的直插式封装有两种,第一种是42个引脚双列直插式的封装(Plastic Dual Inline Package),简称PDIP42。第二种是40个引脚双列直插式封装,与89C51、MCS51兼容,稍后说明。如图1-8所示,在双列直插式封装里,俯视图左上方有个三角形记号“△”是第1脚,然后按逆时针排列,分别为2~42脚。相邻两引脚的间距为1.588mm,长度为36.96mm,而两排引脚的间距为13.97mm,芯片厚度为4.826mm(不含引脚),与一般的面包板或IC插座不符。

4ad9223bb33c92856564f05196cfe0f1307b4923

圓 直插式封装PDIP40
89C51/89S51的第二种直插式封装为40个引脚双列直插式的PDIP40,这种封装与MCS-51完全兼容。PDIP40与PDIP42除引脚数量不同外,尺寸差异也很大,PDIP40刚好可插在面板或40个引脚的插座上,如图1-9所示,俯视图左上方有个三角形记号“△”是第1脚,然后按逆时针排列,分别为2~40脚。相邻两引脚的间距为0.1英寸(即2.540mm),长度为52.578mm,而两排引脚的间距为0.6英寸(即15.875mm),芯片厚度为4.826mm(不含引脚),特别适合学校、培训机构使用。不过,由于直插式封装体积较大,电路板制作成本较高,已很少用作商用芯片。

41ba9266eaedad9b15ecab549769c86f675d0b4a

本书将以采用PDIP40封装的89S51为探讨对象,当然,要学习8051,笔者强烈建议先将其引脚“背”下来,而要背40个引脚却有点伤脑筋,所以在此提供一些技巧,让大家轻松记住这40个引脚。

圓 电源引脚
几乎所有IC都需要接电源,而8051的电源引脚与大部分数字IC的电源引脚类似,右上角接VCC,左下角接GND。所以8051的40脚为VCC引脚,连接5V10%的电源;20脚为GND引脚,必须接地。

圓 输入/输出口
有了电源之后,再来看看8051的主要部分,也就是输入/输出口。紧接于刚才介绍的VCC引脚下的是第39脚,为Port 0的开始引脚,即39脚到32脚等8个引脚为Port 0;Port 0的对面就是Port 1,也就是第1脚到第8脚。Port 1从第1脚开始,所以Port 2从其斜对角第21脚开始,也就是在右下方,21脚到28脚就是Port 2。同样地,Port 2的斜对面就是Prot 3,第10脚到第17脚就是Port 3。39、1、21、10就是这四个Port的开始引脚,我们可通过图1-10来记住这4个输入/输出口。

5cbef74bdbc9b6ddce32e59af6431699596c3df6

圓 复位引脚
几乎所有微处理器都需要复位(Reset)的操作,对于8051而言,只要复位引脚接高电平超过2个机器周期(约2ms),即可产生复位的动作。而8051的复位引脚在Port 1与Port 3之间,即第9脚,辅助记忆的方法是“系统久久不动,就要按一下Reset按钮,以复位系统”,这久久就是第9脚的谐音。

圓 时钟引脚
微处理器都需要时钟脉冲,而在接地引脚的上方两个引脚,即19、18脚,就是时钟脉冲引脚,分别是XTAL1、XTAL2。

圓 存储器引脚
8051内部有存储器,外部也可接存储器,至于使用内部存储器还是外部存储器,则必须视31脚(Port 0下面那个引脚)而定。31脚就是引脚,即外部存储器访问使能(External Access Enable)引脚。当=1时,系统使用内部存储器;当=0时,系统使用外部存储器。对于简单的程序,大多只使用内部存储器,所以就把31脚直接接到VCC。若使用无内部存储器的8031/8032,则31脚接到GND。

圓 外部存储器控制引脚
现在只剩下引脚下面的两个引脚,而这两个引脚与引脚有点类似,都是针对存储器的控制,说明如下:

● 30脚为地址锁存允许信号ALE(Address Latch Enable),其功能是在访问外部存储器时,送出一个将原本在Port 0的地址信号(A0~A7)锁存到外部锁存IC(如74373),让Port 0空出来,以便传输数据。

● 29脚为程序存储器使能(Program Store ENable),其功能也是访问外部存储器。通常此引脚连接到外部程序存储器(ROM)的引脚,当8051要读取外部存储器的数据时,此引脚就会输出一个低电平信号。

相对于前面的38个引脚,29、30脚比较难以理解,所幸的是,只要不动用到外部存储器,就可当它们不存在!具体将留到外部存储器的章节再作说明。

根据上述要诀可以很轻松地记住这些引脚。

或许有人会质疑,“有这么简单吗?”当然没这么容易!8051的40个引脚里,其中有很多是多任务引脚,简单讲就是多用途的引脚,以39~32脚为例,平时为Port 0;若是连接外部存储器时,则当成AD0~AD7引脚,而AD0~AD7就是地址引脚与数据引脚复用的多任务引脚,好像有点复杂,但如果不接外部存储器时,就可当它不存在。

1-2-3 8051的基本电路

所谓“基本电路”是指若要8051电路工作不可缺少的基本连接线路,所以,这是必要的!当然,在此我们也有熟记基本电路的方法,基本电路包括四部分,说明如下。

圓 先接电源
电路都需要电源,8051电路也是如此。首先将40脚接VCC,也就是+5V、20脚接地GND,如图1-11所示。

圓 再接时钟脉冲
8051内部已具备振荡电路,只要将GND引脚上方的两个引脚(即19、18脚)连接简单的石英振荡晶体(Crystal)即可。至于8051的时钟脉冲频率,目前的MCS-51芯片的工作频率已大为提升,例如Atmel公司的89C51的工作频率为0~24MHz,而华邦电子(Winbond)更提供了40MHz的版本,未来必然还会有更高频率的版本。尽管如此,目前还是采用12MHz时钟脉冲。如果懒得再设计一个振荡电路,则可按图1-11连接即可。如果非得自行设计一个振荡电路不可,则可按图1-12连接。

ca77de682335773f21218eae83188f3a73f13565

图1-12 使用外部时钟脉冲产生电路

圓 复位电路
8051的复位引脚(Reset)是第9脚,当此引脚连接高电平超过2个机器周期(1个机器周期包含12个时钟脉冲),即可产生复位的动作。以12MHz的时钟脉冲为例,每个时钟脉冲为1/12s,2个机器周期为2s,因此,我们可在第9脚上连接一个可让该引脚上产生一个2s以上的高电平脉冲,即可产生复位的动作,如图1-13(a)所示。

电源接上瞬间,电容C上没有电荷,相当于短路,所以第9脚直接连接到VCC,即8051执行复位动作。随着时间的增加,电容上的电压逐渐增加,而第9脚上的电压逐渐下降,当第9脚上的电压降至低电平时,8051即恢复正常状态,称为“Power On Reset”(加电复位)。在此使用10k电阻、10F电容,其时间常数为1ms,所以第9脚上的电压可保持2s以上的高电平,足以使系统复位。而约1ms(一个时间常数)的时间系统是处于复位状态。

通常,我们还会在电容两端并接一个按钮开关,如图1-13(b)所示,此按钮开关就是一个手动的Reset(复位)开关。

圓 存储器设置电路
基本电路的最后一个部分是存储器的设置,如果把31脚()接地,则使用外部存储器;如果把31脚()接VCC,则使用内部存储器。在本书里大多采用内部存储器,所以把31脚与40脚及VCC相连接。整个基本电路如图1-14所示。

05b69b07a7c46d8fb7a299faa2d99cb9bd034f5b

其中的元件如表1-1所示。

3263b1303db9b3ed28485efbf64ef85a4b3e50b7

1-2-4 MCS-51系列

一般来说,MCS-51系列(Micro Controller System,MCS)可分为51与52两大类,52类是51类的增强型,其最大的特色就是内部存储器加倍,增加了一个定时器/计数器,但价格更加昂贵。

若按芯片内的ROM来区分,可分为无ROM型(8031/8032)、Mask ROM型(8051/8052)、EPROM型(8751/8752),及EEPROM型(89C51/89C52、89S51/89S52),如表1-2所示。

表1-2 MCS-51系列芯片的分类

f16e295399c898cf5709198dd5611e34aa886db5

以下简要介绍这几种8051。
圓 无ROM型
8031/8032为无ROM型单片机,如图1-15左图所示。使用这种单片机必须外接程序存储器。由于其封装成本与含ROM型的单片机很接近,且必须外接程序存储器,反而使电路成本大增;目前除了程序太大,无法完全存入单片机外,已很少人采用此类单片机。

圓 Mask ROM型
8051/8052为Mask ROM型单片机,如图1-15右图所示。这种单片机直接将程序放入芯片中的程序存储器,所以不必“烧录”程序(也不能烧录),价格低廉。但由于这种芯片必须要制作其独有的掩膜(Mask),必须大批量生产。例如键盘里所用的单片机(8048,是8051的前一代)就是Mask ROM型单片机。

fd79827c9c955998ad7adba78294ccbea7869914

圓 EPROM型
8751/8752为EPROM型单片机,如图1-16左图所示。这种单片机是可将程序烧录到芯片中的程序存储器,也可以紫外线擦除程序存储器里的数据,所以可重复使用不同的程序。IC上面有一个窗口,可看到内部的芯片与连接线,通常在烧录完毕后,在窗口上贴黑色胶布,以防止数据消失。如果要擦除ROM里的数据,则使用紫外线照射窗口,15~30min即可。由于这种封装成本较高,再加上其擦除动作麻烦且费时,目前几乎不再生产这种芯片了。

圓 EEPROM型
89C51/89C52、89S51/89S52为EEPROM型单片机,如图1-16右图所示。这种单片机可以将程序“下载”到芯片中的程序存储器,只要施以5V或12V电压,即可轻松、快速擦除程序存储器里的数据,已成为目前的主流。在厂商的技术数据手册中亦称,这种芯片可重复写入与擦除达1000次。根据经验,如果不是操作上的失误,或者是引脚折断,就算是经常烧写,的确是很难把它烧坏!

fc89cef4e59b7d3e20597f446d3fa450459d4213

1-2-5 关于Atmel的51系列

Atmel半导体公司所提供的89C51系列已成为MCS-51兼容单片机中的主流。在89C51系列中,当然是以停产的89C51最具代表性,取而代之的是更强劲的89S51,这两种单片机的结构比较如表1-3所示。

d7bb1356c46b31476f92ea99598331a6646fa995

由上可知,只要89C51/52有的,89S51/52都有。而其中比较特别的是89S51/52新增了一个14位看门狗计数器(Watchdog Timer,WDT)。虽然,89S51/52的工作频率提升为0~33MHz,但实质帮助不大。就像0~24MHz的89C51/52一样,还是会使用12MHz的工作频率,这样就可以直接延用原有的程序设计;另外,设计程序时也比较容易计算,且耗用的资源也比较少。

虽然89C51停产了,但其核心仍存在于89S51及许多89C51的高级版本中,例如:

● AT89C51RC单片机具有32KB程序存储器、512B数据存储器、WDT等,除存储器比较多外,其他都和89S51相同。

● AT89C51CC001、AT89C51CC002、AT89C51CC003等单片机以89C51为核心,并扩展外围设备,除配置更多的存储器外,增加了10位的ADC1、CAN2控制器等,而其重复数据烧录/擦除的次数更可达到10万次。

1 ADC为Analog to Digital Converter的缩写,也就是将模拟信号转换成数字信号的转换器。

2 CAN为Controller Area Network的缩写,这是一种微处理器与CAN总线的接口,而CAN控制器应用BOSCH CAN 2.0B Data Link Layer Protocal通信协议。

相关文章
|
28天前
|
数据处理
MCS-51单片机汇编语言程序设计
MCS-51单片机汇编语言程序设计
18 0
|
传感器 数据采集 监控
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
在网上收集了接近上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享(涵盖了大部分的毕设课设题目),学习单片机的最好教程,也可以作为帮助大家在做电子课设毕设时有利的帮助,可以从以下百度网盘下载(按照编号下载)。
1818 0
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
|
9月前
|
开发框架 JSON 物联网
Nanoframework 操作单片机蓝牙配置WIFI的案例
通过`Nanoframework`的蓝牙配置Wifi的名称和密码
89 0
|
算法 芯片
基于51单片机点阵汉字显示程序设计
基于51单片机点阵汉字显示程序设计
基于51单片机点阵汉字显示程序设计
蓝桥杯之单片机学习(十四)——基础技能综合实训案例解析
蓝桥杯之单片机学习(十四)——基础技能综合实训案例解析
221 0
蓝桥杯之单片机学习(十四)——基础技能综合实训案例解析
蓝桥杯之单片机学习(十二)——串口通信进阶应用案例解析
蓝桥杯之单片机学习(十二)——串口通信进阶应用案例解析
208 0
蓝桥杯之单片机学习(十二)——串口通信进阶应用案例解析
蓝桥杯之单片机学习(九)——定时器的进阶综合案例解析
蓝桥杯之单片机学习(九)——定时器的进阶综合案例解析
182 0
|
芯片
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项
466 0
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项
单片机原理及其应用——单片机控制单个发光二极管实验(附超详细的C51单片机实验教程)
单片机原理及其应用——单片机控制单个发光二极管实验(附超详细的C51单片机实验教程)
单片机原理及其应用——单片机控制单个发光二极管实验(附超详细的C51单片机实验教程)
|
存储 开发框架 算法
51单片机原理以及接口技术(四)--80C51的程序设计
单片机应用系统是合理的硬件与完善的软件的有机组合。软件就是各种指令依某种规律组合形成的程序。程序设计(或软件设计)的任务是利用计算机语言对系统预完成的任务进行描述和规定。
426 0
51单片机原理以及接口技术(四)--80C51的程序设计