2014单片机应用技术.ppt

上传人:99****p 文档编号:3711315 上传时间:2019-07-08 格式:PPT 页数:173 大小:3.35MB
下载 相关 举报
2014单片机应用技术.ppt_第1页
第1页 / 共173页
2014单片机应用技术.ppt_第2页
第2页 / 共173页
2014单片机应用技术.ppt_第3页
第3页 / 共173页
2014单片机应用技术.ppt_第4页
第4页 / 共173页
2014单片机应用技术.ppt_第5页
第5页 / 共173页
点击查看更多>>
资源描述

1、,项目1信号灯控制,单片机应用技术精品课程组,单片机应用技术,本讲主要内容,6 项目考核,【教学目标】,1、终极目标: 制作一个彩灯闪烁的单片机控制系统。2、促成目标: (1) 了解单片机的基本概念及MCS系列单片机结构特点;了解典型单片机系列的基本情况;了解MCS系列单片机的发展及应用领域; (2) 了解MCS-5l单片机内部结构和功能; (3) 掌握MCS-5l单片机引脚功能以及工作方式和单片机的存储器结构的特点、性能; (4) 熟练掌握单片机的指令系统特点; (5) 理解单片机应用系统开发的基本方法和设计流程;掌握MCS系列单片机的开发工具;掌握编程软件、编程器、虚拟设备和仿真器的基本操

2、作方法;了解单片机开发过程中的操作技巧和注意事项; (6) 掌握简单的顺序、分支、循环程序结构和子程序的编写和调用方法; (7) 掌握延时子程序等典型程序的设计方法; (8) 初步掌握单片机应用系统分析和软硬件设计的基本方法,建立单片机系统设计的基本概念;,设计一个彩灯闪烁的单片机控制系统,在单片机的P0.0端口上接一个发光二极管L1,使L1不停地一亮一灭,一亮一灭的时间间隔为0.2秒,循环往复。,【工作任务】,【活动一】总体设计1系统组成 本系统功能由硬件和软件两大部份协调完成,硬件部分主要完成信息的显示;软件主要完成信号的处理及控制功能等。 本系统的硬件采用模块化设计,以AT89S52单片

3、机为核心,与LED彩灯闪烁电路组成控制系统。该系统硬件主要包括以下几个模块:AT89S52主控模块、LED彩灯闪烁模块等。其中AT89S52主要完成外围硬件的控制以及一些运算功能,LED彩灯电路完成灯光的闪烁功能。系统组成方框图如图1.1所示。,【项目实践】,图1.1 LED彩灯闪烁控制系统组成方框图,【项目实践】,模块化设计(Modular design) 降低了程序设计的复杂性、便于修改、且使得支持系统不同部分的并行开发实现起来更容易。应用软件采用模块化设计方法,该系统软件主要由主程序、延时子程序模块等组成,系统软件结构框图如图1.2所示。,图1.2 单片机彩灯闪烁系统软件结构框图,【项目

4、实践】,2系统工作原理 发光二极管简称为LED,由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管,在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。 发光二极管是一种把电能转换成光能的半导体器件。它由PN节组成,在正向偏置的条件下导通,此时会发射出一定波长的光。发光二极管的发光功率近似的与导通电流成正比。目前大多数产品可以由集成电路直接驱动。,【项目实践】,图1.3 发光二极管发光效果图,图1.4 发光二极管发光实物图,【项目实践】,与小白炽灯泡和氖灯相比,发光二极

5、管的特点是:工作电压很低(有的仅一点几伏),工作电流很小(有的仅零点几毫安即可发光),抗冲击和抗震性能好,可靠性高,寿命长;通过调制通过的电流强弱可以方便地调制发光的强弱。由于有这些特点,发光二极管在一些光电控制设备中用作光源,在许多电子设备中用作信号显示器。把它的管心做成条状,用7条条状的发光管组成7段式半导体数码管,每个数码管可显示09十个数目字。,发光二极管有很多类,如图1.4所示为几种发光二极管,其电气原理图如图图1.5所示,当在它的A和K两个电极加上合适的电压的时候,它就会亮起来。说“合适的电压”,是因为不同的发光二极管工作电压并不相同,一般是在1.62.8V之间,而工作电流则一般在

