单片机原理与技能训练
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

任务1 单片机最小系统的组成

任务描述

☆要求在Proteus仿真软件中建立一个设计文件,在文件中完成AT89S52单片机最小系统电路设计。

学习目标

了解AT89S52单片机结构,掌握AT89S52单片机的引脚功能,掌握AT89S52单片机最小系统电路设计,能在仿真软件Proteus中建立相关文件并搭建单片机控制系统。

任务分析

任务要求掌握AT89S52单片机最小系统电路设计。所有单片机控制系统都由单片机最小系统和外围电路组成,最小系统是组成单片机硬件系统的基础。要使用Proteus仿真软件设计单片机最小系统,必须了解单片机的结构与功能,熟悉Proteus电路设计的方法。

完成任务

基本概念

一、单片机

1.单片机

一台能够工作的计算机要有这样几个部分构成:中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。在个人计算机(PC)上这些部分被分成若干块芯片,安装在一个被称为主板的印制线路板上。而在单片机中,这些部分全部被做到一块集成电路芯片中了,所以就称为单片机,而且有一些单片机中除了上述部分外,还集成了其他部分如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。

随着单片机在技术上、体系结构上的不断进步,使其控制功能不断扩展,它的主要作用已不是计算,而是控制,国际上逐渐采用“MCU”,即“微控制器”作为单片机界公认的名词。在国内因为单片机一词已约定成俗,所以一直继续沿用。

2.AT89S52单片机功能

AT89S52是一种低功耗、高性能8位CMOS微控制器,具有以下标准功能: 8KB的Flash存储器,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,3个16位定时/计数器,一个6向量二级中断结构,全双工串行口,片内晶振及时钟电路。

3.AT89S52单片机引脚

AT89S52单片机引脚如图1-1-1所示,实际有效的引脚为40个,为了尽可能减少引脚数,AT89S5l/S52单片机的不少引脚具有第二功能,也称为复用功能。

(1)输入/输出引脚(P0、P1、P2和P3端口引脚)

P0~P3是AT89S52单片机与外界联系的4个8位双向并行I/O端口。

① P0.0~P0.7:P0口的8位I/O端口。在访问片外存储器时,它分时提供低8位地址和8位数据,故这些I/O线有地址/数据总线之称,简写AD0~AD7。在不作为总线时,也可作为普通I/O口使用。

对程序存储器编程时,从P0输入指令字节;在验证程序时,则输出指令字节(验证时需外接上拉电阻)。

② P1.0~P1.7:P1口的8位I/O端口。AT89S52单片机的P1口除了可以作为一般的I/O口外,其中5位还有第二功能,如表1-1-1所示。

图1-1-1 AT89S52引脚图

表1-1-1 P1口各位的第二功能

③ P2.0~P2.7:P2口的8位准双向I/O端口。在访问片外存储器时,它输出高8位地址即A8~A15。在不作为总线时,也可作为普通I/O口使用。

④ P3.0~P3.7:P3口的8位准双向I/O端口。这8个引脚都具有专门的第二功能,如表1-1-2所示。

表1-1-2 P3口各位的第二功能

(2)控制引脚

① XTAL1和XTAL2:时钟电路引脚XTAL1接外部晶体的一端,它是片内振荡器反向放大器的输入端。在采用外部时钟时,外部时钟振荡信号直接送入此引脚作为驱动端。XTAL2接外部晶体的另一端,它是片内振荡器反向放大器的输出端,振荡电路的频率是晶体振荡频率。若采用外部时钟电路时,此引脚悬空不用。

② RST:复位输入端,在该脚输入2个机器周期以上的高电平将使单片机复位。

ALE ALE/PROG:地址锁存允许输出/编程脉冲输入端。这个引脚具有两种功能。在访问片外存储器时,ALE作为锁存扩展地址低位字节的输出控制信号(称允许锁存地址),平时不访问片外存储器时,该端也以1/6 的时钟振荡频率固定输出正脉冲,供定时器或其他使用。对片内存储器编程(固化)时,此引脚用于输入编程脉冲,此时为低电平有效。