6、230mA之间,但是实际工作的选择范围一般是410mA之间。,图1.5 发光二极管电气的电路图形符号,【项目实践】,1.单片机选型 51系列单片机包括许多类型,它们的内部结构基本相同。AT89S52是目前应用比较广泛的51系列兼容单片机中的代表产品。 (1) 主要性能: 与MCS-51单片机产品兼容 8K字节在系统可编程Flash存储器 1000次擦写周期 全静态操作:0Hz33Hz 三级加密程序存储器 32个可编程I/O口线 三个16位定时器/计数器 八个中断源,全双工UART串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符,【项目实践】,【活动二】硬件

7、设计,(2) 功能特性描述 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。(3) AT89S52标准功能 8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2 个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电

8、路。另外,AT89S52 可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。,【项目实践】,(4) AT89S52芯片引脚结构,图1.6 AT89S52芯片引脚结构图 鉴于此,本项目选用AT89S52单片机作为主控制器。【注意】在后面的项目中,如无特殊说明,均以AT89S52单片机作为主控制器。,【项目实践】,2.主控模块设计 电源、时钟信号以及复位电路是单片机工作的基本条件,缺一不可。单片机基本系统包括电源电路、时钟

9、电路、复位电路。(1) 电源电路模块设计电源模块为系统板上其它模块提供5V电源,系统板为从USB接口获取5V电源,只要用相应配套的USB线从电脑主机获取5V直流电源。 (2) 时钟电路模块设计 单片机的时钟信号用来为单片机芯片内部各种微操作提供时间基准。MCS-51的时钟信号可以由两种方式产生,一种是内部时钟方式,利用芯片内部的振荡电路;另一种方式为外部时钟方式。 由于AT89S52单片机芯片内有时钟振荡电路,因此本项目中采用内部时钟方式,只要在单片机的XTAL1和XTAL2引脚外接石英晶体和微调电容,就构成了自激振荡器并在单片机内部产生时钟脉冲信号,具体电路设计如图1.3所示。图中电容C1和

10、C2的作用是稳定频率和快速起振,电容置在530pF,在此选择30pF;晶振X1的振荡频率范围在1.212MHz间选择,本项目中选择12MHz。时钟电路为单片机产生时钟脉冲序列,作为单片机工作的时间基准,典型的晶体振荡频率为12MHz。,【项目实践】,(3) 复位电路模块设计 复位电路使单片机或系统中的其他部件处于某种确定的状态。当在51单片机的RST引脚引入高电平并保持2个机器周期,单片机内部就执行复位操作。实际应用中,复位操作有两种基本形式:一种是上电复位,另一种是按键复位。本项目中采用按键复位方式,具体电路设计如图1.3所示。在单片机运行期间,可以利用此按键完成复位操作。 【注意】在后面的

11、项目中,如无特殊说明,主控模块的设计均按此方式设计,不再赘述。3.LED彩灯模块设计 LED彩灯闪烁输出电路采用发光二极管LED,LED的K极通过限流电阻R与单片机的P0口的P0.0连接,LED的A极连接到+5V电源。系统供电为+5V,LED上串接的电阻是1K,如果此时LED上的电压是2.0V,那么此时通过LED的电流为(5V-2V)/1000=3mA。如果需要提高亮度,电流一般会控制在10mA左右,则此时电阻应该选择(5V-2V)/10mA=300,所以可以就近选择330。该模块与单片机的接口电路如图1.7所示。,【项目实践】,图1.7 LED彩灯闪烁模块与单片机的接口电路原理图,【项目实践

12、】,1算法设计 根据系统工作原理图1.7可知: 当P0.0端口输出高电平,即P0.01时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;我们可以使用SETB P0.0指令使P0.0端口输出高电平; 当P0.0端口输出低电平,即P0.00时,发光二极管L1亮;我们可以使用CLR P0.0指令使P0.0端口输出低电平。 延时程序设计 由于单片机指令的执行时间很短,属于微秒级,而我们要求的彩灯闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行彩灯点亮和熄灭指令时,插入延时程序,来达到我们的要求。 循环程序结构设计,【项目实践】,【活动三】软件设计,由于需要控制发光二极管反复的

13、一亮一灭,在程序中需要反复执行该程序段,为了避免在程序中多次的编写,我们采用循环结构来实现该功能,可以通过利用条件转移或无条件转移指令LJMP或者AJMP来控制程序的跳转执行,达到发光二极管反复的一亮一灭的目的。 子程序设计 由于发光二极管点亮的时间为0.2秒,熄灭的时间也为0.2秒,在程序中需要多次执行同样的计算和操作,如果每次都从头开始编制该段程序,不仅麻烦,而且浪费存储空间。对于这种在一个程序中反复出现的程序段,我们采用子程序结构来实现。 当主程序在运行时,需要调用子程序时,只要执行调用子程序指令ACALL或者LCALL,使主程序跳转至子程序执行,子程序处理完毕,用RET指令返回主程序,

14、继续执行主程序后面的操作。2数据结构设计 单片机的P0口线的P0.0用于发光二极管L1亮、灭的控制,当P0.00表示L1点亮,当P0.01表示L1熄灭;工作寄存器R5、R6、R7为延时子程序的循环变量。,【项目实践】,3程序设计(1) 主程序设计主程序主要完成硬件初始化、延时子程序调用等功能。 初始化通过初始化把P0.0设置为0,让发光二极管点亮。 循环闪烁调用延时子程序,使发光二极管点亮0.2秒;然后修改P0.0的状态为1,再调用延时子程序,使发光二极管熄灭0.2秒;最后使程序跳转到开始重新执行,就可以实现发光二极管循环闪烁。主程序设计流程图如图1.8所示。,【项目实践】,图1.8主程序设计

15、流程图,【项目实践】,(2) 延时子程序设计 延时子程序完成发光二极管L1点亮或熄灭的延时时间。延时程序是一种应用较为广泛的小程序,一般采用多条语句循环执行来实现延时。下面具体介绍其原理: 系统所用的石英晶体振荡频率为11.0592MHz,因此,1个机器周期=1/石英频率*12,即为12/11.0592微秒。 机器周期 微秒MOV R6,#20 ;2个 2LOOP1:MOV R7,#230 ;2个 2DJNZ R7,$ ;2个 2DJNZ R6,LOOP1 ;2个 2 因此,上面的延时程序时间为【2+R6*(2+2*R7+2)】*机器周期=9282*12/11.0592=10.072ms。 由

16、以上可知,当R610、R7230时,延时约5ms;当R620、R7230时,延时约10ms,以此为基本的计时单位。,【项目实践】,本项目要求延时0.2秒200ms,10msR5200ms,则R520,设计的延时子程序代码如下:;*;功能:延时子程序,延时0.2秒;*DELAY200ms:MOV R5,#20 ;设置外循环初始值LOOP1: MOV R6,#20 ;外循环结构开始,设置内循环初始值LOOP2: MOV R7,#230 ;内循环结构开始DJNZ R7,$ ;反复执行本指令,指导R70为止DJNZ R6,LOOP2 ;内循环结构判断条件DJNZ R5,LOOP1 ;外循环结构判断条件

17、RET ;子程序返回,【项目实践】,图1.9延时子程序设计流程图,【项目实践】,4汇编语言源程序;*;功能:主程序;*ORG 0000HSTART: CLR P0.0 ;当P0.0端口输出低电平时,发光二极管L1点亮;LCALL DELAY200ms ;调用延时子程序,LED灯点亮200msSETB P0.0 ;当P0.0端口输出高电平时,发光二极管L1熄灭;LCALL DELAY200ms ;调用延时子程序,L1熄灭200msLJMP START ;跳转到程序开始,L1一亮一灭,循环往复;*,【项目实践】,;功能:延时子程序,延时0.2秒;*DELAY200ms:MOV R5,#20 ;设置

18、外层循环变量初始值 LOOP1: MOV R6,#20 ;外循环结构开始,设置中层循环变量初始值LOOP2: MOV R7,#230 ;中层循环结构开始,设置内层循环变量初始值DJNZ R7, $ ;内层循环结构,反复执行本指令,直到R70为止DJNZ R6, LOOP2 ;内循环结构判断条件DJNZ R5, LOOP1 ;外循环结构判断条件RET ;子程序返回END,【项目实践】,#include /头文件sbit L1=P00; /定义P0.0void delay02s(void) /延时0.2秒子程序 unsigned char i,j,k; for(i=20;i0;i-) for(j=

19、20;j0;j-) for(k=230;k0;k-);,void main(void) while(1) L1=0; delay02s(); L1=1; delay02s(); ,5C语言源程序,【项目实践】,【活动四】系统仿真调试 1仿真器连接,图1.10 仿真器的连接,2仿真器设置,图1.11 仿真器设置菜单,【项目实践】,3程序编译调试 (1) 新建文件 选择菜单文件|新建文件,如图1.12所示。,图1.12 新建文件,【项目实践】,(2) 输入程序 在出现的源程序窗口中输入所需编写的程序,如图1.13所示。,图1.13 输入程序,(3) 保存程序选择菜单文件|保存文件,保存时文件名称必