PSEN:片外程序存储器选通控制信号端。在访问片外程序存储器时,此端输出负脉冲作为程序存储器读选通信号。CPU在向片外程序存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效的PSEN信号不出现。

EA/VPP:为内、外程序存储器选择/编程电源输入端。这个引脚具有两种功能。当端EA接高电平时,CPU从片内程序存储器地址0000H单元开始执行程序。当地址超出8KB时,将自动执行片外程序存储器的程序;当EA端接低电平时,CPU仅访问片外程序存储器,即CPU直接从片外程序存储器地址0000H单元开始执行程序。在对闪存编程时,此引脚用于施加编程电压VPP

(3)电源引脚

① GND:接地。

② Vcc:电源输入,接+5V电源。

4.单片机最小系统

单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对AT89S52单片机来说,最小系统如图1-1-2所示,包括AT89S52单片机、振荡电路及复位电路。

图1-1-2 单片机最小系统

(1)振荡电路

单片机是一个超大规模的同步时序逻辑电路器件,单片机运行程序时,必须有同步时钟信号来协调各个部分的工作时序。图1-1-2中接在18、19引脚之间的石英晶体与单片机内部的高增益反向放大器共同构成振荡电路,振荡频率为11.0592MHz。图中18、19引脚分别对地接了一个15pF的电容,目的是帮助振荡电路起振,同时防止单片机自激。

(2)复位电路

单片机复位后,将内部的一些特殊功能寄存器设置成规定的状态,并从起始地址0000H开始重新执行程序。

图1-1-2 中R1、C3、S1 组成的单片机外部复位电路有上电自动复位和按键手动复位两种功能。上电复位是利用电容器充电来实现的,上电瞬间,R1、C3 电路充电,RST引脚端出现正脉冲,只要RST引脚端保持10ms以上高电平,就能使单片机有效地复位。正常运行时,AT89S52单片机的RST端应该输入低电平。

单片机运行时,按下按键S1,电容C3放电,RST端出现高电平,促使单片机手动复位。

(3)电源及其他

要使单片机工作,还必须有工作电源与应用程序。AT89S52内部有8KB程序存储单元,图1-1-2中EA接高电平,使用片内的程序存储器,单片机所需的+5V电源从VCC端和GND端接入。

二、Proteus仿真软件

Proteus软件是英国Labcenter Electronics公司出版的EDA工具软件,可完成从原理图布图、PCB设计、代码调试到单片机与外围电路的协同仿真,真正实现了从概念到产品的完整设计,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。Proteus软件主要具有以下特点:

(1)具有强大的原理图绘制功能。

(2)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路的系统仿真、RS-232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

(3)支持主流单片机系统的仿真。目前支持的单片机类型有68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

(4)提供软件调试功能。具有全速、单步、设置断点等调试功能,同时可以观察各变量以及寄存器等的当前状态,并支持第三方编译和调试环境,如wave6000、Keil等软件。

完成任务

一、建立并保存设计文件

(1)新建设计文件

执行“文件”→“新建设计”命令,在弹出的“新建设计”对话框中选择“DEFAULT”模板后单击“确定”按钮。

(2)保存设计文件

执行“文件”→“保存设计”命令,在弹出的“保存ISIS设计文件”对话框中指定文件夹、输入文件名“单片机最小系统”并选择保存类型为“设计文件(*.DSN)”后单击“保存”按钮。

二、设计电路原理图

1.选取元器件

从Proteus元器件库中选取元器件AT89C52(没有AT89S52时可用AT89C52代替),点击工具箱的元器件按钮,使其选中,再单击ISIS对象选择器左边中间的置P按钮,在弹出的“Pick Devices”(选取元器件)对话框的“关键字”栏中输入元器件名称“AT89C52”,与关键字匹配的元器件显示在元器件列表(结果)中。双击选中的元器件“AT89C52”,便将所选元器件“AT89C52”加入到对象选择器窗口,单击“确定”按钮完成元器件选取。