20、须带上后缀名“.ASM”,如图1.14所示。,图1.14,【项目实践】,(4) 建立新项目选择菜单文件|新建项目,如图1.15所示。,图1.15,【项目实践】,(5) 加入模块文件在弹出的窗口中,加入模块文件,选择刚才保存的文件YEGANG.ASM,如图1.16所示。,图1.16,(6) 加入包含文件加入包含文件,若没有包含文件,则可按取消键,此处按取消键。如图1.17所示。,图1.17,【项目实践】,(7)保存项目在保存项目对话框中输入项目名称,注意此处无须添加后缀名,软件会自动将后缀名设成“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。如图1.18所示。,(8) 仿真器设置选择

21、菜单设置|仿真器设置,在弹出的“仿真器设置”对话框中,按图1.19设置,选择“使用伟福软件模拟器”。,图1.18,图1.19,【项目实践】,(9) 文件编译 选择菜单项目|编译,进行编译程序,如图10所示。 如程序正确,编译后将产生两种格式的目标文件:二进制格式(BIN)目标文件和英特尔格式(HEX)目标文件,如图1.20所示。如程序有错误,则将在信息窗口指出错误指令所在的源程序、行号、错误代码及错误原因,则先修改程序,然后再进行编译程序。,图1.20,【项目实践】,(10) 程序调试双击项目中YEGANG.ASM文件,在所需设置断点的指令上右键设置断点,如图1.21所示。,图 1.21,在程

22、序调试时,可选择菜单执行|全速执行、执行|跟踪、执行|单步、执行|执行到光标处 等命令运行调试程序,如图1.22所示。,图1.22 【执行】菜单,【项目实践】,在调试运行的过程中,通过【窗口】菜单(见图1-27),可以选择打开CPU窗口、数据窗口等窗口以观察系统运行过程中有关寄存器的状态、存储器的内容等信息,从而判断程序执行是否正确。 (11) 查看结果 选择菜单窗口|数据窗口|DATA,如图1.23、1.24所示。,图1.23,图1.24,【项目实践】,注意: DATA片内RAM区域 CODEROM区域 XDATA片外RAM区域 PDATA分页式数据存储器,51中无用 BIT位寻址区域【说明

23、】由于单片机系统的仿真调试步骤基本相同,在后面的项目设计中,不再赘述。,【项目实践】,【第一部分】单片机的基本知识 单片机是在一块芯片上集成了中央处理部件(CPU)、存储器(RAM、ROM)、定时器/计数器和各种输入/输出(I/O)接口(如并行I/O口、串行I/O口和A/D转换器)等。由于单片机通常是为实时控制应用而设计制造的,因此,又称为微控制器(MCU)。 一、单片机的发展概况 单片机自问世以来,性能不断提高和完善,其资源不仅能满足很多应用场合的需要,而且具有集成度高、功能强、速度快、体积小、功耗低、使用方便、性能可靠、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系

24、统、网络系统、汽车工业、国防工业、高级计算器具、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统,单片机的潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大、抗干扰能力强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促进了单片机技术的发展。,【相关知识】,自1976年9月Intel公司推出MCS-48单片机以来,单片机就受到了广大用户的欢迎。因此,有关公司都争相推出各自的单片机。如GI公司推出PIC1650系列单片机,Rockwell公司推出了与6502微处理器兼容的R6500系列单片机。它们都是8位机,片内

25、有8位中央处理器(CPU)、并行I/O口、8位定时器/计数器和容量有限的存储器(RAM、ROM)以及简单的中断功能。 1978年下半年Motorola公司推出M6800系列单片机,Zilog公司相继推出Z8单片机系列。1980年Intel公司在MCS-48系列基础上又推出了高性能的MCS-51系列单片机。这类单片机均带有串行I/O口,定时器/计数器为16位,片内存储容量(RAM,ROM)都相应增大,并有优先级中断处理功能,单片机的功能、寻址范围都比早期的扩大了,它们是当时单片机应用的主流产品。,【相关知识】,1982年Mostek公司和Intel公司先后又推出了性能更高的16位单片机MK682