用同样方法选取其他元器件。从Proteus元器件库中选取元器件CRYSTAL(晶振)、CAP(电容)、CAP-ELEC(电解电容)、RES(电阻)、BUTTON(按钮)。

2.放置元器件

单击对象选择器窗口的元器件“AT89C52”,元器件名“AT89C52”变为蓝底白字,预览窗口显示“AT89C52”元器件;单击方向工具栏按钮可实现元器件的左旋、右旋、水平和垂直翻转,以调整元器件的摆放方向;将鼠标指针移到编辑区某一位置,单击一次就可放置元器件“AT89C52”。用同样方法放置其他元器件。

3.编辑元器件

单击模式选择工具栏“编辑”按钮,进入编辑状态。右击(或单击)元器件,该元器件变为红色表明被选中,鼠标指针放到被选中的元器件上,按住鼠标左键拖动,将鼠标移到编辑区某一位置松开,即完成元器件的移动。鼠标指针放到被选中的元器件上右击,单击弹出的快捷菜单中的方向工具栏按钮可实现元器件的旋转和翻转。右击被选中的元器件,可删除该元器件。被选中的元器件外单击,可撤销选中。

4.放置终端

单击模式选择工具栏“终端”按钮,单击对象选择器窗口的电源终端“POWER”,该终端名背景变为蓝色,预览窗口显示该终端;单击方向工具栏“左旋转”按钮,电源终端逆时针旋转90°;将鼠标指针移到编辑区某一位置,单击一次就可放置一个终端。用同样方法放置接地终端“GROUND”。

5.连线

Proteus具有实时捕捉功能,即当鼠标指针指向引脚末端或者导线时,鼠标指针将会被捕捉到自动出现一个绿色笔,表示从此点可以单击画线。直接单击两个元器件的连接点,ISIS即可自动定出走线路径并完成两连接点的连线操作。

6.属性设置

先右击后单击元器件电容C1,弹出的“编辑元件”对话框,将电容量改为15pF,单击“确定”按钮完成元器件电容C1属性编辑。用同样方法编辑其他元器件属性。

7.电气规则检测

执行“工具”→“电气规则检查”命令,弹出检查结果窗口,完成电气检测。若检测出错,根据提示修改电路图并保存,直至检测成功。在Proteus中设计的单片机最小系统如图1-1-3所示。

绘图技巧

如图1-1-2和图1-1-3所示的是同一个单片机最小系统原理图。在绘制一般的单片机原理图时,可以将该电路原理没有涉及的器件引脚不画出,需要用到的器件引脚可以自行安排在器件周围的合适位置,如图1-1-2所示,电路图比较简洁。利用Proteus设计电路原理图时,因为器件都要从元件库中调出,通常器件的引脚都已经画出,位置也已经固定,绘图时,需要合理地安排各元器件的位置,使元器件之间的连线不致太乱。当电路比较复杂时,应该使用总线。

图1-1-3 单片机最小系统设计

知识链接

一、单片机的应用与选型

1.单片机的应用领域

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴。

(1)在智能仪器仪表上的应用

单片机广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。

(2)在工业控制中的应用

用单片机可以构成形式多样的控制系统、数据采集系统。例如,工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。

(3)在家用电器中的应用

现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、音响视频器材,再到电子秤设备,五花八门,无所不在。

(4)在计算机网络和通信领域中的应用

通信设备基本上都实现了单片机智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信,到集群移动通信,无线电对讲机等。

(5)单片机在医用设备领域中的应用

单片机在医用设备中的用途亦相当广泛,如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等。

(6)在各种大型电器中的模块化应用

某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。此外,单片机在工商、金融、科研、教育、国防航空航天等领域都有着十分广泛的用途。

2.单片机的选型