26、00和MCS-96系列,NS公司和NEC公司也分别在原有8位单片机的基础上推出了16位单片机HPC16040和PD783系列。1987年Intel公司又宣布了性能比8096高两倍的CMOS型80C196,1988年推出带EPROM的87C196单片机。由于16位单片机推出的时间较迟、价格昂贵、开发设备有限等多种原因,至今还未得到广泛应用。而8位单片机已能满足大部分应用的需要,因此,在推出16位单片机的同时,高性能的新型8位单片机也不断问世。如:Motorola公司推出了带A/D和多功能I/O的68MC11系列,Zilog公司推出了带有DMA功能的Suqer8,Intel公司在1987年也推出了

27、带DMA和FIFO的UPI-452等。若要更详细的了解请上相关的单片机网站。 目前国际市场上8位、16位单片机系列已有很多,但是,在国内使用较多的系列是Intel公司的产品,其中又以MCS-51系列单片机应用尤为广泛,二十几年经久不衰,而且还在更进一步发展完善,价格越来越低,性能越来越好。,【相关知识】,二、单片机的应用 单片机是在一块芯片上集成了一台微型计算机所需的CPU、存储器、输入/输出部件和时钟电路等。因此它具有体积小,使用灵活、成本低、易于产品化、抗干扰能力强,可在各种恶劣环境下可靠地工作等特点。特别是它应用面广,控制能力强,使它在工业控制、智能仪表、外设控制、家用电器、机器人、军事

28、装置等方面得到了广泛的应用。单片机主要可用于以下几方面:1智能仪表单片机应用于各种仪器仪表的更新改造,实现仪表的数字化、智能化、多功能化、综合化及柔性化,并使长期以来关于测量仪表中的误差修正和线性化处理等难题迎刃而解。由单片机构成的智能仪表,集测量、处理、控制功能于一体,测量速度和测量精度得到提高,控制功能得到增强,简化了仪器仪表的结构,利于使用、维修和改进。,【相关知识】,2工业实时控制 单片机应用于各种工业实时控制中,如炉温控制系统、火灾报警系统、化学成分的测量和控制等,单片机技术与测量技术、自动控制技术相结合,利用单片机作为控制器,发挥其数据处理和实时控制功能,提高系统的生产效率和产品的

29、自动化程度。采用单片机作为机床数控系统的控制机,可以提高机床数控系统的可靠性、增强功能、降低控制机成本,并有可能改变数控控制机的结构模式。3机电一体化 单片机促进了机电一体化的发展,利用单片机改造传统的机电产品,能够使产品体积减小、功能增强、结构简化,与传统的机械产品相结合,构成了自动化、智能化的机电一体化新产品。例如,在电传打字机的设计中,由于采用单片机,从而取代了近千个机械部件。,【相关知识】,4通讯接口 在数据采集系统中,用单片机对模数转换接口进行控制,不仅可以提高采集速度,而且还可以对数据进行预处理,如数字滤波、线性化处理及误差修正等,在通信接口中,采用单片机,可以对数据进行编码、解码

30、、分配管理以及接受发送等工作。在一般计算机测控系统中,除打印机、键盘、磁盘驱动器、CRT等通用外部设备接口外,还有许多外部通信、采集、多路分配管理以及驱动控制等接口,如果完全由主机进行管理,势必造成主机负担过重,降低系统的运行速度,降低接口的管理水平。利用单片机进行通讯接口的控制与管理,能够提高系统的运行速度,减少接口的通信密度,提高接口的管理水平。单片机在计算机网络和数字通信中具有非常广阔的应用前景。,【相关知识】,5家用电器 目前,国内外各种家用电器已普通采用MCU代替传统的控制电路,使用的MCU大多是小型廉价型的单片机。在这些单片机中集成了许多外设的接口,如键盘、显示器接口及AD等功能单

31、元,而不用并行扩展总线,故常制作成为单片机应用系统。例如洗衣机、电冰箱、微波炉、电饭锅、电视机及其他视频音像设备的控制器。目前的主要发展趋势是模糊控制化,以形成众多的模糊控制家电产品。 此外,单片机成功应用于玩具、游戏机、充电器、IC卡、电子锁、电子秤、步进电机、电子词典、照相机、电风扇和防盗报警等日常生活用品中;在汽车的点火控制、变速控制、排气控制、节能控制、冷气控制以及防滑刹车中也有很多应用。总之,单片机技术集计算机技术、电子技术、电气技术、微电子技术于一身,作为一种智能化的现代开发工具,从根本上改变了传统的控制系统设计思想和设计方法,随着现代电子技术的普及与发展,其应用领域无所不至,无论

32、是工业部门、民用部门乃至事业部门,都有其广泛应用。,【相关知识】,【第二部分】单片机内部结构揭秘 MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O线等一台计算机所需要的基本功能部件,各功能部件由内部总线联接在一起。MCS-51单片机内包含下列几个部件,其基本结构如图12所示,【相关知识】,频率基准源,计数器,中断,控制,并行 I/O 口,串行输入,串行输出,图1.25 单片机基本结构框图 由图可见,51单片机主要由以下几部分组成:,【相关知识】,CPU系统: 8位CPU,含布尔处理器; 一个片内振荡器及时钟电路; 总线逻辑控制;存储器系统: 4K字

33、节程序存储器(ROM/EPROM/FLASH,可外扩至64KB); 128字节数据存储器(RAM,可外扩至64KB); 特殊功能寄存器SFR;并行I/O口系统:4个8位并行I/O端口线(32条可编程的I/O);其他功能单元: 2个16位定时器/计数器; 1个可编程全双工异步串行口; 中断系统(具有5个中断源、2个优先级嵌套中断结构),【相关知识】,MCS-51单片机内部结构由微处理器(含运算器和控制器)、存储器、I/O口以及特殊功能寄存器SFR等构成,芯片的内部逻辑结构如图1.26所示。,图1.26芯片的内部逻辑结构,【相关知识】,一、CPU系统 CPU系统主要包含以下部件: 8位CPU,含布