单片机的型号很多,选择合适的单片机能使开发工作事半功倍,所以学习单片机首先要了解单片机的基本信息,例如,单片机种类,单片机的配置,可靠性和抗干扰能力,性价比等。通常选择单片机至少应该关心以下几个方面。

(1)存储器空间

主要是程序存储器大小和数据存储器大小,通常单片机的数据存储器最小128B,最大是1KB,程序存储器1KB到64KB不等。我们根据每个存储器的大小选择相应单片机。

(2)单片机的运行速度

不同型号的单片机运行速度不同,单片机AT89S52用的晶振最高33MHz,STC89C52单片机晶振可以达到80MHz。频率越高运行速度也越快,但这时就要考虑单片机高频时系统的稳定性因素了。

(3)是否扩展一些功能

串行口的数量,是否带有A/D及D/A转换器等,要根据系统需要选择,否则选用外围器件比单片机组合的成本要高得多,而且要额外占用单片机的资源,如三总线被占用等。

(4)成本和质量

同样功能的单片机不同厂家质量不同,价格不同,即使功能差不多价格相差也很大。同一型号的单片机又分商业级别、工业级别及军用级别,它们的质量不同,价格相差甚远,要根据实际设计要求选型。

二、Proteus电路设计

1.新建设计文件

运行ISIS,它会自动打开一个空白文件,或者选择工具栏中的新建文件按钮,也可以执行File→New Design菜单命令,单击OK按钮,创建一个空白文件。不管哪种方式新建的设计文件,其默认文件名都是UNTITLED.DSN,其图纸样式都是基于系统的默认设置,如果图纸样式有特殊要求,用户可以从System菜单进行相应的设置。单击“保存”按钮,弹出“Save ISIS Design File”对话框,选择好设计文件的保存地址后,在文件名框中输入设计文件名,再单击“保存”按钮,则完成新建设计文件操作,其扩展名自动为.DSN。

2.选取元器件并添加到对象选择器中

选择主模式工具栏中的按钮,并选择对象选择器中的P按钮,或者直接单击编辑工具栏中的按钮,也可以使用快捷键P(ISIS系统默认的快捷键,表示Pick),会出现如图1-1-4所示的选择元器件对话框。

图1-1-4 选择元器件对话框

以选择AT89C52为例,在选择元器件对话框左上“关键字”(Keywords)一栏中输入元器件名称“AT89C52”,则会出现与关键字匹配的元器件列表,选中并双击AT89C52所在行或单击AT89C52所在行后,再单击OK按钮,便将器件AT89C52加入到ISIS对象选择器中。按此操作方法可以完成其他元器件的选取,将设计中所用的元器件都加入到ISIS对象选择器中,如图1-1-5所示。

图1-1-5 加入到ISIS对象选择器中的元器件

3.图纸栅格设置

在ISIS编辑区内有点状的栅格,可以通过View菜单的Grid命令在打开和关闭间切换。点与点之间的间距由当前的捕捉设置决定,捕捉的尺度也是移动元器件的步长单位,可根据需要改变这一单位。单击View菜单后,在其下拉菜单中单击所需要的捕捉栅格单位即可。

4.元器件放置与布局

单击ISIS对象选择器中的元器件名,蓝色条出现在该元器件名上。把鼠标移动到编辑区某位置后,单击就可放置元器件于该位置,每单击一次,就放置一个元器件。在ISIS中,鼠标操作与传统的发生不同,右键选取、左键编辑或移动:

(1)右键单击——选中对象,此时对象呈红色;再次右击已选中的对象,即可删除对象。

(2)右键拖曵——框选一个块的对象。

(3)左键单击——放置对象或对选中的对象编辑属性。

(4)左键拖曵——移动对象。

(5)按住鼠标中心键滚动——以鼠标停留点为中心,缩放电路。

5.放置电源和地

单击模式选择工具栏中的连接端子按钮,在ISIS对象选择器中单击POWER(电源),在编辑区要放置电源的位置单击即可,放置GROUND(地)的操作类似。