34、尔处理器; 一个片内振荡器及时钟电路; 总线逻辑控制;(一) 中央处理器(CPU) 中央处理器CPU是单片机的核心部件,由运算器和控制器组成,此外在CPU的运算器中还有一个专门进行位数据操作的位处理器。 8位的MCS-51单片机的CPU内部有数术逻辑单元ALU(Arithmetic Logic Unit)、累加器A(8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(有时也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。MCS51单片机CPU内部结构见图1.27所示。,【相关知识】,图1

35、.27 MCS51单片机CPU内部结构图,【相关知识】,1运算器 运算器的功能主要进行算术和逻辑运算,它由算术逻辑单元ALU、累加器ACC、B寄存器、PSW状态字寄存器和两个暂存器组成。ALU是运算器的核心部件,基本的算术逻辑运算都在其中进行。包括加、减、乘、除、增量、十进制调整和比较等算术运算;与、或、异或等逻辑运算;左移位、右移位和半字节交换等操作;操作数暂存于累加器和相应寄存器,操作结果存于累加器,操作结果的状态保存于状态寄存器(PSW)中。 由于ALU内部没有寄存器,参加运算的操作数,必须放在累加器A中。累加器A也用于存放运算结果。 例如:执行指令 ADD A,B 执行这条指令时,累加

36、器A中的内容通过输入口In_1输入ALU,寄存器B通过内部数据总线经输入口In_2输入ALU,A+B的结果通过ALU的输出口Out内部数据总线,送回到累加器A。,【相关知识】,位处理器是单片机中运算器的重要组成部分(图中未画出),又称布尔处理器,专门用来处理位操作,给单片机实现控制功能提供了极大的方便。在硬件上,位处理器以状态寄存器中的进位标志位CY为累加器,有以位为单位的RAM和I/O空间,具有相应的指令系统,可提供17条位操作指令以实现置位、复位、取反,等于0转、等于l转及位与位之间的传送,逻辑与、或等操作,操作结果送回进位标志位CY。2控制器 控制器的功能是控制单片机各部件协调动作。它由

37、程序计数器PC、PC加1寄存器、指令寄存器、指令译码器、定时与控制电路组成。程序计数器PC(有时也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。其工作过程就是执行程序的过程,而程序的执行是在控制器的控制下进行的。首先,从片内外程序存储器ROM中取出指令,送指令寄存器。,【相关知识】,然后通过指令寄存器再送指令译码器,将指令代码译成一种或几种电平信号。与系统时钟一起,送时序逻辑电路进行综合后产生各种按一定时间节拍变化的电平或脉冲控制信号,用以控制系统各部件进行相应的操作,完成指令的执行。执行程序就是重复

38、这一过程。(1) 程序计数器PC(Program Counter) 程序计数器PC用来存放即将要执行的指令地址,共16位,可对64K程序存储器直接寻址。执行指令时,PC内容的低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节的读出来,然后传送到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。 程序计数器PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元),以实现程序的

39、顺序执行。PC没有地址,是不可寻址的,因此,用户无法对它进行读写,但在执行转移、调用、返回等指令时,能由硬件自动改变其内容,以改变程序的执行顺序。,【相关知识】,(2) 指令寄存器IR 指令寄存器的作用就是用来存放即将执行的指令代码。 在这里我们先简单的了解下CPU执行指令的过程,首先由程序存储器(ROM)中读取指令代码送入到指令寄存器IR,经指令译码器ID译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,请参考相关书籍。(3) 指令译码器ID 用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器

40、后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。(4) 地址寄存器AR 地址寄存器AR的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器AR通过地址总线AB与外部存储器相连。,【相关知识】,(5) 数据寄存器DR 用于存放写入外部存储器或I/O端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线DB直接相连。(6) 程序状态字寄存

41、器PSW 用于记录运算过程中的状态,如是否溢出。进位等。 例如,累加器A的内容为83H,执行指令: ADD A,#8AH;累加器A与立即数8AH相加,并把结果存放在A中。 指令执行后,将产生和的结果为10DH,而累加器A只有8位,只能存放低8位,即0DH,元法存放结果中的最高位B8。为些,在CPU内设置一个进位标志位C,当执行加法运算出现进位时,进位标志位C为1。(7) 时序部件 由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号。 (二) 时钟电路 时钟电路用于产生单片机工作所需要的时钟信号;而CPU的时序是指控制器在统一的时钟信号下,按照指令功能发出在时间上有一定次序的信

42、号,控制和启动相关逻辑电路完成指令操作。,【相关知识】,1.时钟电路 8051型单片机芯片内有时钟电路,但石英晶体和微调电容需要外接。时钟电路为单片机产生时钟脉冲序列,作为单片机工作的时间基准,典型的晶体振荡频率为12MHz。 MCS-51的时钟信号可以由两种方式产生,一种是内部方式,利用芯片内部的振荡电路;另一种方式为外部方式,由于MCS-51有HMOS型与CHMOS型,它们的时钟电路有一定的区别,这里仅介绍通常所用的HMOS型的时钟电路。 内部时钟方式 MCS-51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件

43、的片外晶体或陶瓷谐振器一起构成一个自激振荡器。虽然有内部振荡电路,但要形成时钟,必须外接元件,图1-10a是单片机内部时钟方式的电路。外接晶体以及电容Cl和C2构成并联谐振电路,接在放大器的反馈回路中,外接电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性.,【相关知识】,晶体可在 1.2M12MHz之间任选,电容Cl和C2的一般在20pF100pF之间选择。若频率稳定性要求不高,可选用较为廉价的陶瓷谐振器,Cl和C2的典型值约为47pF。在设计印刷电路板时,应采用温度稳定性能好的高频电容,晶体或陶瓷振荡器和电容应尽可能与单片机芯片靠近安装,以减少寄生电容,提高系统稳

44、定性和可靠性。,a),b),图1.28 MCS-51时钟电路 a)内部时钟方式 b)外部时钟方式电源,【相关知识】, 外部时钟方式 外部时钟方式是利用外部振荡器信号源即时钟源直接接入XTAL1或XTAL2。通常XTAL1接地,XTAL2接外部时钟,电路见图1-10b。由于XTAL2的逻辑电平不是TTL的,故建议外接一个4.7K10K的上拉电阻。2.CPU时序 单片机的时序是指CPU在执行指令时所需控制信号的时间顺序。时序信号是以时钟脉冲为基准产生的,分为两大类:一类用于芯片内部各功能部件的控制,用户无须了解,这里不做详细介绍;另一类用于通过单片机的引脚进行片外存储器或扩展的I/O端口的控制,该部分时序信号对于分析、设计硬件电路至关重要。 时序单位 MCS-51型单片机时序的有关单位从小到大依次为时钟周期、状态周期、机器周期、指令周期。 a) 时钟周期P 时钟周期是MCS-51型单片机中最小的时序单位,它是单片机内部的时钟振荡器OSC振荡频率fosc的倒数,又称振荡周期或拍。它随振荡电路的时钟脉冲频率fosc的高低而改变。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。