6.设置、修改元器件属性

Proteus库中的元器件都有相应的属性,可右击放置在ISIS编辑区中的元器件(显示高亮度)后,在弹出的对话框中选择“Edit Properties”,打开“编辑元器件属性”窗口。或直接左键双击目标元器件,打开“编辑元器件属性”窗口。在属性窗口中设置、修改其属性,包括名称、参数值等。

7.电路图连线

ISIS编辑环境,没有提供专门的连线工具,省去了用户选择连线模式的麻烦。Proteus具有实时捕捉功能,即当鼠标指针指向引脚末端或者导线时,鼠标指针将会被捕捉到自动出现一个绿色笔,表示从此点可以单击画线。该功能可以方便实现导线和引脚的连接。

(1)自动连线:直接单击两个元器件的连接点,ISIS即可自动定出走线路径并完成两连接点的连线操作。

(2)手工调整线形:如果想自己决定走线路径,只需单击第一个元器件的连接点,然后在希望放置拐点的地方单击,最后单击另一个元器件的连接点即可,放置拐点的地方会呈“×”样式。

(3)移动连线:左键单击选中连线,鼠标指针变为双箭头,表示可沿垂直于该线的方向移动,此时拖动鼠标,选中的画线会跟随移动。

(4)改变连线形状:只要按住拐点或斜线上任意一点,鼠标指针变为四向箭头,表示可以任意角度拖动连线。

(5)取消画线:在画线的过程中,若要取消画线,直接右键单击或按键盘上的Esc键。

(6)删除连线:若要删除某段连线,可以右键单击选中该连线,在弹出的菜单中选择“Delete Wire”或者直接右键双击。

8.总线应用

为了简化电路原理图,我们可以用一条导线代表数条并行的导线,这就是所谓的总线。当电路中多根数据线、地址线、控制线并行时,使用总线较为方便。

(1)画总线:单击左边主模式工具栏中的总线按钮,即可在Proteus ISIS编辑窗口中画总线。初次使用者,会感觉在编辑窗口中画不上,记住一定要先在要画线的地方单击一下,然后总线便随着鼠标的移动开始画出,需要拐弯时,在拐角处单击一下,想要结束画总线时要先单击一下表示总线结束点,然后再单击即可画完总线。

(2)总线标注:当总线画完后,要给总线标注,总线的标注名可以与单片机的总线名相同,也可不同。总线标注时可以单击左边主模式工具栏中的总线放置标号按钮,鼠标移动到所画的总线上变成“×”形状后单击,或右键单击总线,在弹出的对话框中选择“Place Wire Lable”即可进行标注。

(3)画总线分支线:总线分支线是用来连接总线和元器件引脚的,与画一般的导线方法相同。画总线分支线的简便方法是采用Proteus提供的重复布线(Wire Repeat)技术。假设要把单片机的P2口和总线相连,先画P2.0口与总线相连的分支线,再画P2口的其他分支线时,只需在引脚处双击,此时重复布线功能被激活,自动在引脚和总线之间完成连线。重复布线完全复制了上一根线的路径,如果上一根线已经是自动重复布线将仍旧自动复制该路径。如果上一根线是手工布线,那么将精确复制新的线。

(4)分支线标注:右键单击分支线选中它,在弹出的对话框中选择“Place Wire Lable”即可进行标注。

9.连接端子应用

在电路设计时,有时需要从某一端口接多条连线,直接连线会显得很乱,这时可以采用添加连接端子的方式。

添加连接端子的操作是:单击左侧小型配件按钮中的连接端子按钮,在选择元器件对话框出现不同端子可供选择。单击需要的连接端子,在对象预览器中会有连接端子的预览,在Proteus ISIS编辑窗口中单击即可放置连接端子,选中放置的连接端子单击后,弹出编辑连接端子标号“Edit Terminal Label”对话框,输入相应的标号即可。

思考与练习

设计一个AT89C2051单片机最小系统。